/* Skill Base Camp — 共通スタイル
   決めた値は docs/design.md にある。値を増やす前にそちらを見る。
   大面積を装飾で埋めない。ブランド面は「実物の表紙」と「選んだ書体」が持ち、
   濃緑は購入ブロックと脚部だけが持つ。 */
:root{
  --ink:#1a1a1a;
  --sub:#5f6360;
  --line:#dcd8cd;
  --line-fine:#e9e6dd;
  --paper:#f7f5ef;
  --paper-2:#fffdf8;
  --green:#0f5f4c;
  --green-deep:#0b443b;
  --lime:#a8d85a;
  --lime-ink:#4e7c1f;
  /* 角丸は紙の裁ちに寄せて小さく。全要素を同じ半径にしない（購入カードだけ 8px） */
  --r:4px;
  /* 見出しは選んだ書体（しっぽり明朝）。OS標準のままだと「選んでいない既定値」になる。
     本文は標準のゴシックのままにして読み込みを増やさない。Google Fonts は
     unicode-range でサブセットを分けて配るので、見出しに使う字だけが落ちてくる
     （1サブセット約11KB。候補のうち最軽量で、Noto Serif JP は普及しすぎていて既定値に近い） */
  --display:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --mincho:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;
  --gothic:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",sans-serif;
  /* 基準幅は1本だけ。節ごとに幅を変えると左右の端が揃わず、
     幅広の節（カード・目次・購入）だけが飛び出して見える。
     832px（= 880 − 左右24）は本文15pxで1行55字前後に収まる */
  --wrap:880px;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--gothic); font-size:16px; line-height:1.95;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
/* palt は約物を詰める指定。本文全体に掛けると和欧混植で英数が浮くので、見出しと数字だけに当てる */
h1,h2,h3,.brand,.site-foot .mark,.price,.price-line,.hero-meta,.catch{font-feature-settings:"palt"}
/* 日本語は幅で折ると語の途中で折れる。見出しは文節ごとにこれで包み、切れ目だけで折る */
.u{display:inline-block}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}

/* --- ヘッダー ------------------------------------------------------- */
.site-head{
  position:sticky;top:0;z-index:20;
  background:rgba(247,245,239,.92);backdrop-filter:saturate(150%) blur(8px);
  border-bottom:1px solid var(--line-fine);
}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;height:58px}
.brand{font-family:var(--gothic);font-size:13px;letter-spacing:.24em;color:var(--green);
  text-decoration:none;font-weight:600;white-space:nowrap}
.head-nav{display:flex;gap:22px;font-size:13.5px}
/* 「刊行物」「このサイトについて」を字の途中で折らない。
   折り返すと2行になってヘッダの高さ（58px）を越え、ブランド名に重なる */
.head-nav a{color:var(--sub);text-decoration:none;white-space:nowrap}
.head-nav a:hover{color:var(--green)}

/* --- ヒーロー ------------------------------------------------------- */
/* 地は濃緑。ブランドの面としてここは合っていたので戻した。
   やめたのはグラデーションと上昇する曲線のほうで、**色ではなく装飾**が問題だった。
   画面で一番大きい面を意味のない装飾で埋めると、どのサイトとも似る。
   単色の濃緑（購入ブロック・404 と同じ面色）に、実物の表紙を重ねる。 */
/* 商品ページだけは、その本の表紙の地色（--tone）に替える。濃緑の面に茶や紺の表紙を置くと浮くため。
   --tone は build-site.mjs が book.json の colors から body に差し込む */
.hero{position:relative;background:var(--tone,var(--green-deep));color:#fff}
/* 左右非対称にし、表紙は下の節へはみ出させる。
   同じ高さの帯が上から順に積まれるだけの構成を、1箇所だけ意図的に崩す */
.hero .wrap{position:relative;display:grid;grid-template-columns:1.2fr 300px;gap:56px;
  align-items:end;padding-top:64px;padding-bottom:64px}
/* 見出しの上に字間を空けた英字ラベルを置かない。見出しに語らせる。
   折り返しは文節ごとの .u が決める（手で <br> を入れない） */
.hero h1{font-family:var(--display);font-weight:600;letter-spacing:.03em;
  font-size:clamp(28px,4.6vw,44px);line-height:1.38;max-width:17em}
.hero .lead{font-size:15.5px;line-height:2.05;color:rgba(255,255,255,.82);margin-top:22px;max-width:34em}
/* 仕様は丸ピルを並べず、1行の文で書く */
.hero-meta{font-size:13px;letter-spacing:.03em;color:rgba(255,255,255,.78);margin-top:22px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:32px}
.price-line{font-family:var(--display);font-size:15px;color:rgba(255,255,255,.8);margin-top:18px}
.price-line b{font-size:27px;font-weight:600;color:#fff;letter-spacing:.02em}
.cover-shot{align-self:end;margin-bottom:-52px;position:relative;z-index:1}
.cover-shot img{border-radius:2px;box-shadow:0 18px 46px rgba(0,0,0,.42)}
/* はみ出した表紙のぶん、次の節の頭を空ける */
.hero+section{padding-top:84px}

/* --- ボタン --------------------------------------------------------- */
.btn{display:inline-block;border-radius:var(--r);font-size:14.5px;font-weight:600;
  letter-spacing:.04em;padding:13px 26px;text-decoration:none;transition:.15s;border:1px solid transparent}
.btn-primary{background:var(--tone-accent,var(--lime));color:var(--tone-ink,#0b3a22)}
.btn-primary:hover{background:color-mix(in srgb,var(--tone-accent,var(--lime)) 82%,#fff)}
.btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{border-color:var(--tone-accent,var(--lime));color:var(--tone-accent,var(--lime))}
.btn-solid{background:var(--green);color:#fff}
.btn-solid:hover{background:#0d4f40}
.btn-line{border-color:var(--green);color:var(--green)}
.btn-line:hover{background:rgba(15,95,76,.07)}

/* --- セクション ----------------------------------------------------- */
/* 節の余白は3段階。全節を同じにすると、節の変わり目と節の中の間が同じ強さになる。
   主役（見本問題）と結論（購入）の前後を広く取る */
section{padding:64px 0}
#sample{padding:88px 0}
#buy{padding:96px 0}
section.tint{background:var(--paper-2);border-top:1px solid var(--line-fine);border-bottom:1px solid var(--line-fine)}
h2{font-family:var(--display);font-weight:600;font-size:clamp(21px,3vw,27px);
  letter-spacing:.05em;line-height:1.5;margin-bottom:10px}
.sec-lead{color:var(--sub);font-size:15px;line-height:2.05;margin-bottom:36px;max-width:40em}
h3{font-family:var(--gothic);font-size:16px;font-weight:600;letter-spacing:.02em;margin-bottom:8px}
p+p{margin-top:1em}

/* --- 方針 ----------------------------------------------------------- */
/* 等幅3枚のカードに並べない（同じ箱・同じ長さの本文が3つ並ぶのは既製品の型）。
   縦に積んで罫線で区切り、長さは内容のまま不揃いにする */
.principles>div{border-top:1px solid var(--line-fine);padding:20px 0}
.principles>div:last-child{border-bottom:1px solid var(--line-fine)}
.principles h3{margin-bottom:6px}
.principles p{font-size:14.5px;line-height:1.95;color:var(--sub);max-width:46em}

/* --- 仕様表 --------------------------------------------------------- */
table.kv{width:100%;border-collapse:collapse;font-size:14.5px}
table.kv th,table.kv td{border-bottom:1px solid var(--line-fine);padding:13px 0;text-align:left;vertical-align:top}
table.kv th{width:9em;font-weight:600;color:var(--ink);padding-right:20px;white-space:nowrap}
table.kv td{color:var(--sub)}
/* 狭い画面では見出しと値を上下に積む。9em の見出し列を残すと、
   値の側が半分以下になって「A5判・408ペー／ジ」のように毎行折れる */
@media (max-width:560px){
  table.kv tr{display:block;border-bottom:1px solid var(--line-fine);padding:12px 0}
  table.kv th,table.kv td{display:block;width:auto;padding:0;border-bottom:none}
  table.kv th{white-space:normal;margin-bottom:5px}
}

/* --- 章立て --------------------------------------------------------- */
/* 章は第1章から順に書き、2列組みは grid の縦流し（左＝前半、右＝後半）で作る。
   HTML 側を「左右交互」に並べ替えると、1列に畳んだ狭い画面で 1章→7章→2章 と読めなくなる。
   行数は商品ごとに違うので --toc-rows で渡す */
.toc{display:grid;grid-auto-flow:column;
  grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(var(--toc-rows,6),auto);gap:0 40px}
.toc div{display:flex;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--line-fine);padding:11px 0;font-size:14.5px}
.toc .q{color:var(--sub);white-space:nowrap;font-variant-numeric:tabular-nums}

/* --- 見本問題 ------------------------------------------------------- */
.sample-q{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:30px 30px 26px;font-family:var(--mincho);font-size:15px;line-height:1.95}
.sample-q .q-head{font-family:var(--gothic);font-size:12px;font-weight:600;letter-spacing:.1em;
  color:var(--green);border-bottom:1px solid var(--line-fine);padding-bottom:9px;margin-bottom:18px;
  display:flex;justify-content:space-between;gap:12px}
.sample-q .q-head span:last-child{font-weight:400;color:var(--sub);letter-spacing:.04em}
.sample-q ol{list-style:none;margin:16px 0 0;padding:0;counter-reset:c}
.sample-q ol li{counter-increment:c;padding-left:2.1em;text-indent:-2.1em;margin-bottom:.5em}
.sample-q ol li::before{content:counter(c,upper-alpha) "　";font-family:var(--gothic);font-weight:600;color:var(--green)}
.sample-a{margin-top:22px;border-top:1px solid var(--line-fine);padding-top:18px;font-size:14px;line-height:1.95}
.sample-a .ans{font-family:var(--gothic);font-weight:600;color:var(--green);margin-bottom:8px;letter-spacing:.06em}
.sample-a .why{color:var(--sub);font-size:13.5px;margin-top:10px}
.sample-a .why::before{content:"他の選択肢　";color:var(--lime-ink)}
.sample-a .src{font-family:var(--gothic);font-size:12px;color:var(--sub);margin-top:12px}
.sample-a .src::before{content:"出典　";color:var(--lime-ink)}
.sample-a .src.chapter::before{content:"本章の出典　"}

/* 見本問題の表。商品PDF（gx/product/template-book.html の table.calc）と同じ組み方。
   ヘッダ行の上下と最終行の下だけに罫を引き、数値は右揃え、
   キャプションは小さいゴシックで表の上に左寄せ。罫線は h2 や .q-head の下罫と同じ扱い。
   狭い画面では表だけ横スクロールさせ、本文は折り返す。 */
.sample-q .tbl{overflow-x:auto;margin:18px 0 16px;-webkit-overflow-scrolling:touch}
.sample-q table.calc{border-collapse:collapse;font-family:var(--gothic);font-size:13.5px;
  line-height:1.7;min-width:100%;white-space:nowrap}
.sample-q table.calc caption{caption-side:top;text-align:left;font-size:11.5px;letter-spacing:.06em;
  color:var(--sub);padding:0 0 7px;white-space:normal}
.sample-q table.calc th,.sample-q table.calc td{padding:6px 18px 6px 0;text-align:left}
.sample-q table.calc th:last-child,.sample-q table.calc td:last-child{padding-right:0}
.sample-q table.calc tr:first-child th{font-weight:600;
  border-top:1.5px solid var(--ink);border-bottom:1px solid var(--ink)}
.sample-q table.calc tr:last-child td{border-bottom:1.5px solid var(--ink)}
.sample-q table.calc th.num,.sample-q table.calc td.num{text-align:right;font-variant-numeric:tabular-nums}
/* 数値の列は左に余白を取る（右端の列だけ余白0にすると、右寄せの値の間隔がそこだけ詰まる） */
.sample-q table.calc th.num,.sample-q table.calc td.num{padding-left:18px;padding-right:0}
/* 数値の列が2つ以上ある表は、値に同じ最低幅を持たせて間隔を揃える（--numw は sample-from-md.mjs が表ごとに入れる） */
table.calc td.num .nw{display:inline-block;min-width:var(--numw)}
/* 表が本文幅まで広がるとき、余りを文字の列でなく数値の列に均等に配る（文字の列は折り返さない設定なので縮めてよい） */
table.calc[style*="--numw"] th:not(.num),table.calc[style*="--numw"] td:not(.num){width:1%}
/* 解説の中の表（計算過程）は本文に寄せて一段小さく */
.sample-a .tbl{margin:12px 0 14px}
.sample-a table.calc{font-size:12.5px}
.sample-a table.calc th,.sample-a table.calc td{padding:5px 16px 5px 0}
.sample-a table.calc th.num,.sample-a table.calc td.num{padding-left:16px;padding-right:0}

/* --- 購入ブロック --------------------------------------------------- */
/* ブランドの濃緑はここと脚部だけが持つ。グラデーションと曲線はやめて単色にする */
.buy{background:var(--tone,var(--green-deep));color:#fff;
  border-radius:8px;padding:44px 40px;position:relative}
/* 価格と説明が上、ボタンが下。基準幅を 880 に詰めたので左右2段組みにすると
   左の段が 480px ほどしか取れず、説明文の末尾が1〜2文字だけ次行に残る */
.buy-inner{position:relative;display:grid;gap:26px}
.buy h2{color:#fff;margin-bottom:6px}
.buy .price{font-family:var(--display);font-size:38px;font-weight:600;letter-spacing:.02em;line-height:1.2}
.buy .price small{font-family:var(--gothic);font-size:13px;font-weight:400;color:rgba(255,255,255,.72);margin-left:8px}
.buy .note{font-size:13px;color:rgba(255,255,255,.72);line-height:1.9;margin-top:12px}
.buy-actions{display:flex;flex-wrap:wrap;gap:12px}
.buy-actions .btn{flex:1 1 220px;text-align:center}

/* --- 注意事項 ------------------------------------------------------- */
/* 左端だけに色帯を入れるコールアウトは使わない（AI生成物に見えるため）。
   強調は、本文で既に使っている「見出しに下罫」の語彙に寄せる */
.callout{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 28px}
.callout h3{font-size:15px;margin-bottom:14px;padding-bottom:11px;
  border-bottom:1px solid var(--line-fine)}
.callout p{font-size:14px;line-height:1.95;color:var(--sub)}
.callout p strong{color:var(--ink)}
ul.terms{list-style:none;margin:0;padding:0}
ul.terms li{position:relative;padding-left:20px;margin-bottom:13px;font-size:14px;line-height:1.95;color:var(--sub)}
ul.terms li::before{content:"";position:absolute;left:4px;top:.85em;width:5px;height:5px;
  border-radius:50%;background:var(--lime)}
ul.terms b{color:var(--ink);font-weight:600}

/* --- FAQ ------------------------------------------------------------ */
.faq details{border-bottom:1px solid var(--line-fine);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;padding:16px 30px 16px 0;font-size:15px;
  font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";position:absolute;right:4px;top:16px;color:var(--lime-ink);font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq .a{font-size:14.5px;line-height:2.05;color:var(--sub);padding:0 0 18px}

/* --- フッター ------------------------------------------------------- */
.site-foot{background:var(--tone-foot,#0b2b25);color:rgba(255,255,255,.62);padding:52px 0 60px;font-size:12.5px;line-height:1.95}
.site-foot .mark{font-size:12px;letter-spacing:.26em;color:var(--tone-accent,var(--lime));font-weight:600;margin-bottom:16px}
.site-foot a{color:rgba(255,255,255,.82)}
.site-foot .disc{border-top:1px solid rgba(255,255,255,.16);margin-top:22px;padding-top:20px;max-width:62em}
.site-foot .disc b{color:rgba(255,255,255,.9)}
.foot-nav{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:6px}

/* --- 記事ページ ----------------------------------------------------- */
.page-head{background:var(--paper-2);border-bottom:1px solid var(--line-fine);padding:56px 0 44px}
.page-head h1{font-family:var(--display);font-weight:600;font-size:clamp(24px,3.6vw,32px);letter-spacing:.05em}
.prose h2{font-size:20px;margin:44px 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line-fine)}
.prose p,.prose li{font-size:15px;line-height:2.05;color:#33383a}
.prose ul{padding-left:1.2em;margin:10px 0}
.prose li{margin-bottom:8px}

@media (max-width:860px){
  /* 縦に積むとヒーローだけで1画面を越える（商品ページで904px＝画面の107%あった）。
     行間と間隔を詰めて、見出しから表紙までを最初の画面に収める */
  .hero .wrap{grid-template-columns:1fr;gap:24px;padding-top:36px;padding-bottom:30px}
  .hero .lead{line-height:1.85;margin-top:16px}
  .hero-meta{margin-top:16px}
  .price-line{margin-top:14px}
  .hero-cta{margin-top:22px}
  /* 幅の違うボタンが縦に並ぶと不揃いに見える（144pxと252pxが並んでいた）。全幅で揃える */
  .hero-cta .btn{flex:1 1 100%;text-align:center}
  /* 狭い画面でははみ出させない。横並びをやめた時点で「下の節へ越境する」意図が伝わらず、
     わずか2pxだけ重なった状態は、画像が継ぎ目で切れた不具合にしか見えなかった。
     中央寄せもやめて、見出し・ボタンと同じ左端に揃える */
  .cover-shot{max-width:150px;margin:8px 0 0}
  .hero+section{padding-top:48px}
  .toc{grid-auto-flow:row;grid-template-columns:1fr;grid-template-rows:none}
  .buy{padding:34px 24px}
  /* 「税込・PDFダウンロード」を価格の横に置くと、途中で折れて「ド」だけが次行に残る */
  .buy .price small{display:block;margin-left:0;margin-top:6px}
  .head-nav{gap:16px;font-size:12.5px}
  section{padding:48px 0}
  #sample,#buy{padding:64px 0}
  .sample-q{padding:24px 20px 22px}
  .sample-q table.calc{font-size:12.5px}
  .sample-q table.calc th,.sample-q table.calc td{padding:6px 14px 6px 0}
}
/* 狭い画面のヘッダー。ブランド名とナビを1行に収める最小幅が 460px あたりなので、
   そこから下はブランドの字送りと文字サイズ、左右の余白を詰める。
   ナビ項目は落とさない（刊行物への導線が入口なので、隠すと商品に辿り着けない） */
@media (max-width:460px){
  .site-head .wrap{padding:0 16px}
  .brand{font-size:11.5px;letter-spacing:.12em;gap:7px}
  .head-nav{gap:14px;font-size:12px}
}

/* --- トップのヒーロー（1冊に依存しないブランド面） ------------------ */
/* トップのヒーローには表紙を置かない。すぐ下の「刊行物」に同じ表紙が
   読める大きさで並んでおり、小さく重ねて先に出すのは重複になる。
   ここはブランドの面として、見出しと余白だけで持たせる */
.hero-top .wrap{grid-template-columns:1fr}
.hero-top h1{font-size:clamp(30px,5.6vw,48px)}
.hero-top .catch{font-family:var(--display);font-size:clamp(16px,2.4vw,20px);
  letter-spacing:.02em;color:var(--lime);margin-top:24px}
.hero-top .lead{margin-top:20px;max-width:42em}

/* --- 表紙の棚（トップ） --------------------------------------------- */
/* 冊数が増えたので、1冊1枚の大きなカードをやめて分野ごとの棚に並べる。
   箱に入れず、表紙そのものを並べる。分野は見出しと罫線で区切る */
.shelf{border-top:1px solid var(--line);padding-top:18px;margin-top:40px}
.shelf:first-of-type{margin-top:0}
.shelf-head{display:flex;align-items:baseline;gap:12px;font-family:var(--display);font-size:18px;
  letter-spacing:.05em;margin-bottom:20px}
.shelf-head span{font-family:var(--gothic);font-size:13px;font-weight:400;color:var(--sub);letter-spacing:.02em}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:28px 24px}
.shelf-item{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.shelf-item img,.shelf-item .cover-ph{border-radius:2px;box-shadow:0 6px 16px rgba(11,68,59,.2);
  transition:transform .15s}
a.shelf-item:hover img{transform:translateY(-3px)}
.shelf-item .t{font-size:14px;font-weight:600;line-height:1.6;margin-top:12px}
/* 文節（.u）が列幅より長いときだけ、その中で折る。はみ出して隣の列に重ならないように */
.shelf-item .t .u{max-width:100%}
a.shelf-item:hover .t{color:var(--green)}
.shelf-item .m{font-size:12.5px;color:var(--sub);margin-top:4px}
.shelf-item .m b{font-family:var(--display);font-size:15px;color:var(--green);font-weight:600;margin-right:8px}
.shelf-item .m span{white-space:nowrap}

/* --- 刊行物一覧 ----------------------------------------------------- */
/* 分野ごとの節に、1冊1行で並べる。表紙は小さく、リード文を読ませる */
.shelf-nav{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:22px;font-size:14px}
.shelf-nav a{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:1px}
.book-rows{margin-top:20px}
.book-row{display:grid;grid-template-columns:88px 1fr auto;gap:24px;align-items:center;
  padding:20px 0;border-top:1px solid var(--line-fine);text-decoration:none;color:inherit}
.book-row:last-child{border-bottom:1px solid var(--line-fine)}
.book-row img,.book-row .cover-ph{border-radius:2px;box-shadow:0 4px 12px rgba(11,68,59,.2)}
.book-row h3{font-family:var(--display);font-size:18px;letter-spacing:.04em;line-height:1.5;margin-bottom:4px}
a.book-row:hover h3{color:var(--green)}
.book-row .lede{font-size:13.5px;line-height:1.85;color:var(--sub)}
.book-row .meta{text-align:right;font-size:12.5px;color:var(--sub);white-space:nowrap}
.book-row .meta b{display:block;font-family:var(--display);font-size:19px;color:var(--green);font-weight:600}
.shelf-item.is-upcoming,.book-row.is-upcoming{opacity:.72}
.cover-ph{width:100%;aspect-ratio:148/210;border:1px dashed var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--sub);
  font-family:var(--mincho);font-size:15px;letter-spacing:.2em;background:var(--paper)}

/* --- 一覧・下層のページ見出し --------------------------------------- */
.page-head .page-lead{color:var(--sub);font-size:15px;margin-top:14px;max-width:40em}

/* --- 目次の段組み調整 ----------------------------------------------- */
.toc .toc-gap{border-bottom:none}

@media (max-width:860px){
  .shelf-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:24px 14px}
  .shelf-item .t{font-size:13px;line-height:1.55;margin-top:10px}
  .shelf-item .m b{display:block;margin-right:0}
  .book-row{grid-template-columns:72px 1fr;gap:16px;align-items:start}
  .book-row .meta{grid-column:2;text-align:left}
  .book-row .meta b{display:inline;margin-right:10px}
}

/* --- ロゴマーク ------------------------------------------------------ */
/* 3段の積み上げ。地色に応じて .b1/.b2 の色だけ差し替える */
.logo-mark{width:1.55em;height:1.55em;flex:0 0 auto;display:block}
.logo-mark .b1{fill:currentColor;opacity:.45}
.logo-mark .b2{fill:currentColor;opacity:.72}
.logo-mark .b3{fill:var(--lime-ink)}
.brand{display:inline-flex;align-items:center;gap:9px}
.brand .logo-mark{color:var(--green)}
.site-foot .mark{display:flex;align-items:center;gap:9px}
.site-foot .mark .logo-mark{color:#fff}
.site-foot .mark .logo-mark .b3{fill:var(--tone-accent,var(--lime))}

/* --- お問い合わせ --------------------------------------------------- */
/* 角丸・線・地は既存の値（--r・--line・--paper-2）だけで作る */
.contact-form{max-width:560px;margin:32px 0 8px;display:flex;flex-direction:column;gap:20px}
/* フォームは display:flex なので、送信後に hidden を付けても消えない。hidden を優先させる */
.contact-form[hidden]{display:none}
.field{display:flex;flex-direction:column;gap:6px}
.field span{font-size:14px;font-weight:600;color:var(--ink)}
.field input,.field select,.field textarea{font:inherit;font-size:15px;line-height:1.7;color:var(--ink);
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--green);outline-offset:-1px;border-color:var(--green)}
.field textarea{resize:vertical;min-height:180px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.form-error{color:#a3321f;font-size:14px}
.contact-form .btn{align-self:flex-start;border:0;cursor:pointer;font-family:inherit}
.contact-form .btn:disabled{opacity:.6;cursor:default}
#contact-done{margin-top:32px}
