/* IBC認定講座 LP の共通スタイル(tools/build-license-site.js が public/assets/styles.css に書き出す)
   下層ページ(layout.html)も読む。色・書体・角丸などの共通の値は、下の :root の CSS 変数にまとめてある。
   前半は参照デザイン ibc-lp.dc.html の <style>(REF:17-40)を写したもの。2026-10(T-37)にヘッダー・料金・道のり・概要・
   よくある質問・最後の CTA・フッターを作り直したときに、それらの節の style 属性はここのクラスに移した(ほかの節は style 属性のまま) */
:root{
  --ink:#1d2434; --navy:#1b2440; --navy-2:#2a3557;
  --red:#c7382a; --red-dark:#a92c20; --red-text:#8e2419; --red-soft:#fdf3f1;
  --cream:#fbfaf6; --beige:#f3f1ea; --sand:#e8e6df; --gold:#c2a35a; --gold-soft:#f4ecd9; --gold-text:#7a5c18;
  --muted:#4a5266; --muted-2:#6b7280;
  --line:rgba(29,36,52,0.12); --line-soft:rgba(29,36,52,0.08);
  --radius:14px; --radius-lg:22px; --pill:999px;
  --font-head:'Zen Kaku Gothic New',sans-serif; --font-body:'Noto Sans JP',sans-serif;
  --shadow-card:0 18px 50px rgba(27,36,64,0.12);
  --gutter:clamp(20px,5vw,48px);
}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
/* 改行: 文節で折る(auto-phrase。いまは Chrome・Edge だけ。ほかのブラウザは普通の折り方)、小さい「ャ」や「ー」で行を始めない(strict)、
   段落の最後の行を 1〜2 文字にしない(pretty)。長い英数字ははみ出さずに折る(break-word) */
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.9;letter-spacing:0.02em;-webkit-font-smoothing:antialiased;word-break:auto-phrase;overflow-wrap:break-word;line-break:strict;text-wrap:pretty}
a{color:var(--ink)}
a:hover{color:var(--red)}
summary::-webkit-details-marker{display:none}
[data-faq] [data-chev]{transition:transform .2s ease}
[data-nav-link]{transition:color .15s ease}
@media (max-width:1140px){[data-nav]{display:none!important}[data-menu-btn]{display:inline-flex!important}}
@media (max-width:640px){[data-rep-card]{grid-template-columns:1fr!important}[data-rep-photo]{justify-self:center}[data-rep-quote]{display:none}}
@media (max-width:640px){
[data-cta-full]{width:100%;box-sizing:border-box}
[data-pc-br]{display:none}
}

/* 参照デザインの style-hover / style-focus 属性の置き換え。
   試作ランタイムはこれを「:hover{…!important}」のクラスにしていたので、同じく !important でインライン style に勝たせる */
.hv-link:hover{color:var(--red)!important}
.hv-outline:hover{background:rgba(27,36,64,0.06)!important}
.hv-close:hover{background:var(--beige)!important;color:var(--ink)!important}
.hv-submit:hover{background:var(--navy-2)!important}
.hv-primary:hover{background:var(--red-dark)!important;color:#fff!important}
.fc-input:focus{border-color:var(--navy)!important;outline:none!important;box-shadow:0 0 0 3px rgba(27,36,64,0.12)!important}

/* メニュー・モーダル・エラー文は hidden 属性で出し入れする。インライン style の display:flex が
   ブラウザ既定の [hidden]{display:none} に勝ってしまうので、ここで確実に消す */
[hidden]{display:none!important}

/* ---- 本公開(2026-09)で足した部品。参照デザインには無いもの ----------------------------------
   トップページ(template.html)と下層ページ(layout.html)の両方で使う */

/* ヘッダーを画面の上に固定している(トップページも下層ページも。高さは約 69px)ので、ページ内リンクで飛んだ先や、
   Tab・Shift+Tab で移ったフォーカスがヘッダーの下にもぐらないよう、スクロールの上端をヘッダーの高さ＋余白ぶん下げる(WCAG 2.4.11)。
   以前は §8 のカード(#facilitator など)と下層ページの節にだけ scroll-margin-top を付けていたが、これで全部をまかなう */
html{scroll-padding-top:88px}

/* 画面には出さず、読み上げと検索エンジンにだけ伝える見出し */
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* キーボードで操作しているときの位置(どのページも)。暗い地の上では白にする */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.on-dark :focus-visible,.site-footer :focus-visible,.plan-top :focus-visible{outline-color:#fff}

/* 文節で折る(見出し・短い文・箇条書き・ボタン)。<wbr> と、句読点・かっこの前後でだけ折れる。
   1 つの文節が幅に入らないときだけ、どこでも折る(はみ出さない) */
.ph{word-break:keep-all;overflow-wrap:anywhere}

/* 線のアイコン(手で書いた SVG。外のアイコンのサービスは CSP で読めないので、ページに直接書く) */
.ic{width:1.15em;height:1.15em;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* 価格の隣の税込価格(総額表示)。本文と同じ濃さにし、主の数字の半分以上・16px 以上の大きさにする */
.price-tax{display:inline-block;margin-left:4px;font-family:var(--font-body);font-size:18px;font-weight:700;letter-spacing:0.02em;color:inherit}
@media (max-width:640px){.price-tax{display:block;margin:0 0 4px;line-height:1.5}}

/* ---- ヘッダー(トップページ) ---- */
.lp-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px clamp(16px,4vw,40px);background:rgba(251,250,246,0.92);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft)}
.lp-logo{display:block;flex:0 0 auto;line-height:0}
.lp-logo img{width:clamp(150px,20vw,200px);height:44px;display:block;object-fit:contain;object-position:left center}
.lp-nav{display:flex;align-items:center;justify-content:center;gap:clamp(12px,1.4vw,24px);flex:1;min-width:0;overflow:hidden}
.lp-nav a{padding:10px 2px;font-size:14px;font-weight:500;letter-spacing:0.04em;color:var(--ink);text-decoration:none;white-space:nowrap}
.lp-header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.login-btn{display:inline-flex;align-items:center;gap:8px;box-sizing:border-box;min-height:44px;padding:6px 16px 6px 8px;border:1.5px solid var(--line);border-radius:var(--pill);background:#fff;color:var(--navy);font:inherit;font-size:14px;font-weight:700;line-height:1.4;letter-spacing:0.04em;white-space:nowrap;cursor:pointer;transition:border-color .15s ease}
.login-btn:hover{border-color:var(--navy)}
/* 下層ページの「会員ログイン」はトップのログインの画面を開くリンク(partials/header.html。2026-10-29)。ボタンと同じ見た目にする */
a.login-btn{text-decoration:none}
a.login-btn:hover{color:var(--navy)}
.login-btn-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--beige)}
.login-btn-ic .ic{width:16px;height:16px}
.head-apply{display:inline-flex;align-items:center;gap:6px;box-sizing:border-box;min-height:44px;padding:8px 18px;border-radius:var(--pill);background:var(--red);color:#fff;font-size:14px;font-weight:700;letter-spacing:0.06em;text-decoration:none;white-space:nowrap;transition:background .15s ease}
.head-apply:hover{background:var(--red-dark);color:#fff}
.head-apply .ic{width:16px;height:16px;stroke-width:2.2}
.menu-btn{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;box-sizing:border-box;width:44px;height:44px;padding:0;border:1.5px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}
.menu-btn:hover{border-color:var(--navy)}
.menu-btn span{display:block;width:18px;height:2px;border-radius:1px;background:currentColor;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s ease}
/* 開いている間は三本線を × にする(2026-10-29 のオーナーの指示。docs/10 T-68)。線の太さ 2px・間 5px なので、上と下を 7px 寄せて傾ける */
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.2)}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-nav{position:absolute;top:100%;left:0;right:0;display:flex;flex-direction:column;max-height:calc(100vh - 68px);max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain;padding:8px clamp(16px,4vw,40px) 16px;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 16px 40px rgba(29,36,52,0.12)}
/* 開くときは上から滑り込み、リンクを上から順に出す。閉じるときは上へ消える(class は app.js が付ける) */
@keyframes menu-in{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
@keyframes menu-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-12px)}}
@keyframes menu-item{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mobile-nav.is-opening{animation:menu-in .3s cubic-bezier(.2,.8,.2,1) both}
.mobile-nav.is-opening a{animation:menu-item .34s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--menu-i,0) * 28ms + 40ms)}
.mobile-nav.is-closing{animation:menu-out .22s ease both;pointer-events:none}
@media (prefers-reduced-motion:reduce){.menu-btn span{transition:none}.mobile-nav.is-opening,.mobile-nav.is-opening a,.mobile-nav.is-closing{animation:none}}
.mobile-nav a{display:block;padding:14px 4px;font-size:15px;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-soft)}
.mobile-nav a:last-child{border-bottom:0}
/* スマホでは「申し込む」を出さない(料金の下と最後にある)。もっと狭い幅では「会員」を外し、ロゴを少し小さくして 1 行に収める */
@media (max-width:640px){.head-apply{display:none}}
@media (max-width:400px){
  .lp-header{gap:8px}
  .lp-logo img{width:130px}
  .login-btn{padding:6px 12px 6px 6px;font-size:13px}
}
@media (max-width:370px){.login-btn-member{display:none}}
@media (max-width:340px){.lp-logo img{width:112px}}

/* ---- 節の共通 ---- */
.lp-sec{padding:clamp(80px,11vw,128px) var(--gutter)}
.lp-sec-cream{background:var(--cream)}
.lp-sec-white{background:#fff}
.lp-sec-beige{background:var(--beige)}
.lp-sec-head{margin:0 0 clamp(32px,5vw,48px);text-align:center}
.lp-eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px;font-size:12px;font-weight:700;line-height:1.5;letter-spacing:0.24em;color:var(--red)}
.lp-eyebrow::before,.lp-eyebrow::after{content:"";width:20px;height:1.5px;background:currentColor;opacity:0.6}
.lp-sec-title{margin:0;font-family:var(--font-head);font-weight:900;font-size:clamp(26px,4.4vw,38px);line-height:1.5;letter-spacing:0.03em}

/* ---- 申し込みのボタン(吹き出し＋右向きの矢印)。料金の下と最後の CTA で同じ形 ---- */
.cta{display:flex;flex-direction:column;align-items:center;gap:14px}
.cta-bubble{position:relative;display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 18px;border:1.5px solid var(--navy);border-radius:var(--pill);background:#fff;color:var(--navy);font-size:14px;font-weight:700;line-height:1.5;letter-spacing:0.04em;box-shadow:0 6px 16px rgba(27,36,64,0.10)}
.cta-bubble::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;margin-left:-6px;background:#fff;border-right:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);transform:rotate(45deg)}
.cta-bubble .ic{width:16px;height:16px;color:var(--red)}
.cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;box-sizing:border-box;min-width:300px;min-height:60px;padding:12px 14px 12px 36px;border-radius:var(--pill);background:var(--red);color:#fff;font-size:17px;font-weight:700;letter-spacing:0.08em;text-decoration:none;box-shadow:0 10px 26px rgba(199,56,42,0.30);transition:background .15s ease}
.cta-btn:hover{background:var(--red-dark);color:#fff}
.cta-arrow{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--red);transition:transform .2s ease}
.cta-arrow .ic{width:18px;height:18px;stroke-width:2.2}
.cta-btn:hover .cta-arrow{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){.cta-arrow{transition:none}.cta-btn:hover .cta-arrow{transform:none}}
@media (max-width:640px){.cta{align-items:stretch}.cta-bubble{align-self:center}.cta-btn{min-width:0;width:100%}}

/* ---- §7 料金のカード(紺の帯＋印章、左に価格・右に含まれるもの) ---- */
.plan-card{max-width:880px;margin:0 auto;overflow:hidden;background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.plan-top{position:relative;display:flex;align-items:center;gap:clamp(16px,3vw,26px);padding:clamp(24px,4vw,34px) clamp(22px,4.5vw,44px);overflow:hidden;background:linear-gradient(120deg,#1b2440 0%,#26304f 60%,#3a2a3a 100%);color:#fff}
.plan-suits{position:absolute;top:-14px;right:-10px;width:240px;height:150px;fill:none;stroke:#fff;stroke-width:2;opacity:0.10;pointer-events:none}
.plan-seal{position:relative;flex:0 0 auto;width:clamp(68px,10vw,84px);height:auto}
.plan-top-text{position:relative;min-width:0}
.plan-kicker{display:inline-block;margin:0 0 6px;padding:1px 10px;border:1px solid rgba(194,163,90,0.7);border-radius:var(--pill);color:#e6cf93;font-size:12px;font-weight:700;line-height:1.7;letter-spacing:0.14em}
.plan-name{margin:0;font-family:var(--font-head);font-weight:900;font-size:clamp(21px,3vw,26px);line-height:1.45;letter-spacing:0.03em}
.plan-tag{margin:6px 0 0;color:#d9dcea;font-size:14px;line-height:1.7}
.plan-body{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr)}
.plan-price{padding:clamp(24px,4vw,36px) clamp(22px,4.5vw,44px);border-right:1px solid var(--line-soft);background:linear-gradient(180deg,#fff 0%,var(--cream) 100%)}
.plan-price-label,.plan-list-title{margin:0 0 4px;font-size:13px;font-weight:700;letter-spacing:0.12em;color:var(--muted)}
.plan-list-title{margin-bottom:12px}
.plan-price-main{margin:0;font-family:var(--font-head);font-weight:900;font-size:clamp(40px,5.4vw,48px);line-height:1.2;letter-spacing:0.01em}
.plan-yen{margin-left:2px;font-size:18px;font-weight:700}
.plan-price-main .price-tax{display:block;margin:6px 0 0;line-height:1.5}
.plan-perk{display:flex;align-items:flex-start;gap:10px;margin:22px 0 0;padding:12px 14px;border-radius:12px;background:var(--red-soft);color:var(--red-text);font-size:14.5px;font-weight:700;line-height:1.7}
.plan-perk .ic{width:20px;height:20px;margin-top:2px}
.plan-facts{display:flex;flex-direction:column;gap:12px;margin:18px 0 0;padding:0;list-style:none}
.plan-facts li{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.8;color:var(--muted)}
.plan-facts .ic{width:18px;height:18px;margin-top:3px;color:var(--navy)}
.plan-facts b{color:var(--ink)}
.plan-list{padding:clamp(24px,4vw,36px) clamp(22px,4.5vw,44px)}
.plan-inc{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}
.plan-inc li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:15px;line-height:1.7}
.plan-inc li:last-child{border-bottom:0}
.plan-inc-ic{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--beige);color:var(--navy)}
.plan-inc-ic .ic{width:20px;height:20px}
.plan-inc-goal .plan-inc-ic{background:var(--gold-soft);color:var(--gold-text)}
.plan-inc-t{font-weight:700}
.plan-inc-n{display:block;text-indent:-0.5em;font-size:13px;color:var(--muted)}
.plan-opens{display:flex;align-items:flex-start;justify-content:center;gap:10px;max-width:640px;margin:28px auto 30px;padding:12px 18px;border:1.5px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-size:15px;font-weight:700;line-height:1.8}
.plan-opens .ic{width:20px;height:20px;margin-top:3px;color:var(--red)}
.plan-card+.cta{margin-top:36px}
@media (max-width:760px){
  .plan-body{grid-template-columns:1fr}
  .plan-price{border-right:0;border-bottom:1px solid var(--line-soft)}
}

/* ---- §9 認定までの道のり(番号とアイコンの段。パソコンは横 1 列、スマホは縦の線でつなぐ) ---- */
.steps{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;max-width:980px;margin:0 auto;padding:0;list-style:none}
.steps::before{content:"";position:absolute;top:34px;left:7%;right:7%;height:2px;background:repeating-linear-gradient(90deg,var(--sand) 0 8px,transparent 8px 14px)}
.steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.step-ic{position:relative;display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border:2px solid var(--sand);border-radius:50%;background:#fff;color:var(--navy)}
.step-ic .ic{width:28px;height:28px}
.step-no{position:absolute;top:-4px;right:-4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;line-height:1}
.step-goal .step-ic{border-color:var(--red);background:var(--red);color:#fff}
.step-goal .step-no{background:var(--gold);color:var(--navy)}
.step-t{font-size:14.5px;font-weight:700;line-height:1.55}
.step-t small{display:block;font-size:12.5px;font-weight:500;color:var(--muted)}
@media (max-width:760px){
  .steps{grid-template-columns:1fr;gap:0;max-width:420px}
  .steps::before{top:20px;bottom:20px;left:33px;right:auto;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--sand) 0 8px,transparent 8px 14px)}
  .steps li{flex-direction:row;gap:16px;padding:8px 0;text-align:left}
  .step-ic{width:56px;height:56px;margin-left:5px}
  .step-ic .ic{width:24px;height:24px}
  .step-t small{display:inline}
}
.flow-opens{max-width:840px;margin:28px auto 0;text-align:center;font-size:14px;line-height:1.9;color:var(--muted)}
.flow-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:840px;margin:clamp(32px,5vw,44px) auto 0}
.flow-note{display:flex;align-items:flex-start;gap:12px;padding:18px 20px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--cream);font-size:15px;line-height:1.85}
.flow-note>.ic{width:22px;height:22px;margin-top:3px;color:var(--red)}
.flow-note p{margin:0}
.flow-note .flow-note-title{margin:0 0 4px;font-weight:700;color:var(--ink)}
.flow-note a{color:var(--navy);font-weight:700}
@media (max-width:760px){.flow-notes{grid-template-columns:1fr}}

/* ---- 概要(道のりの下・よくある質問の上)。3 つのまとまりを開いて読む ---- */
.ov-groups{display:flex;flex-direction:column;gap:12px;max-width:820px;margin:0 auto}
.ov-group{border:1px solid var(--line-soft);border-radius:var(--radius);background:#fff}
.ov-group summary{display:flex;align-items:center;gap:12px;padding:16px 22px;list-style:none;cursor:pointer;border-radius:var(--radius)}
.ov-tile{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--beige);color:var(--navy)}
.ov-tile .ic{width:18px;height:18px}
.ov-h{font-family:var(--font-head);font-weight:900;font-size:18px;letter-spacing:0.03em;color:var(--navy)}
.ov-sub{margin-left:auto;font-size:13px;color:var(--muted)}
.ov-chev{width:20px;height:20px;color:var(--muted);transition:transform .2s ease}
.ov-group[open] .ov-chev{transform:rotate(180deg)}
@media (max-width:640px){.ov-sub{display:none}.ov-chev{margin-left:auto}}
.overview-list{margin:0;padding:0 22px 12px}
.overview-list>div{padding:14px 0;border-top:1px solid var(--line-soft)}
.overview-list dt{margin:0 0 2px;font-size:13px;font-weight:700;letter-spacing:0.06em;color:var(--muted)}
.overview-list dd{margin:0;font-size:15.5px;line-height:1.9}
.overview-list ul{margin:4px 0 0;padding:0 0 0 1.2em}
.overview-list li{margin:0 0 4px}
.overview-list p{margin:6px 0 0}
.overview-list a{color:var(--navy)}
.contact-link{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1.5px solid var(--navy);border-radius:var(--pill);font-size:14.5px;font-weight:700;text-decoration:none}
.contact-link:hover{background:var(--navy);color:#fff}
.contact-link .ic{width:16px;height:16px}
.overview-list .ov-hours{margin-top:8px;font-size:13.5px;color:var(--muted)}

/* ---- §11 よくある質問 ---- */
.faq-list{display:flex;flex-direction:column;gap:12px;max-width:720px;margin:0 auto}
.faq-item{border:1px solid var(--line);border-radius:12px;background:var(--cream)}
.faq-item summary{display:flex;align-items:baseline;gap:14px;padding:20px 22px;list-style:none;cursor:pointer;border-radius:12px;font-size:15.5px;font-weight:700;line-height:1.8}
.faq-q{flex:0 0 auto;font-family:var(--font-head);font-weight:900;color:var(--red)}
.faq-text{flex:1;text-wrap:balance}
.faq-chev{display:inline-flex;flex:0 0 auto;align-self:center;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--navy)}
.faq-chev .ic{width:16px;height:16px}
[data-faq][open] .faq-chev{transform:rotate(45deg)}
@media (prefers-reduced-motion:reduce){[data-faq] [data-chev],.ov-chev{transition:none}}
.faq-a{margin:0;padding:0 22px 22px 48px;font-size:16px;line-height:2.1}
.faq-ref{color:var(--muted-2)}

/* ---- §12 最後の CTA(写真の上に文字) ---- */
.closing{position:relative;isolation:isolate;overflow:hidden;padding:clamp(80px,11vw,128px) var(--gutter);background:#f6ede9;text-align:center}
.closing-bg{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.closing::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(251,250,246,0.80) 0%,rgba(246,237,233,0.78) 100%);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);pointer-events:none}
.closing-inner{position:relative;z-index:2;max-width:720px;margin:0 auto}
.closing-title{margin:0 0 20px;font-family:var(--font-head);font-weight:900;font-size:clamp(30px,5.4vw,46px);line-height:1.5;letter-spacing:0.02em}
.closing-lead{margin:0 0 36px;font-size:clamp(15px,2.2vw,17px);line-height:2.1}
.closing-note{margin:28px 0 0;font-size:13.5px;line-height:1.9;color:var(--muted)}

/* ---- フッター(どのページも同じ。license-site/src/partials/footer.html)。上のふちは本サイトと同じ波形 ---- */
.site-footer{position:relative;padding:clamp(52px,7vw,72px) var(--gutter) 28px;background:var(--navy);color:#c9cedb;font-size:14px;line-height:1.9}
.site-footer::before{content:"";position:absolute;top:-9px;left:0;right:0;height:10px;background:radial-gradient(circle at 8px 10px,var(--navy) 6px,transparent 6.5px) 0 0/16px 10px repeat-x}
.site-footer-inner{max-width:1080px;margin:0 auto}
.site-footer-top{display:grid;grid-template-columns:minmax(0,0.8fr) minmax(0,2.4fr);gap:clamp(28px,5vw,64px);padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,0.12)}
.site-footer-logo{display:inline-block;line-height:0}
.site-footer-logo img{width:190px;height:42px;object-fit:contain;object-position:left center;filter:brightness(0) invert(1)}
.site-footer p{margin:0}
.site-footer-org{margin-top:14px!important;font-size:13.5px}
.site-footer-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.site-footer-h{margin:0 0 10px!important;font-size:12px;font-weight:700;letter-spacing:0.2em;color:var(--gold)}
.site-footer-nav ul{margin:0;padding:0;list-style:none}
.site-footer a{color:#f4efe4}
.site-footer a:hover{color:#f0b9ae}
.site-footer-nav a{display:inline-block;padding:5px 0;text-decoration:none;word-break:keep-all;overflow-wrap:anywhere}
.site-footer-nav a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer-nav .nw{white-space:nowrap}
.site-footer-nav .ic{width:13px;height:13px;margin-left:5px;vertical-align:-1px;opacity:0.7}
.site-footer-copy{padding-top:20px;color:#a9b0c2;font-size:12.5px}
@media (max-width:860px){.site-footer-top{grid-template-columns:1fr}}
@media (max-width:560px){.site-footer-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer-nav>div:last-child{grid-column:1 / -1}}
