
:root{--lime:#e5ff38;--pine:#184b3c;--deep:#102d25;--paper:#f2f0e7;--text:#172e25}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--text);font-family:Arial,"Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.85}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #8eac00;outline-offset:5px}header{position:sticky;top:0;z-index:20;background:var(--paper);border-bottom:1px solid #172e2540}.nav{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:17px 4vw;gap:16px}.brand{font-size:19px;font-weight:900;letter-spacing:-.065em;line-height:1.1;text-decoration:none}.brand small{display:block;font-size:8px;letter-spacing:.2em;margin-top:7px}.langs{display:flex;gap:2px}.langs button{font:700 12px Arial,sans-serif;border:0;padding:11px 14px;color:var(--deep);background:transparent;cursor:pointer}.langs button.active{background:var(--deep);color:var(--lime)}.hero{background:var(--deep);color:var(--paper);overflow:hidden}.hero-wrap{max-width:1600px;margin:auto;padding:28px 4vw 58px}.hero-wrap>div:first-child{position:relative}.poster{width:100%;display:block}.hero-wrap>div:nth-child(2){display:grid;grid-template-columns:1fr 1fr;column-gap:5%;align-items:start;padding-top:54px}.eyebrow{grid-column:1/-1;font-size:clamp(38px,7.8vw,118px);font-weight:900;letter-spacing:-.075em;line-height:.94;color:var(--lime);padding-bottom:30px;border-bottom:1px solid #f2f0e745;white-space:nowrap}.tag{grid-column:1;font-size:11px;letter-spacing:.12em;margin-top:30px;color:var(--lime);font-weight:700}.hero h1{grid-column:1;font-size:clamp(26px,3.4vw,50px);letter-spacing:-.045em;line-height:1.42;margin:17px 0 20px;font-weight:900}.hero p{grid-column:1;font-size:15px;line-height:2;max-width:520px;margin:0 0 12px;color:#dce2d7}.cta{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:19px 25px;background:var(--lime);color:var(--deep);font-size:16px;font-weight:800;text-decoration:none;min-height:60px;transition:background .2s,transform .2s}.cta:hover{background:#f2ff94;transform:translateY(-2px)}.hero .cta{grid-column:1;justify-self:start;margin-top:18px;min-width:270px}.recruit-photo{grid-column:2;grid-row:2/6;align-self:stretch;position:relative;margin:30px 0 0;min-height:380px;overflow:hidden}.recruit-photo img{display:block;width:100%;height:100%;position:absolute;object-fit:cover;object-position:54% center}.recruit-photo:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#102d25d9)}.recruit-photo-label{position:absolute;bottom:30px;left:25px;right:15px;z-index:1;font-size:clamp(25px,3.4vw,48px);font-weight:900;line-height:.95;letter-spacing:-.06em}.recruit-photo-label small{display:block;color:var(--lime);font-size:10px;letter-spacing:.16em;margin-bottom:10px}.recruit-photo-note{position:absolute;bottom:7px;right:10px;font-size:10px;color:#fff;z-index:2}.container{width:calc(100% - 8vw);max-width:1240px;margin:auto}.section{padding:86px 0}.kicker{display:flex;align-items:baseline;gap:16px;font-size:11px;font-weight:800;letter-spacing:.15em}.section-number{font-family:Arial,sans-serif;font-size:16px;font-weight:400;letter-spacing:-.06em}.section h2,.apply h2{font-size:clamp(28px,4vw,56px);line-height:1.42;letter-spacing:-.045em;margin:28px 0 28px;font-weight:900}.lead{font-size:16px;line-height:2.15;max-width:820px}.section:not(.alt) .lead{margin-left:22%;max-width:850px}.section.alt{background:var(--pine);color:var(--paper)}.section.alt .kicker{color:var(--lime)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:46px}.panel{padding:25px 0 0;border-top:1px solid #172e2570}.alt .panel{border-color:#f2f0e76b}.panel h3{font-size:24px;letter-spacing:-.04em;margin:0 0 25px}.panel ul{list-style:none;padding:0;margin:0}.panel li{position:relative;padding:13px 0 13px 20px;border-bottom:1px solid #f2f0e726;font-size:15px;line-height:1.85}.panel li:before{content:'↗';position:absolute;left:0;color:var(--lime);font-size:12px}.stripe{color:var(--deep);background:var(--lime);padding:27px 35px;font-size:15px;font-weight:700;line-height:2;margin-top:45px}.detail{display:grid;grid-template-columns:1fr 1fr;gap:7%;margin-top:40px}.detail strong{display:block;font-size:20px;margin-bottom:24px}.detail b{font-size:14px;letter-spacing:.015em}.detail p{font-size:15px;margin:12px 0 20px}.detail a{font-size:13px;text-underline-offset:5px}.apply{background:var(--lime);padding:80px 0;color:var(--deep)}.apply .kicker{color:var(--deep)!important}.apply .container{display:grid;grid-template-columns:1fr 1fr;column-gap:7%}.apply .kicker,.apply h2,.apply .lead{grid-column:1}.apply h2{font-size:clamp(30px,3.8vw,54px)}.apply .lead{font-size:15px;align-self:start;margin-top:0}.apply h3{grid-column:2;grid-row:1/3;margin:0;align-self:start;font-size:25px;line-height:1.5}.apply h3+p{grid-column:2;grid-row:2;font-size:13px;margin:28px 0 0;padding-top:15px}.steps{grid-column:2;grid-row:3/7;list-style:none;counter-reset:step;margin:12px 0 0;padding:0}.steps li{counter-increment:step;display:flex;gap:22px;padding:17px 0;border-bottom:1px solid #102d2540;font-size:14px}.steps li:before{content:counter(step,decimal-leading-zero);font-size:12px;opacity:.7;padding-top:3px}.linebox{grid-column:1;display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:20px}.apply .cta{background:var(--deep);color:var(--lime);min-width:290px}.apply .cta:hover{background:var(--pine)}.linebox small{font-size:11px;max-width:340px;line-height:1.7}.linebox+p{grid-column:1;font-size:12px;margin-top:22px}.foot{background:var(--deep);color:var(--paper);padding:35px 4vw;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:11px}.footer-logo{width:108px;max-height:90px;object-fit:contain;mix-blend-mode:screen}.footer-logo-link{display:flex}.foot a{text-underline-offset:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(min-width:1600px){.hero-wrap{padding-inline:64px}}
@media(max-width:800px){.nav{padding:14px 20px}.brand{font-size:16px}.brand small{font-size:7px}.langs button{padding:10px;font-size:11px}.hero-wrap{padding:18px 20px 40px}.hero-wrap>div:nth-child(2){display:flex;flex-direction:column;padding-top:30px}.eyebrow{width:100%;font-size:8vw;padding-bottom:22px}.tag{font-size:10px;margin-top:24px}.hero h1{font-size:clamp(26px,6vw,42px);margin:16px 0 25px}.recruit-photo{width:100%;min-height:340px;margin:0 0 25px}.recruit-photo-label{font-size:38px}.hero p{font-size:14px}.hero .cta{width:100%;margin-top:16px}.container{width:calc(100% - 40px)}.section{padding:54px 0}.section h2,.apply h2{font-size:clamp(26px,6vw,38px);margin:24px 0}.section:not(.alt) .lead{margin-left:0}.lead{font-size:14px}.grid,.detail{grid-template-columns:1fr;gap:32px;margin-top:32px}.panel h3{font-size:22px;margin-bottom:13px}.panel li{font-size:14px}.stripe{margin-top:30px;padding:24px;font-size:14px}.apply{padding:54px 0}.apply .container{display:block}.apply h3{font-size:24px;margin-top:38px}.apply h3+p{padding:0;margin:12px 0}.steps{margin-top:24px}.linebox{margin-top:30px}.apply .cta{width:100%;min-width:0}.linebox{align-items:stretch}.foot{padding:30px 20px;font-size:9px}.footer-logo{width:85px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* v14: selected v12 sections restored; v13 recruitment, 02 and 03 retained. */
.hero-wrap{max-width:none;padding:0 0 58px}
.hero-wrap>div:nth-child(2){width:calc(100% - 8vw);max-width:1472px;margin-inline:auto}
.hero .poster{width:100%;height:auto;display:block;border-radius:0;box-shadow:none}
.vision-original{background:#f1f7ef;padding:78px 0;color:#12231c}
.vision-original .container{width:auto;max-width:1100px;padding:0 24px}
.vision-original .kicker{display:inline-flex;align-items:center;gap:12px;color:#35765e;font-size:15px;font-weight:900;letter-spacing:.17em}
.vision-original h2{font-size:clamp(36px,4.8vw,60px);line-height:1.28;letter-spacing:-.045em;margin:8px 0 20px;font-weight:900}
.section.vision-original .lead{font-size:18px;line-height:1.85;max-width:860px;margin:18px 0}
.apply .container{display:block}
.apply h2{max-width:1000px;margin:22px 0}
.apply .lead{max-width:820px;margin:0 0 35px}
.application-guide{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;border-top:2px solid var(--deep);padding-top:30px}
.apply .application-guide h3{font-size:clamp(21px,2.1vw,28px);line-height:1.5;margin:0 0 12px;letter-spacing:-.03em}
.apply .application-guide h3+p{font-size:14px;margin:0;padding:0}
.application-guide .steps{margin:20px 0 0}
.application-guide .steps li{padding:15px 0;font-size:15px}
.application-send{border-left:1px solid #102d2540;padding-left:30px}
.application-send .linebox{margin-top:24px}
.application-send .cta{width:100%;min-width:0;font-size:18px;min-height:68px}
.application-send .linebox small{font-size:13px;max-width:none;line-height:1.8}
.application-send .linebox+p{font-size:13px;margin-top:25px}
@media(max-width:800px){
.hero-wrap{padding:0 0 40px}.hero-wrap>div:nth-child(2){width:calc(100% - 40px)}
.vision-original{padding:55px 0}.vision-original .container{padding:0 21px}.vision-original h2{font-size:clamp(30px,8vw,40px)}.section.vision-original .lead{font-size:16px}
.application-guide{grid-template-columns:1fr;gap:32px;padding-top:25px}.application-send{border-left:0;border-top:1px solid #102d2550;padding:26px 0 0}.apply .application-guide h3{font-size:22px}.application-guide .steps li{font-size:14px}.apply .lead{margin-bottom:28px}
}
.langs{flex-shrink:0}.langs button{white-space:nowrap}@media(max-width:380px){.nav{padding-inline:14px;gap:8px}.brand{font-size:14px}.brand small{font-size:6px}.langs button{padding:10px 8px}}

/* v15 — typographic rhythm and editorial finishing; retain v14 structure. */
:root{--rule:rgba(23,46,37,.28)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.nav{padding-block:18px}.brand{letter-spacing:-.055em}.brand small{margin-top:8px}
.langs{gap:4px}.langs button{transition:background .18s,color .18s}.langs button:not(.active):hover{background:#172e2510}
.hero-wrap>div:nth-child(2){padding-top:48px;column-gap:5.5%}
.eyebrow{letter-spacing:-.07em;border-bottom-color:#f2f0e74d;padding-bottom:28px}
.hero .tag{letter-spacing:.15em;margin-top:29px}.hero h1{line-height:1.4;margin-top:19px;margin-bottom:24px}
.hero p{line-height:2.05}.hero .cta{min-width:285px}
.recruit-photo{margin-top:29px}.recruit-photo-label{bottom:35px;left:28px;letter-spacing:-.055em}
.recruit-photo-label small{margin-bottom:14px;letter-spacing:.18em}
.recruit-photo-note{bottom:10px;right:14px}
.cta{border:1px solid transparent;padding:20px 26px}.cta:focus-visible{outline-offset:6px}
.section.alt .kicker,.section:not(.vision-original) .kicker,.apply .kicker{gap:18px;letter-spacing:.18em}
.section .section-number,.apply .section-number{font-variant-numeric:tabular-nums;font-size:15px}
.section.alt h2{max-width:1080px;margin-top:25px;margin-bottom:34px;line-height:1.4}
.grid{gap:6%;margin-top:38px}.alt .panel{padding-top:26px;border-top:2px solid #f2f0e7a6}
.alt .panel h3{font-size:25px;line-height:1.5;margin-bottom:21px}
.alt .panel li{padding-block:15px;line-height:1.9;border-bottom-color:#f2f0e733}
.stripe{padding:29px 34px;margin-top:38px;line-height:2.05;border-left:4px solid #f2f0e7}
.detail{margin-top:34px;gap:6%}.detail .panel{padding-top:27px;border-top:2px solid var(--rule)}
.detail strong{font-size:20px;line-height:1.65;margin-bottom:23px}.detail p{line-height:2}
.detail a{display:inline-block;text-decoration-thickness:1px;text-underline-offset:7px;padding-bottom:5px}
.apply h2{letter-spacing:-.05em;line-height:1.4}.apply .lead{line-height:2}
.application-guide{gap:6%;padding-top:32px}.application-guide .steps{margin-top:22px}
.application-guide .steps li{gap:24px;padding-block:16px;border-bottom-color:#102d2533}
.application-guide .steps li:before{font-variant-numeric:tabular-nums;opacity:.75}
.application-send{padding-left:34px;border-left-color:#102d2533}
.application-send .linebox{gap:16px}.application-send .cta{min-height:74px}
.application-send .linebox small{line-height:1.9;max-width:390px}
.foot{padding-block:38px}.foot>div{line-height:1.9}.foot a:hover{text-decoration:none}
@media(max-width:800px){
.nav{padding-block:14px}.hero-wrap>div:nth-child(2){padding-top:29px}.eyebrow{padding-bottom:23px}
.hero .tag{margin-top:23px;font-size:10px;letter-spacing:.11em}.hero h1{margin:17px 0 25px;line-height:1.45}
.hero .cta{min-width:0}.recruit-photo{margin:0 0 25px}.recruit-photo-label{left:21px;bottom:32px}
.recruit-photo-label small{margin-bottom:11px}.hero p{line-height:2}
.section.alt h2{margin-top:22px;margin-bottom:25px}.grid{gap:34px;margin-top:30px}
.alt .panel h3{font-size:22px;margin-bottom:16px}.alt .panel li{padding-block:13px}
.stripe{padding:23px 21px;margin-top:30px;font-weight:600}
.detail{margin-top:29px;gap:32px}.detail strong{font-size:19px;margin-bottom:18px}
.apply h2{line-height:1.45}.application-guide{gap:29px;padding-top:26px}
.application-guide .steps li{gap:19px;padding-block:15px}
.application-send{padding:27px 0 0;border-top-color:#102d2540}.application-send .cta{min-height:68px}
.foot{padding-block:29px}
}
@media(prefers-reduced-motion:reduce){.langs button{transition:none}}

/* v16 — application section based on supplied reference. */
.apply{background:#e2f0df;color:#16372d}
.apply .kicker{color:#35765e!important}
.apply h2{color:#14392f}
.apply .lead{color:#3e5f54;margin-bottom:42px}
.application-guide{display:block;border-top:1px solid #16483b35;padding-top:34px}
.apply .application-guide h3{font-size:clamp(28px,3vw,40px);line-height:1.4;margin:0 0 22px;color:#14392f}
.apply .application-guide h3+p{font-size:clamp(16px,1.6vw,20px);line-height:1.9;color:#3e5f54;margin:0 0 30px}
.application-guide .steps{display:flex;flex-direction:column;gap:14px;margin:0;padding:0}
.application-guide .steps li{background:#fff;border:1px solid #d4e3d1;display:flex;align-items:center;gap:24px;min-height:68px;padding:0 22px 0 0;font-size:clamp(16px,1.7vw,21px);line-height:1.7;color:#17342c}
.application-guide .steps li:before{background:#16483b;color:#fff;opacity:1;align-self:stretch;display:flex;align-items:center;justify-content:center;flex:0 0 64px;min-height:66px;font-size:20px;font-weight:800;padding:0;border-radius:3px;font-variant-numeric:tabular-nums}
.application-send{border:0;padding:0;margin-top:34px}
.application-send .linebox{display:flex;flex-direction:row;align-items:center;gap:24px;margin-top:0}
.application-send .cta{width:auto;flex:0 0 auto;min-width:290px;min-height:74px;background:#184f3f;color:#fff;font-size:20px;border-radius:3px}
.application-send .cta:hover{background:#103e30}
.application-send .linebox small{max-width:650px;font-size:14px;color:#3e5f54;line-height:1.9}
.application-send .linebox+p{font-size:14px;color:#3e5f54;margin-top:25px}
@media(max-width:800px){
.apply .lead{margin-bottom:30px}.application-guide{padding-top:27px}
.apply .application-guide h3{font-size:28px;margin-bottom:18px}
.apply .application-guide h3+p{font-size:16px;margin-bottom:24px}
.application-guide .steps{gap:12px}
.application-guide .steps li{gap:15px;min-height:66px;padding-right:15px;font-size:16px;line-height:1.75}
.application-guide .steps li:before{flex-basis:48px;min-height:64px;font-size:17px}
.application-send{padding:0;margin-top:27px;border:0}
.application-send .linebox{flex-direction:column;align-items:stretch;gap:14px}
.application-send .cta{width:100%;min-width:0;min-height:68px;font-size:19px}
.application-send .linebox small{font-size:12px}
}


/* =============================================================
   ここから下は、自分で調整するためのエリアです。
   同じ指定は、基本的に後ろに書いたものが優先されます。
   下の例はコメントの中にあるため、今は見た目に影響しません。
   使う例の前後にある「コメント開始・終了の記号」を削除してください。

   font-weight : 文字の太さ（400＝通常、700＝太字、900＝かなり太い）
                 ※フォントによっては太さの違いが出ないこともあります。
   margin-bottom : 要素の下の余白
   margin-top    : 要素の上の余白
   line-height   : 行間（単位なし。1.8なら文字サイズの1.8倍）
   px            : 大きさ・余白の単位
   ============================================================= */

/* 例1：募集紹介の大見出しを少し細くし、下に32pxの余白をつける
.hero h1 {
  font-weight: 700;
  margin-bottom: 32px;
}
*/

/* 例2：02の見出しの太さと下の余白
.section.alt h2 {
  font-weight: 700;
  margin-bottom: 40px;
}
*/

/* 例3：04の「応募方法」と説明文の間を調整
.apply .application-guide h3 {
  font-weight: 700;
  margin-bottom: 28px;
}
*/

/* 例4：04の説明文と白い項目リストの間を調整
.apply .application-guide h3 + p {
  margin-bottom: 36px;
}
*/

/* 例5：白い項目行の文字の太さ
.application-guide .steps li {
  font-weight: 700;
}
*/

/* 例6：スマートフォンだけ「応募方法」の下の余白を変える
@media (max-width: 800px) {
  .apply .application-guide h3 {
    margin-bottom: 20px;
  }
}
*/

/* Typography refinement — shared with the official brand site. */
:root{--font-body:"Noto Sans JP",sans-serif;--font-display:"Barlow Condensed",sans-serif}
body{font-family:var(--font-body);font-weight:500;line-height:1.57}
button{font-family:var(--font-body)}
.brand,.brand small,.eyebrow,.kicker,.section-number,.recruit-photo-label{font-family:var(--font-display)}
.brand{font-size:24px;letter-spacing:0}.brand small{letter-spacing:.12em}
.eyebrow{letter-spacing:-.025em}
.hero h1,.section h2,.section.vision-original h2,.apply h2{font-weight:700;line-height:1.28;letter-spacing:-.045em}
.section.vision-original h2{line-height:1.19}
.heading-phrase{display:inline-block;white-space:nowrap}
.hero h1 .heading-phrase:first-child{display:block}
.section.vision-original h2 .heading-phrase:last-child{display:block}
.apply h2 .heading-phrase{display:block}
html[lang="en"] h1,html[lang="en"] h2,html[lang="en"] h3,html[lang="en"] .cta{font-family:var(--font-display);letter-spacing:0}
.hero p,.lead,.section.vision-original .lead,.apply .lead,.detail p,.stripe,.alt .panel li,.apply .application-guide h3+p,.application-guide .steps li{font-weight:500}
.hero p{font-size:17px;line-height:1.7}
.lead{font-size:18px;line-height:1.77}
.section.vision-original .lead{font-size:20px;line-height:1.57}
.apply .lead,.detail p{font-size:17px;line-height:1.67}
.alt .panel li{font-size:17px;line-height:1.6}
.stripe{font-size:17px;line-height:1.7}
.apply .application-guide h3+p{font-size:clamp(18px,1.7vw,22px);line-height:1.6}
.application-guide .steps li{font-size:clamp(18px,1.8vw,23px);line-height:1.47;padding-block:10px}
.application-send .linebox small,.application-send .linebox+p{font-size:15px;line-height:1.6;font-weight:500}
.cta,.application-send .cta{font-weight:700;border-radius:8px}
.langs button{font-family:var(--font-body);font-weight:700;border-radius:6px}
.section .kicker,.section.vision-original .kicker,.apply .kicker{font-size:24px;font-weight:700;letter-spacing:.055em;align-items:center}
.section .section-number,.apply .section-number{font-family:var(--font-display);font-size:22px;font-weight:700}
.panel h3,.alt .panel h3,.detail strong,.apply .application-guide h3{font-weight:700;line-height:1.33}
.detail strong{line-height:1.43}
@media(max-width:800px){
  .brand{font-size:20px}.brand small{font-size:7px}
  .hero h1{font-size:clamp(24px,5.7vw,42px);line-height:1.3}
  .section h2,.section.vision-original h2,.apply h2{font-size:clamp(24px,6.2vw,38px);line-height:1.28}
  .section.vision-original h2{line-height:1.19}
  .section .kicker,.section.vision-original .kicker,.apply .kicker{font-size:22px}
  .hero p{font-size:16px;line-height:1.67}
  .lead,.section.vision-original .lead{font-size:18px;line-height:1.57}
  .apply .lead,.detail p,.alt .panel li,.stripe{font-size:16px}
  .apply .application-guide h3+p{font-size:18px}
  .application-guide .steps li{font-size:18px;line-height:1.5}
  .application-send .linebox small{font-size:14px}
}
@media(max-width:380px){.brand{font-size:17px}.brand small{font-size:6px}}
.section.alt h2{line-height:1.28}

/* Natural mobile wrapping; one intentional desktop break in Our Vision. */
.apply h2{max-width:none}
@media(max-width:800px){
  html[lang="ja"] .hero h1 .heading-phrase,
  html[lang="ja"] .section h2 .heading-phrase,
  html[lang="ja"] .apply h2 .heading-phrase{display:inline;white-space:normal}
  .desktop-break{display:none}
}

/* Keep prose measures compact and avoid very short final lines. */
.hero p,.section .lead,.section.vision-original .lead,.apply .lead{
  max-width:38em;
  text-wrap:balance;
}
.section:not(.alt) .lead{margin-left:0}
.detail p,.application-prepare p,.application-send p,.application-send small,.stripe{
  text-wrap:pretty;
}
@media(max-width:800px){
  .hero p,.section .lead,.section.vision-original .lead,.apply .lead{text-wrap:pretty}
}
@media(min-width:801px){
  .detail p,.application-prepare p,.application-send p,.application-send small,.stripe{text-wrap:balance}
}

/* Center button labels and add a subtle, tactile elevation. */
.cta,.application-send .cta{
  justify-content:center;
  text-align:center;
  box-shadow:0 3px 8px rgba(0,0,0,.14);
  transition:background .2s,transform .2s,box-shadow .2s;
}
.cta:hover{box-shadow:0 5px 12px rgba(0,0,0,.18)}
.cta:active{transform:translateY(1px);box-shadow:0 1px 3px rgba(0,0,0,.12)}
@media(prefers-reduced-motion:reduce){.cta{transition:none}}

/* Align Vision with section 02 and expand full-width section prose. */
.vision-original .container{width:calc(100% - 8vw);max-width:1240px;padding:0}
.section .lead,.section.vision-original .lead,.apply .lead{
  width:80vw;
  max-width:100%;
  text-wrap:wrap;
  margin-left:0;
}
@media(max-width:800px){
  .vision-original .container{width:calc(100% - 40px);padding:0}
}

/* Extra breathing room: +40px per edge on desktop, +20px on mobile. */
.hero{padding-block:40px}
.section{padding-block:126px}
.section.vision-original{padding-block:118px}
.apply{padding-block:120px}
@media(max-width:800px){
  .hero{padding-block:20px}
  .section{padding-block:74px}
  .section.vision-original{padding-block:75px}
  .apply{padding-block:74px}
}

/* Extra space between the opening poster and the English headline. */
.hero-wrap>div:nth-child(2){padding-top:72px}
@media(max-width:800px){.hero-wrap>div:nth-child(2){padding-top:45px}}

/* Match section 01's plain number and label spacing to sections 02–04. */
.section.vision-original .kicker{display:flex;gap:18px}
/* Align the recruitment introduction with the section containers. */
.hero-wrap>div:nth-child(2){max-width:1240px;column-gap:3.5%}
/* Mobile-only: fill the content width and make the school labels legible. */
@media(max-width:800px){
  .hero-wrap>div:nth-child(2){container-type:inline-size}
  .eyebrow{font-size:13.1cqw;font-weight:700;width:100%}
  .hero .tag{font-size:20px;line-height:1.4}
  .recruit-photo-label small{font-size:20px;line-height:1.2}
  .hero p,.section .lead,.section.vision-original .lead,.apply .lead{
    width:100%;max-width:100%;margin-left:0;margin-right:0;text-wrap:wrap;
  }
}

/* Match main body copy to Vision; justify paragraphs with a left-aligned last line. */
.hero p,.section .lead,.section.vision-original .lead,.apply .lead,
.detail p,.alt .panel li,.stripe,.apply .application-guide h3+p,
.application-guide .steps li,.application-send .linebox+p{
  font-size:20px;
  font-weight:500;
}
.hero p,.section p,.apply p,.stripe{
  text-align:justify;
  text-align-last:left;
  text-justify:inter-character;
  text-wrap:wrap;
}
html[lang="en"] .hero p,html[lang="en"] .section p,
html[lang="en"] .apply p,html[lang="en"] .stripe{text-justify:inter-word}
@media(max-width:800px){
  .hero p,.section .lead,.section.vision-original .lead,.apply .lead,
  .detail p,.alt .panel li,.stripe,.apply .application-guide h3+p,
  .application-guide .steps li,.application-send .linebox+p{font-size:18px}
}

/* Mobile reading rhythm: tighter body leading and headings +3pt (4px). */
@media(max-width:800px){
  .hero p,.section p,.section .lead,.section.vision-original .lead,.apply .lead,
  .detail p,.alt .panel li,.stripe,.apply .application-guide h3+p,
  .application-guide .steps li,.application-send .linebox+p{
    line-height:1.4;
  }
  .hero h1{font-size:clamp(28px,calc(5.7vw + 4px),46px)}
  .section h2,.section.vision-original h2,.apply h2{
    font-size:clamp(28px,calc(6.2vw + 4px),42px);
  }
  .section .kicker,.section.vision-original .kicker,.apply .kicker{font-size:26px}
  .panel h3,.alt .panel h3{font-size:26px}
  .detail strong{font-size:23px}
  .apply .application-guide h3{font-size:32px}
}

/* Mobile: single-line school label and Japanese lists; more space below Vision heading. */
@media(max-width:800px){
  .hero .tag{font-size:min(20px,4.8cqw);letter-spacing:.03em;white-space:nowrap}
  .section.vision-original h2{margin-bottom:60px}
  .section.alt .panel{container-type:inline-size}
  .alt .panel li{font-size:14px}
  html[lang="ja"] .alt .panel li{
    font-size:min(16px,calc((100cqw - 20px) / 23));
    white-space:nowrap;
  }
}

/* White backgrounds for sections 01 and 04. */
.section.vision-original,.apply{background:#fff}

/* Place the supplied official logo unchanged above the retouched banner. */
.poster-official-logo{position:absolute;top:3%;right:1.8%;width:15.5%;height:auto;display:block;pointer-events:none}
