/* ============================================================
   lc-home.css — Landing 専用エレベーションレイヤー（v2）
   既存 lc-styles.css / インライン<style> の後に読み込み、上書き。
   ねらい：明朝の大判化・白×濃紺の緩急・シネマティックHero・
   スクロール演出・自然な日本語改行（word-break:auto-phrase）。
   ============================================================ */
:root{
  --ease-out:cubic-bezier(.16,.84,.34,1);
  --ease:cubic-bezier(.4,.14,.2,1);
  --gold-on-dark:#D8B45A;     /* 濃紺面で可読性を確保する明るめゴールド */
  --reveal-y:28px;
}

/* ---- 自然な日本語改行（文節折り）＋禁則。行末1文字の孤立を抑制 ---- */
.lc-sectitle__ja,.lc-hero__copy,.lc-hero__sub,.lc-vlede__creed,.lc-vlede__body,
.lc-why2__ttl,.lc-why2__lead,.lc-lead,.lc-gate__desc,.lc-biz3card__text,
.lc-impact__lead,.lc-contact__copy,.lc-recruit2card__text,.lc-trust__label{
  word-break:auto-phrase;line-break:strict;}
.lc-hero__copy,.lc-vlede__creed,.lc-why2__ttl,.lc-sectitle__ja{text-wrap:balance}
.lc-hero__sub,.lc-lead,.lc-vlede__body,.lc-impact__lead,.lc-contact__copy,
.lc-biz3card__text,.lc-why2__lead,.lc-recruit2card__text,.lc-gate__desc{text-wrap:pretty}

/* ---- セクションの呼吸（Home のみ余白を拡張） ---- */
.lc-section{padding:clamp(88px,11.5vh,156px) 0}
.lc-sectitle__en{font-size:clamp(30px,6vw,78px);opacity:.10;letter-spacing:.05em}
.lc-sectitle__ja{font-size:clamp(24px,2.9vw,35px);letter-spacing:.08em;line-height:1.5}
.lc-lead{font-size:clamp(15px,1.2vw,17.5px);line-height:2.05;color:var(--lc-text-sub)}

/* ============ HERO：シネマティック ============ */
.lc-hero{height:min(94vh,940px);min-height:600px}
/* 全スライド共通：英字ラベル下の金罫線（タイポ統一） */
.lc-hero__eyebrow::after{content:"";display:block;width:56px;height:2px;background:var(--lc-gold);margin-top:16px}
/* 見出し・本文のサイズを全スライドで統一。書体はヒーローのみ Shippori Mincho B1（2026-07-05 最終確定） */
.lc-hero__copy{font-family:"Shippori Mincho B1","Zen Old Mincho",serif;font-weight:700;
  font-size:clamp(26px,3.4vw,44px)!important;line-height:1.52;letter-spacing:.045em}
.lc-hero__label{display:block;margin-top:20px}
.lc-hero__sub{margin-top:22px}
.lc-hero__bg img{will-change:transform}
.lc-hero__eyebrow{font-size:13px;letter-spacing:.36em;margin-bottom:26px;font-weight:600}
.lc-hero__copy{max-width:18em;font-size:clamp(28px,3.6vw,48px);line-height:1.36;
  letter-spacing:.012em;font-weight:700}
.lc-hero__label{font-size:clamp(14px,1.5vw,17px);letter-spacing:.16em}
.lc-hero__sub{max-width:33em;font-size:clamp(15px,1.15vw,17px);line-height:2.0;margin-top:28px}
.lc-hero__btns{margin-top:40px}

/* Ken Burns（アクティブスライドのみ・低負荷） */
@media (prefers-reduced-motion: no-preference){
  /* ヒーロー写真のズーム（Ken Burns）は無効化：写真は静止表示 */
  /* 内容のステガード登場（is-active 付与でトリガ） */
  .lc-hero__inner>*{opacity:0}
  .lc-hero__slide.is-active .lc-hero__inner>*{animation:lcHeroIn .95s var(--ease-out) both}
  .lc-hero__slide.is-active .lc-hero__eyebrow{animation-delay:.12s}
  .lc-hero__slide.is-active .lc-hero__copy{animation-delay:.26s}
  .lc-hero__slide.is-active .lc-hero__label{animation-delay:.40s}
  .lc-hero__slide.is-active .lc-hero__sub{animation-delay:.50s}
  .lc-hero__slide.is-active .lc-hero__btns{animation-delay:.62s}
}
@keyframes lcKenburns{from{transform:scale(1.03)}to{transform:scale(1.12)}}
@keyframes lcHeroIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* スクロールキュー */
.lc-hero__cue{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);z-index:6;
  width:26px;height:42px;border:1.5px solid rgba(255,255,255,.55);border-radius:14px;
  display:flex;justify-content:center;padding-top:8px;transition:border-color .2s}
.lc-hero__cue:hover{border-color:#fff}
.lc-hero__cue span{width:3px;height:8px;border-radius:2px;background:#fff}
@media (prefers-reduced-motion: no-preference){
  .lc-hero__cue span{animation:lcCue 1.7s var(--ease) infinite}
}
@keyframes lcCue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}70%{opacity:1;transform:translateY(11px)}100%{opacity:0;transform:translateY(11px)}}
@media (max-width:768px){
  .lc-hero__cue{display:flex;bottom:20px;width:34px;height:34px}
}
@media (max-width:768px){
  /* 高さは中身（スライド）に追従させ、下に操作帯ぶんの余白だけ確保
     ※ height:auto はこの上（基礎）の height:min(94vh,940px) の打ち消し。削除禁止 */
  .lc-hero{height:auto;min-height:0;padding-bottom:0}
  /* 内容を下寄せし、操作列（矢印＋ダッシュ）をボタン直下・写真内にオーバーレイ */
  .lc-hero__slide{align-items:flex-end}
  .lc-hero__inner{padding-bottom:92px}
  .lc-hero__eyebrow{letter-spacing:.2em;margin-bottom:16px}
  .lc-hero__eyebrow::after{margin-top:12px;width:44px}
  .lc-hero__label{font-size:13.5px;letter-spacing:.1em;margin-top:14px}
  .lc-hero__sub{font-size:14px;line-height:1.9;margin-top:16px;max-width:100%}
  .lc-hero__btns{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}
}
@media (max-width:560px){
  .lc-hero__copy .lc-br-ja{display:inline}
  .lc-hero__copy{font-size:26px!important;line-height:1.55}
  .lc-hero__sub{font-size:13.5px;line-height:1.85}
  .lc-hero__btns{flex-direction:column;align-items:stretch}
  .lc-hero__btns .lc-btn{text-align:center;justify-content:center}
}

/* ============ スクロール・リビール基盤 ============ */
@media (prefers-reduced-motion: no-preference){
  html.js-reveal [data-reveal]{opacity:0;transform:translateY(var(--reveal-y));
    transition:opacity .85s var(--ease-out),transform .85s var(--ease-out);will-change:opacity,transform}
  html.js-reveal [data-reveal].is-in{opacity:1;transform:none}
}

/* ============ ボタンの質感（Home） ============ */
.lc-btn{transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),
  background .25s,color .25s,border-color .25s}
.lc-btn--cta:hover,.lc-btn--primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(3,60,105,.18)}
.lc-link{transition:color .2s}

/* ============ GATEWAY（対象別カード） ============ */
.lc-gate{transition:transform .38s var(--ease-out),box-shadow .38s var(--ease-out),border-color .38s}
.lc-gate:hover{transform:translateY(-4px);box-shadow:0 22px 44px rgba(2,28,55,.18)}
.lc-gate__arrow{transition:transform .3s var(--ease-out)}
.lc-gate:hover .lc-gate__arrow{transform:translateX(7px)}

/* ============ VISION：白→濃紺フルブリードの“顔” ============ */
#vision{background:var(--lc-navy);position:relative;overflow:hidden;isolation:isolate}
#vision::before{content:"MISSION";position:absolute;top:-.16em;left:50%;transform:translateX(-50%);
  font-family:var(--font-en);font-weight:700;font-size:clamp(110px,22vw,300px);line-height:1;
  color:#fff;opacity:.045;pointer-events:none;white-space:nowrap;z-index:-1;letter-spacing:.04em}
@media (max-width:600px){
  #vision::before{font-size:clamp(46px,17vw,72px);top:.08em}
}
#vision .lc-eyebrow{color:var(--gold-on-dark)}
#vision .lc-vlede__creed{color:#fff;font-size:clamp(25px,3.3vw,42px)}
#vision .lc-vlede__creed em{color:var(--gold-on-dark)}
#vision .lc-vlede__body{color:rgba(255,255,255,.85)}
#vision .lc-btn--primary{background:var(--gold-on-dark);border-color:var(--gold-on-dark);color:#16243a}
#vision .lc-btn--primary:hover{filter:brightness(1.07);transform:translateY(-2px)}
#vision .lc-btn--secondary{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff}
#vision .lc-btn--secondary:hover{background:rgba(255,255,255,.10);border-color:#fff}

/* ============ EDUCATION INFRASTRUCTURE：流れの演出 ============ */
.lc-infra__col{transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out)}
.lc-infra__col--hub{transform:translateY(-8px)}
@media (max-width:900px){.lc-infra__col--hub{transform:none}}
.lc-infra__arrow{position:relative}
@media (prefers-reduced-motion: no-preference){
  .lc-infra__arrow::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;
    margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--lc-gold);
    box-shadow:0 0 10px rgba(168,128,0,.7);animation:lcFlow 2.4s var(--ease) infinite}
}
@keyframes lcFlow{0%{opacity:0;transform:translateX(-16px) scale(.6)}
  40%{opacity:1;transform:translateX(0) scale(1)}
  100%{opacity:0;transform:translateX(16px) scale(.6)}}

/* ============ WHY（強み） ============ */
.lc-why2{gap:64px}
.lc-why2__media{box-shadow:var(--shadow-card)}
.lc-why2__media img{transition:transform 1.1s var(--ease-out)}
.lc-why2:hover .lc-why2__media img{transform:scale(1.04)}
.lc-why2__ttl{font-size:clamp(27px,3.3vw,40px);line-height:1.42}
.lc-why2__no{font-size:22px}

/* ============ TRUST（数字：罫＋大型タイポ＋カウントアップ） ============ */
.lc-trust{gap:0;margin-top:56px;border-top:1px solid var(--lc-line);border-bottom:1px solid var(--lc-line)}
.lc-trust__item{padding:46px 18px;position:relative}
.lc-trust__item + .lc-trust__item::before{content:"";position:absolute;left:0;top:30px;bottom:30px;width:1px;background:var(--lc-line)}
.lc-trust__num{font-size:clamp(46px,5.8vw,80px);letter-spacing:.01em}
.lc-trust__label{margin-top:18px;font-size:13.5px}
@media (max-width:900px){
  .lc-trust__item:nth-child(odd)::before{display:none}
}

/* ============ IMPACT（社会的意義） ============ */
.lc-impactcard{transition:transform .35s var(--ease-out),background .35s}
.lc-impactcard:hover{transform:translateY(-5px)}

/* ============ RECRUIT / NEWS：カードの質感 ============ */
.lc-recruit2card{transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.lc-recruit2card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-hover)}
.lc-newscard{transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.lc-newscard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card-hover)}
/* News サムネ＝意図したデザイン面に（“写真欠け”に見せない） */
.lc-newscard__thumb{background:linear-gradient(135deg,#0a3a63 0%,var(--lc-navy-deep) 100%);overflow:hidden;position:relative}
.lc-newscard__thumb::after{content:"LEAD CAMPUS";position:absolute;left:18px;bottom:14px;
  font-family:var(--font-en);font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.34)}
.lc-newscard__thumb .lc-ph{border:0;background:none;color:rgba(255,255,255,.0)}

/* ============ CONTACT ============ */
.lc-contact__btns .lc-btn{transition:transform .25s var(--ease-out),box-shadow .25s,background .25s,color .25s,border-color .25s}

/* ============ reduced-motion：全停止＆全可視 ============ */
@media (prefers-reduced-motion: reduce){
  .lc-hero__slide.is-active .lc-hero__bg img,
  .lc-hero__cue span,.lc-infra__arrow::after{animation:none!important}
  .lc-hero__inner>*{opacity:1!important}
  html.js-reveal [data-reveal]{opacity:1!important;transform:none!important}
}
@media (max-width:768px){
  .lc-hero,.lc-hero__slides,.lc-hero__slide{min-height:685px}
  .lc-hero__bg img{object-position:center 8%}
  .lc-hero__bg::after{background:linear-gradient(180deg,rgba(2,28,53,.02) 0%,rgba(3,60,105,.1) 34%,rgba(2,28,53,.95) 68%,rgba(2,28,53,.99) 100%)}
  .lc-hero__inner{padding-top:255px;padding-bottom:96px}
  html:not([lang="en"]) .lc-hero__sub{font-size:clamp(10.5px,3.05vw,12.5px);white-space:nowrap}
  html:not([lang="en"]) .lc-vlede__creed.lc-mob-only{white-space:nowrap}
  html:not([lang="en"]) .lc-hero__sub .lc-en-only{display:none!important}
  html[lang="en"] .lc-hero__sub .lc-ja-only{display:none!important}
  .lc-hero__eyebrow,.lc-hero__copy,.lc-hero__label,.lc-hero__sub{text-shadow:0 2px 8px rgba(0,0,0,.85)}
  .lc-hero__eyebrow{color:#d8b54f;font-weight:800;text-shadow:0 2px 4px rgba(2,43,77,.9),0 0 10px rgba(2,43,77,.62),0 0 18px rgba(2,43,77,.38);letter-spacing:.36em;border:0;padding:0;background:none}
  .lc-hero__eyebrow::after{display:none}
  .lc-hero__copy{font-size:clamp(28px,8.5vw,40px);line-height:1.38}
  html:not([lang="en"]) .lc-hero__slide:nth-child(2) .lc-hero__copy{
    font-size:clamp(22px,6.3vw,26px)!important;
    white-space:nowrap;
  }
  .lc-hero__sub{font-size:13px;line-height:1.8;max-width:34em}
  .lc-hero__slide:nth-child(3) .lc-hero__sub{max-width:none;width:100%}
  .lc-nowrap{white-space:nowrap}
  .lc-num__val{font-size:30px}
  .lc-num__cap{white-space:pre-line}
  .lc-sectitle--center{text-align:left}
  #voices .lc-sectitle{text-align:left}
  #voices .lc-sectitle__ja{justify-content:flex-start}
  #voices .lc-voices__lead{text-align:left}
}
