/* ============================================================
   KAETAO Product LP — 共有スタイルシート
   デザイン: 「6b バイリンガル・エディトリアル」承認済みプロトタイプ準拠
   ja/en 両ページから読み込む共通CSS。スタイルの乖離を防ぐため
   値の変更は必ずこのファイルに対して行うこと。
   ============================================================ */

/* ── Fonts（自前ホスト。tools/subset-kaetao-fonts.py でサブセット生成済み） ──
   ⚠️ ページの文言（kaetao.html / kaetao.en.html / このCSS）を変更したら、
   tools/subset-kaetao-fonts.py を再実行してサブセットを作り直すこと。
   新しく使った文字がサブセットに含まれていないと、その文字だけ別フォントで描画される。 */
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Space Grotesk';src:url('fonts/SpaceGrotesk-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Zen Kaku Gothic New';src:url('fonts/ZenKakuGothicNew-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

/* ── Design Tokens ── */
:root{
  color-scheme:light;

  --paper:#F8F6F1;
  --ink:#22211C;
  --teal:#327E91;
  --green:#3B8A5A;
  --amber:#B97E1E;
  --red:#C4432B;
  --footer-bg:#F1EEE6;
  --paper-a90:rgba(248,246,241,.9);

  --ink-a03:rgba(34,33,28,.03);
  --ink-a10:rgba(34,33,28,.10);
  --ink-a12:rgba(34,33,28,.12);
  --ink-a15:rgba(34,33,28,.15);
  --ink-a18:rgba(34,33,28,.18);
  --ink-a22:rgba(34,33,28,.22);
  --ink-a35:rgba(34,33,28,.35);
  --ink-a38:rgba(34,33,28,.38);
  --ink-a40:rgba(34,33,28,.40);
  --ink-a42:rgba(34,33,28,.42);
  --ink-a45:rgba(34,33,28,.45);
  --ink-a50:rgba(34,33,28,.50);
  --ink-a55:rgba(34,33,28,.55);
  --ink-a60:rgba(34,33,28,.60);

  --status-ok-tint:rgba(59,138,90,.10);
  --status-soon-tint:rgba(185,126,30,.10);
  --status-overdue-tint:rgba(196,67,43,.10);

  --figure-shadow:0 6px 16px rgba(34,33,28,.13),0 44px 90px rgba(34,33,28,.11);
  --share-underline:rgba(50,126,145,.4);

  --container-max:1260px;
  --container-pad:clamp(20px,5vw,90px);

  --avatar-papa-bg:#CBDFF3;
  --avatar-mama-bg:#F8D2DA;
  --avatar-kid-bg:#FAE3C9;
  --avatar-cat-bg:#D7EBDD;
  --avatar-papa-fg:#2F6FB5;
  --avatar-mama-fg:#C2506A;
  --avatar-kid-fg:#B4762A;
  --avatar-cat-fg:#3B7D57;

  /* 和文本文にも欧文・数字が Space Grotesk で解決されるようバイリンガル指定 */
  --font-base:'Space Grotesk','Zen Kaku Gothic New',sans-serif;
  /* 大番号・ENラベル等、欧文がメインの箇所。ただし kicker/caption 等の一部要素は
     和文と混在するため、和文フォールバックとして和文フォントも指定しておく
     （指定しないと OS 標準フォントに落ち、Windows の非日本語ロケールでは
     簡体字字形で表示されてしまう）。 */
  --font-en:'Space Grotesk','Zen Kaku Gothic New',sans-serif;
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-base);-webkit-font-smoothing:antialiased}
/* height:auto がないと、HTML の width/height 属性が presentational hint として
   高さを固定してしまい（幅だけ CSS で上書きされる）画像が縦に伸びる。 */
img{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-decoration:none}
a:hover{color:var(--ink)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--teal);outline-offset:3px}

/* ── Reduced Motion ── */
@media (prefers-reduced-motion: reduce) {
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important}
}

/* ── Skip to Content ── */
.skip-to-content{position:absolute;top:-100%;left:0;padding:.75rem 1.5rem;background:var(--ink);color:var(--paper);font-weight:600;z-index:9999;transition:top .2s ease}
.skip-to-content:focus{top:0}

/* ── Icon Sprite（非表示） ── */
.kt-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* ── Grain Overlay ── */
.kt-grain{position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.5;background-image:url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27240%27 height=%27240%27%3E%3Cfilter id=%27n%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.8%27 numOctaves=%272%27/%3E%3CfeColorMatrix values=%270 0 0 0 0.13 0 0 0 0 0.13 0 0 0 0 0.11 0 0 0 0.05 0%27/%3E%3C/filter%3E%3Crect width=%27240%27 height=%27240%27 filter=%27url(%23n)%27/%3E%3C/svg%3E')}

/* ── Layout Helpers ── */
.kt-container{max-width:var(--container-max);margin:0 auto;padding-inline:var(--container-pad)}
.kt-section{padding-block:clamp(40px,5vw,72px)}
.kt-icon{display:inline-block;flex:none}

/* ── Header ── */
.kt-header{position:sticky;top:0;z-index:50;background:var(--paper-a90);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--ink-a12)}
.kt-header__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:16px}
.kt-wordmark{font:600 17px var(--font-en);letter-spacing:.3em;color:var(--ink)}
.kt-nav{display:flex;align-items:center;gap:clamp(14px,2.4vw,28px);flex-wrap:wrap}
.kt-nav__link{font:500 14px var(--font-base);color:var(--ink-a60);transition:color .15s ease}
.kt-nav__link:hover{color:var(--ink)}
.kt-nav__lang{font:500 13px var(--font-en);color:var(--ink-a45)}
.kt-nav__lang a{color:var(--teal);transition:color .15s ease}
.kt-nav__lang a:hover{color:var(--ink)}
.kt-nav__lang strong{font-weight:600;color:var(--ink)}

/* 狭い画面ではセクションリンクを畳む。出しっぱなしだと nav が3行に折り返して
   sticky ヘッダーが 159px（iPhone 縦の約19%）を常時占有してしまうため。
   セクションへの導線はヒーロー直下の INDEX が担うので、ヘッダーには
   ワードマーク・言語切替・CTA だけを残す。 */
@media (max-width: 760px) {
  .kt-nav__link{display:none}
}

/* ── Pills / Buttons ── */
.kt-pill{display:inline-flex;align-items:center;border-radius:999px;font-family:var(--font-base);font-weight:500;white-space:nowrap;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.kt-pill--ink{background:var(--ink);color:var(--paper)}
.kt-pill--ink:hover{background:var(--teal);color:var(--paper)}
.kt-pill--outline{border:1.5px solid var(--ink-a40);color:var(--ink)}
.kt-pill--outline:hover{border-color:var(--ink);color:var(--ink)}
.kt-pill--sm{gap:8px;padding:10px 22px;font-size:14px}
.kt-pill--md{gap:10px;padding:16px 32px;font-size:16px}
.kt-pill--lg{gap:10px;padding:18px 38px;font-size:17px}
.kt-pill--sticky{gap:9px;padding:14px 30px;font-size:15px}

/* ── Hero ── */
.kt-hero{padding-block:clamp(48px,7vw,110px) clamp(40px,5vw,80px)}
.kt-hero__grid{display:flex;gap:clamp(32px,5vw,70px);flex-wrap:wrap;align-items:flex-start}
.kt-hero__text{flex:1 1 480px;min-width:300px}
.kt-hero__kicker{font:500 clamp(14px,1.6vw,19px) var(--font-en);letter-spacing:.24em;color:var(--teal);animation:kt-fade-in-up .7s ease-out backwards}
.kt-hero__title{margin:clamp(14px,2vw,24px) 0 0;font:700 clamp(40px,5.8vw,84px)/1.42 var(--font-base);letter-spacing:.01em;color:var(--ink);animation:kt-fade-in-up .7s ease-out .08s backwards}
.kt-hero__title span{color:var(--teal)}
.kt-hero__title .kt-hero__title-line1{color:inherit;white-space:nowrap}
.kt-hero__lead{margin:clamp(18px,2.4vw,30px) 0 0;font:500 clamp(15px,1.5vw,19px)/1.9 var(--font-base);color:var(--ink-a55);max-width:600px;text-wrap:pretty;animation:kt-fade-in-up .7s ease-out .16s backwards}
.kt-hero__cta{margin-top:clamp(26px,3.4vw,44px);display:flex;gap:14px;flex-wrap:wrap;animation:kt-fade-in-up .7s ease-out .24s backwards}
.kt-hero__note{margin-top:16px;font:400 12.5px var(--font-base);color:var(--ink-a42);animation:kt-fade-in-up .7s ease-out .32s backwards}

/* ページ読み込み時のヒーロー演出。ヒーロー内テキストと図版を上から順に
   fadeInUp で段階表示する（現行LPの踏襲）。scroll reveal 用のトランジションと
   併用するため、この @keyframes は opacity/translateY のみを扱う。 */
@keyframes kt-fade-in-up {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ── Device Figure（共通） ── */
.kt-figure{flex:0 1 320px;min-width:250px;margin:0 auto}
.kt-figure--hero{flex:0 1 340px;animation:kt-fade-in-up .8s ease-out .3s backwards}
.kt-figure__frame{border:1.5px solid var(--ink-a18);border-radius:46px;overflow:hidden;box-shadow:var(--figure-shadow)}
.kt-figure--hero .kt-figure__frame{border-radius:48px}
.kt-figure__frame img{width:100%;display:block}
.kt-figure__caption{margin-top:14px;font:500 12px var(--font-en);letter-spacing:.16em;color:var(--ink-a40);text-align:center}

/* ── Index ── */
.kt-index{padding-top:0;padding-bottom:clamp(48px,6vw,90px)}
.kt-index__heading{display:flex;align-items:center;gap:14px}
.kt-index__rule{flex:none;width:56px;height:2px;background:var(--ink-a15)}
.kt-index__rule--fill{flex:1;width:auto}
.kt-index__label{margin:0;font:600 13px var(--font-en);letter-spacing:.22em;color:var(--ink-a45)}
.kt-index__grid{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));column-gap:clamp(24px,4vw,64px)}
.kt-index__item{display:flex;gap:16px;align-items:baseline;padding:18px 4px;border-bottom:1px solid var(--ink-a10);color:var(--ink);transition:background-color .15s ease}
.kt-index__item:hover{background:var(--ink-a03);color:var(--ink)}
.kt-index__num{font:600 15px var(--font-en)}
.kt-index__title{font:700 17px var(--font-base)}
.kt-index__tag{margin-left:auto;font:500 11px var(--font-en);letter-spacing:.14em;color:var(--ink-a40)}

/* セクションカラー（番号・アクセントに対応） */
.kt-index__num--f01,.kt-index__num--f05,.kt-index__num--f06{color:var(--teal)}
.kt-index__num--f02{color:var(--green)}
.kt-index__num--f03{color:var(--red)}
.kt-index__num--f04{color:var(--amber)}

/* ── Feature Sections ── */
/* sticky ヘッダーの実高ぶんアンカー位置をずらす。ヘッダーは幅によって
   1行(73px)〜2行になるため、余裕を持たせた値を段階的に当てる。 */
.kt-feature,#main,#dl{scroll-margin-top:90px}
@media (max-width: 900px) {
  .kt-feature,#main,#dl{scroll-margin-top:128px}
}
@media (max-width: 760px) {
  .kt-feature,#main,#dl{scroll-margin-top:90px}
}
/* 330px以下では .kt-nav__link が非表示でもワードマーク・言語切替・CTAボタンが
   1行に収まりきらずヘッダーが2行に折り返すため、90px では着地点がヘッダー下に
   潜ってしまう（実測: 幅330pxでヘッダー高110.5px、340px以上は73pxで1行に収まる）。
   実測値に余裕を持たせた値を当てる。 */
@media (max-width: 340px) {
  .kt-feature,#main,#dl{scroll-margin-top:120px}
}
.kt-rule-block{border-top:2px solid var(--ink-a12);padding-top:clamp(28px,4vw,52px)}
.kt-feature__inner{border-top:2px solid var(--ink-a12);padding-top:clamp(28px,4vw,52px);display:flex;gap:clamp(28px,4.5vw,70px);flex-wrap:wrap;align-items:center}
.kt-feature--reverse .kt-feature__inner{flex-direction:row-reverse}
.kt-feature__text{flex:1 1 440px;min-width:300px}
.kt-feature__head{display:flex;gap:24px;align-items:baseline}
.kt-feature__num{font:700 clamp(56px,8vw,120px)/0.95 var(--font-en)}
.kt-feature__num--teal{color:var(--teal)}
.kt-feature__num--green{color:var(--green)}
.kt-feature__num--red{color:var(--red)}
.kt-feature__num--amber{color:var(--amber)}
.kt-feature__heading{margin:0;font:700 clamp(26px,3.2vw,44px)/1.4 var(--font-base);color:var(--ink)}
.kt-feature__heading span{color:var(--teal)}
.kt-feature__heading--green span{color:var(--green)}
.kt-feature__heading--red span{color:var(--red)}
.kt-feature__heading--amber span{color:var(--amber)}
.kt-feature__kicker{margin-top:8px;font:500 clamp(11px,1.2vw,14px) var(--font-en);letter-spacing:.2em;color:var(--ink-a40)}
.kt-feature__body{margin:clamp(16px,2vw,26px) 0 0;font:500 clamp(15px,1.4vw,17.5px)/1.9 var(--font-base);color:var(--ink-a55);max-width:560px;text-wrap:pretty}

/* f05: 家族共有 avatar 行 */
.kt-family{margin-top:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.kt-avatars{display:flex}
.kt-avatar{width:52px;height:52px;border-radius:50%;border:2px solid var(--paper);display:flex;align-items:center;justify-content:center}
.kt-avatar+.kt-avatar{margin-left:-12px}
.kt-avatar--papa{background:var(--avatar-papa-bg)}
.kt-avatar--mama{background:var(--avatar-mama-bg)}
.kt-avatar--kid{background:var(--avatar-kid-bg)}
.kt-avatar--cat{background:var(--avatar-cat-bg)}
.kt-avatar__glyph{width:30px;height:30px}
.kt-avatar__glyph--papa{color:var(--avatar-papa-fg)}
.kt-avatar__glyph--mama{color:var(--avatar-mama-fg)}
.kt-avatar__glyph--kid{color:var(--avatar-kid-fg)}
.kt-avatar__glyph--cat{color:var(--avatar-cat-fg)}
.kt-family__note{font:500 13px var(--font-base);color:var(--ink-a50)}

/* f01: ステータス3色レジェンド */
.kt-legend{flex:0 1 420px;min-width:280px;display:flex;flex-direction:column;gap:2px}
.kt-legend__row{display:flex;align-items:center;gap:18px;padding:22px 26px}
.kt-legend__row--ok{background:var(--status-ok-tint);border-radius:18px 18px 4px 4px}
.kt-legend__row--soon{background:var(--status-soon-tint);border-radius:4px}
.kt-legend__row--overdue{background:var(--status-overdue-tint);border-radius:4px 4px 18px 18px}
.kt-legend__dot{flex:none;width:16px;height:16px;border-radius:50%}
.kt-legend__dot--ok{background:var(--green)}
.kt-legend__dot--soon{background:var(--amber)}
.kt-legend__dot--overdue{background:var(--red)}
.kt-legend__label{font:700 19px var(--font-base);color:var(--ink)}
.kt-legend__code{margin-left:auto;font:500 12px var(--font-en);letter-spacing:.14em}
.kt-legend__code--ok{color:var(--green)}
.kt-legend__code--soon{color:var(--amber)}
.kt-legend__code--overdue{color:var(--red)}
.kt-legend__note{margin-top:14px;font:500 12px var(--font-en);letter-spacing:.16em;color:var(--ink-a40);text-align:center}

/* f06: Alexa 吹き出し */
.kt-alexa{flex:0 1 460px;min-width:280px;margin:0 auto}
.kt-alexa__bubble{position:relative;border-radius:24px;padding:30px 30px 30px 104px}
.kt-alexa__bubble--primary{border:2px dashed var(--ink-a38)}
.kt-alexa__bubble--secondary{margin-top:18px;margin-left:36px;border:2px dashed var(--ink-a22)}
.kt-alexa__arc{position:absolute;border:4px solid transparent;border-radius:50%}
.kt-alexa__bubble--primary .kt-alexa__arc{border-right-color:var(--teal)}
.kt-alexa__bubble--secondary .kt-alexa__arc{border-right-color:var(--ink-a35)}
.kt-alexa__arc--1{left:28px;top:38px;width:22px;height:22px}
.kt-alexa__arc--2{left:21px;top:31px;width:36px;height:36px}
.kt-alexa__arc--3{left:14px;top:24px;width:50px;height:50px}
.kt-alexa__text{font:500 clamp(17px,1.8vw,21px)/1.6 var(--font-base);color:var(--ink)}
.kt-alexa__bubble--secondary .kt-alexa__text{font-size:clamp(15px,1.6vw,18px);color:var(--ink-a55)}
.kt-alexa__note{margin-top:16px;font:500 12px var(--font-en);letter-spacing:.16em;color:var(--ink-a40);text-align:center}

/* ── Plan ── */
.kt-plan__head{display:flex;gap:24px;align-items:baseline;flex-wrap:wrap}
.kt-plan__title{margin:0;font:700 clamp(26px,3.2vw,44px)/1.4 var(--font-base);color:var(--ink)}
.kt-plan__title span{color:var(--teal)}
.kt-plan__tag{font:500 clamp(11px,1.2vw,14px) var(--font-en);letter-spacing:.2em;color:var(--ink-a40)}
.kt-plan__table-wrap{margin-top:clamp(24px,3vw,44px);max-width:760px}
.kt-plan__table{display:grid;grid-template-columns:1fr auto auto;column-gap:clamp(20px,4vw,60px);row-gap:0;align-items:center}
.kt-plan__table-row{display:contents}
.kt-plan__col-head{font:600 14px var(--font-en);letter-spacing:.14em;padding:12px 0}
.kt-plan__col-head--free{color:var(--ink-a45)}
.kt-plan__col-head--pro{color:var(--teal)}
.kt-plan__row-label{font:500 16px var(--font-base);color:var(--ink);padding:16px 0;border-top:1px solid var(--ink-a10)}
.kt-plan__free{font:500 15px var(--font-base);color:var(--ink-a55);padding:16px 0;border-top:1px solid var(--ink-a10)}
.kt-plan__pro{font:700 15px var(--font-base);color:var(--ink);padding:16px 0;border-top:1px solid var(--ink-a10)}
.kt-plan__footnote{margin:18px 0 0;font:400 13px/1.8 var(--font-base);color:var(--ink-a45)}

/* ── FAQ ── */
.kt-faq__head{display:flex;gap:24px;align-items:baseline;flex-wrap:wrap}
.kt-faq__title{margin:0;font:700 clamp(26px,3.2vw,44px)/1.4 var(--font-base);color:var(--ink)}
.kt-faq__tag{font:500 clamp(11px,1.2vw,14px) var(--font-en);letter-spacing:.2em;color:var(--ink-a40)}
.kt-faq__list{margin-top:clamp(20px,2.6vw,36px);max-width:840px}
.kt-faq__item{border-bottom:1px solid var(--ink-a10)}
.kt-faq__summary{display:flex;gap:18px;align-items:baseline;padding:20px 4px;font:700 16.5px var(--font-base);color:var(--ink)}
.kt-faq__q{font:600 14px var(--font-en);color:var(--teal)}
.kt-faq__icon{margin-left:auto;color:var(--ink-a40);transition:transform .2s ease}
.kt-faq__item[open] .kt-faq__icon{transform:rotate(45deg)}
.kt-faq__answer{margin:0;padding:0 4px 22px 36px;font:400 15px/1.9 var(--font-base);color:var(--ink-a60)}
/* 手順の番号は Space Grotesk / Zen Kaku Gothic New どちらも等幅数字(tabular
   figures)を持たず、桁ごとに字幅がばらつき縦の並びが揃わない。正規化できないため
   番号ではなく「・」記号に統一する（意味的な順序は <ol> のまま維持） */
.kt-faq__steps{margin:0;padding:0 4px 22px 56px;font:400 15px/2 var(--font-base);color:var(--ink-a60);list-style-type:"・ "}

/* ── Final CTA ── */
.kt-cta-final{text-align:center;padding-block:clamp(48px,6vw,96px) clamp(56px,7vw,120px)}
.kt-cta-final__inner{border-top:2px solid var(--ink-a12);padding-top:clamp(40px,5vw,72px)}
.kt-cta-final__kicker{font:500 clamp(13px,1.4vw,16px) var(--font-en);letter-spacing:.24em;color:var(--teal)}
.kt-cta-final__title{margin:18px 0 0;font:700 clamp(32px,4.6vw,64px)/1.45 var(--font-base);color:var(--ink)}
.kt-cta-final__title span{color:var(--teal)}
.kt-cta-final__buttons{margin-top:clamp(24px,3vw,40px);display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.kt-cta-final__note{margin-top:16px;font:400 12.5px var(--font-base);color:var(--ink-a42)}
.kt-share{margin-top:clamp(28px,3.4vw,48px);display:flex;gap:22px;justify-content:center;align-items:center;flex-wrap:wrap}
.kt-share__label{font:500 13px var(--font-base);color:var(--ink-a50)}
.kt-share__link{font:500 13px var(--font-en);letter-spacing:.06em;color:var(--teal);border-bottom:1px solid var(--share-underline);transition:color .15s ease}
.kt-share__link:hover{color:var(--ink)}

/* ── Footer ── */
.kt-footer{border-top:1px solid var(--ink-a12);background:var(--footer-bg)}
.kt-footer__inner{padding-block:clamp(28px,4vw,48px);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.kt-footer__wordmark{font:600 15px var(--font-en);letter-spacing:.3em;color:var(--ink)}
.kt-footer__copy{margin-top:8px;font:400 12px var(--font-base);color:var(--ink-a45)}
.kt-footer__nav{display:flex;gap:clamp(16px,2.6vw,30px);flex-wrap:wrap}
.kt-footer__nav a{font:500 13px var(--font-base);color:var(--ink-a60);transition:color .15s ease}
.kt-footer__nav a:hover{color:var(--ink)}

/* ── Sticky CTA ── */
.kt-sticky-cta{position:fixed;bottom:22px;left:50%;transform:translate(-50%,10px);z-index:90;box-shadow:0 10px 30px rgba(34,33,28,.3);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
.kt-sticky-cta.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0);transition:opacity .25s ease,transform .25s ease}

/* ── EN 見出しサイズ調整 ──
   英語コピーは検証の結果、既定の clamp 上限内に収まったため
   現状は追加調整なし（詳細は実装報告を参照）。
   将来コピーが長くなった場合はここに html[lang="en"] スコープの
   上書きルールを追加すること。 */
