@charset "utf-8";

/* ============================================================
   デンタルMBA  —  tokens
   ============================================================ */
:root{
  --navy:#0b192e;
  --navy-2:#123059;
  --navy-txt:#0a2a55;
  --charcoal:#2c2e2e;
  --charcoal-2:#333535;
  --charcoal-3:#292929;
  --gold:#e3d6ac;
  --gold-dim:#a4977a;
  --gold-line:#b39a63;
  --light:#f3f3f3;
  --white:#fff;

  --grad-gold:linear-gradient(90deg,#a89263 0%,#c8b284 14%,#f7edc7 34%,#fbf3d6 50%,#e0cd9c 66%,#b6a071 84%,#a08a5c 100%);
  --grad-blue:linear-gradient(90deg,#004381 0%,#00306c 40%,#001444 74%,#000134 100%);
  --grad-cta:linear-gradient(100deg,#0d4a8a 0%,#0a3468 45%,#04204e 100%);
  --grad-themes:linear-gradient(90deg,#a89263 0%,#c9b384 16%,#f5ead0 45%,#efe3c0 55%,#c6ae7c 78%,#a89263 100%);

  --wrap:1180px;
  --wrap-wide:1740px;

  --f-serif:"Noto Serif JP",  "Yu Mincho", "游明朝", serif;
  --f-sans:"Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --f-en:"EB Garamond", "Noto Serif JP", serif;
}

/* ============================================================
   base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--f-sans);
  color:#fff;
  background:var(--charcoal);
  line-height:1.9;
  letter-spacing:.04em;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:opacity .25s,color .25s,background .25s}
a:hover{opacity:.78}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
section{position:relative}

.wrap{width:min(100% - 48px,var(--wrap));margin-inline:auto}

/* noise texture used on the dark panels */
.hero,.why,.four,.found,.sys,.last,.ftr{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}

/* ============================================================
   shared parts
   ============================================================ */
.eyebrow{
  font-family:var(--f-en);
  font-size:15px;letter-spacing:.16em;
  color:#8b8577;margin-bottom:26px;font-weight:500;
}
.eyebrow--c{text-align:center}
.eyebrow--dark{color:#9a9a9a}

.h2{
  font-family:var(--f-serif);
  font-weight:600;
  font-size:clamp(24px,2.05vw,36px);
  line-height:1.62;
  letter-spacing:.05em;
}
.h2--gold{color:var(--gold)}
.h2--dark{color:#20242b}
.h2--navy{color:var(--navy-txt)}
.h2--c{text-align:center}

.btn{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-sans);font-weight:700;
  letter-spacing:.06em;line-height:1.35;
  padding:12px 22px;white-space:nowrap;
}
.btn__ico{flex:none;display:flex}
.btn__ico svg{width:26px;height:auto}
.btn__txt small{display:block;font-size:.82em;font-weight:700}
.btn--white{background:#fff;color:var(--navy-txt)}
.btn--navy{background:var(--grad-cta);color:#fff}
.btn--lg{padding:21px 30px;font-size:19px}
.btn--lg .btn__ico svg{width:34px}
.btn:hover{opacity:.86}

.ctarow{display:flex;justify-content:center;gap:36px;flex-wrap:wrap}

.arrowlink{
  display:inline-flex;align-items:center;gap:0;
  font-weight:700;font-size:17px;letter-spacing:.08em;
}
.arrowlink i{
  position:relative;display:block;width:150px;height:1px;
  background:currentColor;margin-left:18px;
}
.arrowlink i::before{
  content:"";position:absolute;right:0;top:-5px;
  width:10px;height:10px;border-top:1px solid currentColor;border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.arrowlink i::after{
  content:"";position:absolute;right:-38px;top:50%;transform:translateY(-50%);
  width:76px;height:76px;border:1px solid currentColor;border-radius:50%;
}
.arrowlink--gold{color:var(--gold)}
.arrowlink--navy{color:var(--navy-txt)}
.arrowlink:hover{opacity:.7}

.goldband{
  background:var(--grad-gold);
  color:var(--navy-txt);
  text-align:center;
  font-family:var(--f-serif);font-weight:700;
  font-size:clamp(17px,1.5vw,27px);line-height:1.75;
  letter-spacing:.04em;
  padding:36px 24px;
}
.goldband--wide{width:min(100% - 96px,1728px);margin:0 auto;position:relative;z-index:3}
.goldband--inner{margin-top:76px;padding:26px 24px}

.bigband{margin:0;line-height:0;font-size:0}
.bigband svg{display:block;width:100%;height:auto}
.bigband text{font-family:var(--f-en);font-weight:600;font-size:132px;fill:#fff}

/* mark = large DENTAL MBA watermark */
.mark__a,.mark__b,.mark__c{display:block;font-family:var(--f-en);text-align:center;color:#fff}
.mark__a{font-size:.30em;letter-spacing:.06em;margin-bottom:-.12em}
.mark__b{font-size:1em;font-weight:700;letter-spacing:-.02em;line-height:.92}
.mark__c{font-size:.093em;letter-spacing:.10em;font-weight:600;line-height:1.5;margin-top:.06em}

/* ============================================================
   header
   ============================================================ */
.hdr{
  position:fixed;inset:0 0 auto;z-index:80;
  background:rgba(38,40,40,.92);
  backdrop-filter:blur(6px);
  transition:background .3s;
}
.hdr__inner{
  display:flex;align-items:stretch;gap:0;
  height:108px;padding-left:26px;
}
.hdr__logo{display:flex;align-items:center;flex:none}
.hdr__logo img{width:172px}
.hdr__nav{
  display:flex;align-items:center;gap:20px;
  margin-left:auto;font-size:15px;font-weight:700;letter-spacing:.06em;
}
.hdr__sep{width:1px;height:14px;background:rgba(255,255,255,.42)}
.hdr__icons{display:flex;align-items:center;gap:14px;margin-left:34px}
.hdr__icons a{display:block;color:#c9c9c9}
.hdr__icons svg{width:26px;height:26px;display:block}
.hdr__cta{font-size:15px;align-self:center}
.hdr__cta .btn__ico svg{width:26px}
.hdr .btn--white{margin-left:34px;padding:13px 22px}
.hdr .btn--navy{align-self:stretch;margin-left:22px;padding:0 42px;border-radius:0}
.hdr__burger{display:none}

/* drawer (SP) */
.drawer{
  position:fixed;inset:64px 0 auto;z-index:70;
  background:rgba(24,26,26,.98);
  padding:24px 24px 34px;
  transform:translateY(-130%);transition:transform .35s ease;
  max-height:calc(100vh - 64px);overflow:auto;
}
.drawer.is-open{transform:translateY(0)}
.drawer__nav{display:flex;flex-direction:column}
.drawer__nav a{
  padding:16px 4px;border-bottom:1px solid rgba(255,255,255,.14);
  font-weight:700;letter-spacing:.08em;
}
.drawer__cta{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.drawer__cta .btn{justify-content:center;padding:16px}

/* ============================================================
   hero
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  background:#232525;
  padding:228px 0 110px;
  min-height:900px;
}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:52% 50%;opacity:.66}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(30,32,32,.95) 0%,rgba(32,34,34,.86) 28%,rgba(34,36,36,.35) 58%,rgba(34,36,36,.28) 100%);
}
.hero__mark{
  position:absolute;right:0;bottom:18px;z-index:1;
  width:min(640px,42%);opacity:.14;pointer-events:none;
}
.hero__mark img,.found__mark img{width:100%}
.hero__inner{position:relative;z-index:2;width:min(100% - 48px,var(--wrap-wide));margin-inline:auto;padding-left:100px}
.hero__ttl{
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(34px,3.6vw,69px);
  line-height:1.44;letter-spacing:.06em;
  margin-bottom:40px;
}
.hero__ttl-main,.hero__ttl-l{display:block}
.hero__ttl .ribbon{display:table;font-family:var(--f-serif);font-weight:500}
.hero__ttl em{
  font-style:normal;
  background:linear-gradient(180deg,#efe1b8 0%,#c9ad6d 48%,#8e7742 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ribbon{
  display:table;
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(16px,1.35vw,24px);
  letter-spacing:.05em;color:#20242b;
  background:linear-gradient(90deg,#b3a583 0%,#cdc09b 40%,#e2d7b4 78%,#cbbe98 100%);
  padding:9px 22px;margin-bottom:12px;
}
.hero__lead{
  margin-top:26px;font-size:17px;line-height:1.95;color:#e6e6e6;letter-spacing:.05em;
}
.hero__btns{display:flex;gap:34px;margin-top:38px;flex-wrap:wrap}

/* ============================================================
   why
   ============================================================ */
.why{background:var(--charcoal-2);padding:140px 0 0;overflow:hidden}
.why__photo{position:absolute;left:0;top:0;width:46%;height:100%;z-index:0}
.why__photo img{width:100%;height:100%;object-fit:cover;object-position:60% 30%;opacity:.5}
.why__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(44,46,46,.55) 0%,rgba(44,46,46,.2) 40%,rgba(44,46,46,.98) 100%);
}
.why__inner{position:relative;z-index:2;width:min(100% - 48px,var(--wrap-wide));margin-inline:auto;padding:0 100px;
  display:grid;grid-template-columns:1fr 1fr;}
.why__body{grid-column:2;max-width:645px}
.why__lead{margin-top:34px;font-size:15.5px;line-height:2.15;color:#e2e2e2}
.pains{
  grid-column:1/-1;
  display:grid;grid-template-columns:repeat(5,1fr);gap:40px;
  max-width:1400px;margin:96px auto 0;width:100%;
}
.pains li{
  background:#14395b;
  padding:26px 22px;
  color:#dfe6ee;min-height:176px;
}
.pains em{font-style:normal;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.75);padding-bottom:1px}
.why__bridge{
  grid-column:1/-1;text-align:center;margin-top:82px;
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(20px,1.75vw,30px);letter-spacing:.06em;
}
.why .goldband--wide{margin-top:44px}

/* ============================================================
   four perspectives
   ============================================================ */
.four{background:var(--charcoal-2);padding:0 0 120px;overflow:hidden}
.four__top{
  position:relative;
  background:var(--navy);
  padding:230px 0 0;
  min-height:760px;
}
.four__top{overflow:hidden}
.four__top::after{
  content:"";position:absolute;inset:0;
  background:var(--charcoal-2);
  clip-path:polygon(0 100%,100% 33.5%,100% 100%);
  z-index:2;
}
.four__copy{
  position:relative;z-index:3;
  width:min(100% - 48px,var(--wrap-wide));margin-inline:auto;padding:0 100px;
  max-width:min(100%,1180px);
}
.four__copy .eyebrow{color:#b9b1a1}
.four__lead{margin-top:32px;max-width:600px;font-size:15.5px;line-height:2.15;color:#dfe3ea}
.four__art{
  position:absolute;right:0;top:0;width:50%;max-width:960px;z-index:1;
}
.four__vttl{
  position:absolute;right:5.6%;top:548px;z-index:4;
  writing-mode:vertical-rl;flex-direction:column;
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(20px,1.8vw,31px);letter-spacing:.14em;line-height:1.9;
  display:flex;gap:6px;
}
.four__grid{
  position:relative;z-index:3;
  width:min(100% - 48px,var(--wrap));margin:34px auto 0;
  display:grid;grid-template-columns:repeat(4,1fr);
}
.pcard{padding:0 34px;border-left:1px solid rgba(200,180,130,.45)}
.pcard:first-child{border-left:0;padding-left:0}
.pcard:last-child{padding-right:0}
.pcard__no{
  font-family:var(--f-en);font-size:13px;letter-spacing:.14em;
  color:#8d8878;display:flex;align-items:center;gap:9px;
}
.pcard__no b{font-weight:500}
.pcard__no i{width:1px;height:13px;background:#7d7869;display:block}
.pcard__ico{height:78px;display:flex;align-items:center;justify-content:center;margin:26px 0 14px;color:#d8c49a}
.pcard__ico svg{width:60px;height:60px}
.pcard__ttl{
  text-align:center;font-family:var(--f-serif);font-weight:600;
  font-size:clamp(18px,1.35vw,24px);letter-spacing:.04em;margin-bottom:22px;
}
.pcard__txt{font-size:14.5px;line-height:2.05;color:#dcdcdc}
.four__more{
  width:min(100% - 48px,var(--wrap));margin:78px auto 0;
  display:flex;justify-content:flex-end;padding-right:56px;
}

/* ============================================================
   three themes
   ============================================================ */
.themes{background:var(--grad-themes);padding:0 0 96px;overflow:hidden}
.themes .bigband{background:var(--grad-themes);padding:22px 0 4px}
.themes__inner{width:min(100% - 48px,1728px);margin-inline:auto;padding-top:32px}
.themes__lead{
  text-align:center;margin-top:26px;
  font-family:var(--f-serif);font-weight:500;
  font-size:clamp(14px,1.05vw,18px);letter-spacing:.05em;color:#242830;
}
.themes__badge{
  display:table;margin:30px auto 0;
  background:var(--grad-cta);color:#fff;
  font-weight:700;font-size:clamp(14px,1.05vw,18px);letter-spacing:.06em;
  padding:11px 30px;
}
.themes__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
  margin-top:54px;align-items:stretch;
}
.tcard{background:linear-gradient(180deg,#efe7d2,#f7f2e2);color:#20242b;display:flex;flex-direction:column;height:100%}
.tcard__head{position:relative;overflow:hidden}
.tcard__head img{width:100%;aspect-ratio:556/348;object-fit:cover}
.tcard__catch{
  position:absolute;left:0;right:0;top:26px;text-align:center;
  font-family:var(--f-serif);font-weight:600;color:#fff;
  font-size:clamp(13px,1.02vw,17px);letter-spacing:.05em;
  text-shadow:0 2px 10px rgba(0,0,0,.65);
}
.tcard__ttl{
  position:absolute;left:0;right:0;bottom:14px;text-align:center;
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(20px,1.65vw,29px);letter-spacing:.14em;
  color:#f0e2bf;text-shadow:0 2px 14px rgba(0,0,0,.7);
}
.tcard__body{padding:28px 26px 0;display:flex;flex-direction:column;flex:1}
.tcard__body>p{font-size:14.5px;line-height:2.05;letter-spacing:.02em}
.tcard__more{
  margin-top:auto;padding:26px 0 24px;text-align:center;
  color:var(--navy-txt);font-weight:700;letter-spacing:.08em;font-size:16px;
  display:flex;align-items:center;justify-content:center;gap:12px;
}
.tcard__more i,.lcard__more i{
  width:7px;height:7px;border-top:1.6px solid currentColor;border-right:1.6px solid currentColor;
  transform:rotate(45deg);display:block;
}
.themes__note{text-align:center;margin-top:34px;font-size:14px;color:#3b3f46}
.themes__more{display:flex;justify-content:center;margin-top:64px}

/* ============================================================
   flow
   ============================================================ */
.flow{background:var(--grad-blue);padding:118px 0 118px}
.flow__inner{width:min(100% - 48px,var(--wrap));margin-inline:auto}
.flow .eyebrow{color:#bcb5a2}
.flow__lead{text-align:center;margin-top:34px;font-size:15.5px;line-height:2.1;color:#e4e9f1}
.steps{
  display:flex;align-items:flex-start;justify-content:center;
  gap:52px;margin-top:78px;
}
.step{width:300px;text-align:center;flex:none}
.step__circle{
  width:162px;height:162px;border-radius:50%;
  background:rgba(255,255,255,.24);
  margin:0 auto 26px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  color:#fff;
}
.step__no{font-family:var(--f-en);font-size:16px;letter-spacing:.08em;color:#e9edf4}
.step__circle svg{width:52px;height:auto}
.step__body h3{font-size:22px;font-weight:700;letter-spacing:.08em;margin-bottom:14px}
.step__body p{font-size:14.5px;line-height:1.95;color:#dfe5ee}
.step__arrow{flex:none;color:#fff;margin-top:66px}
.step__arrow svg{width:52px;height:auto}

/* ============================================================
   foundation
   ============================================================ */
.found{background:var(--charcoal-3);padding:118px 0 124px;overflow:hidden}
.found__photo{position:absolute;right:0;top:0;width:44%;height:100%;z-index:0}
.found__photo img{width:100%;height:100%;object-fit:cover;opacity:.62}
.found__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(41,41,41,1) 0%,rgba(41,41,41,.55) 42%,rgba(41,41,41,.15) 100%);
}
.found__mark{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(620px,52%);opacity:.085;z-index:1;pointer-events:none;
}
.found__inner{position:relative;z-index:2;width:min(100% - 48px,var(--wrap));margin-inline:auto;text-align:center}
.found__lead{margin-top:34px;font-size:15.5px;line-height:2.1;color:#e3e3e3}
.found .ctarow{margin-top:44px}

/* ============================================================
   system
   ============================================================ */
.sys{background:var(--charcoal-2);padding:120px 0 0;overflow:hidden}
.sys__photo{position:absolute;left:0;top:0;width:32%;height:100%;z-index:0}
.sys__photo img{width:100%;height:100%;object-fit:cover;object-position:58% 35%}
.sys__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,32,40,.25) 0%,rgba(44,46,46,.1) 55%,rgba(51,53,53,1) 100%);
}
.sys__inner{
  position:relative;z-index:2;
  width:min(100% - 48px,1728px);margin-inline:auto;
  display:grid;grid-template-columns:minmax(280px,404px) 1fr;gap:76px;
  align-items:start;padding-bottom:132px;
}
.sys__copy{padding-top:12px}
.sys__lead{margin-top:30px;font-size:15px;line-height:2.1;color:#e0e0e0}
.sysrows{display:flex;flex-direction:column;gap:26px}
.sysrows li{
  background:rgba(255,255,255,.07);
  display:grid;grid-template-columns:120px 116px minmax(180px,250px) 1fr;
  align-items:center;gap:0;
  padding:26px 34px 26px 0;
  min-height:172px;
}
.sysrows__no{
  font-family:var(--f-en);font-size:13.5px;letter-spacing:.13em;color:#a9a9a9;
  display:flex;align-items:center;gap:9px;justify-content:center;
}
.sysrows__no i{width:1px;height:13px;background:#8e8e8e;display:block}
.sysrows__ico{color:#e2cf9f;display:flex;justify-content:center}
.sysrows__ico svg{width:74px;height:auto}
.sysrows h3{
  font-family:var(--f-serif);font-weight:500;
  font-size:clamp(19px,1.5vw,27px);letter-spacing:.04em;
}
.sysrows h3 b{font-weight:600}
.sysrows__txt{
  font-size:14.5px;line-height:2.05;color:#e0e0e0;
  border-left:1px solid rgba(206,186,138,.55);padding-left:34px;
}

/* ============================================================
   program
   ============================================================ */
.prog{background:var(--light);padding:96px 0 110px}
.prog__box{
  width:min(100% - 48px,1824px);margin-inline:auto;
  border:1px solid #1d3f70;
  padding:64px 40px 58px;
}
.prog .h2{margin-bottom:0}
.prog__grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin-top:58px;
}
.prog__grid li{padding:0 40px;border-left:1px solid #b9bec6;text-align:center;color:#20242b}
.prog__grid li:first-child{border-left:0}
.prog__ico{height:88px;display:flex;align-items:center;justify-content:center;color:#8f949c;margin-bottom:22px}
.prog__ico svg{width:66px;height:auto}
.prog__grid h3{font-size:clamp(17px,1.35vw,23px);font-weight:700;letter-spacing:.05em;margin-bottom:16px}
.prog__grid p{font-size:14.5px;line-height:2;color:#3b3f46}
.prog__note{text-align:center;margin-top:52px;font-size:14px;color:#3b3f46}
.prog__note a{color:var(--navy-txt);font-weight:700;text-decoration:underline}
.prog__more{display:flex;justify-content:center;margin-top:46px}

/* ============================================================
   lecturers
   ============================================================ */
.lect{background:var(--navy);padding:110px 0 150px;overflow:hidden}
.lect__inner{position:relative;z-index:2;width:min(100% - 48px,1600px);margin-inline:auto}
.lect__photo{position:absolute;left:0;bottom:0;width:100%;height:340px;z-index:0}
.lect__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 34%}
.lect__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--navy) 0%,rgba(11,25,46,.62) 26%,rgba(24,30,40,.8) 62%,rgba(41,41,41,1) 100%)}
.lect .eyebrow{color:#bcb5a2}
.lect__grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:78px 30px;margin-top:76px;
}
.lcard{display:grid;grid-template-columns:288px 1fr;gap:40px;align-items:start}
.lcard__photo img{width:100%;aspect-ratio:320/400;object-fit:cover}
.lcard__en{font-family:var(--f-en);font-size:15px;letter-spacing:.06em;color:#9d9a8d}
.lcard__name{
  font-family:var(--f-serif);font-weight:600;
  font-size:clamp(22px,1.7vw,29px);letter-spacing:.09em;margin:6px 0 22px;
}
.lcard__role{font-size:14.5px;line-height:1.95;letter-spacing:.04em;color:#e3e7ee}
.lcard__num{
  margin-top:20px;font-size:15px;letter-spacing:.06em;color:#e7dcbe;
  font-family:var(--f-serif);
}
.lcard__num b{font-family:var(--f-en);font-size:1.85em;font-weight:500;color:#f0e3c0;margin:0 2px}
.lcard__txt{margin-top:22px;font-size:14.5px;line-height:2.05;color:#dfe3ea}
.lcard__more{
  margin-top:20px;display:inline-flex;align-items:center;gap:12px;
  color:#7ea9dd;font-weight:700;font-size:15.5px;letter-spacing:.08em;
}
.lect__more{display:flex;justify-content:center;margin-top:104px}

/* ============================================================
   last cta
   ============================================================ */
.last{background:var(--charcoal-3);padding:0 0 108px;overflow:hidden}
.bigband--ghost{position:relative;z-index:1;padding-top:16px}
.bigband--ghost text{fill:rgba(255,255,255,.11)}
.last__inner{position:relative;z-index:2;width:min(100% - 48px,var(--wrap));margin-inline:auto;text-align:center}
.last__ttl{
  font-size:clamp(24px,2.6vw,44px);
  margin-top:44px;
}
.last .ctarow{margin-top:52px}

/* ============================================================
   footer
   ============================================================ */
.ftr{background:var(--charcoal-3);padding:0 0 0;border-top:1px solid rgba(190,170,120,.45)}
.ftr__inner{
  width:min(100% - 48px,1728px);margin-inline:auto;
  display:grid;grid-template-columns:390px 1fr 380px;gap:40px;
  padding:56px 0 62px;
}
.ftr__logo{width:140px;margin-bottom:22px}
.ftr__name{font-family:var(--f-serif);font-weight:600;font-size:24px;letter-spacing:.09em}
.ftr__name-en{font-family:var(--f-en);font-weight:600;font-size:13.5px;letter-spacing:.03em;color:#e2e2e2}
.ftr__links{
  display:grid;grid-template-columns:repeat(2,minmax(0,210px));
  gap:0 40px;align-content:start;
  border-left:1px solid rgba(255,255,255,.25);padding-left:56px;
}
.ftr__links ul li a{
  display:flex;align-items:center;justify-content:space-between;
  padding:9px 0;font-size:14.5px;letter-spacing:.05em;
}
.ftr__links i{
  width:7px;height:7px;border-top:1.4px solid #b9b9b9;border-right:1.4px solid #b9b9b9;
  transform:rotate(45deg);display:block;
}
.ftr__note{grid-column:1/-1;margin-top:34px;font-size:13px;line-height:1.9;color:#b8b8b8}
.ftr__corp-name{font-size:18px;font-weight:700;letter-spacing:.06em;margin-bottom:24px}
.ftr__addr{font-size:14px;line-height:1.85;color:#dcdcdc}
.ftr__tel{font-size:29px;font-weight:700;letter-spacing:.02em;margin-top:22px;line-height:1.2}
.ftr__hours{font-size:14px;color:#dcdcdc;margin-top:4px}
.ftr__copy{
  background:var(--grad-gold);color:#20242b;
  text-align:center;font-family:var(--f-en);font-weight:600;
  font-size:15px;letter-spacing:.04em;padding:9px 12px;
}

/* ============================================================
   sp fixed bar
   ============================================================ */
.spbar{display:none}


/* ============================================================
   TYPE SCALE  —  カンプ実測値（1920px幅基準）
   明朝=Noto Serif JP / ゴシック=Noto Sans JP / 欧文=EB Garamond Bold
   ============================================================ */
.eyebrow{font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.13em;color:#8b8577;margin-bottom:28px}
.eyebrow--dark{color:#8d8d8d}

.h2{font-family:var(--f-serif);font-weight:500;font-size:32px;line-height:1.75;letter-spacing:.04em}
.h2--xl{font-size:48px;line-height:1.6}

.btn{font-family:var(--f-sans);font-weight:700;letter-spacing:.05em;line-height:1.32}
.btn--lg{font-size:26px;padding:16px 30px}
.btn--lg .btn__ico svg{width:38px}
.btn--lg .btn__txt small{font-size:1em}
.arrowlink{font-weight:700;font-size:20px;letter-spacing:.06em}
.goldband{font-family:var(--f-serif);font-weight:700;font-size:32px;line-height:1.75;letter-spacing:.03em}
.goldband--inner p{font-size:28px}
.bigband text{font-family:var(--f-en);font-weight:700;fill:#fff}
.themes .bigband text{font-size:118.4px}
.bigband--ghost text{font-size:108.1px;fill:rgba(255,255,255,.10)}

/* header */
.hdr__nav{font-family:var(--f-sans);font-weight:500;font-size:19px;letter-spacing:.04em;gap:22px}
.hdr__cta{font-size:19px}
.hdr__cta .btn__txt small{font-size:14px;font-weight:500}
.hdr .btn__ico svg{width:30px}

/* hero */
.hero__ttl{font-family:var(--f-serif);font-weight:500;font-size:62px;line-height:1.75;letter-spacing:.05em;margin-bottom:0}
.hero__ttl-main{margin-bottom:22px}
.ribbon{font-family:var(--f-serif);font-weight:500;font-size:27px;line-height:1.5;letter-spacing:.03em;padding:8px 16px;margin-bottom:9px}
.hero__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em;margin-top:24px}
.hero__btns{margin-top:34px;gap:38px}

/* why */
.why__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em;text-align:justify;margin-top:32px}
.pains li{font-family:var(--f-serif);font-weight:400;font-size:17px;line-height:1.85;letter-spacing:.01em;text-align:left;text-wrap:balance}
.pains em{font-weight:600}
.why__bridge{font-family:var(--f-serif);font-weight:500;font-size:32px;letter-spacing:.05em}

/* four perspectives */
.four__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em;text-align:justify}
.four__vttl{font-family:var(--f-serif);font-weight:500;font-size:32px;letter-spacing:.08em;line-height:1.9}
.pcard__no{font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.09em}
.pcard__ttl{font-family:var(--f-serif);font-weight:500;font-size:26px;letter-spacing:.03em;margin-bottom:26px}
.pcard__txt{font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.875;letter-spacing:.02em;text-align:justify}

/* three themes */
.themes__lead{font-family:var(--f-serif);font-weight:500;font-size:20px;line-height:1.8;letter-spacing:.03em}
.themes__badge{font-family:var(--f-sans);font-weight:700;font-size:20px;letter-spacing:.05em;padding:13px 34px}
.tcard__catch{font-family:var(--f-serif);font-weight:500;font-size:20px;letter-spacing:.04em}
.tcard__ttl{font-family:var(--f-serif);font-weight:500;font-size:32px;letter-spacing:.12em}
.tcard__body>p{font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.875;letter-spacing:.02em;text-align:justify}
.tcard__more,.lcard__more{font-family:var(--f-sans);font-weight:700;font-size:18px;letter-spacing:.06em}
.themes__note{font-family:var(--f-sans);font-weight:400;font-size:16px}

/* flow */
.flow__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em}
.step__no{font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.06em}
.step__body h3{font-family:var(--f-sans);font-weight:700;font-size:26px;letter-spacing:.06em;margin-bottom:16px}
.step__body p{font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.875;letter-spacing:.02em}

/* foundation */
.found__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em}

/* system */
.sys__lead{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.03em}
.sysrows__no{font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.09em}
.sysrows h3{font-family:var(--f-serif);font-weight:500;font-size:32px;letter-spacing:.03em}
.sysrows h3 b{font-weight:500}
.sysrows__txt{font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.875;letter-spacing:.02em;text-align:justify}

/* program */
.prog__grid h3{font-family:var(--f-sans);font-weight:700;font-size:24px;letter-spacing:.04em;margin-bottom:18px}
.prog__grid p{font-family:var(--f-sans);font-weight:400;font-size:18px;line-height:1.89;letter-spacing:.02em}
.prog__note{font-family:var(--f-sans);font-weight:400;font-size:18px}

/* lecturers */
.lcard__en{font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.05em}
.lcard__name{font-family:var(--f-serif);font-weight:500;font-size:26px;letter-spacing:.12em;margin:8px 0 24px}
.lcard__role{font-family:var(--f-serif);font-weight:400;font-size:16px;line-height:1.9;letter-spacing:.03em}
.lcard__num{font-family:var(--f-serif);font-weight:400;font-size:16px;letter-spacing:.04em;margin-top:22px}
.lcard__num b{font-family:var(--f-serif);font-weight:500;font-size:32px;letter-spacing:0;margin:0 4px}
.lcard__num span{font-size:20px}
.lcard__txt{font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.875;letter-spacing:.02em;text-align:justify;margin-top:24px}

/* footer */
.ftr__links ul li a{font-family:var(--f-sans);font-weight:400;font-size:14px;letter-spacing:.04em}
.ftr__name{font-family:var(--f-serif);font-weight:500;font-size:26px;letter-spacing:.08em}
.ftr__name-en{font-family:var(--f-serif);font-weight:400;font-size:12px;letter-spacing:.02em}
.ftr__note{font-family:var(--f-sans);font-weight:400;font-size:14px;line-height:1.9}
.ftr__corp-name{font-family:var(--f-sans);font-weight:700;font-size:18px;letter-spacing:.05em}
.ftr__addr,.ftr__hours{font-family:var(--f-sans);font-weight:400;font-size:14px;line-height:1.85}
.ftr__tel{font-family:var(--f-sans);font-weight:700;font-size:24px;letter-spacing:.02em}
.ftr__copy{font-family:var(--f-serif);font-weight:500;font-size:14px;letter-spacing:.04em}


/* ============================================================
   READABILITY  —  行長・コントラスト・写真上の可読性
   ============================================================ */

/* 1. 和文の両端揃えをやめる（narrow columnで字間が割れるため） */
.why__lead,.four__lead,.pains li,.pcard__txt,
.tcard__body>p,.sysrows__txt,.lcard__txt{text-align:left}

/* 2. ラベル・補助文字のコントラストを上げる */
.eyebrow{color:#b8b0a0}
.eyebrow--dark{color:#6f7378}
.pcard__no,.sysrows__no{color:#c4bdab}
.pcard__no i,.sysrows__no i{background:#a49c88}
.pcard__txt{color:#e5e5e5}
.sysrows__txt{color:#e9e9e9}
.four__lead,.lcard__txt,.lcard__role{color:#e6eaf1}
.hero__lead,.why__lead,.found__lead,.sys__lead{color:#ececec}
.step__body p,.flow__lead{color:#e8edf5}
.lcard__more{color:#9dc0ea}
.ftr__note{color:#c7c7c7}
.ftr__addr,.ftr__hours{color:#e2e2e2}
.hdr__icons a{color:#dcdcdc}

/* 3. 1行あたりの文字数を詰める（カンプの版面に合わせる） */
.sysrows li{grid-template-columns:104px 150px 320px 1fr;padding-right:40px}
.sysrows__txt{padding-left:36px}
.tcard__body{padding:30px 80px 0}
.tcard__more{padding:30px 0 26px}
.prog__grid p{max-width:26em;margin-inline:auto}

/* 4. 写真の上に乗る文字にスクリムを敷く */
.tcard__head::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,14,30,.66) 0%,rgba(6,14,30,.18) 30%,rgba(6,14,30,.12) 52%,rgba(6,14,30,.78) 100%);
}
.tcard__catch,.tcard__ttl{position:absolute;z-index:2}
.tcard__catch{text-shadow:0 1px 6px rgba(0,0,0,.5)}
.tcard__ttl{text-shadow:0 1px 8px rgba(0,0,0,.55)}
.hero__ttl,.hero__lead{text-shadow:0 1px 14px rgba(10,12,14,.55)}

/* 5. キーボード操作時のフォーカスを見えるようにする */
a:focus-visible,button:focus-visible{
  outline:2px solid #e3d6ac;outline-offset:3px;
}

/* 6. 和文の行頭・行末の禁則をブラウザに任せる */
body{line-break:strict;overflow-wrap:break-word}

/* ============================================================
   responsive  —  tablet
   ============================================================ */
@media (max-width:1500px){
  .hero__inner,.why__inner,.four__copy{padding-inline:48px}
  .arrowlink i{width:110px}
  .sysrows li{grid-template-columns:96px 100px minmax(150px,215px) 1fr;padding-right:26px}
  .sysrows__txt{padding-left:26px}
}
@media (max-width:1180px){
  .hdr__nav,.hdr__icons,.hdr__cta{display:none}
  .hdr__inner{height:64px;padding-inline:18px}
  .hdr__logo img{width:118px}
  .hdr__burger{
    display:flex;flex-direction:column;justify-content:center;gap:7px;
    margin-left:auto;width:44px;
  }
  .hdr__burger span{display:block;height:2px;background:#fff;transition:transform .3s,opacity .3s}
  .hdr__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .hdr__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .hdr__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  html{scroll-padding-top:74px}

  .why__inner{grid-template-columns:1fr}
  .why__body{grid-column:1;max-width:none}
  .pains{grid-template-columns:repeat(3,1fr)}
  .four__vttl{top:auto;bottom:auto;position:static;writing-mode:horizontal-tb;display:block;text-align:center;margin:40px 0 0}
  .four__vttl span{display:inline}
  .four__art{position:relative;width:100%;max-width:none}
  .themes__inner{width:min(100% - 48px,var(--wrap))}
  .four__grid{grid-template-columns:repeat(2,1fr);gap:44px 0}
  .pcard:nth-child(3){border-left:0;padding-left:0}
  .pcard:nth-child(2),.pcard:nth-child(4){padding-right:0}
  .themes__grid{grid-template-columns:1fr;gap:26px;max-width:620px;margin-inline:auto}
  .steps{flex-wrap:wrap}
  .sys__inner{grid-template-columns:1fr;gap:44px}
  .sys__photo{width:100%;height:420px}
  .sys__photo::after{background:linear-gradient(180deg,rgba(10,32,40,.2),rgba(51,53,53,.98))}
  .sys__copy{padding-top:0}
  .prog__grid{grid-template-columns:1fr;gap:48px}
  .prog__grid li{border-left:0;padding-inline:20px}
  .lect__grid{grid-template-columns:1fr;gap:56px}
  .ftr__inner{grid-template-columns:1fr;gap:44px}
  .ftr__links{border-left:0;padding-left:0}
  .four__art{width:62%;opacity:.5}
  .four__vttl{right:3%}
}

/* ============================================================
   responsive  —  sp
   ============================================================ */
@media (max-width:767px){
  body{line-height:1.85;padding-bottom:60px}
  html{scroll-padding-top:56px}
  .hdr__inner{height:54px;padding-inline:14px}
  .hdr__logo img{width:74px}
  .hdr__burger{width:38px;gap:6px}
  .drawer{inset:54px 0 auto;max-height:calc(100vh - 54px)}
  .wrap,.hero__inner,.why__inner,.sys__inner,.lect__inner,
  .flow__inner,.found__inner,.last__inner,.themes__inner,.four__copy{
    width:calc(100% - 40px);padding-inline:0;max-width:none;
  }
  .h2{font-size:22px;line-height:1.66}
  .eyebrow{font-size:12.5px;margin-bottom:18px;text-align:center}

  .btn--lg{padding:14px 16px;font-size:15px}
  .btn--lg .btn__ico svg{width:26px}
  .ctarow{gap:12px}
  .ctarow .btn{flex:1 1 0;justify-content:center;min-width:0}
  .arrowlink{font-size:15px}
  .arrowlink i{width:88px}
  .arrowlink i::after{width:60px;height:60px;right:-30px}
  .goldband{font-size:16px;padding:22px 18px}
  .goldband--wide{width:calc(100% - 40px)}
  .themes .bigband{padding:10px 0 2px}

  /* hero */
  .hero{padding:88px 0 40px;min-height:0}
  .hero__media img{object-position:72% 40%;opacity:.5}
  .hero__mark{width:64%;right:-4%;bottom:auto;top:104px;opacity:.16}
  .hero__ttl{font-size:30px;line-height:1.5}
  .hero__ttl-main{margin-bottom:20px}
  .ribbon{font-size:14px;padding:6px 10px;margin-bottom:8px;display:block;letter-spacing:.02em}
  .hero__lead{font-size:15px;margin-top:18px}
  .hero__btns{gap:12px;margin-top:26px}
  .hero__btns .btn{flex:1 1 0;justify-content:center;min-width:0}

  /* why */
  .why{padding-top:64px}
  .why__photo{width:100%;opacity:.9}
  .why__photo::after{background:linear-gradient(180deg,rgba(44,46,46,.72),rgba(44,46,46,.9))}
  .why__body{max-width:none;text-align:center}
  .why .h2{text-align:center}
  .why__lead{text-align:left;font-size:14.5px;margin-top:24px}
  .pains{grid-template-columns:1fr;gap:10px;margin-top:44px}
  .pains li{padding:13px 14px;font-size:13.5px;line-height:1.8;min-height:0}
  .why__bridge{font-size:20px;margin-top:44px}
  .why .goldband--wide{margin-top:26px}

  /* four */
  .four{padding-bottom:64px}
  .four__top{padding-top:120px;min-height:0}
  .four__top::after{clip-path:polygon(0 100%,100% 62%,100% 100%)}
  .four__copy{max-width:none;text-align:center}
  .four__copy .h2{text-align:center}
  .four__lead{text-align:left;max-width:none;font-size:14.5px;margin-top:22px}
  .four__art{top:0;right:auto;margin-top:20px;opacity:.85}
  .four__vttl{font-size:24px;margin:46px 0 0;letter-spacing:.06em}
  .four__vttl span{display:block}
  .four__grid{margin-top:36px;gap:34px 20px}
  .pcard{padding:0 14px;border-left:1px solid rgba(200,180,130,.4)}
  .pcard:nth-child(odd){border-left:0;padding-left:0}
  .pcard:nth-child(even){padding-right:0}
  .pcard__no{justify-content:flex-start;font-size:11.5px}
  .pcard__ico{height:60px;margin:18px 0 10px}
  .pcard__ico svg{width:46px;height:46px}
  .pcard__ttl{font-size:18px;margin-bottom:14px}
  .pcard__txt{font-size:13.5px;line-height:1.9}
  .four__more{justify-content:center;padding-right:0;margin-top:44px}

  /* themes */
  .themes{padding-bottom:56px}
  .themes__inner{padding-top:20px}
  .themes__lead{font-size:15px;margin-top:18px}
  .themes__badge{font-size:15px;padding:12px 18px;width:100%;text-align:center;display:block}
  .themes__grid{margin-top:30px;gap:22px;max-width:none}
  .tcard__catch{font-size:15px;top:16px}
  .tcard__ttl{font-size:22px;bottom:10px}
  .tcard__body{padding:20px 18px 0}
  .tcard__body>p{font-size:14px}
  .themes__note{margin-top:24px;font-size:12.5px;text-align:left}
  .themes__more{margin-top:40px}

  /* flow */
  .flow{padding:64px 0 64px}
  .flow__lead{font-size:14.5px;text-align:left;margin-top:24px}
  .flow__lead br{display:none}
  .steps{flex-direction:column;align-items:stretch;gap:0;margin-top:44px}
  .step{width:auto;display:flex;align-items:center;gap:20px;text-align:left}
  .step__circle{width:112px;height:112px;margin:0;flex:none;gap:6px}
  .step__no{font-size:13px}
  .step__circle svg{width:38px}
  .step__body h3{font-size:19px;margin-bottom:6px}
  .step__body p{font-size:14px}
  .step__arrow{margin:14px 0 14px 44px;transform:rotate(90deg);width:44px}
  .step__arrow svg{width:44px}
  .goldband--inner{margin-top:44px;padding:20px 16px}

  /* foundation */
  .found{padding:64px 0 64px}
  .found__photo{width:100%;opacity:.4}
  .found__photo::after{background:linear-gradient(180deg,rgba(41,41,41,.9),rgba(41,41,41,.96))}
  .found__mark{width:76%}
  .found__lead{font-size:14.5px;text-align:left;margin-top:24px}
  .found__lead br{display:none}
  .found .ctarow{margin-top:30px}

  /* system */
  .sys{padding-top:64px}
  .sys__photo{height:300px}
  .sys__inner{padding-bottom:64px;gap:34px}
  .sys__copy{text-align:center}
  .sys__copy .h2{text-align:center}
  .sys__lead{font-size:14.5px;text-align:left;margin-top:20px}
  .sysrows{gap:16px}
  .sysrows li{
    grid-template-columns:46% 1fr;grid-template-areas:"no txt" "ico txt" "ttl txt";
    gap:4px 0;padding:22px 14px;min-height:0;align-items:center;
  }
  .sysrows__no{grid-area:no;justify-content:center;font-size:11.5px}
  .sysrows__ico{grid-area:ico}
  .sysrows__ico svg{width:52px}
  .sysrows h3{grid-area:ttl;font-size:19px;text-align:center;letter-spacing:.01em}
  .sysrows__txt{grid-area:txt;grid-row:1/4;border-left:1px solid rgba(206,186,138,.55);padding-left:16px;font-size:13.2px;line-height:1.95;align-self:stretch}

  /* program */
  .prog{padding:56px 0 64px}
  .prog__box{width:calc(100% - 40px);padding:40px 20px 40px}
  .prog__grid{margin-top:36px;gap:38px}
  .prog__grid li{padding-inline:0}
  .prog__ico{height:64px;margin-bottom:16px}
  .prog__ico svg{width:52px}
  .prog__grid h3{font-size:18px}
  .prog__grid p{font-size:13.8px}
  .prog__grid p br{display:none}
  .prog__note{margin-top:34px;font-size:12.5px;text-align:left}
  .prog__more{margin-top:32px}

  /* lecturers */
  .lect{padding:64px 0 76px}
  .lect__grid{margin-top:40px;gap:40px}
  .lcard{display:block;gap:0}
  .lcard__photo{float:right;width:54%;max-width:206px;margin:0 0 12px 16px}
  .lcard__photo img{object-position:50% 18%}
  .lcard__body{display:block}
  .lcard__en{font-size:12.5px}
  .lcard__name{font-size:21px;margin:2px 0 12px}
  .lcard__role{font-size:13px}
  .lcard__num{font-size:13.5px;margin-top:12px}
  .lcard__txt{font-size:13.5px;margin-top:14px;clear:both;padding-top:4px}
  .lcard__more{font-size:14px;margin-top:12px;clear:both}
  .lect__more{margin-top:56px}

  /* last */
  .last{padding-bottom:64px}
  .lect__photo{height:200px}
  .bigband--ghost{padding-top:10px}
  .last__ttl{font-size:23px;margin-top:30px}
  .last .ctarow{margin-top:32px}

  /* footer */
  .ftr__inner{padding:40px 0 44px;gap:34px}
  .ftr__logo{width:112px}
  .ftr__name{font-size:20px}
  .ftr__name-en{font-size:11.5px}
  .ftr__links{grid-template-columns:repeat(2,1fr);gap:0 20px}
  .ftr__links ul li a{font-size:13.5px;padding:8px 0}
  .ftr__note{margin-top:26px;font-size:12.5px}
  .ftr__corp-name{font-size:17px;margin-bottom:16px}
  .ftr__tel{font-size:26px}
  .ftr__copy{font-size:13px;padding:8px 10px}

  /* sp fixed bar */
  .spbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;
    height:60px;background:#1b1d1d;
  }
  .spbar a{display:flex;align-items:center;justify-content:center;gap:8px;height:100%}
  .spbar svg{flex:none}
  .spbar__tel{width:56px;color:#e9dcb4}
  .spbar__tel svg{width:30px;height:30px}
  .spbar__white{flex:1;background:#fff;color:var(--navy-txt);font-weight:700;font-size:13px;line-height:1.25}
  .spbar__white svg{width:26px;height:22px}
  .spbar__white small{font-size:11.5px;display:block;font-weight:700}
  .spbar__navy{flex:1;background:var(--grad-cta);color:#fff;font-weight:700;font-size:15px;letter-spacing:.04em}
  .spbar__navy svg{width:26px;height:22px}
}

/* ============================================================
   motion
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
}

/* ============================================================
   TYPE SCALE — tablet (768–1340px)
   ============================================================ */
@media (max-width:1340px){
  .hdr__nav,.hdr__icons,.hdr__cta{display:none}
  .hdr__burger{display:flex;flex-direction:column;justify-content:center;gap:7px;margin-left:auto;width:44px}
  .hdr__burger span{display:block;height:2px;background:#fff;transition:transform .3s,opacity .3s}
  .hdr__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .hdr__burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .hdr__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  .hdr__inner{height:72px;padding-inline:20px}
  .hdr__logo img{width:124px}
  .drawer{inset:72px 0 auto;max-height:calc(100vh - 72px)}
  html{scroll-padding-top:80px}

  .eyebrow{font-size:14px;margin-bottom:22px}
  .h2{font-size:26px}
  .h2--xl{font-size:34px}
  .goldband{font-size:24px}
  .goldband--inner p{font-size:21px}
  .btn--lg{font-size:20px;padding:14px 24px}
  .btn--lg .btn__ico svg{width:30px}
  .arrowlink{font-size:18px}

  .hero{padding-top:152px}
  .hero__ttl{font-size:46px}
  .ribbon{font-size:20px;padding:7px 13px}
  .hero__lead{font-size:16px}
  .hero__btns{gap:22px}

  .why__lead,.four__lead,.flow__lead,.found__lead,.sys__lead{font-size:16px}
  .pains li{font-size:16px}
  .why__bridge{font-size:26px}
  .four__vttl{font-size:26px}
  .pcard__no,.sysrows__no,.step__no{font-size:14px}
  .pcard__ttl{font-size:22px}
  .pcard__txt,.tcard__body>p,.sysrows__txt,.lcard__txt,.step__body p{font-size:15px}
  .themes__lead,.themes__badge,.tcard__catch{font-size:17px}
  .tcard__ttl{font-size:26px}
  .tcard__more,.lcard__more{font-size:16px}
  .themes__note{font-size:14px}
  .step__body h3{font-size:21px}
  .sysrows h3{font-size:25px}
  .prog__grid h3{font-size:20px}
  .prog__grid p,.prog__note{font-size:16px}
  .lcard__name{font-size:22px}
  .lcard__role,.lcard__num,.lcard__en{font-size:15px}
  .lcard__num b{font-size:26px}
  .lcard__num span{font-size:17px}
  .ftr__name{font-size:22px}
  .ftr__tel{font-size:22px}
}

/* ============================================================
   TYPE SCALE — SP (≤767px)  カンプ実測値（375px幅基準）
   ============================================================ */
@media (max-width:767px){
  .eyebrow{font-size:12px;letter-spacing:.11em;margin-bottom:16px}
  .h2{font-size:22px;line-height:1.72}
  .h2--xl{font-size:28px;line-height:1.6}
  .goldband{font-size:22px;line-height:1.7;padding:20px 16px}
  .goldband--inner p{font-size:16px}
  .btn--lg{font-size:15px;padding:12px 10px}
  .btn--lg .btn__ico svg{width:24px}
  .btn--lg .btn__txt small{font-size:12px}
  .arrowlink{font-size:18px}

  .hero{padding-top:86px}
  .hero__ttl{font-size:28px;line-height:1.68}
  .hero__ttl-main{margin-bottom:16px}
  .ribbon{font-size:15px;padding:6px 11px;margin-bottom:7px}
  .hero__lead{font-size:14px;line-height:1.85;margin-top:18px}

  .why__lead,.four__lead,.flow__lead,.found__lead,.sys__lead{font-size:14px;line-height:1.85}
  .pains li{font-size:14px;line-height:1.75;padding:13px 14px}
  .why__bridge{font-size:22px}
  .four__vttl{font-size:22px}
  .pcard__no,.sysrows__no,.step__no{font-size:12px}
  .pcard__ttl{font-size:18px;margin-bottom:14px}
  .pcard__txt{font-size:13px;line-height:1.85}
  .themes__lead{font-size:14px}
  .themes__badge{font-size:15px;padding:12px 16px}
  .tcard__catch{font-size:15px}
  .tcard__ttl{font-size:22px}
  .tcard__body>p{font-size:13px;line-height:1.85}
  .tcard__more,.lcard__more{font-size:16px}
  .themes__note{font-size:12px}
  .step__body h3{font-size:16px;margin-bottom:6px}
  .step__body p{font-size:13px;line-height:1.8}
  .sysrows h3{font-size:20px}
  .sysrows__txt{font-size:13px;line-height:1.85}
  .prog__grid h3{font-size:18px;margin-bottom:12px}
  .prog__grid p,.prog__note{font-size:14px;line-height:1.85}
  .lcard__en{font-size:14px}
  .lcard__name{font-size:22px;margin:4px 0 12px}
  .lcard__role,.lcard__num{font-size:14px}
  .lcard__num b{font-size:24px}
  .lcard__num span{font-size:15px}
  .lcard__txt{font-size:14px;line-height:1.85;margin-top:14px}
  .ftr__links ul li a{font-size:13px}
  .ftr__name{font-size:20px}
  .ftr__name-en{font-size:11px}
  .ftr__note{font-size:12px}
  .ftr__corp-name{font-size:16px}
  .ftr__tel{font-size:22px}
  .ftr__copy{font-size:12px}
}

/* SP — 上書き順の都合で再指定するレイアウト値 */
@media (max-width:767px){
  html{scroll-padding-top:56px}
  .hdr__inner{height:54px;padding-inline:14px}
  .hdr__logo img{width:74px}
  .hdr__burger{width:38px;gap:6px}
  .drawer{inset:54px 0 auto;max-height:calc(100vh - 54px)}
  .hero__btns{gap:12px;margin-top:24px}
}


/* ============================================================
   FAQ
   ============================================================ */
.faq{background:var(--light);padding:96px 0 110px}
.faq__inner{width:min(100% - 48px,1000px);margin-inline:auto}
.faq .h2{margin-bottom:52px}
.faq__list{border-top:1px solid #c8ccd2}
.faq__item{border-bottom:1px solid #c8ccd2}
.faq__item summary{
  list-style:none;cursor:pointer;position:relative;
  display:block;padding:26px 64px 26px 46px;
  font-family:var(--f-sans);font-weight:700;font-size:19px;line-height:1.7;
  letter-spacing:.03em;color:var(--navy-txt);
}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::before{
  content:"Q";position:absolute;left:6px;top:24px;
  font-family:var(--f-en);font-weight:700;font-size:22px;color:#b39a63;
}
.faq__item summary::after{
  content:"";position:absolute;right:14px;top:50%;
  width:15px;height:15px;margin-top:-8px;
  border-right:2px solid #7c828c;border-bottom:2px solid #7c828c;
  transform:rotate(45deg);transform-origin:center;transition:transform .3s;
}
.faq__item[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.faq__item summary:hover{opacity:.72}
.faq__a{padding:0 64px 30px 46px;position:relative}
.faq__a::before{
  content:"A";position:absolute;left:6px;top:-2px;
  font-family:var(--f-en);font-weight:700;font-size:22px;color:#3f5f8c;
}
.faq__a p{
  font-family:var(--f-sans);font-weight:400;font-size:16px;line-height:1.95;
  letter-spacing:.02em;color:#3b3f46;
}
.faq__note{margin-top:38px;text-align:center;font-family:var(--f-sans);font-size:15px;color:#5a5f66}

@media (max-width:1340px){
  .faq{padding:76px 0 84px}
  .faq__item summary{font-size:17px;padding:22px 52px 22px 40px}
  .faq__a{padding:0 52px 26px 40px}
  .faq__a p{font-size:15px}
}
@media (max-width:767px){
  .faq{padding:56px 0 64px}
  .faq__inner{width:calc(100% - 40px)}
  .faq .h2{margin-bottom:28px}
  .faq__item summary{font-size:15px;padding:18px 34px 18px 28px;line-height:1.65}
  .faq__item summary::before{font-size:17px;left:2px;top:17px}
  .faq__item summary::after{width:11px;height:11px;right:8px}
  .faq__a{padding:0 8px 22px 28px}
  .faq__a::before{font-size:17px;left:2px}
  .faq__a p{font-size:14px;line-height:1.9}
  .faq__note{margin-top:26px;font-size:13px}
}

/* ============================================================
   READABILITY — 中間幅・SPでの版面調整
   ============================================================ */
@media (max-width:1340px){
  .tcard__body{padding:26px 40px 0}
  .tcard__more{padding:24px 0 22px}
  .sysrows li{grid-template-columns:92px 128px 250px 1fr;padding-right:32px}
  .sysrows__txt{padding-left:28px}
}
@media (max-width:767px){
  .tcard__body{padding:20px 18px 0}
  .tcard__more{padding:18px 0 18px}
  .sysrows li{grid-template-columns:50% 1fr;padding:22px 12px}
  .sysrows__txt{padding-left:16px}
  .prog__grid p{max-width:none}
  .hero__ttl,.hero__lead{text-shadow:0 1px 10px rgba(10,12,14,.6)}
}

.faq__more{display:flex;justify-content:center;margin-top:40px}
@media (max-width:767px){.faq__more{margin-top:28px}}

/* ============================================================
   悩みカードの版面（最終上書き）
   5列は1341px以上のみ。それ以下は列を減らし、箱は中身の高さに合わせる。
   ============================================================ */
@media (max-width:1340px){
  .pains{grid-template-columns:repeat(3,1fr);gap:24px;max-width:none;margin-top:64px}
  .pains li{display:block;min-height:0;padding:22px 20px;text-align:left}
}
@media (max-width:1100px){
  .pains{grid-template-columns:repeat(2,1fr);gap:20px}
}
@media (max-width:767px){
  .pains{grid-template-columns:1fr;gap:10px;margin-top:44px}
  .pains li{padding:14px 16px;font-size:14px;line-height:1.8}
}

/* ============================================================
   4つの視点カードの写真
   ============================================================ */
.pcard__img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;margin-bottom:20px}

/* ============================================================
   セクション間の帯写真
   ============================================================ */
.strip{position:relative;height:380px;overflow:hidden;background:var(--charcoal-2)}
.strip img{width:100%;height:100%;object-fit:cover;display:block}
.strip::after{
  content:;position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(28,30,30,.72) 0%,rgba(28,30,30,.28) 34%,rgba(28,30,30,.3) 62%,rgba(28,30,30,.78) 100%);
}

/* ============================================================
   学びの流れの背景写真
   ============================================================ */
.flow{position:relative;overflow:hidden}
.flow::before{
  content:;position:absolute;inset:0;z-index:0;
  background:url(../img/flow-bg.jpg) center/cover no-repeat;
  opacity:.2;
}
.flow__inner{position:relative;z-index:2}

@media (max-width:1340px){
  .pcard__img{margin-bottom:16px}
  .strip{height:300px}
}
@media (max-width:767px){
  .pcard__img{margin-bottom:12px}
  .strip{height:190px}
  .flow::before{opacity:.16}
}

/* ============================================================
   受講者の声
   ============================================================ */
.voice{background:#fff;padding:96px 0 104px}
.voice__inner{width:min(100% - 48px,1180px);margin-inline:auto}
.voice .h2{margin-bottom:56px}

.vcard{
  display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:center;
  background:#f5f6f8;padding:48px;border-left:4px solid var(--gold-line);
}
.vcard__photo img{width:100%;aspect-ratio:800/1120;object-fit:cover;display:block}

.vcard__quote{margin:0;position:relative;padding-top:14px}
.vcard__quote::before{
  content:"“";position:absolute;left:-6px;top:-26px;
  font-family:var(--f-en);font-size:86px;line-height:1;color:#c6b184;
}
.vcard__quote p{
  font-family:var(--f-serif);font-weight:400;font-size:17px;
  line-height:2.05;letter-spacing:.02em;color:#2b2f35;
}
.vcard__quote p + p{margin-top:20px}

.vcard__who{margin-top:30px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.vcard__name{
  font-family:var(--f-serif);font-weight:600;font-size:22px;
  letter-spacing:.08em;color:#20242b;
}
.vcard__clinic{font-family:var(--f-sans);font-size:15px;color:#5a5f66}
.vcard__clinic a{color:var(--navy-txt);text-decoration:underline;text-underline-offset:3px}

.vcard__stats{display:flex;flex-wrap:wrap;gap:14px 48px;margin:26px 0 0;padding-top:24px;border-top:1px solid #d6d9de}
.vcard__stats dt{
  font-family:var(--f-sans);font-weight:700;font-size:14px;
  letter-spacing:.06em;color:#5a5f66;margin-bottom:4px;
}
.vcard__stats dd{
  margin:0;font-family:var(--f-sans);font-size:16px;color:#20242b;
  display:flex;align-items:baseline;gap:8px;
}
.vcard__stats b{
  font-family:var(--f-en);font-weight:700;font-size:34px;
  line-height:1;color:var(--navy-txt);
}
.vcard__stats i{font-style:normal;font-size:20px;color:#9aa1aa;margin:0 2px}
.vcard__note{margin-top:18px;font-family:var(--f-sans);font-size:12.5px;line-height:1.8;color:#7d838b}

@media (max-width:1340px){
  .voice{padding:72px 0 80px}
  .voice .h2{margin-bottom:38px}
  .vcard{grid-template-columns:228px 1fr;gap:36px;padding:34px}
  .vcard__quote p{font-size:16px;line-height:1.95}
  .vcard__name{font-size:20px}
  .vcard__stats b{font-size:28px}
}
@media (max-width:767px){
  .voice{padding:52px 0 58px}
  .voice__inner{width:calc(100% - 40px)}
  .voice .h2{margin-bottom:24px}
  .vcard{grid-template-columns:1fr;gap:22px;padding:24px 20px;border-left-width:3px}
  .vcard__photo{max-width:190px}
  .vcard__quote{padding-top:10px}
  .vcard__quote::before{font-size:60px;top:-18px;left:-2px}
  .vcard__quote p{font-size:14.5px;line-height:1.95}
  .vcard__quote p + p{margin-top:14px}
  .vcard__who{margin-top:22px;gap:4px 12px}
  .vcard__name{font-size:18px}
  .vcard__clinic{font-size:13.5px}
  .vcard__stats{gap:12px 28px;margin-top:20px;padding-top:18px}
  .vcard__stats dt{font-size:12.5px}
  .vcard__stats b{font-size:26px}
  .vcard__note{font-size:11.5px;margin-top:14px}
}

/* ===== 講師カード：PCでは写真を左右交互に ===== */
@media (min-width:768px){
  .lect__grid .lcard:nth-child(even){grid-template-columns:1fr 288px}
  .lect__grid .lcard:nth-child(even) .lcard__photo{grid-column:2;grid-row:1}
  .lect__grid .lcard:nth-child(even) .lcard__body{grid-column:1;grid-row:1}
}

/* トップの受講料に税抜を併記 */
.price__note{margin-top:6px;font-size:14px;letter-spacing:.04em;color:#8d939c}

/* ===== 無料プレゼント資料 ===== */
.gift{background:#f4f1e9;padding:96px 0}
.gift__inner{
  width:min(100% - 48px,1180px);margin-inline:auto;
  display:grid;grid-template-columns:300px 1fr;gap:64px;align-items:center;
}
.gift__cover img{
  width:100%;height:auto;display:block;
  box-shadow:0 22px 48px rgba(11,25,46,.26);
}
.gift__eyebrow{font-family:var(--f-en);font-weight:700;font-size:13px;letter-spacing:.24em;color:#9a7f3f}
.gift__ttl{
  font-family:var(--f-serif);font-weight:600;font-size:clamp(26px,3.2vw,40px);
  line-height:1.5;letter-spacing:.06em;color:var(--navy);margin-top:14px;
}
.gift__txt{
  font-family:var(--f-sans);font-size:16px;line-height:2;color:#3a3f47;margin-top:22px;
  text-align:justify;
}
.gift__list{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}
.gift__list li{
  font-family:var(--f-sans);font-size:15px;line-height:1.8;color:#2b3038;
  padding-left:26px;position:relative;
}
.gift__list li::before{
  content:"";position:absolute;left:4px;top:.62em;width:9px;height:9px;
  background:#b99b52;transform:rotate(45deg);
}
.btn--gold{background:#b99b52;color:#fff;border:1px solid #b99b52}
.btn--gold:hover{background:#a98a42;border-color:#a98a42}
.gift__btn{margin-top:30px}
.gift__note{font-family:var(--f-sans);font-size:13.5px;color:#6b7078;margin-top:14px}
@media (max-width:900px){
  .gift{padding:64px 0}
  .gift__inner{grid-template-columns:1fr;gap:34px}
  .gift__cover{max-width:240px;margin-inline:auto}
}
@media (max-width:767px){
  .gift{padding:52px 0}
  .gift__txt{font-size:14.5px}
  .gift__list li{font-size:14px}
  .gift__note{font-size:12.5px}
}

/* ============ GIFT BANNER（トップ・ヒーロー直下） ============ */
.gbnr{background:#0b192e;padding:0}
.gbnr__in{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px;
  max-width:1180px;margin:0 auto;padding:30px 40px;
  text-decoration:none;color:#fff;
  border-top:2px solid #b99b52;border-bottom:2px solid #b99b52;
  transition:background .25s;
}
.gbnr__in:hover{background:#122540}
.gbnr__covers{display:flex;align-items:flex-end}
.gbnr__covers img{
  width:62px;height:auto;display:block;
  border:1px solid rgba(226,205,151,.55);
  box-shadow:0 6px 20px rgba(0,0,0,.5);
  background:#fff;
}
.gbnr__covers img + img{margin-left:-22px}
.gbnr__covers img:nth-child(2){transform:translateY(-4px)}
.gbnr__covers img:nth-child(3){transform:translateY(-8px)}
.gbnr__covers img:nth-child(4){transform:translateY(-12px)}
.gbnr__body{display:block}
.gbnr__tag{
  display:inline-block;font-family:var(--f-sans);font-size:11.5px;font-weight:700;
  letter-spacing:.18em;color:#0b192e;background:#b99b52;padding:4px 11px;margin-bottom:11px;
}
.gbnr__ttl{
  display:block;font-family:var(--f-serif);font-weight:600;font-size:24px;
  letter-spacing:.04em;line-height:1.45;color:#fff;
}
.gbnr__ttl em{font-style:normal;color:#e2cd97}
.gbnr__txt{
  display:block;font-family:var(--f-sans);font-size:13.5px;line-height:1.85;
  color:#a9bace;margin-top:8px;max-width:52em;
}
.gbnr__btn{
  display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  font-family:var(--f-sans);font-size:15px;font-weight:700;letter-spacing:.06em;
  background:#b99b52;color:#fff;padding:16px 26px;transition:background .25s;
}
.gbnr__btn svg{width:20px;height:20px;flex:none}
.gbnr__in:hover .gbnr__btn{background:#cdae62}

@media (max-width:900px){
  .gbnr__in{grid-template-columns:auto 1fr;gap:20px;padding:24px 22px}
  .gbnr__btn{grid-column:1 / -1;justify-content:center;margin-top:4px}
  .gbnr__ttl{font-size:20px}
}
@media (max-width:560px){
  .gbnr__in{grid-template-columns:1fr;gap:16px;padding:24px 18px}
  .gbnr__covers{justify-content:flex-start}
  .gbnr__covers img{width:54px}
  .gbnr__ttl{font-size:19px}
  .gbnr__txt{font-size:13px}
}

/* ============ LINE BANNER ============ */
.lbnr{background:#f4f1e9;padding:64px 0}
.lbnr__in{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;
  max-width:1060px;margin:0 auto;padding:28px 34px;
  background:#fff;border:1px solid #dcd6c6;border-left:5px solid #06c755;
  text-decoration:none;color:#1d2128;transition:box-shadow .25s,transform .25s;
}
.lbnr__in:hover{box-shadow:0 14px 34px rgba(11,25,46,.13);transform:translateY(-2px)}
.lbnr__ico{
  width:62px;height:62px;border-radius:50%;background:#06c755;color:#fff;
  display:flex;align-items:center;justify-content:center;flex:none;
}
.lbnr__ico svg{width:34px;height:34px}
.lbnr__tag{
  display:inline-block;font-family:var(--f-sans);font-size:11.5px;font-weight:700;
  letter-spacing:.16em;color:#06904a;margin-bottom:7px;
}
.lbnr__ttl{
  display:block;font-family:var(--f-serif);font-weight:600;font-size:20px;
  line-height:1.5;letter-spacing:.03em;color:#0b192e;
}
.lbnr__txt{
  display:block;font-family:var(--f-sans);font-size:13.5px;line-height:1.85;
  color:#5b636e;margin-top:8px;
}
.lbnr__btn{
  display:inline-block;white-space:nowrap;background:#06c755;color:#fff;
  font-family:var(--f-sans);font-size:15px;font-weight:700;letter-spacing:.06em;
  padding:15px 28px;transition:background .25s;
}
.lbnr__in:hover .lbnr__btn{background:#05b04c}
@media (max-width:860px){
  .lbnr{padding:48px 18px}
  .lbnr__in{grid-template-columns:auto 1fr;gap:18px;padding:24px 22px}
  .lbnr__btn{grid-column:1 / -1;text-align:center}
  .lbnr__ttl{font-size:17.5px}
}

/* ============ 追従バナー（PC） ============ */
.stick{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:flex;align-items:center;gap:26px;
  padding:14px 26px;background:rgba(11,25,46,.96);
  border-top:2px solid #b99b52;
  transform:translateY(100%);transition:transform .35s ease;
  backdrop-filter:saturate(140%) blur(4px);
}
.stick.is-on{transform:translateY(0)}
.stick__t{
  font-family:var(--f-sans);font-size:14px;color:#d5dde8;margin:0;
  flex:1;letter-spacing:.03em;
}
.stick__t em{font-style:normal;color:#e2cd97;font-weight:700}
.stick__btns{display:flex;gap:10px}
.stick__b{
  display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-family:var(--f-sans);font-size:14px;font-weight:700;letter-spacing:.04em;
  padding:12px 20px;text-decoration:none;transition:filter .2s;
}
.stick__b svg{width:17px;height:17px;flex:none}
.stick__b:hover{filter:brightness(1.12)}
.stick__b--gold{background:#b99b52;color:#fff}
.stick__b--line{background:#06c755;color:#fff}
.stick__b--navy{background:#fff;color:#0b192e}
.stick__x{
  background:none;border:0;color:#8fa0b6;font-size:24px;line-height:1;
  cursor:pointer;padding:4px 6px;flex:none;
}
.stick__x:hover{color:#fff}
@media (max-width:900px){ .stick{display:none} }

/* ============ POWER PARTNER（講座の先のコンサルティング） ============ */
.pp{background:#0b192e;padding:104px 0}
.pp__inner{max-width:1120px;margin:0 auto;padding:0 32px}
.pp__eyebrow{
  font-family:var(--f-en);font-weight:700;font-size:13px;letter-spacing:.26em;
  color:#b99b52;margin:0 0 20px;
}
.pp__ttl{
  font-family:var(--f-serif);font-weight:600;font-size:34px;line-height:1.5;
  letter-spacing:.04em;color:#fff;margin:0 0 22px;
}
.pp__ttl em{font-style:normal;color:#e2cd97}
.pp__lead{
  font-family:var(--f-sans);font-size:15px;line-height:2.05;color:#a9bace;
  margin:0 0 52px;max-width:58em;
}
.pp__list{
  list-style:none;margin:0 0 44px;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.16);
}
.pp__item{background:#0b192e;padding:34px 30px 36px}
.pp__no{
  font-family:var(--f-en);font-weight:700;font-size:13px;letter-spacing:.2em;
  color:#b99b52;margin:0 0 16px;
}
.pp__h{
  font-family:var(--f-serif);font-weight:600;font-size:19px;letter-spacing:.04em;
  color:#fff;margin:0 0 14px;line-height:1.5;
}
.pp__t{font-family:var(--f-sans);font-size:13.5px;line-height:2;color:#9cb0c6;margin:0}
.pp__note{
  font-family:var(--f-sans);font-size:14px;line-height:2;color:#c3cedd;
  margin:0 0 30px;max-width:58em;
}
.pp__btns{display:flex;flex-wrap:wrap;gap:16px}
.btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.btn--ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
@media (max-width:980px){
  .pp{padding:76px 0}
  .pp__list{grid-template-columns:1fr}
  .pp__ttl{font-size:26px}
}
@media (max-width:560px){
  .pp__inner{padding:0 20px}
  .pp__ttl{font-size:22px}
  .pp__item{padding:26px 22px 28px}
}

/* ============================================================
   トップ｜2027年の開催日程
   ============================================================ */
.dates{background:#f3f3f3;padding:96px 0 100px;color:#20242b}
.dates__inner{width:min(100% - 48px,var(--wrap));margin-inline:auto}
.dates__hd{text-align:center}
.dates__en{font-family:var(--f-en);font-size:13px;letter-spacing:.42em;color:#a4977a;
  text-indent:.42em}
.dates__ttl{font-family:var(--f-serif);font-size:clamp(24px,3vw,34px);font-weight:600;
  color:#0b192e;letter-spacing:.06em;margin-top:14px;line-height:1.6}
.dates__lead{margin-top:18px;font-size:15px;line-height:2.1;color:#4a5464;text-align:center;
  max-width:720px;margin-inline:auto}
.dates__list{margin-top:44px;border-top:1px solid #cfd4db}
.dts{display:grid;grid-template-columns:266px 1fr auto;gap:32px;align-items:center;
  border-bottom:1px solid #cfd4db;padding:26px 26px 26px 22px;background:#fff}
.dts__d{display:flex;align-items:baseline;gap:12px}
.dts__no{font-family:var(--f-en);font-size:12px;letter-spacing:.2em;color:#a4977a;white-space:nowrap}
.dts__day{font-family:var(--f-serif);font-size:20px;font-weight:600;color:#0b192e;
  letter-spacing:.03em;white-space:nowrap}
.dts__b{min-width:0}
.dts__ttl{font-family:var(--f-serif);font-size:19px;font-weight:600;color:#0b192e;letter-spacing:.04em}
.dts__sub{font-size:13.5px;color:#6b7382;margin-top:5px;line-height:1.9}
.dts__go{
  display:inline-flex;align-items:center;gap:10px;white-space:nowrap;
  font-size:14px;letter-spacing:.06em;color:#0b192e;
  border:1px solid #0b192e;padding:11px 22px;transition:background .25s,color .25s;
}
.dts__go:hover{background:#0b192e;color:#fff;opacity:1}
.dates__meta{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px 32px;justify-content:center;
  font-size:13.5px;color:#5a6372;letter-spacing:.03em}
.dates__meta b{color:#0b192e;font-weight:600}
.dates__more{margin-top:34px;text-align:center}
@media (max-width:900px){
  .dates{padding:72px 0 76px}
  .dts{grid-template-columns:1fr;gap:14px;padding:22px 18px}
  .dts__go{justify-content:center}
}

/* ============================================================
   トップ｜全12講座のご案内（3講座カードの下）
   ============================================================ */
.twelve{
  margin-top:64px;background:rgba(255,255,255,.9);border:1px solid rgba(11,25,46,.14);
  padding:44px 48px 46px;
}
.twelve__hd{text-align:center;margin-bottom:36px}
.twelve__hd b{
  display:block;font-family:var(--f-serif);font-weight:600;
  font-size:clamp(21px,2.4vw,28px);color:#0b192e;letter-spacing:.06em;line-height:1.6;
}
.twelve__hd span{
  display:block;margin-top:12px;font-size:14.5px;color:#4a5464;letter-spacing:.03em;line-height:1.9;
}
.twelve__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.twelve__g{border-top:2px solid #0b192e;padding-top:14px}
.twelve__g--soon{border-top-color:#c3bda9}
.twelve__t{
  font-family:var(--f-serif);font-weight:600;font-size:15px;color:#0b192e;letter-spacing:.04em;
  line-height:1.6;
}
.twelve__t em{
  display:inline-block;font-style:normal;font-size:10.5px;letter-spacing:.1em;
  border:1px solid #0b192e;color:#0b192e;padding:2px 8px;margin-left:8px;vertical-align:2px;
  white-space:nowrap;
}
.twelve__g--soon .twelve__t{color:#5c6270}
.twelve__g--soon .twelve__t em{border-color:#b3ada0;color:#7e8593}
.twelve__g ul{margin-top:12px}
.twelve__g li{
  font-size:14.5px;line-height:2.05;color:#20242b;letter-spacing:.02em;
  padding-left:16px;position:relative;
}
.twelve__g li::before{
  content:"";position:absolute;left:0;top:14px;width:8px;height:1.5px;background:#a4977a;
}
.twelve__g--soon li{color:#6b7280}
.twelve__note{margin-top:32px;text-align:center;font-size:13.5px;color:#4a5464;letter-spacing:.02em}
@media (max-width:1100px){
  .twelve{padding:36px 30px 38px}
  .twelve__grid{grid-template-columns:repeat(2,1fr);gap:26px 30px}
}
@media (max-width:620px){
  .twelve{margin-top:44px;padding:28px 20px 30px;border-left:0;border-right:0;
    width:calc(100% + 48px);margin-left:-24px}
  .twelve__grid{grid-template-columns:1fr;gap:22px}
  .twelve__hd{margin-bottom:26px}
  .twelve__t{font-size:14.5px}
  .twelve__g li{font-size:15px}
}

/* フッターの公式SNS */
.ftr__sns{list-style:none;display:flex;gap:14px;margin-top:22px;padding:0;flex-wrap:wrap}
.ftr__sns a{display:inline-flex;align-items:center;gap:7px;color:#e2e2e2;text-decoration:none;
  font-family:var(--f-sans);font-weight:400;font-size:13px;letter-spacing:.04em;
  border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 14px 7px 12px;transition:border-color .2s,color .2s}
.ftr__sns a:hover,.ftr__sns a:focus-visible{color:#fff;border-color:rgba(255,255,255,.7);outline:none}
.ftr__sns svg{width:18px;height:18px;flex:none}
@media (max-width:767px){.ftr__sns{gap:10px}.ftr__sns a{font-size:12px;padding:6px 12px 6px 10px}}
