/*
*
*   Company
*
*/
.CompanyHero{min-height:62vh;position:relative;background-position:center center;background-size:cover;background-repeat:no-repeat}
.CompanyHero::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(20,48,26,.42) 0%,rgba(20,48,26,.18) 48%,rgba(20,48,26,.36) 100%)}
.CompanyHero .HeroOverlay{position:relative;min-height:62vh;display:flex;align-items:center;justify-content:center;padding:48px 0}
.CompanyHero__content{position:relative;width:min(100%,760px);margin:0 auto;text-align:center;color:#fff;background:rgba(150,150,150,.60);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 18px 42px rgba(0,0,0,.16)}
.CompanyHero__lead{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin:0 0 1rem;padding:.45rem .95rem;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(255,255,255,.10);font-size:.92rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#fff}
.CompanyHero__content .ContentTitle{margin:0;padding:0;border:0;font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.2;color:#fff;text-shadow:0 4px 16px rgba(0,0,0,.22)}
.CompanyHero__text{max-width:34em;margin:1.25rem auto 0;font-size:1rem;line-height:1.95;color:rgba(255,255,255,.96);text-shadow:0 2px 10px rgba(0,0,0,.22)}
@media (max-width:767px){
    .CompanyHero{min-height:68vh}
    .CompanyHero .HeroOverlay{min-height:68vh;padding:32px 0}
    .CompanyHero__content{width:100%;padding:24px 18px}
    .CompanyHero__lead{margin:0 0 .9rem;padding:.4rem .8rem;font-size:.8rem;letter-spacing:.06em}
    .CompanyHero__content .ContentTitle{font-size:clamp(1.8rem,8vw,2.4rem);line-height:1.22}
    .CompanyHero__text{margin-top:1rem;font-size:.95rem;line-height:1.85}
}
/* Greeting */
.CompanyGreetingSection{padding:96px 0;background:linear-gradient(180deg,rgba(120,189,84,.08) 0%,rgba(255,255,255,1) 100%)}
.CompanyGreetingSection__row{gap:0}
.CompanyGreetingSection__photo{margin:0;overflow:hidden;border-radius:20px;box-shadow:0 18px 44px rgba(0,0,0,.12);background:#fff}
.CompanyGreetingSection__photo img{display:block;width:100%;height:100%;min-height:420px;object-fit:cover}
.CompanyGreetingSection__body{padding-left:32px}
.CompanyGreetingSection__label{display:inline-flex;align-items:center;margin:0 0 1rem;padding:.45rem .9rem;border-radius:999px;background:rgba(23,172,78,.10);font-size:.86rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#17ac4e}
.CompanyGreetingSection__title{margin:0 0 1.25rem;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.3;color:#14301a}
.CompanyGreetingSection__text{margin:0;font-size:1rem;line-height:2;color:#333333}
@media (max-width:767px){
    .CompanyGreetingSection{padding:64px 0}
    .CompanyGreetingSection__photo img{min-height:260px}
    .CompanyGreetingSection__body{padding:24px 0 0}
    .CompanyGreetingSection__label{margin:0 0 .85rem;font-size:.8rem}
    .CompanyGreetingSection__title{margin:0 0 1rem;font-size:1.6rem}
    .CompanyGreetingSection__text{font-size:.95rem;line-height:1.9}
}
/* BasicInfo */
.CompanyInfoSection{padding:96px 0;background:#f8fcf8}
.CompanyInfoSection__head{max-width:760px;margin:0 auto 2.5rem;text-align:center}
.CompanyInfoSection__label{display:inline-flex;align-items:center;justify-content:center;margin:0 0 1rem;padding:.45rem .9rem;border-radius:999px;background:rgba(23,172,78,.10);font-size:.86rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#17ac4e}
.CompanyInfoSection__title{margin:0 0 1rem;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.3;color:#14301a}
.CompanyInfoSection__lead{margin:0;font-size:1rem;line-height:1.9;color:#555}
.CompanyInfoList{display:flex;flex-direction:column;gap:16px}
.CompanyInfoItem{display:grid;grid-template-columns:220px minmax(0,1fr);margin:0;background:#fff;border:1px solid rgba(20,48,26,.10);border-radius:18px;box-shadow:0 12px 32px rgba(0,0,0,.05);overflow:hidden}
.CompanyInfoItem__label{margin:0;padding:1.35rem 1.5rem;background:linear-gradient(180deg,rgba(120,189,84,.12) 0%,rgba(120,189,84,.06) 100%);font-size:.98rem;font-weight:500;line-height:1.8;color:#14301a;border-right:1px solid rgba(20,48,26,.08)}
.CompanyInfoItem__value{margin:0;padding:1.35rem 1.5rem;font-size:1rem;line-height:1.95;color:#333333;word-break:break-word}
.CompanyInfoItem__value a{color:#17ac4e;text-decoration:none;font-weight:500}
.CompanyInfoItem__value a:hover{text-decoration:underline}
.CompanyInfoItem__list{margin:0;padding:0;list-style:none}
.CompanyInfoItem__list li{position:relative;padding-left:1.1rem}
.CompanyInfoItem__list li+li{margin-top:.55rem}
.CompanyInfoItem__list li::before{content:"";position:absolute;left:0;top:.78em;width:6px;height:6px;border-radius:999px;background:#78bd54;transform:translateY(-50%)}
.CompanyInfoItem__numberList{margin:0;padding-left:1.3rem}
.CompanyInfoItem__numberList li+li{margin-top:.45rem}
.CompanyInfoItem--multi .CompanyInfoItem__label{align-self:stretch}
.CompanyInfoItem--contact{border-color:rgba(23,172,78,.18);box-shadow:0 14px 34px rgba(23,172,78,.08)}
@media (max-width:1024px){
    .CompanyInfoItem{grid-template-columns:190px minmax(0,1fr)}
    .CompanyInfoItem__label{padding:1.2rem 1.2rem}
    .CompanyInfoItem__value{padding:1.2rem 1.2rem}
}
@media (max-width:767px){
    .CompanyInfoSection{padding:64px 0}
    .CompanyInfoSection__head{margin:0 auto 2rem}
    .CompanyInfoSection__label{margin:0 0 .85rem;font-size:.8rem}
    .CompanyInfoSection__title{margin:0 0 .85rem;font-size:1.7rem}
    .CompanyInfoSection__lead{font-size:.95rem;line-height:1.8}
    .CompanyInfoList{gap:14px}
    .CompanyInfoItem{grid-template-columns:1fr}
    .CompanyInfoItem__label{padding:1rem 1rem .65rem;border-right:0;border-bottom:1px solid rgba(20,48,26,.06);font-size:.9rem;line-height:1.6}
    .CompanyInfoItem__value{padding:1rem;font-size:.95rem;line-height:1.85}
    .CompanyInfoItem__list li{padding-left:1rem}
    .CompanyInfoItem__list li+li{margin-top:.45rem}
    .CompanyInfoItem__numberList{padding-left:1.15rem}
}
/* history */
.CompanyHistorySection{padding:96px 0;background:linear-gradient(180deg,#ffffff 0%,rgba(120,189,84,.07) 100%)}
.CompanyHistorySection__head{max-width:760px;margin:0 auto 2.75rem;text-align:center}
.CompanyHistorySection__label{display:inline-flex;align-items:center;justify-content:center;margin:0 0 1rem;padding:.45rem .9rem;border-radius:999px;background:rgba(23,172,78,.10);font-size:.86rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#17ac4e;text-transform:uppercase}
.CompanyHistorySection__title{margin:0 0 1rem;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.3;color:#14301a}
.CompanyHistorySection__lead{margin:0;font-size:1rem;line-height:1.9;color:#555}
.CompanyHistoryTimeline{display:flex;flex-direction:column;gap:22px}
.CompanyHistoryItem{display:grid;grid-template-columns:110px 52px minmax(0,1fr);align-items:stretch;column-gap:0}
.CompanyHistoryItem__year{display:flex;align-items:center;justify-content:flex-start;padding:1.2rem 0;font-size:clamp(1.7rem,2.8vw,2.4rem);font-weight:500;line-height:1;color:#17ac4e;letter-spacing:.02em}
.CompanyHistoryItem__line{position:relative;display:flex;align-items:center;justify-content:center}
.CompanyHistoryItem__line::before{content:"";position:absolute;top:-22px;bottom:-22px;left:50%;width:2px;background:linear-gradient(180deg,rgba(120,189,84,.18) 0%,rgba(120,189,84,.5) 50%,rgba(120,189,84,.18) 100%);transform:translateX(-50%)}
.CompanyHistoryItem:first-child .CompanyHistoryItem__line::before{top:50%}
.CompanyHistoryItem:last-child .CompanyHistoryItem__line::before{bottom:50%}
.CompanyHistoryItem__dot{position:relative;z-index:1;display:block;width:16px;height:16px;border-radius:999px;background:#17ac4e;box-shadow:0 0 0 6px rgba(120,189,84,.16)}
.CompanyHistoryItem__card{display:flex;align-items:center;min-height:118px;padding:1.5rem 1.75rem;border:1px solid rgba(20,48,26,.08);border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 16px 38px rgba(0,0,0,.06)}
.CompanyHistoryItem__text{margin:0;font-size:1rem;line-height:1.9;color:#333333}
@media (max-width:1024px){
    .CompanyHistoryItem{grid-template-columns:96px 44px minmax(0,1fr)}
    .CompanyHistoryItem__year{font-size:clamp(1.45rem,3vw,2rem)}
    .CompanyHistoryItem__card{min-height:104px;padding:1.25rem 1.4rem}
}
@media (max-width:767px){
    .CompanyHistorySection{padding:64px 0}
    .CompanyHistorySection__head{margin:0 auto 2rem}
    .CompanyHistorySection__label{margin:0 0 .85rem;font-size:.8rem}
    .CompanyHistorySection__title{margin:0 0 .85rem;font-size:1.7rem}
    .CompanyHistorySection__lead{font-size:.95rem;line-height:1.8}
    .CompanyHistoryTimeline{gap:16px}
    .CompanyHistoryItem{grid-template-columns:74px 28px minmax(0,1fr);align-items:start}
    .CompanyHistoryItem__year{align-items:flex-start;padding:.25rem 0 0;font-size:1.2rem;line-height:1.2}
    .CompanyHistoryItem__line{padding-top:.35rem}
    .CompanyHistoryItem__line::before{top:-16px;bottom:-16px}
    .CompanyHistoryItem__dot{width:12px;height:12px;box-shadow:0 0 0 4px rgba(120,189,84,.16)}
    .CompanyHistoryItem__card{min-height:auto;padding:1rem 1rem 1rem 1.05rem;border-radius:16px}
    .CompanyHistoryItem__text{font-size:.95rem;line-height:1.8}
}
/* Access-map */
.CompanyAccessSection{padding:96px 0;background:linear-gradient(180deg,rgba(120,189,84,.06) 0%,rgba(255,255,255,1) 100%)}
.CompanyAccessSection__head{max-width:760px;margin:0 auto 2.75rem;text-align:center}
.CompanyAccessSection__label{display:inline-flex;align-items:center;justify-content:center;margin:0 0 1rem;padding:.45rem .9rem;border-radius:999px;background:rgba(23,172,78,.10);font-size:.86rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#17ac4e;text-transform:uppercase}
.CompanyAccessSection__title{margin:0 0 1rem;font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.3;color:#14301a}
.CompanyAccessSection__lead{margin:0;font-size:1rem;line-height:1.9;color:#555}
.CompanyAccessSection__row{gap:0}
.CompanyAccessSection__map{height:100%;min-height:520px;overflow:hidden;border-radius:22px;box-shadow:0 18px 42px rgba(0,0,0,.10);background:#fff}
.CompanyAccessSection__map iframe{display:block;width:100%;height:100%;min-height:520px}
.CompanyAccessCard{display:flex;flex-direction:column;justify-content:center;height:100%;min-height:520px;padding:2rem 2rem 2rem 2.2rem;margin-left:28px;border:1px solid rgba(20,48,26,.08);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:0 16px 38px rgba(0,0,0,.06)}
.CompanyAccessCard__label{display:inline-flex;align-items:center;align-self:flex-start;margin:0 0 1rem;padding:.45rem .85rem;border-radius:999px;background:rgba(4,158,164,.10);font-size:.82rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#049ea4}
.CompanyAccessCard__labelBottom{display:inline-flex;align-items:center;align-self:flex-start;margin:0 0 1rem;font-size:.82rem;font-weight:500;line-height:1.4;letter-spacing:.08em;color:#049ea4}
.CompanyAccessCard__title{margin:0 0 1.5rem;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.35;color:#14301a}
.CompanyAccessList{display:flex;flex-direction:column;gap:16px;margin:0;padding:0}
.CompanyAccessList__item{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;padding:0 0 16px;border-bottom:1px solid rgba(20,48,26,.08)}
.CompanyAccessList__item:last-child{padding-bottom:0;border-bottom:0}
.CompanyAccessList__term{margin:0;font-size:.95rem;font-weight:500;line-height:1.8;color:#14301a}
.CompanyAccessList__desc{margin:0;font-size:1rem;line-height:1.95;color:#333333;word-break:break-word}
.CompanyAccessList__desc a{color:#17ac4e;text-decoration:none;font-weight:500}
.CompanyAccessList__desc a:hover{text-decoration:underline}
.CompanyAccessCard__note{margin-top:1.5rem;padding:1rem 1.1rem;border-radius:16px;background:rgba(120,189,84,.08)}
.CompanyAccessCard__note p{margin:0;font-size:.95rem;line-height:1.8;color:#555}
@media (max-width:1024px){
    .CompanyAccessSection__map{min-height:460px}
    .CompanyAccessSection__map iframe{min-height:460px}
    .CompanyAccessCard{min-height:460px;padding:1.6rem 1.4rem 1.6rem 1.6rem;margin-left:20px}
    .CompanyAccessList__item{grid-template-columns:118px minmax(0,1fr);gap:14px}
}
@media (max-width:767px){
    .CompanyAccessSection{padding:64px 0}
    .CompanyAccessSection__head{margin:0 auto 2rem}
    .CompanyAccessSection__label{margin:0 0 .85rem;font-size:.8rem}
    .CompanyAccessSection__title{margin:0 0 .85rem;font-size:1.7rem}
    .CompanyAccessSection__lead{font-size:.95rem;line-height:1.8}
    .CompanyAccessSection__map{min-height:320px;border-radius:18px}
    .CompanyAccessSection__map iframe{min-height:320px}
    .CompanyAccessCard{min-height:auto;padding:1.2rem 1rem;margin:16px 0 0;border-radius:18px}
    .CompanyAccessCard__label{margin:0 0 .85rem;font-size:.76rem}
    .CompanyAccessCard__title{margin:0 0 1rem;font-size:1.35rem}
    .CompanyAccessList{gap:12px}
    .CompanyAccessList__item{grid-template-columns:1fr;gap:4px;padding:0 0 12px}
    .CompanyAccessList__term{font-size:.88rem;line-height:1.6}
    .CompanyAccessList__desc{font-size:.95rem;line-height:1.8}
    .CompanyAccessCard__note{margin-top:1rem;padding:.9rem 1rem}
    .CompanyAccessCard__note p{font-size:.9rem;line-height:1.75}
}
/*
*
*   Company/faq
*
*/
/* Hero */
.FaqHero{position:relative;background-position:center center;background-repeat:no-repeat;background-size:cover;min-height:360px}
.FaqHero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,48,26,.24) 0%,rgba(20,48,26,.46) 100%)}
.FaqHero .HeroOverlay{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:360px;padding:72px 20px}
.FaqHero__content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#ffffff;max-width:760px}
.FaqHero__title{margin:0;font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.25;font-weight:500;color:#ffffff}
.FaqHero__lead{margin:20px 0 0;font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.95;font-weight:500}
.FaqHero__note{margin:16px 0 0;font-size:.92rem;line-height:1.9;opacity:.92;max-width:680px}

@media (max-width: 767px){
    .FaqHero{min-height:300px}
    .FaqHero .HeroOverlay{min-height:300px;padding:56px 16px}
    .FaqHero__title{font-size:clamp(1.7rem,8vw,2.2rem);line-height:1.35}
    .FaqHero__lead{margin:16px 0 0;font-size:.98rem;line-height:1.85}
    .FaqHero__note{margin:14px 0 0;font-size:.84rem;line-height:1.8}
}
/* FAQ section */
.FaqCategoryTitle{text-align:center;font-size:clamp(1.6rem,2vw,2rem);line-height:1.4;margin:0 0 40px;font-weight:500;color:#1f2f2a}
.FaqList{display:grid;gap:32px;justify-items:center}
.FaqItem{width:min(100%,920px);display:grid;gap:18px}
.FaqRow{display:flex;align-items:flex-start;gap:16px;width:100%}
.FaqRow--question{justify-content:flex-start}
.FaqRow--answer{justify-content:flex-end}
.FaqPerson{flex:0 0 128px;width:128px}
.FaqPerson img{display:block;width:128px;height:128px;object-fit:cover;}
.FaqBubble{position:relative;max-width:min(100%,720px);padding:20px 24px;border-radius:24px;box-shadow:0 10px 30px rgba(0,0,0,.08);word-break:break-word;overflow-wrap:anywhere}
.FaqBubble p{margin:0;line-height:1.9;font-size:1rem}
.FaqBubble--question{background:#cacaca}
.FaqBubble--answer{background:#f1e7e7;border:1px solid rgba(31,47,42,.12)}
.FaqBubble--question::before{content:"";position:absolute;top:22px;left:-12px;width:20px;height:20px;background:#cacaca;clip-path:polygon(100% 0,0 50%,100% 100%)}
.FaqBubble--answer::after{content:"";position:absolute;top:22px;right:-12px;width:20px;height:20px;background:#f1e7e7;clip-path:polygon(0 0,100% 50%,0 100%)}
.ContentBlockFull .ContentBlock .FaqList + .FaqList{margin-top:24px}

@media (max-width: 767px){
    .FaqCategoryTitle{margin:0 0 28px}
    .FaqItem{gap:14px}
    .FaqRow{gap:10px}
    .FaqPerson{flex:0 0 52px;width:52px}
    .FaqPerson img{width:52px;height:52px}
    .FaqBubble{max-width:calc(100% - 62px);padding:16px 18px;border-radius:20px}
    .FaqBubble p{font-size:.95rem;line-height:1.8}
    .FaqBubble--question::before{top:18px;left:-10px;width:16px;height:16px}
    .FaqBubble--answer::after{top:18px;right:-10px;width:16px;height:16px}
}

@media (max-width: 480px){
    .FaqRow{align-items:flex-start}
    .FaqBubble{max-width:calc(100% - 58px)}
}
/* FAQ cta */
.CtaSection{position:relative;background-position:center center;background-size:cover;background-repeat:no-repeat;height:75vh;display:flex;align-items:center;justify-content:center;padding:0}
.CtaOverlay{width:100%;display:flex;align-items:center;justify-content:center;background:rgba(20,48,26,.65);padding:40px 20px}
.CtaContent{max-width:820px;margin:0 auto;text-align:center;color:#ffffff}
.CtaTitle{margin:0;font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1.4;font-weight:500}
.CtaLead{margin:24px 0 0;font-size:1.05rem;line-height:2}
.CtaNote{margin:16px 0 0;font-size:.95rem;line-height:1.9;opacity:.9}
.CtaButtonWrap{margin:36px 0 0}
.CtaButton{display:inline-block;padding:16px 40px;background:#17ac1e;color:#ffffff;font-size:1rem;font-weight:500;border-radius:999px;transition:.3s ease;text-decoration:none}
.CtaButton:hover{background:#149e1a;transform:translateY(-2px);box-shadow:0 12px 24px rgba(0,0,0,.2)}

@media (max-width: 767px){
    .CtaSection{padding:60px 16px}
    .CtaOverlay{padding:40px 16px}
    .CtaTitle{font-size:1.6rem}
    .CtaLead{font-size:.95rem;line-height:1.9}
    .CtaNote{font-size:.85rem}
    .CtaButton{padding:14px 28px;font-size:.95rem}
}
