@charset "utf-8";

/* ===== ページヘッダー ===== */
.company_top_inner { display: flex; align-items: flex-start; }
.company_top_inner > :first-child { flex: 1; min-width: 0; }
.company_top_dec { flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; }
.company_header_illust { width: 100px; }
.company_name_en { color: #DECFBF; line-height: 1; }
@media ( min-width: 768px ) {
    .company_top_dec { align-self: stretch; justify-content: space-between; }
    .company_header_illust { width: 200px; }
}

/* ===== セクション ===== */
.message_sec { display: flex; flex-direction: column; gap: 24px; }
@media ( min-width: 768px ) { .message_sec { gap: 40px; } }

/* ===== 代表メッセージカード ===== */
.message_card { position: relative; }
.message_card_title { position: relative; padding-bottom: 16px; margin-bottom: 20px; }
.message_card_title::after { content: ''; position: absolute; bottom: 0; left: 0; width: 32px; height: 2px; background: #CB4524; }
.message_inner { display: flex; flex-direction: column; gap: 20px; }
.message_img { display: block; width: 100%; margin: 0 auto; }
.message_img_wrap .text_s { margin-top: 8px; }
@media ( min-width: 768px ) {
    .message_card_title { padding-bottom: 20px; margin-bottom: 28px; }
}
@media ( min-width: 1025px ) {
    .message_inner { flex-direction: row; gap: 40px; }
    .message_text { flex: 1 0 auto; min-width: 0; }
    .message_img_wrap { flex: 1 0 300px; display: flex; flex-direction: column; justify-content: space-between; }
    .message_caption { text-align: right; }
}

/* ===== MISSION / VISION / VALUE ===== */
.purpose_table { display: flex; flex-direction: column; }
.purpose_table dl { display: flex; flex-direction: column; gap: 8px; padding: 20px 0; border-bottom: 1px solid #DECFBF; }
.purpose_table dl:first-child { padding-top: 0; }
.purpose_table dl:last-child { padding-bottom: 0; border-bottom: none; }
.purpose_table dt { display: flex; flex-direction: column; }
.purpose_table dt span:first-child { font-size: 20px; line-height: 1em; }
.purpose_table dd { display: flex; flex-direction: column; gap: 8px; }
.purpose_table dd span:first-child { line-height: 1.5em; }
@media ( min-width: 768px ) {
    .purpose_table dl { flex-direction: row; align-items: flex-start; gap: 40px; padding: 32px 0 28px; }
    .purpose_table dt { flex: 0 0 125px; }
    .purpose_table dt span:first-child { font-size: 24px; }
    .purpose_table dd span:first-child { line-height: 1em; }
}

/* ===== ロゴの由来 ===== */
.logo_sec { position: relative; text-align: center; }
.logo_sec > * { position: relative; z-index: 1; }
/* .logo_sec::before { content: ''; position: absolute; bottom: 0; left: 0; display: block; width: min(60vw, 500px); aspect-ratio: 25 /27; background: url('/img/common/logo_bg_base.svg') no-repeat center; background-size: auto; background-size: contain; opacity: 0.4; } */
.logo_sec_inner { display: flex; flex-direction: column; align-items: center; }
.company_logo_img { width: 140px; margin: 24px 0 40px; }
.company_logo_body { text-align: left; }
.company_logo_deer { display: block; margin-left: auto; margin-bottom: -60px; }
@media ( min-width: 768px ) {
    .logo_sec::before { top: 0; right: 0; left: auto; }
    .company_logo_body { text-align: center; }
    .company_logo_deer { margin-bottom: -120px; }
}
@media ( min-width: 1025px ) {
    .logo_sec_inner { flex-direction: row; justify-content: center; align-items: flex-start; gap: 40px; text-align: left; }
    .company_logo_img { flex-shrink: 0; width: 200px; margin: 0; }
    .company_logo_body { text-align: left; }
}


.company_contact_bg { padding-top: 40px; }
@media ( min-width: 768px ) {
    .company_contact_bg { padding-top: 0px; }
}
