/* =========================================================
   excellence_2027  2027年度 ソムリエ・エクセレンス／ワインエキスパート・エクセレンス
   〈第一日程〉筆記試験対策講座  メインLP
   ========================================================= */
.ex27{
  --bg0:#070b14;
  --bg1:#0a1020;
  --bg2:#0f182c;
  --card:#131d33;
  --card2:#18233c;
  --gold:#c9a45c;
  --gold-l:#e8cf98;
  --gold-p:#f0d7a4;
  --gold-d:#a8833f;
  --line:rgba(201,164,92,.32);
  --line-s:rgba(201,164,92,.16);
  --ivory:#f4efe4;
  --text:#e3ddd0;
  --muted:#a39e92;
  --wine:#8c2433;
  --serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic",Meiryo,sans-serif;
  --en:"Cormorant Garamond","Times New Roman",serif;
  --gold-grad:linear-gradient(135deg,#f3e3b8 0%,#d7b46d 38%,#f0d7a4 62%,#b98f45 100%);
  position:relative;
  background:var(--bg1);
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  line-height:2;
  letter-spacing:.05em;
  font-feature-settings:"palt" 0;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  line-break:strict;
  font-variant-numeric:lining-nums;
  overflow-wrap:anywhere;
  overflow:clip;
}
/* reset（:where で詳細度0 → 各コンポーネント指定が常に優先） */
.ex27 :where(*,*::before,*::after){box-sizing:border-box}
.ex27 :where(img){max-width:100%;height:auto;vertical-align:bottom;border:0}
.ex27 :where(h1,h2,h3,h4,p,ul,ol,li,dl,dt,dd,figure){margin:0;padding:0}
.ex27 :where(ul,ol){list-style:none}
.ex27 :where(a){color:inherit;text-decoration:none}
.ex27 :where(small){font-size:inherit}

/* ---------- utilities ---------- */
.ex27-in{width:100%;max-width:1120px;margin:0 auto;padding:0 40px}
.ex27 :where(p,li,dd){text-wrap:pretty}
.ex27-in--narrow{max-width:900px}
.ex27-ib{display:inline-block}
.ex27-gold{display:inline-block;color:var(--gold-p);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ex27-sp{display:none}
.ex27-pc{display:inline}
.ex27-sec{position:relative;padding:128px 0}
.ex27-sec--b1{background:var(--bg1)}
.ex27-sec--b2{background:var(--bg2)}
.ex27-sec--b0{background:var(--bg0)}
.ex27-sec--line::before{content:"";position:absolute;left:50%;top:0;width:1px;height:72px;background:linear-gradient(var(--gold),transparent);transform:translateX(-50%)}

/* ---------- section heading ---------- */
.ex27-hd{text-align:center;margin-bottom:64px}
.ex27-hd__en{display:inline-flex;align-items:center;gap:18px;font-family:var(--en);font-size:17px;font-weight:500;font-style:italic;letter-spacing:.28em;color:var(--gold);line-height:1;margin-bottom:22px}
.ex27-hd__en::before,.ex27-hd__en::after{content:"";width:36px;height:1px;background:var(--gold);opacity:.7}
.ex27-hd__ttl{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.65;letter-spacing:.1em;color:var(--ivory);text-wrap:balance}
.ex27-hd__sub{margin-top:20px;font-family:var(--serif);font-size:17px;color:var(--gold-l);letter-spacing:.12em}
.ex27-hd--left{text-align:left}
.ex27-hd--left .ex27-hd__en::before,.ex27-msg .ex27-hd__en::before{display:none}

/* ---------- buttons ---------- */
.ex27-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:340px;padding:21px 56px 21px 48px;font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.5;letter-spacing:.14em;color:#1b1307;background:var(--gold-grad);background-size:160% 100%;background-position:0 0;border:0;border-radius:2px;box-shadow:0 10px 30px -12px rgba(201,164,92,.55);transition:background-position .5s ease,box-shadow .3s ease,transform .3s ease;cursor:pointer;text-align:center}
.ex27-btn::after{content:"";position:absolute;right:24px;top:50%;width:18px;height:1px;background:currentColor;transition:transform .3s ease}
.ex27-btn::before{content:"";position:absolute;right:24px;top:50%;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translate(0,-50%) rotate(45deg);transform-origin:center;margin-top:0;transition:transform .3s ease}
.ex27-btn:hover{background-position:100% 0;box-shadow:0 14px 36px -12px rgba(201,164,92,.75)}
.ex27-btn:hover::after{transform:translateX(5px)}
.ex27-btn:hover::before{transform:translate(5px,-50%) rotate(45deg)}
.ex27-btn:focus-visible{outline:2px solid var(--gold-l);outline-offset:4px}
.ex27-btn--line{color:var(--gold-l);background:transparent;border:1px solid var(--gold);box-shadow:none}
.ex27-btn--line:hover{background:rgba(201,164,92,.12);box-shadow:none}
.ex27-btn__s{display:block;font-size:13px;letter-spacing:.12em;font-weight:500;opacity:.85}
.ex27-btn-wrap{margin-top:48px;text-align:center}

/* ---------- header ---------- */
.ex27 [id]{scroll-margin-top:88px}
.ex27-hdr{position:sticky;top:0;z-index:950;background:rgba(7,11,20,.94);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:box-shadow .3s ease}
.ex27-hdr.is-scrolled{box-shadow:0 8px 24px -12px rgba(0,0,0,.7)}
.ex27-hdr__in{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1280px;height:72px;margin:0 auto;padding:0 32px}
.ex27-hdr__logo{display:flex;align-items:center;gap:12px;flex:none;color:var(--ivory)}
.ex27-hdr__img{display:block;flex:none;width:40px;height:40px}
.ex27-hdr__name{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.14em;line-height:1.3;white-space:nowrap}
.ex27-hdr__nav{display:flex;align-items:center;gap:28px}
.ex27-hdr__menu{display:flex;align-items:center;gap:26px}
.ex27-hdr__menu a{position:relative;display:block;padding:6px 0;font-family:var(--serif);font-size:14px;letter-spacing:.12em;line-height:1.4;color:var(--text);white-space:nowrap;transition:color .25s ease}
.ex27-hdr__menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.ex27-hdr__menu a:hover{color:var(--gold-l)}
.ex27-hdr__menu a:hover::after{transform:scaleX(1)}
.ex27-hdr__cta{display:flex;gap:10px}
.ex27-hdr__btn{display:inline-flex;align-items:center;justify-content:center;min-width:120px;height:42px;padding:0 18px;font-family:var(--serif);font-size:14px;font-weight:600;letter-spacing:.1em;white-space:nowrap;color:#1b1307;background:var(--gold-grad);background-size:160% 100%;transition:background-position .4s ease,background-color .25s ease}
.ex27-hdr__btn:hover{background-position:100% 0}
.ex27-hdr__btn--line{color:var(--gold-l);background:transparent;border:1px solid var(--gold)}
.ex27-hdr__btn--line:hover{background:rgba(201,164,92,.14)}
.ex27-hdr a:focus-visible,.ex27-hdr__tgl:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px}
.ex27-hdr__tgl{display:none;position:relative;width:44px;height:44px;margin-right:-8px;padding:0;background:none;border:0;cursor:pointer;color:var(--gold-l)}
.ex27-hdr__tgl span{position:absolute;left:11px;width:22px;height:1.5px;background:currentColor;transition:transform .3s ease,opacity .3s ease}
.ex27-hdr__tgl span:nth-child(1){top:15px}
.ex27-hdr__tgl span:nth-child(2){top:21px}
.ex27-hdr__tgl span:nth-child(3){top:27px}
.ex27-hdr.is-open .ex27-hdr__tgl span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.ex27-hdr.is-open .ex27-hdr__tgl span:nth-child(2){opacity:0}
.ex27-hdr.is-open .ex27-hdr__tgl span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ---------- 01 intro ---------- */
.ex27-intro{padding-top:120px}
.ex27-texsec{isolation:isolate;background-color:#0d152a}
/* 紺の背景色は残し 乗算でテクスチャをうっすら重ねる
   （乗算で暗くなる分 下地の紺をわずかに明るくして 仕上がりの平均色を元の#0a1020に合わせている） */
.ex27-tex{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;filter:grayscale(1) brightness(7);opacity:.85;pointer-events:none}
.ex27-texsec>.ex27-in{position:relative;z-index:1}
.ex27-intro__fig{position:relative;margin:0 auto 72px;max-width:1040px}
.ex27-intro__fig::before{content:"";position:absolute;inset:-14px;border:1px solid var(--line);pointer-events:none}
.ex27-intro__fig img{display:block;width:100%;aspect-ratio:1400/467;object-fit:cover}
.ex27-intro__txt{text-align:center;font-family:var(--serif);font-size:17px;line-height:2.3;letter-spacing:.08em;color:var(--text)}
.ex27-intro__txt p+p{margin-top:1.4em}
.ex27-intro__txt strong{font-weight:600;color:var(--gold-l)}
.ex27-intro__key{position:relative;margin:56px auto;max-width:760px;padding:34px 24px;text-align:center;font-family:var(--serif);font-size:24px;line-height:1.85;letter-spacing:.1em;color:var(--ivory)}
.ex27-intro__key::before,.ex27-intro__key::after{content:"";position:absolute;left:50%;width:160px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:translateX(-50%)}
.ex27-intro__key::before{top:0}
.ex27-intro__key::after{bottom:0}
.ex27-intro__key small{display:block;font-size:15px;color:var(--gold);letter-spacing:.2em;margin-bottom:6px}
.ex27-intro__goal{position:relative;max-width:860px;margin:0 auto;padding:46px 40px 50px;text-align:center;font-family:var(--serif);border:1px solid var(--line);background:radial-gradient(ellipse at 50% 0%,rgba(201,164,92,.16),transparent 70%),linear-gradient(180deg,rgba(19,29,51,.92),rgba(12,19,37,.92));box-shadow:0 0 50px rgba(201,164,92,.10) inset,0 18px 40px rgba(0,0,0,.35)}
.ex27-intro__goal::before{content:"";position:absolute;inset:-1px;pointer-events:none;background:linear-gradient(var(--gold),var(--gold)) 0 0/26px 2px,linear-gradient(var(--gold),var(--gold)) 0 0/2px 26px,linear-gradient(var(--gold),var(--gold)) 100% 0/26px 2px,linear-gradient(var(--gold),var(--gold)) 100% 0/2px 26px,linear-gradient(var(--gold),var(--gold)) 0 100%/26px 2px,linear-gradient(var(--gold),var(--gold)) 0 100%/2px 26px,linear-gradient(var(--gold),var(--gold)) 100% 100%/26px 2px,linear-gradient(var(--gold),var(--gold)) 100% 100%/2px 26px;background-repeat:no-repeat}
.ex27-intro__goal-sub{font-size:19px;line-height:1.9;letter-spacing:.08em;color:var(--ivory)}
.ex27-intro__goal-sub b{font-weight:600;color:var(--gold-l);font-size:1.12em}
.ex27-intro__goal-main{margin-top:14px;font-size:27px;font-weight:600;line-height:1.7;letter-spacing:.1em}

/* ---------- 02 instructor achievements ---------- */
.ex27-lec{overflow:hidden}
.ex27-lec::after{content:"";position:absolute;right:-10%;top:-20%;width:60%;height:90%;background:radial-gradient(closest-side,rgba(201,164,92,.10),transparent);pointer-events:none}
.ex27-lec__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:72px;align-items:center}
.ex27-lec__photo{position:relative;padding:40px 0 0}
.ex27-lec__photo::before{content:"";position:absolute;left:6%;right:6%;top:0;bottom:0;background:radial-gradient(70% 60% at 50% 45%,rgba(214,176,104,.30),rgba(214,176,104,0) 70%),linear-gradient(180deg,#1b2640,#0f182c);border:1px solid var(--line-s)}
.ex27-lec__photo .ex27-lec__man{position:relative;display:block;width:94%;margin:0 auto}
.ex27-lec__badge{position:absolute;right:-6%;bottom:-8%;width:42%;filter:drop-shadow(0 12px 24px rgba(0,0,0,.5))}
.ex27-lec__body p{font-size:16px;line-height:2.1}
.ex27-lec__body p+p{margin-top:1.2em}
.ex27-lec__lead{font-family:var(--serif);font-size:18px!important;color:var(--ivory)}
.ex27-path{display:grid;grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);align-items:stretch;margin-top:40px}
.ex27-path__card{position:relative;margin:0;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);box-shadow:0 14px 30px rgba(0,0,0,.3)}
.ex27-path__card--main{border-color:var(--gold);background:linear-gradient(180deg,#1a2540,#131d33);box-shadow:0 0 0 1px rgba(201,164,92,.35),0 0 36px rgba(201,164,92,.22),0 18px 40px rgba(0,0,0,.4)}
.ex27-path__tag{position:absolute;z-index:2;left:-1px;top:-1px;padding:5px 14px 5px 12px;font-family:var(--serif);font-size:14px;font-weight:600;line-height:1.5;letter-spacing:.14em;color:var(--gold-l);background:rgba(10,16,32,.88);border:1px solid var(--gold)}
.ex27-path__card--main .ex27-path__tag{color:#1a1408;background:var(--gold-grad);border-color:transparent}
.ex27-path__img{position:relative;overflow:hidden;aspect-ratio:4/3}
.ex27-path__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.ex27-path__img--b img{object-position:50% 28%}
.ex27-path__img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(180deg,transparent,rgba(19,29,51,.6))}
.ex27-path__cap{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 12px 20px;text-align:center;font-family:var(--serif)}
.ex27-path__no{font-family:var(--en);font-style:italic;font-size:15px;font-weight:600;letter-spacing:.22em;line-height:1.4;color:var(--gold)}
.ex27-path__lead{display:block;margin-top:6px;font-size:14px;line-height:1.7;letter-spacing:.06em;color:var(--text)}
.ex27-path__name{display:block;margin-top:2px;font-size:20px;font-weight:600;line-height:1.5;letter-spacing:.08em;color:var(--ivory)}
.ex27-path__card--main .ex27-path__name{color:var(--gold-p);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ex27-path__cnt{display:inline-block;margin-top:auto;padding-top:12px;font-size:13px;letter-spacing:.14em;color:var(--gold-l)}
.ex27-path__cnt::before,.ex27-path__cnt::after{content:"";display:inline-block;width:18px;height:1px;margin:0 10px;vertical-align:middle;background:var(--line)}
.ex27-path__arrow{position:relative;align-self:center;justify-self:center;display:flex;align-items:center;gap:2px}
.ex27-path__arrow i{display:block;width:16px;height:34px;background:var(--gold-grad);clip-path:polygon(0 0,45% 0,100% 50%,45% 100%,0 100%,55% 50%)}
.ex27-path__arrow i:first-child{opacity:.4}
.ex27-lec__body .ex27-path__after{margin-top:28px}
@media (max-width:1023px){
  .ex27-path{grid-template-columns:1fr;grid-template-rows:auto 46px auto;margin-top:32px}
  .ex27-path__card{display:grid;grid-template-columns:42% 1fr;align-items:center}
  .ex27-path__img{aspect-ratio:auto;height:100%;min-height:120px}
  .ex27-path__img::after{display:none}
  .ex27-path__cap{align-items:flex-start;text-align:left;padding:14px 12px 14px 16px}
  .ex27-path__cnt{margin-top:6px;padding-top:0}
  .ex27-path__cnt{padding:1px 10px;border:1px solid var(--line)}
  .ex27-path__cnt::before,.ex27-path__cnt::after{display:none}
  .ex27-path__arrow{flex-direction:column;gap:0}
  .ex27-path__arrow i{width:30px;height:14px;clip-path:polygon(0 0,50% 55%,100% 0,100% 45%,50% 100%,0 45%)}
}
.ex27-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:40px 0}
.ex27-stat{position:relative;padding:26px 24px 22px;text-align:center;background:linear-gradient(180deg,rgba(201,164,92,.10),rgba(201,164,92,.02));border:1px solid var(--line)}
.ex27-stat::before{content:"";position:absolute;left:50%;top:-1px;width:48px;height:2px;background:var(--gold);transform:translateX(-50%)}
.ex27-stat__y{font-size:13px;letter-spacing:.12em;color:var(--gold-l);line-height:1.6}
.ex27-stat__n{margin:6px 0 4px;font-family:var(--serif);line-height:1.2;color:var(--ivory);font-size:15px}
.ex27-stat__n b{font-family:var(--en);font-weight:600;font-size:64px;letter-spacing:.02em;margin:0 4px}
.ex27-stat__n em{font-style:normal;font-size:22px}
.ex27-stat__c{font-size:13px;color:var(--muted);line-height:1.7}

/* ---------- 03 seminar cta ---------- */
.ex27-sem{position:relative;padding:120px 0;overflow:hidden;background:var(--bg0)}
.ex27-sem__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
.ex27-sem::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,11,20,.22),rgba(7,11,20,0) 50%,rgba(7,11,20,.25))}
.ex27-sem .ex27-in{position:relative;z-index:2}
.ex27-sem__box{max-width:880px;margin:0 auto;padding:64px 56px;text-align:center;background:rgba(10,16,32,.42);border:1px solid var(--line);outline:1px solid var(--line-s);outline-offset:8px;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);text-shadow:0 1px 10px rgba(5,8,16,.9)}
.ex27-sem__en{font-family:var(--en);font-style:italic;font-weight:600;font-size:18px;letter-spacing:.3em;color:var(--gold-p);line-height:1;margin-bottom:22px}
.ex27-sem__ttl{font-family:var(--serif);font-weight:600;font-size:32px;line-height:1.6;letter-spacing:.1em;color:var(--ivory)}
.ex27-sem__lead{margin-top:18px;font-family:var(--serif);font-size:17px;color:var(--gold-l);letter-spacing:.1em}
.ex27-sem__info{display:inline-grid;grid-template-columns:auto auto;gap:6px 22px;margin:36px auto 0;padding:22px 36px;text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:16px;line-height:1.7}
.ex27-sem__info dt{font-family:var(--serif);color:var(--gold);letter-spacing:.14em}
.ex27-sem__info dd{color:var(--ivory)}
.ex27-sem__info dd b{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.06em}
.ex27-sem__btn{display:block;max-width:600px;margin:40px auto 0;padding:24px 64px;font-family:var(--serif)}
.ex27-sem__btn .ex27-btn__s{margin-bottom:2px}

/* ---------- 04 target ---------- */
.ex27-tgt__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.ex27-tgt__fig{position:relative}
.ex27-tgt__fig::after{content:"";position:absolute;left:18px;top:18px;right:-18px;bottom:-18px;border:1px solid var(--line);z-index:0}
.ex27-tgt__fig img{position:relative;z-index:1;display:block;width:100%;aspect-ratio:3/2;object-fit:cover;object-position:42% 50%}
.ex27-level{display:inline-flex;align-items:center;gap:14px;margin-bottom:26px;font-family:var(--serif);color:var(--ivory);font-size:16px;letter-spacing:.14em;line-height:1}
.ex27-level span{padding:9px 18px;border:1px solid var(--gold);color:var(--gold-l)}
.ex27-level b{font-size:24px;font-weight:600;letter-spacing:.2em}
.ex27-chk li{position:relative;padding:14px 0 14px 34px;border-bottom:1px solid var(--line-s);line-height:1.8}
.ex27-chk li:first-child{border-top:1px solid var(--line-s)}
.ex27-chk li::before{content:"";position:absolute;left:4px;top:23px;width:14px;height:8px;border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg)}
.ex27-note{margin-top:20px;font-size:14px;line-height:1.9;color:var(--muted)}
.ex27-rec{margin-top:112px}
.ex27-rec__ttl{display:flex;align-items:center;justify-content:center;gap:24px;margin-bottom:48px;font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:.14em;color:var(--ivory);line-height:1.5}
.ex27-rec__ttl::before,.ex27-rec__ttl::after{content:"";flex:0 1 80px;height:1px;background:var(--gold)}
.ex27-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.ex27-card{position:relative;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line-s)}
.ex27-card__img{position:relative;aspect-ratio:3/2;overflow:hidden}
.ex27-card__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.ex27-card:hover .ex27-card__img img{transform:scale(1.04)}
.ex27-card__ico{position:absolute;left:50%;top:0;display:grid;place-items:center;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:var(--bg1);border:1px solid var(--gold);color:var(--gold-l);box-shadow:0 0 0 6px var(--card)}
.ex27-card__ico svg{width:32px;height:32px}
.ex27-card__body{position:relative;flex:1;padding:58px 28px 34px;text-align:center}
.ex27-card__num{font-family:var(--en);font-size:15px;letter-spacing:.26em;color:var(--gold);line-height:1;margin-bottom:12px}
.ex27-card__ttl{font-family:var(--serif);font-weight:600;font-size:20px;line-height:1.6;letter-spacing:.08em;color:var(--ivory);margin-bottom:14px}
.ex27-card__txt{font-size:15px;line-height:1.95;text-align:left}

/* ---------- 05 contents ---------- */
.ex27-kit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding:56px;background:var(--card);border:1px solid var(--line-s)}
.ex27-kit+.ex27-kit{margin-top:40px}
.ex27-kit__vis{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:0;min-height:260px}
.ex27-kit__books{position:relative;display:flex;align-items:flex-end;justify-content:center;width:100%;max-width:330px}
.ex27-kit__books img{width:48%;filter:drop-shadow(0 18px 22px rgba(0,0,0,.55))}
.ex27-kit__books img:first-child{transform:rotate(-5deg) translateX(8%);z-index:1}
.ex27-kit__books img:last-child{transform:rotate(4deg) translateX(-8%)}
.ex27-kit--w .ex27-kit__vis{flex-direction:column;align-items:center;gap:28px}
.ex27-kit__plus{font-family:var(--en);font-size:34px;line-height:1;color:var(--gold)}
.ex27-kit__wine{width:100%;max-width:420px;border:1px solid var(--line)}
.ex27-kit__wine img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover}
.ex27-kit__label{margin-bottom:10px;font-family:var(--en);font-style:italic;font-size:17px;letter-spacing:.26em;color:var(--gold);line-height:1.4}
.ex27-kit__ttl{font-family:var(--serif);font-weight:600;font-size:28px;letter-spacing:.1em;color:var(--ivory);line-height:1.5;margin-bottom:22px}
.ex27-kit__ship{margin:-12px 0 20px;font-size:14px;line-height:1.7;letter-spacing:.08em;color:var(--gold-l)}
.ex27-formula{display:flex;flex-wrap:wrap;align-items:center;gap:10px 0;margin-bottom:26px}
.ex27-formula li+li{position:relative;margin-left:34px}
.ex27-formula li+li::before{content:"＋";position:absolute;left:-27px;top:50%;transform:translateY(-50%);font-size:20px;color:var(--gold)}
.ex27-formula li{padding:10px 18px;border:1px solid var(--line);font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ivory);background:rgba(201,164,92,.05)}
.ex27-formula li b{color:var(--gold-l);font-weight:600}
.ex27-notes li{position:relative;padding-left:1.2em;font-size:14px;line-height:1.9;color:var(--muted)}
.ex27-notes li+li{margin-top:6px}
.ex27-notes li::before{content:"※";position:absolute;left:0}

/* ---------- 06 schedule ---------- */
.ex27-sch+.ex27-sch{margin-top:96px}
.ex27-sch__head{position:relative;overflow:hidden;padding:64px 40px;text-align:center;border:1px solid var(--line)}
.ex27-sch__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
.ex27-sch__head::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(55% 70% at 50% 50%,rgba(10,16,32,.48),rgba(10,16,32,.08) 100%)}
.ex27-sch__head>*:not(img){position:relative;z-index:2;text-shadow:0 1px 3px rgba(5,8,16,.7),0 2px 16px rgba(5,8,16,.9)}
.ex27-sch__en{font-family:var(--en);font-style:italic;font-weight:600;font-size:18px;letter-spacing:.3em;color:var(--gold-p);line-height:1;margin-bottom:16px}
.ex27-sch__ttl{font-family:var(--serif);font-weight:600;font-size:38px;line-height:1.4;letter-spacing:.12em;color:var(--ivory)}
.ex27-sch__ttl span{color:var(--gold)}
.ex27-sch__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px}
.ex27-sch__tags li{padding:4px 16px;font-size:14px;line-height:1.7;letter-spacing:.1em;border:1px solid var(--gold);color:var(--gold-l);background:rgba(10,16,32,.72)}
.ex27-sch__time{margin-top:18px;font-family:var(--serif);font-size:20px;letter-spacing:.12em;color:var(--ivory)}
.ex27-sch__ex{display:inline-block;margin-left:14px;padding:1px 10px;font-size:13px;letter-spacing:.08em;color:var(--gold-p);vertical-align:.15em;background:rgba(10,16,32,.72);text-shadow:none}
.ex27-sch__list{border-left:1px solid var(--line-s);border-right:1px solid var(--line-s);background:rgba(19,29,51,.55)}
.ex27-sch__list li{display:grid;grid-template-columns:92px 118px minmax(0,1fr) auto;align-items:center;gap:0 20px;padding:18px 32px;border-bottom:1px solid var(--line-s);line-height:1.75}
.ex27-sch__list li:nth-child(even){background:rgba(255,255,255,.018)}
.ex27-sch__no{font-family:var(--serif);font-size:15px;color:var(--gold);letter-spacing:.1em;white-space:nowrap}
.ex27-sch__no b{font-family:var(--en);font-size:24px;font-weight:600;margin:0 2px}
.ex27-sch__date{font-family:var(--serif);font-size:17px;color:var(--ivory);letter-spacing:.04em;white-space:nowrap}
.ex27-sch__date small{font-size:13px;margin-left:2px;color:var(--muted)}
.ex27-sch__date small.is-wed{color:var(--gold-l)}
.ex27-sch__topic{font-size:15px}
.ex27-nw{white-space:nowrap}
.ex27-sch__memo{padding:14px 32px;font-size:14px;color:var(--muted);border-left:1px solid var(--line-s);border-right:1px solid var(--line-s);background:rgba(19,29,51,.55)}
.ex27-sch__wine{justify-self:end;min-width:76px;padding:2px 10px;font-size:13px;text-align:center;letter-spacing:.06em;border:1px solid var(--line);color:var(--gold-l);white-space:nowrap;line-height:1.7}
.ex27-sch__wine.is-none{color:var(--muted);border-color:var(--line-s)}
.ex27-sch__foot{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 32px;border:1px solid var(--line);border-top:0;background:linear-gradient(180deg,rgba(201,164,92,.07),rgba(201,164,92,.02))}
.ex27-sch__foot .ex27-notes{flex:1}
.ex27-price{font-family:var(--serif);color:var(--ivory);line-height:1.5}
.ex27-price__l{display:block;font-size:14px;letter-spacing:.14em;color:var(--gold)}
.ex27-price__v{font-size:18px;letter-spacing:.04em}
.ex27-price__v b{font-family:var(--en);font-size:44px;font-weight:600;letter-spacing:.01em;margin-right:2px}
.ex27-price__t{display:block;font-size:13px;color:var(--muted);letter-spacing:.06em}
.ex27-price__ship{display:inline-block;margin-left:14px;padding:3px 12px;font-size:13px;line-height:1.6;letter-spacing:.08em;color:var(--gold-l);border:1px solid var(--gold);vertical-align:.5em;white-space:nowrap}
.ex27-price__ship--b{display:table;margin:12px auto 0;vertical-align:baseline}
.ex27-sch__foot .ex27-btn{min-width:300px}

/* set banner */
.ex27-setbn{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:36px;margin-top:64px;padding:36px 44px;background:linear-gradient(120deg,#1a2540,#121b31);border:1px solid var(--gold)}
.ex27-setbn::before{content:"";position:absolute;inset:6px;border:1px solid var(--line-s);pointer-events:none}
.ex27-setbn__off{display:grid;place-items:center;width:120px;height:120px;border-radius:50%;background:var(--wine);color:#fff;font-family:var(--serif);text-align:center;line-height:1.25;box-shadow:0 0 0 4px rgba(140,36,51,.35)}
.ex27-setbn__off b{display:block;font-family:var(--en);font-size:30px;font-weight:600;letter-spacing:0}
.ex27-setbn__off small{font-size:13px;letter-spacing:.1em}
.ex27-setbn__txt{font-family:var(--serif);color:var(--ivory);line-height:1.6}
.ex27-setbn__txt p:first-child{font-size:22px;font-weight:600;letter-spacing:.1em}
.ex27-setbn__txt p:last-child{margin-top:4px;font-size:16px;color:var(--text)}
.ex27-setbn__txt .ex27-setbn__cnt{margin-top:8px;font-size:16px;color:var(--gold-l);letter-spacing:.06em}
.ex27-setbn__cnt .ex27-ib:last-child{margin-left:.6em}
.ex27-setbn__cnt .ex27-ib:first-child{display:block}
.ex27-setbn__txt s{color:var(--muted)}
.ex27-setbn__txt strong{font-size:26px;color:var(--gold-l);font-weight:600}
.ex27-setbn .ex27-btn{min-width:260px}

/* ---------- 07 message ---------- */
.ex27-msg__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:64px;align-items:end;padding-bottom:40px}
.ex27-msg__ttl{position:relative;padding-top:56px;font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.7;letter-spacing:.08em;color:var(--ivory);margin-bottom:36px}
.ex27-msg__ttl::before{content:"\201C";position:absolute;left:-6px;top:-18px;font-family:var(--en);font-size:120px;line-height:1;color:var(--gold);opacity:.6}
.ex27-msg__txt p{line-height:2.1}
.ex27-msg__txt p+p{margin-top:1.1em}
.ex27-msg__txt .ex27-msg__hl{font-family:var(--serif);font-size:18px;color:var(--gold-l)}
.ex27-msg__photo{position:relative;align-self:stretch;display:flex;align-items:flex-end;justify-content:center;min-height:100%}
.ex27-msg__photo::before{content:"";position:absolute;left:0;right:0;bottom:0;height:82%;background:radial-gradient(65% 60% at 50% 55%,rgba(214,176,104,.26),transparent 72%),linear-gradient(180deg,rgba(27,38,64,0),#1a2540 70%);border-bottom:1px solid var(--gold)}
.ex27-msg__photo img{position:relative;width:100%;max-width:400px}
.ex27-msg__name{position:absolute;left:0;right:0;bottom:-58px;font-family:var(--serif);font-size:14px;line-height:1.6;text-align:center;color:var(--gold-l);letter-spacing:.12em}
.ex27-msg__name b{margin-left:12px;font-size:22px;font-weight:600;letter-spacing:.2em;color:var(--ivory)}

/* ---------- 08 program ---------- */
.ex27-flow{display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1fr);align-items:stretch}
.ex27-step{position:relative;padding:48px 40px 44px;background:var(--card);border:1px solid var(--line-s)}
.ex27-step::before{content:"";position:absolute;z-index:1;left:0;top:0;width:100%;height:2px;background:var(--gold-grad)}
.ex27-step__img{position:relative;margin:-48px -40px 36px;aspect-ratio:16/9;overflow:hidden}
.ex27-step__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.ex27-step__img--b img{object-position:50% 45%}
.ex27-step__img::after{content:"";position:absolute;left:0;right:0;bottom:0;height:35%;background:linear-gradient(180deg,transparent,rgba(19,29,51,.45))}
.ex27-step__no{font-family:var(--en);font-style:italic;font-size:17px;letter-spacing:.24em;color:var(--gold);line-height:1}
.ex27-step__no b{font-style:normal;font-size:48px;font-weight:600;margin-left:8px;letter-spacing:0;vertical-align:-4px}
.ex27-step__ttl{margin:20px 0 24px;padding-bottom:20px;border-bottom:1px solid var(--line-s);font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.5;letter-spacing:.1em;color:var(--ivory)}
.ex27-step__ttl small{font-size:16px;color:var(--gold-l);margin-left:6px}
.ex27-step p{font-size:15px;line-height:2}
.ex27-step p+p{margin-top:.9em}
.ex27-flow__arw{display:grid;place-items:center;color:var(--gold)}
.ex27-flow__arw svg{width:28px;height:28px}

/* ---------- 09 style ---------- */
.ex27-sty__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:center}
.ex27-sty__fig img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border:1px solid var(--line)}
.ex27-sty__list li{display:grid;grid-template-columns:60px minmax(0,1fr);gap:22px;align-items:start;padding:24px 0;border-bottom:1px solid var(--line-s)}
.ex27-sty__list li:first-child{padding-top:0}
.ex27-sty__ico{display:grid;place-items:center;width:60px;height:60px;border:1px solid var(--gold);border-radius:50%;color:var(--gold-l)}
.ex27-sty__ico svg{width:28px;height:28px}
.ex27-sty__list h3{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.6;letter-spacing:.08em;color:var(--ivory);margin-bottom:4px}
.ex27-sty__list p{font-size:15px;line-height:1.9}
.ex27-sty__list p.ex27-sty__s{color:var(--muted);font-size:14px}

/* eligibility (subdued) */
.ex27-elig{margin-top:96px;padding:40px 44px;border:1px solid var(--line-s);background:rgba(255,255,255,.015)}
.ex27-elig__ttl{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.12em;color:var(--ivory);margin-bottom:22px;text-align:center}
.ex27-elig__grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 40px}
.ex27-elig h4{font-family:var(--serif);font-weight:600;font-size:15px;color:var(--gold-l);letter-spacing:.1em;margin-bottom:8px}
.ex27-elig li{position:relative;padding-left:1em;font-size:14px;line-height:1.85;color:var(--text)}
.ex27-elig li::before{content:"";position:absolute;left:0;top:.85em;width:4px;height:4px;background:var(--gold);border-radius:50%}
.ex27-elig__note{margin-top:22px;font-size:13px;line-height:1.85;color:var(--muted)}
.ex27-elig__note a{color:var(--gold-l);border-bottom:1px solid var(--line);transition:color .2s}
.ex27-elig__note a:hover{color:var(--ivory)}

/* ---------- 10 profile ---------- */
.ex27-prof{overflow:hidden}
.ex27-prof__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:72px;align-items:center}
.ex27-prof__photo{position:relative;text-align:center}
.ex27-prof__photo::before{content:"";position:absolute;left:50%;top:8%;width:120%;aspect-ratio:1/1;background:radial-gradient(closest-side,rgba(214,176,104,.22),transparent);transform:translateX(-50%);pointer-events:none}
.ex27-prof__photo img{position:relative;width:100%;max-width:340px}
.ex27-prof__photo::after{content:"";position:absolute;left:8%;right:8%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.ex27-prof__name{font-family:var(--serif);font-weight:600;font-size:36px;letter-spacing:.24em;color:var(--ivory);line-height:1.4;margin-bottom:8px}
.ex27-prof__role{font-size:14px;color:var(--gold);letter-spacing:.16em;margin-bottom:28px}
.ex27-cred{display:grid;grid-template-columns:1fr;gap:0 28px;margin-bottom:32px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ex27-cred li{position:relative;padding:4px 0 4px 18px;font-family:var(--serif);font-size:15px;line-height:1.7;color:var(--ivory)}
.ex27-cred li::before{content:"";position:absolute;left:0;top:1.05em;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.ex27-prof__bio p{font-size:15px;line-height:2.05}
.ex27-prof__bio p+p{margin-top:.9em}

/* ---------- 11 voice ---------- */
.ex27-vg+.ex27-vg{margin-top:64px}
.ex27-vg__ttl{display:flex;align-items:center;gap:16px;margin-bottom:28px;font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.6;letter-spacing:.08em;color:var(--ivory)}
.ex27-vg__ttl::before{content:"";flex:none;width:6px;height:28px;background:var(--gold-grad)}
.ex27-vg__ttl small{display:block;font-size:13px;font-weight:500;color:var(--muted);letter-spacing:.06em}
.ex27-vlist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ex27-vlist--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ex27-vlist--1{grid-template-columns:1fr}
.ex27-voice{position:relative;display:flex;flex-direction:column;padding:50px 30px 26px;background:var(--card);border:1px solid var(--line-s)}
.ex27-voice::before{content:"\201C";position:absolute;left:26px;top:10px;font-family:var(--en);font-size:60px;line-height:1;color:var(--gold);opacity:.55}
.ex27-voice__txt{flex:1;font-size:15px;line-height:2}
.ex27-voice__who{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line-s);font-family:var(--serif);font-size:15px;color:var(--gold-l);letter-spacing:.1em}
.ex27-voice__who svg{width:30px;height:30px;flex:none;color:var(--gold)}

/* ---------- 12 entry ---------- */
.ex27-entry{position:relative;overflow:hidden}
.ex27-entry::before{content:"";position:absolute;left:50%;top:-30%;width:120%;height:70%;background:radial-gradient(closest-side,rgba(201,164,92,.12),transparent);transform:translateX(-50%);pointer-events:none}
.ex27-entry .ex27-in{position:relative}
.ex27-plans{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.ex27-plan{display:flex;flex-direction:column;align-items:center;padding:44px 36px 40px;text-align:center;background:var(--card);border:1px solid var(--line)}
.ex27-plan__en{font-family:var(--en);font-style:italic;font-size:15px;letter-spacing:.26em;color:var(--gold);line-height:1;margin-bottom:12px}
.ex27-plan__ttl{font-family:var(--serif);font-weight:600;font-size:24px;letter-spacing:.12em;color:var(--ivory);line-height:1.5}
.ex27-plan__cnt{margin-top:6px;font-size:14px;color:var(--muted);letter-spacing:.1em}
.ex27-plan .ex27-price{margin:26px 0 30px;padding:22px 0 0;width:100%;border-top:1px solid var(--line-s)}
.ex27-plan .ex27-btn{min-width:0;width:100%;max-width:400px;margin-top:auto;padding-left:28px;padding-right:52px;letter-spacing:.08em}
.ex27-plan--set{position:relative;grid-column:1/-1;margin-top:20px;padding:56px 48px 52px;background:linear-gradient(135deg,#1d2945,#111a2f 60%,#1a2540);border:1px solid var(--gold);box-shadow:0 24px 50px -30px rgba(201,164,92,.22)}
.ex27-plan--set::before{content:"";position:absolute;inset:7px;border:1px solid var(--line);pointer-events:none}
.ex27-plan__rb{position:absolute;left:50%;top:0;padding:6px 26px;transform:translate(-50%,-50%);font-family:var(--serif);font-size:16px;font-weight:600;letter-spacing:.16em;color:#fff;background:var(--wine);box-shadow:0 6px 18px -6px rgba(0,0,0,.6);white-space:nowrap}
.ex27-plan--set .ex27-plan__ttl{font-size:30px}
.ex27-setp{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 26px;margin:30px 0 34px;font-family:var(--serif);color:var(--ivory);line-height:1.3}
.ex27-setp__old{font-size:18px;color:var(--muted)}
.ex27-setp__old s b{font-family:var(--en);font-size:32px;font-weight:600}
.ex27-setp__arw{color:var(--gold);font-size:22px}
.ex27-setp__off{padding:8px 16px;font-size:17px;font-weight:600;letter-spacing:.08em;color:#fff;background:var(--wine)}
.ex27-setp__off b{font-family:var(--en);font-size:24px}
.ex27-setp__new{font-size:20px}
.ex27-setp__new b{font-family:var(--en);font-size:72px;font-weight:600;letter-spacing:0;line-height:1}
.ex27-setp__new small{display:block;font-size:14px;color:var(--muted);letter-spacing:.1em;margin-top:4px;text-align:right}
.ex27-setp__otoku{display:inline-grid;place-items:center;width:84px;height:84px;border-radius:50%;border:1px solid var(--gold);color:var(--gold-l);font-size:20px;font-weight:600;letter-spacing:.06em;transform:rotate(-8deg)}
.ex27-plan--set .ex27-btn{max-width:440px;padding-top:24px;padding-bottom:24px;font-size:19px}
.ex27-entry__sem{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;margin-top:72px;padding:36px 44px;border:1px solid var(--line)}
.ex27-entry__sem p{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:.1em;color:var(--ivory);line-height:1.6}
.ex27-entry__sem p small{display:block;margin-top:6px;font-size:15px;font-weight:400;color:var(--gold-l);letter-spacing:.06em}

/* ---------- footer ---------- */
.ex27-ftr{position:relative;padding:72px 0 64px;text-align:center;background:var(--bg0);border-top:1px solid var(--line)}
.ex27-ftr::before{content:"";position:absolute;left:50%;top:-1px;width:120px;height:1px;background:var(--gold-grad);transform:translateX(-50%)}
.ex27-ftr__logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--serif);font-size:14px;font-weight:600;letter-spacing:.16em;line-height:1.4;color:var(--ivory)}
.ex27-ftr__logo img{display:block;flex:none;width:26px;height:26px}
.ex27-ftr__addr{margin-top:24px;font-size:14px;line-height:1.8;letter-spacing:.08em;color:var(--muted)}
.ex27-ftr__url{margin-top:6px;font-family:var(--en);font-size:17px;letter-spacing:.06em;line-height:1.6}
.ex27-ftr__url a{color:var(--gold-l);border-bottom:1px solid var(--line);transition:color .25s ease,border-color .25s ease}
.ex27-ftr__url a:hover{color:var(--ivory);border-color:var(--gold)}
.ex27-ftr a:focus-visible{outline:2px solid var(--gold-l);outline-offset:3px}
.ex27-ftr__copy{margin-top:36px;padding-top:24px;border-top:1px solid var(--line-s);font-family:var(--en);font-size:13px;letter-spacing:.12em;line-height:1.6;color:var(--muted)}

/* ---------- fixed cta (sp) ---------- */
.ex27-fix{display:none}

/* ---------- animation ---------- */
.ex27.is-anim .ex27-fade{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.22,.61,.36,1),transform 1s cubic-bezier(.22,.61,.36,1)}
.ex27.is-anim .ex27-fade.is-in{opacity:1;transform:none}
.ex27.is-anim .ex27-fade.ex27-d1{transition-delay:.12s}
.ex27.is-anim .ex27-fade.ex27-d2{transition-delay:.24s}
.ex27.is-anim .ex27-fade.ex27-d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){
  .ex27 *,.ex27 *::before,.ex27 *::after{transition:none!important;animation:none!important}
  .ex27.is-anim .ex27-fade{opacity:1;transform:none}
}

/* =========================================================
   tablet
   ========================================================= */
@media (max-width:1023px){
  .ex27-hdr__in{padding:0 24px}
  .ex27-hdr__tgl{display:block}
  .ex27-hdr__nav{position:absolute;left:0;right:0;top:100%;display:block;max-height:calc(100vh - 72px);overflow-y:auto;padding:12px 24px 28px;background:rgba(7,11,20,.98);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}
  .ex27-hdr.is-open .ex27-hdr__nav{visibility:visible;opacity:1;transform:none;transition:opacity .3s ease,transform .3s ease}
  .ex27-hdr__menu{display:block;max-width:560px;margin:0 auto}
  .ex27-hdr__menu li{border-bottom:1px solid var(--line-s)}
  .ex27-hdr__menu a{padding:16px 4px;font-size:16px}
  .ex27-hdr__menu a::after{display:none}
  .ex27-hdr__cta{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:560px;margin:22px auto 0}
  .ex27-hdr__btn{height:50px;font-size:15px}
  .ex27-in{padding:0 32px}
  .ex27-lec__grid,.ex27-tgt__grid,.ex27-sty__grid,.ex27-prof__grid{gap:44px}
  .ex27-kit{gap:36px;padding:44px 36px}
  .ex27-sch__list li{grid-template-columns:84px 108px minmax(0,1fr) auto;padding:16px 22px;gap:0 14px}
  .ex27-sch__foot{flex-wrap:wrap}
  .ex27-setbn{grid-template-columns:auto minmax(0,1fr);gap:24px 28px}
  .ex27-setbn .ex27-btn{grid-column:1/-1;justify-self:center}
  .ex27-cards{gap:18px}
  .ex27-card__body{padding:54px 20px 28px}
  .ex27-vlist{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ex27-vlist--1{grid-template-columns:1fr}
}

/* =========================================================
   smartphone
   ========================================================= */
@media (max-width:767px){
  .ex27 [id]{scroll-margin-top:64px}
  .ex27-hdr__in{height:56px;padding:0 16px}
  .ex27-hdr__name{font-size:15px;letter-spacing:.1em}
  .ex27-hdr__img{width:32px;height:32px}
  .ex27-hdr__nav{max-height:calc(100vh - 56px);padding:4px 20px 24px}
  .ex27{font-size:15px;line-height:1.95;letter-spacing:.04em}
  .ex27-in{padding:0 20px}
  .ex27-sp{display:inline}
  .ex27-pc{display:none}
  .ex27-sec{padding:80px 0}
  .ex27-sec--line::before{height:48px}
  .ex27-hd{margin-bottom:40px}
  .ex27-hd__en{font-size:15px;gap:12px;margin-bottom:16px}
  .ex27-hd__en::before,.ex27-hd__en::after{width:24px}
  .ex27-hd__ttl{font-size:22px;line-height:1.65;letter-spacing:.05em}
  .ex27-hd__sub{font-size:15px}
  .ex27-btn{min-width:0;width:100%;max-width:360px;padding:18px 44px 18px 22px;font-size:16px;letter-spacing:.06em}
  .ex27-btn::after,.ex27-btn::before{right:18px}
  .ex27-btn-wrap{margin-top:36px}

  .ex27-intro{padding-top:72px}
  .ex27-intro__fig{margin:0 -20px 48px}
  .ex27-intro__fig::before{display:none}
  .ex27-intro__fig img{aspect-ratio:2/1;object-position:68% 50%}
  .ex27-intro__txt{text-align:left;font-size:15px;line-height:2.1;letter-spacing:.04em}
  .ex27-intro__key{margin:40px 0;padding:28px 4px;font-size:18px;line-height:1.8}
  .ex27-intro__key small{font-size:13px}
  .ex27-intro__goal{padding:32px 14px 34px}
  .ex27-intro__goal::before{background-size:18px 2px,2px 18px,18px 2px,2px 18px,18px 2px,2px 18px,18px 2px,2px 18px}
  .ex27-intro__goal-sub{font-size:min(15px,4.3vw);line-height:1.95;letter-spacing:.04em}
  .ex27-intro__goal-main{margin-top:12px;font-size:min(20px,5.2vw);line-height:1.65;letter-spacing:.06em}

  .ex27-lec__grid{grid-template-columns:1fr;gap:56px}
  .ex27-path__tag{padding:3px 10px;font-size:12px;letter-spacing:.1em}
  .ex27-path__cap{padding:12px 10px 12px 14px}
  .ex27-path__no{font-size:13px;letter-spacing:.18em}
  .ex27-path__lead{margin-top:2px;font-size:12.5px;letter-spacing:.02em}
  .ex27-path__name{font-size:min(17px,4.6vw);letter-spacing:.04em}
  .ex27-path__cnt{font-size:12px}
  .ex27-lec__photo{max-width:320px;margin:0 auto;padding-top:28px}
  .ex27-lec__body p{font-size:15px;line-height:2}
  .ex27-lec__lead{font-size:16px!important}
  .ex27-stats{grid-template-columns:1fr;gap:14px;margin:32px 0}
  .ex27-stat{padding:22px 18px 18px}
  .ex27-stat__n b{font-size:54px}

  .ex27-sem{padding:72px 0}
  .ex27-sem__bg{object-position:86% 50%}
  .ex27-sem__box{padding:44px 20px;outline-offset:5px}
  .ex27-sem__en{font-size:15px}
  .ex27-sem__ttl{font-size:23px}
  .ex27-sem__lead{font-size:15px}
  .ex27-sem__info{display:grid;grid-template-columns:auto 1fr;padding:18px 4px;gap:4px 14px;font-size:14px}
  .ex27-sem__info dd b{font-size:16px}
  .ex27-sem__btn{padding:20px 44px 20px 28px}

  .ex27-tgt__grid{grid-template-columns:1fr;gap:48px}
  .ex27-tgt__fig{margin-right:12px}
  .ex27-tgt__fig::after{left:12px;top:12px;right:-12px;bottom:-12px}
  .ex27-chk li{padding:12px 0 12px 30px;font-size:15px}
  .ex27-chk li::before{top:20px}
  .ex27-note{font-size:13px}
  .ex27-rec{margin-top:80px}
  .ex27-rec__ttl{font-size:20px;gap:16px;margin-bottom:36px}
  .ex27-rec__ttl::before,.ex27-rec__ttl::after{flex-basis:40px}
  .ex27-cards{grid-template-columns:1fr;gap:28px}
  .ex27-card__ttl{font-size:18px}
  .ex27-card__txt{text-align:center;font-size:14px}

  .ex27-kit{grid-template-columns:1fr;gap:28px;padding:36px 20px}
  .ex27-kit+.ex27-kit{margin-top:28px}
  .ex27-kit__vis{min-height:0}
  .ex27-kit__books{max-width:260px}
  .ex27-kit__ttl{font-size:22px;margin-bottom:18px}
  .ex27-kit__ship{margin:-10px 0 16px;font-size:13px}
  .ex27-formula li{padding:8px 14px;font-size:14px}
  .ex27-notes li{font-size:13px}

  .ex27-sch+.ex27-sch{margin-top:64px}
  .ex27-sch__head{padding:44px 16px}
  .ex27-sch__ttl{font-size:28px}
  .ex27-sch__tags li{font-size:13px;padding:3px 12px}
  .ex27-sch__time{font-size:16px}
  .ex27-sch__ex{display:table;margin:6px auto 0;font-size:12px}
  .ex27-sch__list li{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"no date wine" "tp tp tp";gap:4px 14px;padding:16px 16px}
  .ex27-sch__no{grid-area:no;font-size:13px}
  .ex27-sch__no b{font-size:20px}
  .ex27-sch__date{grid-area:date;font-size:15px}
  .ex27-sch__topic{grid-area:tp;font-size:14px;line-height:1.75}
  .ex27-sch__wine{grid-area:wine;min-width:0;font-size:12px;padding:1px 8px}
  .ex27-sch__foot{flex-direction:column;align-items:stretch;padding:24px 16px;gap:20px;text-align:center}
  .ex27-sch__foot .ex27-notes{text-align:left}
  .ex27-sch__foot .ex27-btn{min-width:0;margin:0 auto}
  .ex27-price__v b{font-size:38px}
  .ex27-price__ship{display:table;margin:6px auto 4px;font-size:12px}
  .ex27-price__ship--b{margin:10px auto 0}

  .ex27-setbn{grid-template-columns:1fr;justify-items:center;text-align:center;gap:20px;margin-top:48px;padding:36px 20px}
  .ex27-setbn__off{width:104px;height:104px}
  .ex27-setbn__off b{font-size:26px}
  .ex27-setbn__txt p:first-child{font-size:18px}
  .ex27-setbn__txt p:last-child{font-size:14px}
  .ex27-setbn__txt .ex27-setbn__cnt{font-size:14px;line-height:1.7}
  .ex27-setbn__cnt .ex27-ib:last-child{margin-left:0}
  .ex27-setbn__txt strong{font-size:22px}
  .ex27-setbn .ex27-btn{min-width:0}

  .ex27-msg__grid{grid-template-columns:1fr;gap:40px}
  .ex27-msg__ttl{font-size:20px;letter-spacing:.04em;padding-top:44px;margin-bottom:28px}
  .ex27-msg__ttl::before{font-size:96px;top:-14px}
  .ex27-msg__txt .ex27-msg__hl{font-size:16px}
  .ex27-msg__photo{max-width:300px;margin:0 auto;width:100%}
  .ex27-msg__grid{padding-bottom:48px}
  .ex27-sch__memo{padding:12px 16px;font-size:13px}
  .ex27-msg__name b{font-size:20px}

  .ex27-flow{grid-template-columns:1fr;grid-template-rows:auto 56px auto}
  .ex27-flow__arw svg{transform:rotate(90deg)}
  .ex27-step{padding:36px 20px 32px}
  .ex27-step__img{margin:-36px -20px 28px}
  .ex27-step__no b{font-size:40px}
  .ex27-step__ttl{font-size:20px;margin:16px 0 18px;padding-bottom:16px}
  .ex27-step__ttl small{font-size:14px}
  .ex27-step p{font-size:14px}

  .ex27-sty__grid{grid-template-columns:1fr;gap:40px}
  .ex27-sty__fig img{aspect-ratio:16/10}
  .ex27-sty__list li{grid-template-columns:48px minmax(0,1fr);gap:16px;padding:20px 0}
  .ex27-sty__ico{width:48px;height:48px}
  .ex27-sty__ico svg{width:22px;height:22px}
  .ex27-sty__list h3{font-size:16px}
  .ex27-sty__list p{font-size:14px}
  .ex27-sty__list p.ex27-sty__s{font-size:13px}

  .ex27-elig{margin-top:64px;padding:28px 18px}
  .ex27-elig__ttl{font-size:16px}
  .ex27-elig__grid{grid-template-columns:1fr;gap:20px}
  .ex27-elig li{font-size:13px}
  .ex27-elig__note{font-size:12px}

  .ex27-prof__grid{grid-template-columns:1fr;gap:36px}
  .ex27-prof__photo img{max-width:220px}
  .ex27-prof__name{font-size:28px;text-align:center}
  .ex27-prof__role{text-align:center;margin-bottom:22px}
  .ex27-cred{grid-template-columns:1fr;padding:16px 0}
  .ex27-cred li{font-size:14px;padding:4px 0 4px 18px}
  .ex27-prof__bio p{font-size:14px;line-height:2}

  .ex27-vg+.ex27-vg{margin-top:48px}
  .ex27-vg__ttl{font-size:16px;align-items:flex-start}
  .ex27-vg__ttl::before{height:44px}
  .ex27-vlist,.ex27-vlist--2,.ex27-vlist--1{grid-template-columns:1fr;gap:16px}
  .ex27-voice{padding:44px 22px 22px}
  .ex27-voice::before{left:20px;top:8px;font-size:52px}
  .ex27-voice__txt{font-size:14px}

  .ex27-plans{grid-template-columns:1fr;gap:20px}
  .ex27-plan{padding:36px 20px 32px}
  .ex27-plan .ex27-btn{padding-left:20px;padding-right:44px;letter-spacing:.06em}
  .ex27-plan__ttl{font-size:21px}
  .ex27-plan--set{order:-1;margin:16px 0 12px;padding:48px 18px 40px}
  .ex27-plan--set .ex27-plan__ttl{font-size:24px}
  .ex27-plan__rb{font-size:14px;padding:5px 20px}
  .ex27-setp{flex-direction:column;gap:10px;margin:24px 0 28px}
  .ex27-setp__arw{transform:rotate(90deg)}
  .ex27-setp__old s b{font-size:28px}
  .ex27-setp__new b{font-size:58px}
  .ex27-setp__new small{text-align:center}
  .ex27-setp__otoku{position:absolute;right:14px;top:30px;width:64px;height:64px;font-size:15px}
  .ex27-plan--set .ex27-btn{font-size:17px}
  .ex27-entry__sem{grid-template-columns:1fr;text-align:center;gap:22px;margin-top:56px;padding:32px 20px}
  .ex27-entry__sem p{font-size:18px}
  .ex27-entry__sem p small{font-size:14px}
  .ex27-entry__sem .ex27-btn{margin:0 auto}

  /* fixed cta */
  .ex27-fix{position:fixed;left:0;right:0;bottom:0;z-index:900;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(7,11,20,.94);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .45s ease}
  .ex27-fix.is-show{transform:none}
  .ex27-fix a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:6px 8px;font-family:var(--serif);font-size:14px;font-weight:600;line-height:1.35;letter-spacing:.06em;text-align:center}
  .ex27-fix a:first-child{color:var(--gold-l);border:1px solid var(--gold)}
  .ex27-fix a:last-child{color:#1b1307;background:var(--gold-grad)}
  .ex27-fix small{display:block;font-size:11px;font-weight:500;letter-spacing:.04em}
  .ex27{padding-bottom:0}
  .ex27-ftr{padding:56px 0 calc(48px + env(safe-area-inset-bottom))}
  .ex27-ftr__logo{gap:8px;font-size:13px;letter-spacing:.12em}
  .ex27-ftr__logo img{width:22px;height:22px}
  .ex27-ftr__addr{margin-top:20px;font-size:13px;letter-spacing:.04em}
  .ex27-ftr__url{font-size:16px}
  .ex27-ftr__copy{margin-top:28px;padding-top:20px;font-size:12px;letter-spacing:.08em}
}

/* ---------- hero ---------- */

.exh{position:relative;container-type:inline-size;overflow:hidden;background:#140d0a;color:#fff}
.exh__img,.exh__img img{display:block;width:100%;height:auto}
.exh__copy{position:absolute;inset:0;font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;color:#fff;font-feature-settings:normal}
.exh__copy h1,.exh__copy p{margin:0;padding:0;font-size:inherit;font-weight:inherit;line-height:1}
.exh__l{position:absolute;left:0;right:0;display:flex;justify-content:center;align-items:center;text-align:center;line-height:1;white-space:nowrap;top:calc(var(--t) * var(--u));transform:translateX(calc(var(--x, 0) * var(--u)));text-shadow:0 0 calc(10 * var(--u)) rgba(20,10,5,.55)}
.exh__s{display:block;flex:none;font-size:calc(var(--fs) * var(--u));letter-spacing:calc(var(--ls, 0) * var(--u));margin-left:calc(var(--ml, 0) * var(--u));position:relative;top:calc(var(--dy, 0) * var(--u))}
.exh__l4{font-weight:700;color:#000;text-shadow:none}
.exh__l5{font-weight:800}
.exh__hk,.exh__sk{color:#f0d7a4}
.exh__l6,.exh__l7{font-weight:600}
.c7g{color:#e8c474}

@media (min-width:768px){
.exh__copy{--u:calc(100cqw / 1504)}
.exh__l1{--t:78;--x:0.5}
.exh__l2{--t:112.5;--x:2}
.exh__l3{--t:147;--x:1.5}
.exh__l4{--t:205;--x:0}
.exh__l5{--t:255.5;--x:0}
.exh__l6{--t:361;--x:0}
.exh__l7{--t:441;--x:1.5}
.exh__l8{--t:496;--x:0.5}
.exh__yr{--fs:29.5;--dy:-2}
.exh__nd{--fs:25.5;--ml:6}
.exh__l2 .exh__s{--fs:25.5;--ls:2.3}
.exh__l3 .exh__s{--fs:25.5;--ls:2.5}
.exh__l4 .exh__s{--fs:34.6}
.exh__hk{--fs:71;--dy:1}
.exh__sk{--fs:55.5}
.exh__tk{--fs:56.5;--ml:12}
.exh__kz{--fs:28}
.exh__nm{--fs:35;--ml:10}
.exh__nm2{--ml:12}
.c7a{--fs:38;--ls:1.0}
.c7h{--fs:28;--ls:1.0}
.c7g{--fs:46;--ls:1.0}
.c7b{--fs:42;--ls:1.0}
.c7k{--fs:31;--ml:2.5}
.exh__l8 .exh__s{--fs:25;--ls:0.6}
}
@media (max-width:767px){
.exh__copy{--u:calc(100cqw / 996)}
.exh__l1{--t:96;--x:0.5}
.exh__l2{--t:127.5;--x:1.5}
.exh__l3{--t:160;--x:0.5}
.exh__l4{--t:211;--x:0}
.exh__l5{--t:256;--x:0}
.exh__l6{--t:353.5;--x:0}
.exh__l7{--t:425.5;--x:0}
.exh__l8{--t:476.5;--x:1}
.exh__yr{--fs:27;--dy:-1.5}
.exh__nd{--fs:23;--ml:6}
.exh__l2 .exh__s{--fs:23;--ls:2.4}
.exh__l3 .exh__s{--fs:23;--ls:2.55}
.exh__l4 .exh__s{--fs:31}
.exh__hk{--fs:64}
.exh__sk{--fs:51}
.exh__tk{--fs:51;--ml:9}
.exh__kz{--fs:26}
.exh__nm{--fs:31;--ml:10}
.exh__nm2{--ml:12}
.c7a{--fs:34}
.c7h{--fs:27}
.c7g{--fs:42}
.c7b{--fs:40}
.c7k{--fs:30}
.exh__l8 .exh__s{--fs:22;--ls:1.4}
}
@supports not (width:1cqw){
@media (min-width:768px){.exh__copy{--u:calc(100vw / 1504)}}
@media (max-width:767px){.exh__copy{--u:calc(100vw / 996)}}
}

/* ---------- 講座別ページ用 ---------- */
.exh__l5 .exh__tk--ng{margin-left:calc(2 * var(--u))}
.ex27-flow--one{grid-template-columns:minmax(0,1fr);max-width:820px;margin:0 auto}
.ex27-flow--one .ex27-step__img{aspect-ratio:2/1}
.ex27-plans--one{grid-template-columns:minmax(0,1fr)}
.ex27-plans--one .ex27-plan:not(.ex27-plan--set){width:100%;max-width:560px;margin:0 auto}
.ex27-plans--one .ex27-plan--set{margin-top:20px}
.ex27-sch__memo:last-child{border-bottom:1px solid var(--line-s)}
.ex27-sty__fig--w img{aspect-ratio:3/2;object-position:60% 50%}
.ex27-kit__nw{display:inline-block;margin-left:1.4em}
.ex27-settop{padding:96px 0 104px}
@media (max-width:767px){.ex27-settop{padding:64px 0 72px}}
.ex27-entry__set p strong{color:var(--gold-l);font-weight:600}
.ex27-entry__set+.ex27-entry__sem{margin-top:24px}
.ex27-xbn{position:relative;display:grid;grid-template-columns:250px minmax(0,1fr) auto;align-items:center;margin-top:24px;min-height:200px;color:var(--text);text-decoration:none;background:radial-gradient(ellipse at 40% 0%,rgba(201,164,92,.14),transparent 65%),linear-gradient(180deg,#1a2540,#111a2f);border:1px solid var(--gold);box-shadow:0 0 0 1px rgba(201,164,92,.3),0 0 36px rgba(201,164,92,.16),0 18px 40px rgba(0,0,0,.4);overflow:hidden;transition:box-shadow .3s ease}
.ex27-xbn:hover{box-shadow:0 0 0 1px rgba(201,164,92,.5),0 0 48px rgba(201,164,92,.26),0 18px 40px rgba(0,0,0,.4)}
.ex27-xbn__img{position:relative;align-self:stretch;overflow:hidden}
.ex27-xbn__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 32%;transition:transform .6s ease}
.ex27-xbn:hover .ex27-xbn__img img{transform:scale(1.04)}
.ex27-xbn__img::after{content:"";position:absolute;top:0;bottom:0;right:0;width:40%;background:linear-gradient(90deg,transparent,rgba(17,26,47,.85))}
.ex27-xbn__body{display:block;padding:28px 28px 28px 36px;font-family:var(--serif)}
.ex27-xbn__en{display:block;font-family:var(--en);font-style:italic;font-size:15px;font-weight:600;letter-spacing:.22em;line-height:1.4;color:var(--gold)}
.ex27-xbn__ttl{display:inline-block;margin-top:4px;font-size:27px;font-weight:600;line-height:1.5;letter-spacing:.1em;color:var(--gold-p);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ex27-xbn__price{display:block;margin-top:8px;font-size:15px;line-height:1.7;letter-spacing:.06em;color:var(--ivory)}
.ex27-xbn__price b{font-size:23px;font-weight:600;letter-spacing:.04em;color:var(--gold-l)}
.ex27-xbn__btn{margin-right:36px;min-width:290px}
.ex27-xbn+.ex27-entry__sem{margin-top:24px}
.ex27-xbn .ex27-xbn__img--prep img{object-position:62% 50%}
@media (max-width:1023px){
  .ex27-xbn{grid-template-columns:220px minmax(0,1fr)}
  .ex27-xbn__img{grid-row:1/span 2}
  .ex27-xbn__body{padding:26px 28px 14px}
  .ex27-xbn__btn{justify-self:start;margin:0 28px 28px}
}
@media (max-width:767px){
  .ex27-xbn{grid-template-columns:minmax(0,1fr);text-align:center;min-height:0}
  .ex27-xbn__img{grid-row:auto;aspect-ratio:16/9}
  .ex27-xbn__img img{object-position:55% 30%}
  .ex27-xbn__img::after{top:auto;left:0;width:auto;height:45%;background:linear-gradient(180deg,transparent,rgba(17,26,47,.9))}
  .ex27-xbn__body{padding:18px 18px 4px}
  .ex27-xbn__en{font-size:13px}
  .ex27-xbn__ttl{font-size:22px;letter-spacing:.08em}
  .ex27-xbn__price{font-size:14px}
  .ex27-xbn__price b{font-size:21px}
  .ex27-xbn__btn{justify-self:stretch;width:auto;min-width:0;margin:16px 18px 24px;padding:18px 48px 18px 40px;font-size:16px;letter-spacing:.1em}
}
@media (max-width:767px){
  .ex27-plans--one .ex27-plan--set{margin:16px 0 0}
}
