/* ガチコスメ — final design (owner D-021..D-027): palette 2-B with the ad-ready adjustments
   (company/design/final-with-ads/tokens.json + palette-final/tokens.json). Every colour, size, space and radius is
   a custom property on :root; no colour literal outside :root (spec A1). Headings: self-hosted Zen Maru Gothic
   Bold subset (src/lib/heading-font.mjs, OFL: /fonts/zen-maru-gothic-OFL.txt); body: system fonts. */
@font-face{font-family:"Gachi Heading";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/heading-5bf34688.woff2) format("woff2")}
:root{color-scheme:light dark;
--bg:#FCFBF8;--surface:#FFFFFF;--text:#25273B;--text-muted:#585B72;--accent:#4553A6;--accent-contrast:#FFFFFF;--border:#E7E6EE;--tint:#E7EAFB;
--control-border:#878AA4;--divider:#DADCEC;--emph:#4553A6;--emph-dot:#4553A6;
--btn2-bg:#EEF0FC;--btn2-ink:#38448F;--btn2-border:#7682CF;--logo-block:#6672C9;--logo-on:#FFFFFF;--logo-ink:#25273B;
--chip-bg:#ECEAF3;--chip-ink:#4A4763;--chip-border:transparent;--card-border:#E9E8EF;--card-shadow:0 8px 20px -16px rgba(37,39,59,.30);
--tile-bg:#E7EAFB;--tile-border:transparent;--img-bg:#FFFFFF;--img-border:#E8E7EE;
--ad-bg:#F6F6F9;--ad-border:#E7E6EE;--ad-tag-bg:#FFFFFF;--ad-tag-ink:#25273B;--ad-tag-border:#585B72;--ad-note:#585B72;
--shop-bg:#FFFFFF;--shop-ink:#25273B;--shop-border:#878AA4;--shop-icon:#585B72;
--font-sans:system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","BIZ UDPGothic","Yu Gothic Medium","Yu Gothic",Meiryo,sans-serif;
--font-heading:"Gachi Heading",var(--font-sans);
--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-18:18px;--fs-19:19px;--fs-21:21px;--fs-24:24px;--fs-28:28px;--fs-h1:clamp(30px,5vw,48px);--fs-tagline:clamp(28px,4.2vw + 15px,48px);--fs-name:clamp(28px,2.4vw + 19px,36px);
--lh-body:1.75;--lh-heading:1.4;--lh-note:1.85;
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;
--r-ctl:16px;--r-tile:14px;--r-card:22px;--r-img:12px;--r-shop:10px;--r-tag:4px;--radius-pill:999px;--rule:1px;--focus:3px;--tap:44px;
--max:1120px;--gutter:16px;--card-px:16px;--card-pt:14px;--card-pb:16px;--img-size:124px;--logo-h:28px;--logo-ratio:4.183}
@media (prefers-color-scheme:dark){:root{
--bg:#161824;--surface:#20233A;--text:#EDEEF7;--text-muted:#AEB1C9;--accent:#AEB8FA;--accent-contrast:#161B47;--border:#323651;--tint:#272C4D;
--control-border:#737896;--divider:#3A3F60;--emph:#BCC4FB;--emph-dot:#BCC4FB;
--btn2-bg:#272C4D;--btn2-ink:#D0D6FC;--btn2-border:#7C86D6;--logo-block:#AEB8FA;--logo-on:#161B47;--logo-ink:#EDEEF7;
--chip-bg:#2E2C3E;--chip-ink:#D9D6E8;--chip-border:transparent;--card-border:#2C3049;--card-shadow:none;
--tile-bg:#272C4D;--tile-border:transparent;--img-bg:#FFFFFF;--img-border:transparent;
--ad-bg:#1A1D2F;--ad-border:#323651;--ad-tag-bg:#20233A;--ad-tag-ink:#EDEEF7;--ad-tag-border:#AEB1C9;--ad-note:#AEB1C9;
--shop-bg:#262A43;--shop-ink:#EDEEF7;--shop-border:#7C80A0;--shop-icon:#AEB1C9}}
@media (min-width:600px){:root{--gutter:24px;--logo-h:32px}}
@media (min-width:760px){:root{--img-size:132px}}

/* Base */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-16);line-height:var(--lh-body);font-weight:500}
body:has(.home-intro){background:linear-gradient(180deg,var(--tint),var(--bg) 620px) no-repeat var(--bg)}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{line-height:var(--lh-heading);font-feature-settings:"palt"}
/* Heading face (src/lib/heading-font.mjs lists the same elements; the subset covers their glyphs) */
h1,h2:not(.source-title),.empty h3,.preview-name{font-family:var(--font-heading);font-weight:700}
a{color:var(--accent);text-underline-offset:.25em}
button,input,select{font:inherit}
button,a,summary{-webkit-tap-highlight-color:transparent}
button,select,summary{cursor:pointer}
:focus-visible{outline:var(--focus) solid var(--accent);outline-offset:3px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;z-index:10;left:var(--gutter);top:-100px;padding:var(--space-3) var(--space-4);background:var(--surface);color:var(--accent)}
.skip:focus{top:var(--space-3)}
main,.site-header,.site-footer{width:min(var(--max),calc(100% - 2 * var(--gutter)));margin-inline:auto}
.ext{margin-left:2px}
.icon{flex:none;width:16px;height:16px}
/* Chevron (tiles, latest-card name row): CSS only, so the 4 home views carry no extra markup per name */
.name-directory>a::after,.preview-person::after{content:"";flex:none;width:7px;height:7px;margin-right:3px;border:solid var(--text-muted);border-width:0 1.6px 1.6px 0;transform:rotate(-45deg)}
/* Japanese line breaking (QA V2): hand-split copy and names break only at <wbr>/punctuation (keep-all), with
   overflow-wrap:anywhere as the no-overflow fallback; Chromium additionally uses phrase-aware auto-phrase for
   names (data). Short atomic units (dates, 「の…投稿」, meta spans, the operator line) never break inside. */
.home-sub,.phrases,.person-intro h1,.preview-person{word-break:keep-all;overflow-wrap:anywhere}
@supports (word-break:auto-phrase){.phrases,.person-intro h1,.preview-person,.product-preview h3,.product-identity h3,.product-identity h4{word-break:auto-phrase}}
.nowrap,.source-title time,.person-meta>span,.preview-date,.operator{white-space:nowrap}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Header (A9): kicker + logotype (inline SVG, fills from tokens) + 掲載方針 at every width */
.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-block:var(--space-2);border-bottom:var(--rule) solid var(--border)}
@media (min-width:600px){.site-header{padding-block:var(--space-3)}}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);min-width:0;color:var(--text);text-decoration:none}
.brand-kicker{font-size:var(--fs-13);line-height:1.3;color:var(--text-muted);overflow-wrap:anywhere}
.logotype{display:block;flex:none;height:var(--logo-h);width:calc(var(--logo-h) * var(--logo-ratio))}
.logo-block{fill:var(--logo-block)}.logo-on{fill:var(--logo-on)}.logo-ink{fill:var(--logo-ink)}
.policy-link{flex:none;display:inline-flex;align-items:center;min-height:var(--tap);padding-inline:var(--space-1);font-size:var(--fs-14);white-space:nowrap}
@media (max-width:360px){.site-header{gap:var(--space-2)}.policy-link{padding-inline:0;font-size:var(--fs-13)}}

/* Home intro (A3): tagline H1 (「ガチ」 with 傍点, D-025) across the full width, sub-line, search form */
.home-intro{display:grid;gap:var(--space-5);padding-block:var(--space-6) var(--space-6)}
/* Accessible name = the tagline exactly (QA N2): everything inside the H1 is display:inline (no per-phrase or
   per-character boxes). Two nowrap phrases, so the only break is after 「本人がガチで」 (QA V2, as in the 2-B mock), and
   the size shrinks with the viewport so 「使ってるコスメだけ。」 (10 characters) always fits one line. --tagline-fs
   holds the size as a px/vw expression (no em) so the 傍点 below can reuse it at font-size 0. */
.tagline{--tagline-fs:min(var(--fs-tagline),calc((100vw - 2 * var(--gutter)) / 10.4));font-size:var(--tagline-fs);line-height:1.6;letter-spacing:.02em}
.tagline>span{white-space:nowrap}
.tagline em{font-style:normal;color:var(--emph)}
/* 傍点 (D-025): one dot (0.19 x font size) centred over each character of 「ガチ」 (0.51 and 1.53 font sizes from the
   start of the <em>, with palt and .02em tracking), as a decorative inline pseudo-element with no text, so 「ガチ」
   stays one text node. Font size 0 + padding makes a font-independent box, raised from the baseline by
   vertical-align: the dots sit just above the em box in the heading face and in any fallback font (QA V1: native
   CSS emphasis marks sit above the font's ascent, visibly detached). The second dot is the box-shadow. */
.tagline em::before{content:"";font-size:0;padding:calc(var(--tagline-fs) * .095);margin:0 calc(var(--tagline-fs) * -.605) 0 calc(var(--tagline-fs) * .415);vertical-align:calc(var(--tagline-fs) * 1.025);border-radius:50%;background:var(--emph-dot);box-shadow:calc(var(--tagline-fs) * 1.02) 0 0 var(--emph-dot)}
@media (forced-colors:active){.tagline em::before{forced-color-adjust:none;background:CanvasText;box-shadow:calc(var(--tagline-fs) * 1.02) 0 0 CanvasText}}
.home-sub{font-size:var(--fs-15);line-height:1.8;color:var(--text-muted)}
@media (min-width:900px){.home-intro{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:var(--space-8);align-items:start;padding-block:var(--space-7)}.tagline{grid-column:1/-1}.home-sub{font-size:var(--fs-16)}}

/* Search form and controls (A7: 44 px targets; submit full width on <= 430 px; native select) */
.search-form{display:grid;gap:var(--space-2)}
.search-form>label{font-size:var(--fs-14);font-weight:700}
.search-form input{width:100%;min-width:0;min-height:48px;border:var(--rule) solid var(--control-border);background:var(--surface);color:var(--text);border-radius:var(--r-ctl);padding:var(--space-3) var(--space-4);font-size:var(--fs-16)}
input::placeholder{color:var(--text-muted);opacity:1}
.search-controls{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}
.search-controls .category-control{flex:1 1 100%}
.category-control{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}
.category-control label{font-size:var(--fs-14);font-weight:700}
.category-control select{width:100%;min-width:0;max-width:100%;min-height:48px;border:var(--rule) solid var(--control-border);border-radius:var(--r-ctl);background:var(--surface);color:var(--text);padding:var(--space-2) var(--space-4)}
.search-controls button,.person-category-form button{min-height:50px;padding:var(--space-2) var(--space-6);border:0;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-contrast);font-weight:700;letter-spacing:.08em}
@media (max-width:430px){.search-controls button{flex:1 1 100%}}
.reset{display:inline-block;padding-block:10px;font-size:var(--fs-14)}

/* Sections: heading + optional one-line description below (no numbering labels, D-024) */
.section-heading{display:grid;gap:2px;margin-bottom:var(--space-4)}
.section-heading h2{font-size:var(--fs-24);line-height:1.45}
.section-heading>span{font-size:var(--fs-13);color:var(--text-muted)}
@media (min-width:760px){.section-heading h2{font-size:var(--fs-28)}.section-heading>span{font-size:var(--fs-14)}}
.people-section{padding-top:var(--space-2)}

/* Gender tabs (owner behaviour: local switch; markup and data-* unchanged) */
.gender-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 var(--space-4)}
.gender-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap);min-width:72px;padding:var(--space-2) var(--space-4);border:var(--rule) solid var(--control-border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:var(--fs-14);font-weight:700;text-decoration:none}
.gender-tabs a[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}

/* Names-only directory: one neutral tile style for everyone (D-024), tabs are filters */
.name-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
@media (min-width:600px){.name-directory{grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}}
.name-directory:empty{display:none}
.name-directory>a{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:46px;padding:var(--space-2) 10px var(--space-2) var(--space-3);border:var(--rule) solid var(--tile-border);border-radius:var(--r-tile);background:var(--tile-bg);color:var(--text);text-decoration:none}
.name-directory>a:hover{border-color:var(--btn2-border)}
.name-directory strong{font-size:var(--fs-15);line-height:1.35;overflow-wrap:anywhere}
@media (min-width:760px){.name-directory strong{font-size:var(--fs-16)}}

/* Latest (home) and search results */
.latest-section,.search-results{margin-top:var(--space-7)}
#latest,.product-preview[id]{scroll-margin-top:20px}
.preview-grid,.source-products{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
@media (min-width:760px){.preview-grid,.source-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}}
@media (min-width:1100px){.preview-grid,.source-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
.timeline-more{display:flex;align-items:center;justify-content:center;width:fit-content;min-width:160px;min-height:46px;margin:var(--space-5) auto 0;padding:var(--space-2) var(--space-5);border:var(--rule) solid var(--control-border);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font-size:var(--fs-14);font-weight:700;text-decoration:none}

/* Cards (D-027): thin border + neutral shadow; record part, then the optional ad panel as the card footer */
.product-preview,.product-row{display:flex;flex-direction:column;align-items:stretch;min-width:0;padding:var(--card-pt) var(--card-px) var(--card-pb);border:var(--rule) solid var(--card-border);border-radius:var(--r-card);background:var(--surface);box-shadow:var(--card-shadow)}
.preview-person{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:var(--tap);padding-bottom:11px;border-bottom:var(--rule) solid var(--border);color:var(--text);text-decoration:none}
.preview-who{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 10px;min-width:0}
.preview-name{font-size:var(--fs-19);line-height:1.35}
.preview-person:hover .preview-name{text-decoration:underline}
.preview-date{font-size:var(--fs-13);color:var(--text-muted)}
.preview-date time{font-weight:700;color:var(--text)}
.preview-product{padding-top:var(--space-3)}
.product-category{display:inline-block;align-self:flex-start;padding:1px 9px;border:var(--rule) solid var(--chip-border);border-radius:var(--radius-pill);background:var(--chip-bg);color:var(--chip-ink);font-size:var(--fs-13);font-weight:700;line-height:1.6}
.preview-product .product-category{margin-top:10px}
.product-brand{font-size:var(--fs-13);font-weight:700;letter-spacing:.08em;line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}
.product-identity .product-brand{margin-top:var(--space-2)}
.product-preview h3,.product-identity h3,.product-identity h4{margin-top:2px;font-size:var(--fs-16);line-height:1.5;overflow-wrap:anywhere}
@media (min-width:760px){.product-preview h3,.product-identity h3,.product-identity h4{font-size:var(--fs-18)}}
.product-preview h3 a{display:block;padding-block:10px;margin-block:-10px;color:var(--text);text-decoration:none}
.product-preview h3 a:hover{text-decoration:underline}
.variant{margin-top:2px;font-size:var(--fs-13);line-height:1.5;color:var(--text-muted);overflow-wrap:anywhere}
/* Source button: tinted accent pill with a play icon, visually distinct from the buy buttons (D-027) */
.source-action{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);margin-top:14px;padding:var(--space-1) 14px;border:var(--rule) solid var(--btn2-border);border-radius:var(--radius-pill);background:var(--btn2-bg);color:var(--btn2-ink);font-size:var(--fs-14);font-weight:700;line-height:1.4;text-align:center;text-decoration:none}
.source-action:hover{text-decoration:underline}
.icon-play rect{fill:currentColor}.icon-play path{fill:var(--btn2-bg)}
.date-label{font-size:var(--fs-13)}

/* Ad panel (D-026/D-027): only when the record has an affiliate link; 「広告」 label, white image frame, buy buttons */
.ad-panel{margin:14px calc(-1 * var(--card-px)) calc(-1 * var(--card-pb));padding:var(--space-3) var(--card-px) var(--card-pb);border-top:var(--rule) solid var(--ad-border);border-radius:0 0 calc(var(--r-card) - 1px) calc(var(--r-card) - 1px);background:var(--ad-bg)}
.source-details+.ad-panel{margin-top:2px}
.ad-head{display:flex;align-items:center;gap:var(--space-2);margin-bottom:10px;font-size:var(--fs-13);line-height:1.4;color:var(--ad-note)}
.ad-tag{display:inline-grid;place-items:center;flex:none;height:22px;padding:0 7px;border:var(--rule) solid var(--ad-tag-border);border-radius:var(--r-tag);background:var(--ad-tag-bg);color:var(--ad-tag-ink);font-size:var(--fs-13);font-weight:700;letter-spacing:.1em}
.ad-body{display:grid;grid-template-columns:var(--img-size) minmax(0,1fr);gap:var(--space-3);align-items:center}
.ad-body--no-image{grid-template-columns:minmax(0,1fr)}
.ad-image{display:block;aspect-ratio:1/1;overflow:hidden;border:var(--rule) solid var(--img-border);border-radius:var(--r-img);background:var(--img-bg)}
.ad-image img{display:block;width:100%;height:100%;object-fit:contain}
.shops{display:grid;gap:var(--space-2);align-content:center}
.shop{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-3);border:var(--rule) solid var(--shop-border);border-radius:var(--r-shop);background:var(--shop-bg);color:var(--shop-ink);font-size:var(--fs-14);font-weight:700;line-height:1.3;text-decoration:none}
.shop>span:not(.ext){flex:1}
.shop .icon,.shop .ext{color:var(--shop-icon)}
.shop:hover{text-decoration:underline}

/* Person page (A4) */
.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin-top:var(--space-2);font-size:var(--fs-14);color:var(--text-muted)}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:var(--tap)}
.person-intro{padding-block:var(--space-2) var(--space-5)}
/* At <= 330 px the H1 shrinks just enough for a 10-character phrase to fit one line (QA V2). */
.person-intro h1{font-size:min(var(--fs-name),calc((100vw - 2 * var(--gutter)) / 10));line-height:1.35}
.person-intro h1::after{content:"";display:block;width:36px;height:3px;margin:var(--space-2) 0 2px;border-radius:2px;background:var(--logo-block)}
.person-meta{display:flex;flex-wrap:wrap;gap:0 var(--space-2);margin-top:var(--space-1);font-size:var(--fs-14);color:var(--text-muted)}
.person-meta time{font-weight:700;color:var(--text)}
.person-category-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);max-width:620px;margin:0 0 var(--space-5)}
.person-category-form .category-control{flex:1 1 240px}
.person-category-form button{padding-inline:var(--space-6)}
@media (max-width:430px){.person-category-form button{flex:1 1 100%}}
@media (min-width:900px){.person-top{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-5)}.person-top .person-intro{padding-bottom:0}.person-top .person-category-form{flex:0 1 480px;margin:0}}
.filter-status{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--space-4);margin-bottom:var(--space-4);font-size:var(--fs-14);color:var(--text-muted)}
.filter-status a{display:inline-flex;align-items:center;min-height:var(--tap)}

/* Source groups: one post = a heading row (date + genre, or the link for non-YouTube posts), then its product cards */
.person-results{margin-bottom:var(--space-6)}
.result-person{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-4);margin:var(--space-5) 0 var(--space-3);font-size:var(--fs-24)}
.result-person a{display:inline-block;padding-block:6px;margin-block:-6px}
.result-person span{font-family:var(--font-sans);font-size:var(--fs-14);font-weight:500;color:var(--text-muted)}
.source-group{margin-bottom:var(--space-6)}
.source-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);min-width:0;margin-bottom:14px;padding-bottom:10px;border-bottom:var(--rule) solid var(--border)}
.source-title{font-size:var(--fs-14);font-weight:500;color:var(--text-muted)}
.source-title time{font-weight:700;color:var(--text)}
.source-genre{padding:0 10px;border:var(--rule) solid var(--control-border);border-radius:var(--radius-pill);color:var(--text);font-size:var(--fs-13);font-weight:700}
.source-link{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--space-4);border:var(--rule) solid var(--btn2-border);border-radius:var(--radius-pill);background:var(--btn2-bg);color:var(--btn2-ink);font-size:var(--fs-14);font-weight:700;text-decoration:none}
.source-note{grid-column:1/-1;font-size:var(--fs-14);color:var(--text-muted)}
.product-row{scroll-margin-top:24px}
.product-identity{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.product-actions{display:flex;flex-direction:column;font-size:var(--fs-14)}
.source-details{margin-top:var(--space-3);border-top:var(--rule) dashed var(--border);color:var(--text-muted)}
summary{min-height:var(--tap);padding-block:10px;color:var(--text);font-size:var(--fs-14)}
.source-details summary{color:var(--text-muted)}
.source-details p{margin:var(--space-2) 0;line-height:var(--lh-note)}
.source-details .source-paraphrase{color:var(--text)}
.context-notes{padding-top:var(--space-2)}
.context-notes h4{font-size:var(--fs-14)}
.context-notes a{display:inline-block;padding-block:10px}

/* Empty states (A11) */
.empty{padding:var(--space-5) 0 var(--space-6)}
.empty h2,.empty h3{margin-bottom:var(--space-2);font-size:var(--fs-21)}
.empty p{color:var(--text-muted)}
.empty p a{display:inline-block;padding:10px var(--space-2) 10px 0}

/* More people (person page) and 404 */
.more-people{margin-top:var(--space-7);padding-top:var(--space-5)}
.more-people h2{margin-bottom:var(--space-2);font-size:var(--fs-24)}
.more-people ul,.not-found ul{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5);margin:0;padding:0;list-style:none}
.more-people a,.not-found a{display:inline-flex;align-items:center;min-height:var(--tap);font-weight:700}
.more-people a{justify-content:center;min-width:var(--tap)}
.not-found{padding:var(--space-6) 0}
.not-found h1{font-size:var(--fs-h1)}
.not-found p{margin:var(--space-3) 0 var(--space-2);color:var(--text-muted)}

/* Footer (A9/A10): 掲載方針 summary always visible + details; operator line; links; year; affiliate disclosure */
.site-footer{display:grid;gap:var(--space-5);margin-top:var(--space-7);padding:var(--space-5) 0 var(--space-6);border-top:var(--rule) solid var(--border)}
@media (min-width:760px){.site-footer{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--space-6);margin-top:var(--space-8)}}
.policy{max-width:40rem;scroll-margin-top:var(--space-4)}
.policy-heading{margin-bottom:var(--space-2);font-size:var(--fs-19)}
.policy-summary{font-size:var(--fs-14);line-height:var(--lh-note)}
.policy-details p{margin:var(--space-2) 0;font-size:var(--fs-14);line-height:var(--lh-note);color:var(--text-muted)}
.footer-meta{display:grid;align-content:start;gap:var(--space-2);font-size:var(--fs-13);color:var(--text-muted)}
.affiliate-disclosure{line-height:var(--lh-note)}
.footer-links{display:flex;flex-wrap:wrap;gap:0 var(--space-4);font-size:var(--fs-14)}
.footer-links a{display:inline-flex;align-items:center;min-height:var(--tap)}
.copyright small{font-size:var(--fs-13)}
