/* ===========================================================
   mckinsey-site kata — McKinsey Design System 実測トークン版
   すべての数値は www.mckinsey.com/jp/overview の実測 (2026-09-22)。
   計測条件: Chrome / viewport 1600・1440・1280・1024・768・390
   =========================================================== */
:root{
  /* 色（--mdc-color-* の実値） */
  --deep:#051C2C; --electric:#2251FF; --ink:#000;
  --text:#333333; --muted:#666666; --hint:#757575;
  --gray-30:#B3B3B3; --gray-18:#D0D0D0; --gray-10:#E6E6E6;
  --gray-06:#F0F0F0; --gray-04:#F5F5F5; --gray-02:#FAFAFA; --white:#fff;
  /* 書体（--mdc-font-family-japanese-*） */
  --serif:"Noto Serif JP","ＭＳ Ｐ明朝","MS PMincho",Georgia,serif;
  --sans:"Noto Sans JP","ＭＳ Ｐゴシック","MS PGothic","Helvetica Neue",Arial,sans-serif;
  --w-light:300; --w-medium:500; --w-bold:700;
  /* レイアウト: ページ1440上限 / コンテンツ85%・最大1224 / 左右7.5% */
  --page:1440px; --col:85%; --col-max:1224px;
  --gutter-lg:32px; --gutter-xl:48px;
  --header-h:90px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:var(--w-light);font-size:16px;line-height:24px;
  color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select{font:inherit}
h1,h2,h3,h4,h5,h6{font-weight:inherit;overflow-wrap:anywhere}
/* 実測: ページ全体に上限は無い（セクションはビューポート全幅）。
   コンテンツ列だけが min(85%, 1224px) で中央。1920 で x=348 / 1440 で x=108 / 1280 で x=96 */
main{width:100%}
.wrap{width:min(var(--col),var(--col-max));margin:0 auto}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;z-index:100;
  background:var(--white);color:var(--ink);padding:12px 16px;border:2px solid var(--electric)}

/* ===== typography（実測: ts-2 52/62.4・ts-3 44/52.8・ts-4 36/43.2, すべて serif 300） ===== */
.ts-2{font-family:var(--serif);font-weight:var(--w-light);font-size:44px;line-height:1.2;color:var(--ink)}
.ts-3{font-family:var(--serif);font-weight:var(--w-light);font-size:36px;line-height:1.2;color:var(--ink)}
.ts-4{font-family:var(--serif);font-weight:var(--w-light);font-size:36px;line-height:1.2;color:var(--ink)}
.ts-7{font-size:18px;line-height:28px;font-weight:var(--w-light)}
.ts-8{font-size:16px;line-height:24px;font-weight:var(--w-light)}
.h2{font-family:var(--serif);font-weight:var(--w-light);font-size:36px;line-height:1.2;color:var(--ink)}
.h5{font-size:24px;line-height:28px;font-weight:var(--w-medium);color:var(--ink)}
.h6{font-size:20px;line-height:32px;font-weight:var(--w-medium);color:var(--ink)}
@media(min-width:1280px){
  .ts-2{font-size:52px;line-height:62.4px}
  .ts-3{font-size:44px;line-height:52.8px}
}
/* セクション見出し: 16/24 fw500 ls1.2px 中央 */
.sec-title{font-family:var(--sans);font-size:16px;font-weight:var(--w-medium);line-height:24px;
  letter-spacing:1.2px;text-align:center;color:var(--ink)}
.sec-title.border{text-align:left;letter-spacing:1.2px;border-top:1px solid var(--ink);padding-top:24px}
/* 説明文: 20/32・幅918/1224 (75%)・中央 */
.sec-dek{width:75%;max-width:918px;margin:32px auto 0;font-size:20px;line-height:32px;
  font-weight:var(--w-light);text-align:center;color:var(--text)}
.sec-dek.left{text-align:left;margin-left:0}
.eyebrow{font-size:14px;font-weight:var(--w-medium);line-height:20px;color:var(--text)}

/* ===== links & buttons（CTA 16/24 fw500, icon gap 8） ===== */
.arrow{display:inline-block;width:16px;height:16px;flex:none;background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><path d="M4 12h15M13 6l6 6-6 6"/></svg>') center/contain no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><path d="M4 12h15M13 6l6 6-6 6"/></svg>') center/contain no-repeat;
  transition:transform .15s}
.cta{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:var(--w-medium);
  line-height:24px;color:var(--ink);min-height:24px}
.cta .arrow{color:var(--electric)}
.cta:hover{color:var(--electric)}
.cta:hover .arrow{transform:translateX(4px)}
.dark .cta,.dark .cta .arrow{color:#fff}
.btn-out{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--electric);color:var(--electric);
  padding:12px 24px;font-size:16px;font-weight:var(--w-medium);line-height:24px;transition:background .15s,color .15s}
.btn-out:hover{background:var(--electric);color:#fff}
.up-foot{text-align:center;margin-top:40px}
.chev::after{content:"";display:inline-block;width:8px;height:8px;margin:0 0 3px 8px;
  border-right:2px solid var(--electric);border-top:2px solid var(--electric);transform:rotate(45deg);transition:transform .15s}
.item:hover .chev::after{transform:rotate(45deg) translate(2px,-2px)}
.item .h5 a:hover{color:var(--electric)}

/* ===== global header: 90px / burger 0-89 / logo x96 h52 / nav pb24 ===== */
.gh{position:sticky;top:0;z-index:60;background:#fff;height:var(--header-h);box-shadow:inset 0 -1px 0 var(--gray-10)}
.gh-in{display:flex;align-items:stretch;height:var(--header-h);padding:0 16px 0 0}
.gh .burger{width:89px;flex:none;display:grid;place-items:center;border:0;background:none;cursor:pointer;color:var(--ink)}
.gh .burger svg{width:24px;height:24px}
.gh .burger .i-close{display:none}
.gh .burger[aria-expanded="true"] .i-open{display:none}
.gh .burger[aria-expanded="true"] .i-close{display:block}
.mega[hidden],.search[hidden],.langmenu[hidden]{display:none}
.gh .logo{display:flex;align-items:center;flex:none;margin-left:7px}
.gh .logo img{height:52px;width:auto}
.gh .navwrap{position:relative;display:flex;align-items:stretch;flex:1;min-width:0;margin-left:67px}
.gh .office{position:absolute;top:22px;left:12px;font-size:14px;font-weight:var(--w-medium);line-height:20px;color:var(--ink)}
.gh nav{display:flex;align-items:stretch}
.gh nav>a,.gh .dd>a{display:flex;align-items:flex-end;padding:0 12px 24px;font-size:16px;
  font-weight:var(--w-light);line-height:24px;color:var(--ink);white-space:nowrap;position:relative}
.gh nav a:hover{color:var(--electric)}
.gh nav a.on{color:var(--electric)}
.gh nav a.on::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:3px;background:var(--electric)}
.gh .dd{display:flex;align-items:stretch;position:relative}
.gh .ddb{display:flex;align-items:flex-end;padding:0 4px 26px 0;border:0;background:none;color:var(--ink);cursor:pointer}
.gh .sub{display:none;position:absolute;top:var(--header-h);left:0;min-width:240px;background:#fff;
  border:1px solid var(--gray-10);padding:8px 0;z-index:20}
.gh .dd.open .sub{display:block}
.gh .sub a{display:block;padding:12px 16px;font-size:16px;font-weight:var(--w-light);line-height:24px}
.gh .sub a:hover{color:var(--electric);background:var(--gray-02)}
.gh .tools{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;flex:none}
.gh .sign{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:16px;font-weight:var(--w-light);line-height:24px}
.gh .sign a{padding:0 6px;color:var(--electric)}
.gh .sign b{font-weight:var(--w-light);color:var(--gray-30)}
.gh .row{display:flex;align-items:stretch;height:64px}
.gh .icon{width:44px;display:grid;place-items:center;border:0;background:none;cursor:pointer;color:var(--ink)}
.gh .icon svg{width:24px;height:24px}
.gh .sep{display:none}
.gh .lang{position:relative;display:flex}
.gh .lang>button{display:flex;align-items:center;gap:6px;padding:0 6px;min-width:63.5px;justify-content:center;
  border:0;background:none;cursor:pointer;font-size:14px;font-weight:var(--w-medium);line-height:20px;color:var(--ink)}
.gh .caret{width:0;height:0;border:4px solid transparent;border-top-color:currentColor;margin-top:3px}
.langmenu{position:absolute;top:64px;right:0;background:#fff;border:1px solid var(--gray-10);list-style:none;min-width:98px;z-index:20}
.langmenu a{display:flex;flex-direction:column;gap:4px;padding:16px;font-size:16px;font-weight:var(--w-light);line-height:24px}
.langmenu small{font-size:14px;line-height:20px;color:var(--muted)}
.langmenu li.cur a{color:var(--electric)}
.langmenu a:hover{background:var(--gray-02)}
/* search panel */
.search{border-top:1px solid var(--gray-10);background:#fff;padding:32px 0 40px}
.search input{width:100%;border:0;border-bottom:1px solid var(--ink);padding:12px 0;
  font-size:24px;line-height:28px;font-weight:var(--w-light);outline:none}
.search input:focus{border-bottom-color:var(--electric)}
.shint{margin-top:16px;font-size:16px;line-height:24px;color:var(--muted)}
.sres{list-style:none;margin-top:16px;max-height:320px;overflow:auto}
.sres a{display:block;padding:12px 0;border-bottom:1px solid var(--gray-10)}
.sres b{display:block;font-size:16px;font-weight:var(--w-medium);line-height:24px;color:var(--ink)}
.sres span{display:block;font-size:16px;line-height:24px;color:var(--muted)}

/* ===== mega menu ===== */
.mega{position:sticky;top:var(--header-h);z-index:55;background:var(--deep);color:#fff;padding:48px 0 40px}
.mgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.mcol h2{font-size:14px;font-weight:var(--w-medium);line-height:20px;letter-spacing:1.2px;
  padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.3);margin-bottom:16px}
.mcol ul{list-style:none}
.mcol li+li{margin-top:12px}
.mcol a{font-size:16px;font-weight:var(--w-light);line-height:24px}
.mcol a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.msns{display:flex;flex-wrap:wrap;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.3)}
.msns a{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:20px}

/* ===== hero carousel: 高さ560 / 内側padding 64 / dots下15 ===== */
.hc{position:relative;overflow:hidden;height:560px;background:var(--deep)}
.hc-track{display:flex;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.slide{position:relative;flex:0 0 100%;height:100%;display:flex;align-items:center}
.slide.deep{background:var(--deep);color:#fff}
.slide.grey{background:var(--gray-06);color:var(--ink)}
.slide .txt{position:relative;z-index:2;width:100%}
.slide .inner{width:min(var(--col),var(--col-max));margin:0 auto;padding:64px 0;
  display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.slide .inner>*{max-width:60%}
.slide.deep .ts-2,.slide.deep .eyebrow,.slide.deep .desc{color:#fff}
.slide.deep .cta{color:#fff}
.slide.deep .cta .arrow{color:#fff}
.slide .img{position:absolute;inset:0 0 0 50%;z-index:1}
.slide .img img{width:100%;height:100%;object-fit:cover}
.slide.grey .img{inset:0 0 0 50%}
.hc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;
  display:grid;place-items:center;border:0;background:none;color:#fff;cursor:pointer}
.hc-arrow.prev{left:16px}
.hc-arrow.next{right:16px}
.hc.on-light .hc-arrow{color:var(--ink)}
.hc-dots{position:absolute;left:0;right:0;bottom:15px;z-index:3;display:flex;justify-content:center;gap:8px}
.hc-dots button{width:10px;height:10px;border-radius:50%;border:1px solid #fff;background:none;cursor:pointer;padding:0}
.hc-dots button[aria-selected="true"]{background:#fff}
.hc.on-light .hc-dots button{border-color:var(--ink)}
.hc.on-light .hc-dots button[aria-selected="true"]{background:var(--ink)}

/* ===== module（上下padding 64 / 見出し→内容 40） ===== */
.module{padding:64px 0}
.module .sec-title+.grid,.module .sec-title+.circles,.module .sec-title+.map-tabs{margin-top:40px}
.module .sec-dek+.grid{margin-top:40px}
.grid{display:grid;gap:32px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
/* card: 画像16:9 → 24px → 見出し24/28 sans → 8px → 本文16/24 */
.item{display:flex;flex-direction:column;gap:24px}
.item .im{display:block;overflow:hidden;aspect-ratio:16/9}
.item .im img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.item.hover:hover .im img{transform:scale(1.04)}
.item .body{display:flex;flex-direction:column;gap:8px}
.item .eyebrow{color:var(--muted)}
.item .d{font-size:16px;line-height:24px;font-weight:var(--w-light);color:var(--text)}
.item.text{gap:8px;border-top:1px solid var(--gray-10);padding-top:24px}
.item.book .im{aspect-ratio:16/9}
.item.card2 .im{aspect-ratio:16/9}

/* ===== split (tum) = 本家 TwoUpMedium の実測 =====
   全幅 / 左右50% / テキスト面は deep 地に白文字 / padding 64 と外側インセット
   外側インセットはコンテンツ列の左端に一致: max(15%, 50vw - 612px)
   （1920→348, 1600→188, 1440→108, 1280→96, 1024→76.8）
   テキスト本体は幅 548px 固定                                              */
.tum{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
  background:var(--deep);color:#fff}
.tum .t{display:flex;align-items:center;min-width:0;padding:64px 64px 64px max(15%,calc(50vw - 612px))}
.tum.right .t{padding:64px max(15%,calc(50vw - 612px)) 64px 64px}
.tum .c{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:548px;max-width:100%}
.tum .eyebrow{color:#fff;font-weight:var(--w-light);margin-bottom:4px}
.tum .c h2{font-family:var(--serif);font-weight:var(--w-light);font-size:44px;line-height:52.8px;color:#fff}
.tum .c p{margin-top:16px;font-size:20px;line-height:32px;font-weight:var(--w-light);color:#fff}
.tum .c .cta{margin-top:24px;color:#fff}
.tum .c .cta .arrow{color:#fff}
.tum .p{min-height:100%}
.tum .p img{width:100%;height:100%;object-fit:cover}
@media(min-width:1920px){.tum .c h2{font-size:52px;line-height:62.4px}}

/* ===== feature (oum) ===== */
.oum{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.oum+.oum{margin-top:64px}
.oum.left .c{order:2}
.oum.left .media{order:1}
.oum .c{display:flex;flex-direction:column;gap:24px;align-items:flex-start}
.oum .c h2{font-family:var(--serif);font-weight:var(--w-light);font-size:36px;line-height:1.2;color:var(--ink)}
.oum .media{aspect-ratio:16/9;overflow:hidden}
.oum .media img{width:100%;height:100%;object-fit:cover}

/* ===== factoid ===== */
.factoid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;text-align:center}
.factoid>div+div{border-left:1px solid var(--gray-10)}
.factoid .n{font-family:var(--serif);font-weight:var(--w-light);font-size:52px;line-height:62.4px;color:var(--electric)}
.factoid .u{font-size:16px;font-weight:var(--w-medium);line-height:24px;color:var(--ink);margin-top:4px}
.factoid .t{font-size:16px;line-height:24px;color:var(--text);margin-top:8px}

/* ===== prose / oneup / intro ===== */
.onetext{display:flex;flex-direction:column;gap:32px;max-width:918px}
.onetext p{font-size:20px;line-height:32px;font-weight:var(--w-light);color:var(--text)}
.oneup{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.oneup .im{aspect-ratio:16/9;overflow:hidden}
.oneup .im img{width:100%;height:100%;object-fit:cover}
.oneup .c{display:flex;flex-direction:column;gap:16px}
.intro{padding:64px 0}
.intro h2{font-family:var(--serif);font-weight:var(--w-light);font-size:44px;line-height:52.8px;color:var(--ink)}
.intro p{margin-top:24px;font-size:18px;line-height:28px;max-width:918px}

/* ===== page heroes ===== */
.mhero{position:relative;height:560px;background:var(--deep);color:#fff;display:flex;align-items:center}
.mhero .bg{position:absolute;inset:0;z-index:1}
.mhero .bg img{width:100%;height:100%;object-fit:cover}
.mhero .wrap{position:relative;z-index:2}
.mhero h1{font-family:var(--serif);font-weight:var(--w-light);font-size:52px;line-height:62.4px;color:#fff}
.mhero .down{display:inline-grid;place-items:center;width:44px;height:44px;margin-top:32px;color:#fff}
.ihero{position:relative;height:400px;background:var(--deep);color:#fff;display:flex;align-items:center}
.ihero .bg{position:absolute;inset:0;z-index:1}
.ihero .bg img{width:100%;height:100%;object-fit:cover}
.ihero .wrap{position:relative;z-index:2}
.ihero h1{font-family:var(--serif);font-weight:var(--w-light);font-size:44px;line-height:52.8px;color:#fff}
.ehero{position:relative;height:560px;background:var(--deep);color:#fff;display:flex;align-items:center}
.ehero .txt{position:relative;z-index:2;width:100%}
.ehero .inner{width:min(var(--col),var(--col-max));margin:0 auto;padding:64px 0;
  display:flex;flex-direction:column;gap:24px}
.ehero .inner>*{max-width:60%}
.ehero .ts-2,.ehero .desc,.ehero .eyebrow{color:#fff}
.ehero .img{position:absolute;inset:0 0 0 50%;z-index:1}
.ehero .img img{width:100%;height:100%;object-fit:cover}
.uhead{padding:64px 0 0}
.ptitle{padding:64px 0 24px;border-bottom:1px solid var(--gray-10)}
.ptitle h1{font-family:var(--serif);font-weight:var(--w-light);font-size:52px;line-height:62.4px;color:var(--ink)}
.toc{margin:24px auto 0;font-size:16px;line-height:24px}
.toc a{color:var(--electric)}
.toc a:hover{text-decoration:underline;text-underline-offset:4px}

/* ===== media (video/audio) ===== */
.vid{display:flex;flex-direction:column;gap:24px}
.vid .im{position:relative;display:block;aspect-ratio:16/9;overflow:hidden}
.vid .im img{width:100%;height:100%;object-fit:cover}
.vid .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;
  border-radius:50%;background:rgba(0,0,0,.6);display:grid;place-items:center;color:#fff}
.vid .h5{font-size:24px;line-height:28px;font-weight:var(--w-medium)}

/* ===== profiles ===== */
.band{background:var(--gray-06);padding:64px 0}
.filters{display:flex;align-items:flex-end;gap:24px;padding-top:32px;padding-bottom:32px}
.filters label{display:block;font-size:14px;font-weight:var(--w-medium);line-height:20px;margin-bottom:8px}
.filters select{min-width:280px;padding:12px;border:1px solid var(--gray-30);background:#fff}
.filters .clear{border:0;background:none;color:var(--electric);cursor:pointer;font-size:16px;line-height:24px;padding:12px 0}
.circles{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.circles.lead{grid-template-columns:repeat(3,1fr)}
.pcard{background:#fff;padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.pcard .av{width:200px;height:200px;border-radius:50%;overflow:hidden;margin-bottom:16px}
.pcard .av img{width:100%;height:100%;object-fit:cover}
.pcard .h6{font-size:20px;line-height:32px;font-weight:var(--w-medium)}
.pcard .en{font-size:14px;line-height:20px;color:var(--muted)}
.pcard .sub{font-size:16px;line-height:24px;font-weight:var(--w-medium)}
.pcard .div{width:40px;height:2px;background:var(--electric);margin:8px 0}
.pcard .d{font-size:16px;line-height:24px;color:var(--text)}

/* ===== definition list ===== */
.codl{display:grid;grid-template-columns:240px 1fr;margin-top:40px}
.codl dt{padding:24px 0;border-top:1px solid var(--gray-10);font-size:16px;font-weight:var(--w-medium);line-height:24px}
.codl dd{padding:24px 0;border-top:1px solid var(--gray-10);font-size:16px;line-height:24px}
.codl a{color:var(--electric)}

/* ===== map ===== */
.map-tabs{display:flex;gap:0;border-bottom:1px solid var(--gray-10)}
.map-tabs button{padding:16px 24px;border:0;background:none;cursor:pointer;font-size:16px;
  font-weight:var(--w-light);line-height:24px;color:var(--text);border-bottom:3px solid transparent;margin-bottom:-1px}
.map-tabs button.on{color:var(--electric);border-bottom-color:var(--electric);font-weight:var(--w-medium)}
.mapgrid{display:grid;grid-template-columns:1fr 2fr;gap:32px;margin-top:40px}
.addr h4{font-size:24px;line-height:28px;font-weight:var(--w-medium);margin-bottom:16px}
.addr p{font-size:18px;line-height:28px;white-space:pre-line;margin-bottom:16px}
.mapgrid iframe{width:100%;height:400px;border:0}

/* ===== promo ===== */
.promo{background:var(--gray-06);padding:64px 0}
.promo .g{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.promo h2{font-family:var(--serif);font-weight:var(--w-light);font-size:36px;line-height:43.2px}
.promo p{font-size:18px;line-height:28px}
.promo ul{list-style:none;grid-column:2}
.promo li{position:relative;padding-left:20px;font-size:16px;line-height:24px;margin-bottom:8px}
.promo li::before{content:"";position:absolute;left:0;top:10px;width:8px;height:2px;background:var(--electric)}
.promo hr{border:0;border-top:1px solid var(--gray-18);margin:32px 0}
.social-row{display:flex;gap:32px;flex-wrap:wrap}
.social-row a{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:var(--w-medium);line-height:24px}
.social-row .r{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff}
.social-row a:hover .r{background:var(--electric)}

/* ===== footer（padding-top 64 / 2列 420+384+420） ===== */
.gf{background:var(--deep);color:#fff;padding:64px 0}
.gf .top{display:grid;grid-template-columns:420px 1fr;gap:64px;padding-bottom:32px}
.gf .logo img{height:64px;width:auto}
.gf .nlh{font-size:20px;line-height:32px;font-weight:var(--w-medium);margin-bottom:8px}
.gf .nl p{font-size:16px;line-height:24px;margin-bottom:16px}
.gf .linebtn{display:inline-flex;align-items:center;gap:8px;border:1px solid #fff;padding:12px 24px;
  font-size:16px;font-weight:var(--w-medium);line-height:24px}
.gf .linebtn:hover{background:#fff;color:var(--deep)}
.gf .mid{display:flex;flex-direction:column;gap:24px;padding:32px 0;border-top:1px solid rgba(255,255,255,.3)}
.gf .sns{display:flex;gap:16px}
.gf .sns a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.5)}
.gf .sns a:hover{background:#fff;color:var(--deep)}
.gf .links{display:flex;flex-wrap:wrap;gap:16px 32px;font-size:16px;line-height:24px}
.gf .links a:hover{text-decoration:underline;text-underline-offset:4px}
.gf .bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:24px;
  border-top:1px solid rgba(255,255,255,.3);font-size:14px;line-height:20px;color:var(--gray-30)}

/* ===== responsive（実測: 1280未満で見出し縮小 / 1280未満 g4→3列 / 768未満 1列・header 83px） ===== */
@media(max-width:1279px){
  /* 実測: lg 未満でヘッダー83px・ロゴ x68・主ナビ非表示・4列→3列 */
  :root{--header-h:83px}
  .gh .burger{width:61px}
  .gh .navwrap,.gh .sign{display:none}
  .gh .row{height:83px}
  .g4{grid-template-columns:repeat(3,1fr)}
  .mhero h1,.ptitle h1{font-size:44px;line-height:52.8px}
  .factoid .n{font-size:44px;line-height:52.8px}
}
@media(max-width:1023px){
  .mgrid{grid-template-columns:repeat(2,1fr)}
  .circles{grid-template-columns:repeat(2,1fr)}
  .codl{grid-template-columns:1fr}
  .codl dd{padding-top:0;border-top:0}
  .gf .top{grid-template-columns:1fr;gap:32px}
}
@media(max-width:767px){
  :root{--col:90%}
  .hc,.ehero,.mhero{height:490px}
  .ihero{height:320px}
  .slide .inner>*,.ehero .inner>*{max-width:100%}
  .slide .img,.ehero .img{inset:0;opacity:.35}
  .slide .inner,.ehero .inner{padding:40px 0 24px}
  .g2,.g3,.g4,.circles,.circles.lead,.factoid,.oum,.oneup,.tum,.promo .g,.mapgrid,.mgrid{grid-template-columns:1fr}
  .promo ul{grid-column:1}
  .factoid>div+div{border-left:0;border-top:1px solid var(--gray-10);padding-top:24px}
  .tum .t{padding:40px 5%}
  .tum .c{width:100%}
  .tum .c h2{font-size:36px;line-height:43.2px}
  .oum.left .c,.oum.left .media{order:initial}
  .module,.band,.promo,.gf,.intro{padding:40px 0}
  .sec-dek{width:100%;max-width:100%;font-size:18px;line-height:28px}
  .mhero h1,.ptitle h1,.intro h2{font-size:36px;line-height:43.2px}
  .filters{flex-direction:column;align-items:stretch}
  .filters select{min-width:0;width:100%}
}
