/* ===========================================================
   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:#13418C; --electric:#8A6A2F; /* 金（白地で文字コントラスト 5:1）*/ --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-bold);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:row;align-items:center;justify-content:flex-end;gap:14px;flex:none}
.gh .sign{display:flex;align-items:center;gap: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 .sign a.btn{margin-left:4px;padding:0 6px}
.gh .row{display:flex;align-items:center}
.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;color:#fff;padding:48px 0 40px;background:var(--deep) url(assets/art/silk-2.svg) center/cover no-repeat}
.mega>.wrap{position:relative;z-index:1}
.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;z-index:1}
.slide .img::before{content:"";position:absolute;inset:0;z-index:2;
  background:linear-gradient(90deg,rgba(19,65,140,.68) 0%,rgba(19,65,140,.50) 32%,rgba(19,65,140,.14) 58%,rgba(19,65,140,0) 78%)}
.slide .img img{width:100%;height:100%;object-fit:cover;filter:blur(1px)}
/* 写真のスライドは、右に写真・左端を青へ溶かす（アイリスと同じ） */
.slide.photo{background:var(--deep) url(assets/art/silk-2.svg) center/cover no-repeat}
.slide.photo .img{inset:0 0 0 55%}
.slide.photo .img::before{display:none}
.slide.photo .img img{filter:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);
          mask-image:linear-gradient(90deg,transparent 0,#000 24%)}
.slide.photo .inner>*{max-width:51%}

.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:4/3}
.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:4/3}
.item.card2 .im{aspect-ratio:4/3}

/* ===== 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;height:560px;color:#fff;
  background:var(--deep) url(assets/art/silk-2.svg) center/cover no-repeat}
.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{height:100%;overflow:hidden}
.tum .p img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
@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:4/3;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:4/3;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) url(assets/art/silk-2.svg) center/cover no-repeat;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:51%}
.ehero .ts-2,.ehero .desc,.ehero .eyebrow{color:#fff}
.ehero .img{position:absolute;inset:0 0 0 55%;z-index:1}
.ehero .img img{width:100%;height:100%;object-fit:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);
          mask-image:linear-gradient(90deg,transparent 0,#000 24%)}
.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{position:relative;background:var(--deep) url(assets/art/silk-2.svg) center/cover no-repeat;color:#fff;padding:64px 0}
.gf>.wrap{position:relative;z-index:1}
.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;color:#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,.35)}
.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);color:#fff}
.gf .sns a:hover{background:#fff;border-color:#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,.35);font-size:14px;line-height:20px;color:rgba(255,255,255,.75)}

/* ===== 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,.slide.photo .img{inset:0;opacity:.35}
  .slide.photo .img img{-webkit-mask-image:none;mask-image:none}
  .slide .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{height:auto}
  .tum .p{height:300px}
  .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%}
}

/* LISA: 人物写真は顔が切れないよう上寄せで切り抜く */
img[src*="photo/"]{object-position:50% 25%}
.mhero .bg img{object-position:50% 25%}
.mhero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,65,140,.82) 0%,rgba(19,65,140,.45) 45%,rgba(19,65,140,0) 75%)}
@media(min-width:768px){.slide .inner>*{max-width:calc(42.5vw - 40px)}}
.ehero .img img{object-position:50% 20%}
@media(min-width:768px){.slide .inner>*{max-width:calc(50vw - max((100vw - 1224px) / 2, 7.5vw) - 48px)}}
/* LISA: トップ一枚目はアップで */
.slide .img{overflow:hidden}
.slide .img img[src*="lisa-red.jpg"]{transform:scale(1.7);transform-origin:55% 30%}
.ihero .bg{position:absolute;inset:0}
.ihero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,65,140,.7),rgba(19,65,140,.1) 70%)}

/* スマホ：最上部の写真を薄くせず、文字の下に紺の影を敷いて読みやすくする（2026-09-30） */
@media(max-width:767px){
  .slide .img{opacity:1}
  .slide .img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,65,140,.35) 0%,rgba(19,65,140,.8) 55%,rgba(19,65,140,.92) 100%)}
  .gh .logo img{max-width:150px;height:auto}
  img{max-width:100%}
}
/* スマホ（調整2）：写真は上、文字は下に。改行は自然な折り返しにまかせる */
@media(max-width:767px){
  .slide{align-items:flex-end}
  .slide .img::after{background:linear-gradient(180deg,rgba(19,65,140,0) 0%,rgba(19,65,140,.15) 35%,rgba(19,65,140,.85) 62%,rgba(19,65,140,.95) 100%)}
  .slide .inner{padding:0 0 48px}
  .hc{height:560px}
  .ehero{height:auto;flex-direction:column;align-items:stretch}
  .ehero .img{position:relative;inset:auto;order:-1;height:260px}
  .ehero .img img{-webkit-mask-image:none;mask-image:none}
  .ehero .inner{padding:36px 0 44px}
  .onetext br,.intro h2 br{display:none}
}
@media(max-width:767px){.slide .img img[src*="lisa-red.jpg"]{transform:scale(1.35) translateY(-14%);transform-origin:55% 20%}}

/* ===== 帯タイル（note 記事の一覧。画像の上にタイトルを載せる） ===== */
.tiles{margin-top:40px}
.tile{position:relative;display:block;min-height:210px;overflow:hidden;background:var(--deep);
  text-decoration:none}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.6,.2,1)}
.tile:hover img{transform:scale(1.05)}
.tile .tline{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.34);
  display:flex;align-items:center;justify-content:center;padding:20px 30px;
  transition:border-color .3s ease}
.tile:hover .tline{border-color:rgba(226,201,143,.85)}
.tile .tt{font-family:var(--serif);font-weight:var(--w-light);color:#fff;font-size:19px;
  line-height:34px;letter-spacing:.04em;text-align:center;text-wrap:balance}
@media (max-width:767px){
  .tile{min-height:148px}
  .tile .tline{inset:10px;padding:14px 18px}
  .tile .tt{font-size:16px;line-height:28px}
}

/* ===== 小さく並べる写真（展示会・出店の記録） ===== */
.gal-sec{padding-top:8px}
.gal{display:grid;gap:16px;margin-top:28px}
.gal.g4{grid-template-columns:repeat(4,1fr)}
.gal.g5{grid-template-columns:repeat(5,1fr)}
.gcell{margin:0}
.gcell img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--gray-06);
  filter:saturate(.94);transition:filter .3s ease,transform .5s cubic-bezier(.2,.6,.2,1)}
.gcell:hover img{filter:saturate(1);transform:scale(1.02)}
.gcell figcaption{margin-top:9px;font-size:12.5px;line-height:1.7;color:var(--muted);letter-spacing:.01em}
@media (max-width:1023px){.gal.g5{grid-template-columns:repeat(3,1fr)}.gal.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.gal.g5,.gal.g4{grid-template-columns:repeat(2,1fr);gap:12px}
  .gcell figcaption{font-size:11.5px}}




/* 縦長の写真は切らずに全体を見せる */
.oum .media img[src*="child-bread"],
.oum .media img[src*="book-risapan"]{object-fit:contain;background:var(--gray-04)}

/* ===== 全幅の帯（背景 1 枚の上に、左＝文字／右＝図。境界線なし） ===== */
.bandfig{position:relative;overflow:hidden;background:var(--deep)}
.bf-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bf-in{position:relative;z-index:2;max-width:var(--col-max);width:var(--col);margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding:72px 0}
.bf-tx .eyebrow{color:#dbe9f5;font-size:15px;letter-spacing:.18em;margin-bottom:18px}
.bf-h{font-family:var(--serif);font-weight:300;color:#fff;font-size:clamp(30px,4.2vw,54px);
  line-height:1.55;letter-spacing:.04em}
.bf-lead{color:#eaf3fa;font-size:19px;line-height:34px;margin-top:20px;max-width:30em}
.bandfig .cta{display:inline-flex;align-items:center;gap:8px;margin-top:26px;color:#fff;
  font-weight:var(--w-medium);text-decoration:none;font-size:15px;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}
.bandfig .cta:hover{border-color:#fff}
.bf-fig img{width:100%;height:auto;display:block}
@media (max-width:860px){
  .bf-in{grid-template-columns:1fr;gap:28px;padding:48px 0}
  .bf-fig{max-width:420px;margin:0 auto}
}

/* ===== 帯に写真を溶かし込む（右に写真、左へ向かって背景の青へ） ===== */
.bandphoto .bp-photo{position:absolute;right:0;top:0;height:100%;width:62%;
  object-fit:contain;object-position:right center;
  filter:blur(1px) saturate(.92);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 22%,rgba(0,0,0,.9) 58%,#000 100%);
  mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.35) 22%,rgba(0,0,0,.9) 58%,#000 100%)}
.bandphoto .bp-in{grid-template-columns:1fr}
.bandphoto .bf-tx{max-width:36em}
.bandphoto .bf-h{line-height:1.35}
@media (max-width:860px){
  .bandphoto .bp-photo{width:100%;height:auto;bottom:0;top:auto;object-position:center bottom;
    -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 45%,#000 100%);
    mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.55) 45%,#000 100%)}
  .bandphoto .bf-in{padding:40px 0 180px}
}

/* ===== お問い合わせフォーム ===== */
.cform{max-width:760px}
.flead{max-width:760px;font-size:18px;line-height:32px;margin-bottom:32px}
.fdone{max-width:760px;margin-bottom:24px;padding:16px 20px;border-left:3px solid var(--electric);
  background:var(--gray-04);font-size:16px;line-height:24px}
.fld{margin-bottom:28px}
.fld label{display:flex;align-items:center;gap:12px;margin-bottom:10px;
  font-size:16px;line-height:24px;font-weight:var(--w-medium)}
.fld .req{padding:3px 10px;background:var(--electric);color:#fff;font-size:12px;line-height:18px;
  font-weight:var(--w-medium);border-radius:2px}
.fld input,.fld textarea{width:100%;padding:14px 16px;border:1px solid var(--gray-18);border-radius:2px;
  font-family:var(--sans);font-size:16px;line-height:24px;font-weight:var(--w-light);color:var(--ink);background:#fff}
.fld textarea{resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:var(--gray-30)}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--electric);box-shadow:0 0 0 1px var(--electric)}
.fhoney{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.fnote{max-width:760px;margin:24px 0;font-size:14px;line-height:22px;color:var(--muted)}
.fsend{display:inline-flex;align-items:center;gap:12px;padding:14px 32px;border:0;border-radius:2px;
  background:var(--deep);color:#fff;font-family:var(--sans);font-size:16px;line-height:24px;
  font-weight:var(--w-medium);cursor:pointer}
.fsend:hover{background:var(--electric)}
.fsend .arrow{width:8px;height:8px;border-right:2px solid #fff;border-top:2px solid #fff;transform:rotate(45deg)}

/* ===== ナビの英語表記（セリフ体・小さく）＋ 区切り線：アイリスと同じ ===== */
.gh nav>a,.gh .dd>a{flex-direction:column;align-items:center;justify-content:flex-end;
  text-align:center;padding:0 14px 20px}
.gh nav .nav-en{display:block;min-height:15px;font-family:Georgia,"Noto Serif JP",serif;
  font-size:15px;letter-spacing:.06em;color:var(--gray-30);font-weight:400;margin-top:6px;
  text-transform:lowercase;line-height:1}
.gh nav>a.on .nav-en,.gh .dd>a.on .nav-en{color:var(--electric)}
.gh nav>*+*::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  height:40px;border-left:1px dotted var(--gray-18)}
.gh nav>a.on::after{left:14px;right:14px}
@media (max-width:1023px){.gh nav .nav-en{display:none}}

/* ===== よくあるご質問（クリックで開く） ===== */
.qa{border-bottom:1px solid var(--gray-10)}
.qa summary{list-style:none;cursor:pointer;position:relative;padding:22px 52px 22px 0;
  font-size:18px;line-height:28px;font-weight:var(--w-medium);color:var(--ink)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:10px;top:50%;width:10px;height:10px;
  margin-top:-8px;border-right:1.5px solid var(--electric);border-bottom:1.5px solid var(--electric);
  transform:rotate(45deg);transition:transform .2s}
.qa[open] summary::after{transform:rotate(-135deg);margin-top:-2px}
.qa summary:hover{color:var(--electric)}
.qa-a{padding:0 52px 26px 0;font-size:16px;line-height:28px;font-weight:var(--w-light);color:var(--text)}
@media(max-width:767px){
  .qa summary{font-size:17px;padding-right:40px}
  .qa-a{padding-right:0}
}

/* ===== ゴールの帯（左に写真、右に青） ===== */
.ctab{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:520px;background:var(--deep)}
.ctab .p{overflow:hidden}
.ctab .p img{width:100%;height:100%;object-fit:cover;display:block}
.ctab .t{position:relative;display:flex;align-items:center;overflow:hidden;color:#fff}
.ctab .ctab-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.ctab .c{position:relative;z-index:1;padding:64px 8% 64px 64px;max-width:560px}
.ctab .eyebrow{color:#dbe9f5;font-size:15px;letter-spacing:.18em;margin-bottom:18px}
.ctab h2{color:#fff;line-height:1.5;letter-spacing:.04em}
.ctab p{margin-top:20px;font-size:17px;line-height:32px;color:#eaf3fa}
.ctab .cta{display:inline-flex;align-items:center;gap:8px;margin-top:28px;color:#fff;
  font-weight:var(--w-medium);border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:4px}
.ctab .cta:hover{border-color:#fff}
.ctab .cta .arrow{color:#fff}
@media(max-width:767px){
  .ctab{grid-template-columns:1fr;min-height:0}
  .ctab .p{height:260px}
  .ctab .c{padding:40px 5%;max-width:100%}
}
