/*
Theme Name: KORU DOG LAB
Theme URI: https://koru-dog.com/
Author: KORU DOG LAB
Description: Lightweight mobile-first editorial and decision-support theme for KORU DOG LAB.
Version: 0.3.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: koru-dog-lab
*/

:root {
  --kdl-ink: #20251f;
  --kdl-ink-soft: #394038;
  --kdl-muted: #697067;
  --kdl-line: #e5e8df;
  --kdl-paper: #fffdf8;
  --kdl-surface: #ffffff;
  --kdl-soft: #f5f6ef;
  --kdl-sage: #eaf1e9;
  --kdl-accent: #2f5a43;
  --kdl-accent-strong: #1f4431;
  --kdl-warm: #a8653f;
  --kdl-warm-soft: #f7eee7;
  --kdl-alert: #8b3f32;
  --kdl-alert-soft: #fbefec;
  --kdl-blue-soft: #edf3f6;
  --kdl-violet-soft: #f0edf6;
  --kdl-max: 1160px;
  --kdl-read: 760px;
  --kdl-wide: 940px;
  --kdl-radius-sm: 12px;
  --kdl-radius: 20px;
  --kdl-radius-lg: 28px;
  --kdl-shadow: 0 18px 44px rgba(34, 42, 34, .09);
  --kdl-header-h: 116px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 132px; }
body { margin:0; background:var(--kdl-paper); color:var(--kdl-ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif; font-size:17px; line-height:1.8; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; }
a { color:var(--kdl-accent); text-decoration-thickness:.08em; text-underline-offset:.2em; }
a:hover { color:var(--kdl-accent-strong); }
img { max-width:100%; height:auto; }
figure { margin:2rem 0; }
figcaption { color:var(--kdl-muted); font-size:.8rem; margin-top:.55rem; }
button,input { font:inherit; }

.site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid rgba(229,232,223,.9); background:rgba(255,253,248,.96); backdrop-filter:saturate(140%) blur(14px); }
.kdl-header-inner { max-width:var(--kdl-max); margin:0 auto; padding:13px 24px 8px; }
.kdl-brand-row { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.kdl-brand { color:var(--kdl-ink); display:inline-flex; flex-direction:column; gap:2px; text-decoration:none; min-height:44px; justify-content:center; }
.kdl-brand-name { font-size:1.08rem; font-weight:850; letter-spacing:.09em; line-height:1.15; }
.kdl-brand-tagline { color:var(--kdl-muted); font-size:.68rem; line-height:1.35; }
.kdl-search { display:flex; align-items:stretch; border:1px solid var(--kdl-line); border-radius:999px; background:#fff; overflow:hidden; min-height:44px; }
.kdl-search input { min-height:44px; border:0; background:transparent; outline:0; width:180px; padding:9px 4px 9px 15px; color:var(--kdl-ink); font-size:.82rem; }
.kdl-search button { min-height:44px; border:0; background:transparent; color:var(--kdl-accent); font-weight:800; padding:8px 14px; cursor:pointer; min-width:56px; }
.kdl-nav { display:flex; gap:4px; overflow-x:auto; padding:7px 0 0; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.kdl-nav::-webkit-scrollbar { display:none; }
.kdl-nav a { border-radius:999px; color:var(--kdl-ink-soft); flex:0 0 auto; font-size:.78rem; font-weight:750; min-height:44px; padding:11px 12px 9px; text-decoration:none; display:inline-flex; align-items:center; }
.kdl-nav a:hover { background:var(--kdl-soft); color:var(--kdl-accent); }

.site-main { min-height:68vh; }
.kdl-shell { max-width:var(--kdl-max); margin:0 auto; padding:44px 24px 76px; }
.kdl-home-shell { padding-top:24px; }
.kdl-reading { max-width:var(--kdl-read); margin:0 auto; }
.kdl-reading--hub { max-width:var(--kdl-wide); }
.kdl-kicker { color:var(--kdl-accent); font-size:.73rem; font-weight:850; letter-spacing:.12em; margin:0 0 8px; text-transform:uppercase; }
.kdl-breadcrumb { color:var(--kdl-muted); font-size:.76rem; line-height:1.5; margin:0 0 26px; overflow-wrap:anywhere; }
.kdl-breadcrumb a { color:inherit; text-decoration:none; }
.kdl-breadcrumb span { margin:0 .34em; }

h1,h2,h3,h4 { color:var(--kdl-ink); font-family:ui-serif,"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif; font-weight:700; line-height:1.38; text-wrap:pretty; }
h1 { font-size:clamp(2rem,5vw,3.5rem); letter-spacing:-.028em; margin:0 0 20px; }
h2 { font-size:clamp(1.5rem,3.6vw,2.1rem); margin:3.5rem 0 1.15rem; }
h3 { font-size:clamp(1.18rem,2.8vw,1.5rem); margin:2.3rem 0 .85rem; }
h4 { font-size:1.07rem; margin:2rem 0 .7rem; }
p,ul,ol { margin-top:0; margin-bottom:1.35em; }
li + li { margin-top:.48em; }
strong { font-weight:780; }
hr { border:0; border-top:1px solid var(--kdl-line); margin:3rem 0; }
blockquote { border-left:4px solid var(--kdl-accent); background:var(--kdl-sage); border-radius:0 var(--kdl-radius-sm) var(--kdl-radius-sm) 0; color:#40473f; margin:2rem 0; padding:1.1rem 1.25rem; }

.kdl-entry-header { margin-bottom:30px; }
.kdl-entry-kicker-row { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.kdl-entry-lead { color:var(--kdl-ink-soft); font-size:1.06rem; line-height:1.82; margin:0 0 18px; }
.kdl-entry-meta { align-items:center; color:var(--kdl-muted); display:flex; flex-wrap:wrap; font-size:.76rem; gap:8px 14px; }
.kdl-chip { background:var(--kdl-sage); border-radius:999px; color:var(--kdl-accent-strong); display:inline-flex; align-items:center; font-size:.72rem; font-weight:800; min-height:30px; padding:5px 10px; text-decoration:none; }
.kdl-chip--warm { background:var(--kdl-warm-soft); color:#7d4b2f; }
.kdl-featured-image img,.kdl-profile-image img { display:block; width:100%; border-radius:var(--kdl-radius); box-shadow:0 9px 28px rgba(38,39,34,.07); }
.kdl-profile-image { max-width:520px; margin:0 0 30px; }
.kdl-profile-image img { aspect-ratio:1/1; object-fit:cover; }

.kdl-source-status { align-items:center; display:flex; flex-wrap:wrap; gap:6px; margin-top:18px; }
.kdl-status-label { color:var(--kdl-muted); font-size:.72rem; font-weight:750; margin-right:2px; }
.kdl-status-chip { border:1px solid var(--kdl-line); border-radius:999px; font-size:.68rem; font-weight:800; line-height:1.25; padding:5px 8px; }
.kdl-status-chip--evidence { background:var(--kdl-blue-soft); }
.kdl-status-chip--fact { background:#f5f1e7; }
.kdl-status-chip--interpretation { background:#f7eee1; }
.kdl-status-chip--experience { background:#f5e9e5; }
.kdl-status-chip--muted { background:#f3f3ef; color:var(--kdl-muted); }

.kdl-summary { background:linear-gradient(140deg,var(--kdl-sage),#f8f6ed); border:1px solid #dfe7dc; border-radius:var(--kdl-radius); margin:30px 0 22px; padding:22px 24px; }
.kdl-summary h2 { font-family:inherit; font-size:1.15rem; margin:0 0 8px; }
.kdl-summary p:last-child { margin-bottom:0; }
.kdl-boundary { align-items:flex-start; display:grid; grid-template-columns:40px 1fr; gap:13px; background:var(--kdl-alert-soft); border:1px solid #ebd6d0; border-radius:var(--kdl-radius); color:#63342b; margin:22px 0; padding:18px; }
.kdl-boundary-mark { align-items:center; display:flex; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--kdl-alert); color:white; font-weight:900; }
.kdl-boundary strong { display:block; line-height:1.55; margin:2px 0 5px; }
.kdl-boundary p { font-size:.88rem; line-height:1.7; margin:0; }
.kdl-article-nav { align-items:center; display:flex; gap:6px; overflow-x:auto; margin:20px 0 34px; padding-bottom:2px; scrollbar-width:none; }
.kdl-article-nav::-webkit-scrollbar { display:none; }
.kdl-article-nav a { border:1px solid var(--kdl-line); border-radius:999px; color:var(--kdl-ink-soft); flex:0 0 auto; font-size:.75rem; font-weight:750; min-height:44px; padding:10px 13px; text-decoration:none; display:inline-flex; align-items:center; background:#fff; }
.kdl-decision-frame { background:#f8f4ea; border:1px solid #e9dfc9; border-radius:var(--kdl-radius); margin:28px 0 38px; padding:22px 24px; }
.kdl-decision-frame h2 { font-family:inherit; font-size:1.22rem; margin:0 0 9px; }
.kdl-decision-frame p { color:#4e5048; font-size:.92rem; }

.entry-content { overflow-wrap:anywhere; }
.entry-content > :first-child { margin-top:0; }
.entry-content a { font-weight:680; }
.entry-content h2 { scroll-margin-top:140px; border-top:1px solid var(--kdl-line); padding-top:2.8rem; }
.entry-content h2:first-of-type { border-top:0; padding-top:0; }
.kdl-comparison-scroll { max-width:100%; overflow-x:auto; margin:1.7rem 0 2rem; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius-sm); background:#fff; -webkit-overflow-scrolling:touch; }
.kdl-comparison-scroll:focus { outline:3px solid rgba(47,90,67,.22); outline-offset:3px; }
.entry-content table { border-collapse:separate; border-spacing:0; font-size:.86rem; min-width:650px; margin:0; width:100%; }
.entry-content th,.entry-content td { border-bottom:1px solid #e5e6df; border-right:1px solid #ecece7; min-width:130px; padding:11px 12px; text-align:left; vertical-align:top; }
.entry-content tr:last-child td { border-bottom:0; }
.entry-content th { background:var(--kdl-soft); font-weight:780; }
.entry-content th:first-child,.entry-content td:first-child { min-width:140px; }
.entry-content details { background:#faf9f3; border:1px solid var(--kdl-line); border-radius:14px; margin:2rem 0; padding:0 16px; }
.entry-content details summary { cursor:pointer; font-weight:750; min-height:48px; padding:13px 2px; }
.entry-content details[open] { padding-bottom:14px; }
.entry-content .kdl-sources-list { font-size:.82rem; line-height:1.65; }
.entry-content .kdl-editorial-note,.entry-content .kdl-disclosure { background:var(--kdl-soft); border-radius:14px; color:#50524b; font-size:.9rem; padding:15px 17px; }

.kdl-trust-box { border-top:1px solid var(--kdl-line); margin-top:52px; padding-top:34px; }
.kdl-trust-box h2 { font-family:inherit; font-size:1.2rem; margin:0 0 16px; }
.kdl-trust-box-note { color:var(--kdl-muted); font-size:.82rem; margin-top:14px; }
.kdl-method { display:grid; gap:10px; grid-template-columns:repeat(5,minmax(0,1fr)); }
.kdl-method-item { border:1px solid var(--kdl-line); border-radius:var(--kdl-radius-sm); min-width:0; padding:14px; background:#fff; }
.kdl-method-item strong { display:block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.73rem; line-height:1.3; margin-bottom:6px; }
.kdl-method-item span { color:var(--kdl-muted); display:block; font-size:.77rem; line-height:1.55; }
.kdl-method-item--evidence { border-top:3px solid #668499; }
.kdl-method-item--fact { border-top:3px solid #9b8553; }
.kdl-method-item--interpretation { border-top:3px solid #b87549; }
.kdl-method-item--experience { border-top:3px solid #a86458; }
.kdl-method-item--context { border-top:3px solid #766b91; }
.kdl-method--compact { grid-template-columns:1fr; }
.kdl-method--compact .kdl-method-item { display:grid; grid-template-columns:150px 1fr; align-items:start; padding:10px 12px; border-top-width:1px; border-left-width:4px; }

.koru-offer-wrap,.kdl-commercial-slot { background:#f8f4e9; border:1px solid #e7dfcb; border-radius:var(--kdl-radius); margin:2rem 0; padding:18px; }
.kdl-offer-disclosure { color:var(--kdl-muted); font-size:.72rem; line-height:1.55; margin:0 0 9px; }
.koru-offer { align-items:center; background:var(--kdl-accent); border:1px solid var(--kdl-accent); border-radius:12px; color:white; display:inline-flex; flex-direction:column; font-weight:820; justify-content:center; line-height:1.25; min-height:52px; padding:9px 18px; text-align:center; text-decoration:none; }
.koru-offer small { font-size:.64rem; font-weight:650; opacity:.82; margin-top:3px; }
.koru-offer:hover { background:var(--kdl-accent-strong); color:white; }
.koru-offer--disabled { background:#f0f0eb; border-color:#deded8; color:#7c8077; cursor:not-allowed; }
.koru-offer--disabled small { opacity:1; }
.koru-offer--secondary { background:#fff; color:var(--kdl-accent); }
.koru-offer--secondary:hover { background:var(--kdl-sage); color:var(--kdl-accent-strong); }
.kdl-product-card { display:grid; grid-template-columns:210px 1fr; gap:22px; background:#fff; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius); margin:2rem 0; overflow:hidden; padding:20px; box-shadow:0 2px 0 rgba(0,0,0,.02); }
.kdl-product-media img { display:block; width:100%; aspect-ratio:1/1; object-fit:contain; border-radius:12px; background:var(--kdl-soft); }
.kdl-product-main h3 { font-family:inherit; font-size:1.18rem; margin:5px 0 12px; }
.kdl-product-eyebrow { display:flex; flex-wrap:wrap; gap:6px; }
.kdl-product-eyebrow span { background:#f4f2ea; border-radius:999px; color:#6b685e; font-size:.65rem; font-weight:800; padding:4px 7px; }
.kdl-product-eyebrow .is-verified { background:#f5e9e5; color:#75463d; }
.kdl-product-fit,.kdl-product-caution { border-left:3px solid var(--kdl-accent); font-size:.86rem; margin:9px 0; padding-left:10px; }
.kdl-product-caution { border-left-color:var(--kdl-warm); }
.kdl-product-fit strong,.kdl-product-caution strong { display:block; font-size:.68rem; letter-spacing:.04em; }
.kdl-product-specs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--kdl-line); border:1px solid var(--kdl-line); border-radius:10px; overflow:hidden; margin:15px 0; }
.kdl-product-specs div { background:#fff; padding:9px 11px; }
.kdl-product-specs dt { color:var(--kdl-muted); font-size:.66rem; font-weight:750; }
.kdl-product-specs dd { margin:2px 0 0; font-size:.82rem; }
.kdl-product-specs small { color:var(--kdl-muted); display:block; font-size:.65rem; }
.kdl-product-actions { display:flex; flex-wrap:wrap; gap:8px; }

.kdl-home-hero { border-bottom:1px solid var(--kdl-line); background:radial-gradient(circle at 86% 15%,rgba(230,238,226,.95),transparent 42%),linear-gradient(145deg,#f8f4ea,#fbfaf5 55%,#eef3eb); }
.kdl-home-hero-inner { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr); align-items:center; gap:54px; max-width:var(--kdl-max); margin:0 auto; padding:clamp(54px,8vw,96px) 24px 66px; }
.kdl-hero-copy h1 { max-width:760px; }
.kdl-home-copy { color:var(--kdl-ink-soft); font-size:clamp(1rem,1.8vw,1.15rem); max-width:690px; }
.kdl-home-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:25px; }
.kdl-button { background:var(--kdl-accent); border:1px solid var(--kdl-accent); border-radius:12px; color:white; display:inline-flex; align-items:center; justify-content:center; font-size:.88rem; font-weight:820; min-height:48px; padding:11px 16px; text-decoration:none; }
.kdl-button:hover { background:var(--kdl-accent-strong); color:white; }
.kdl-button--ghost { background:rgba(255,255,255,.45); color:var(--kdl-accent); }
.kdl-button--ghost:hover { background:#fff; color:var(--kdl-accent-strong); }
.kdl-button--small { min-height:44px; font-size:.78rem; padding:9px 13px; }
.kdl-hero-note { color:var(--kdl-muted); font-size:.75rem; line-height:1.6; margin:16px 0 0; max-width:620px; }
.kdl-hero-visual { margin:0; }
.kdl-hero-visual img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--kdl-radius-lg); box-shadow:var(--kdl-shadow); }

.kdl-section { margin-top:64px; scroll-margin-top:132px; }
.kdl-section-intro { max-width:760px; margin-bottom:22px; }
.kdl-section-intro h2 { margin:0 0 10px; }
.kdl-section-intro p:last-child { color:var(--kdl-muted); }
.kdl-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; }
.kdl-section-head h2 { margin:0; }
.kdl-section-head .kdl-kicker { margin-bottom:5px; }
.kdl-grid { display:grid; gap:15px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.kdl-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.kdl-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.kdl-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.kdl-card { background:#fff; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius); min-width:0; padding:22px; }
.kdl-card:hover { box-shadow:var(--kdl-shadow); transform:translateY(-1px); transition:box-shadow .18s ease,transform .18s ease; }
.kdl-card h2,.kdl-card h3 { font-family:inherit; font-size:1.04rem; line-height:1.5; margin:0 0 8px; }
.kdl-card h2 a,.kdl-card h3 a { color:var(--kdl-ink); text-decoration:none; }
.kdl-card p { color:var(--kdl-muted); font-size:.84rem; line-height:1.7; margin:0; }
.kdl-card-meta { color:var(--kdl-muted); display:flex; justify-content:space-between; gap:8px; font-size:.69rem; margin-bottom:8px; }
.kdl-hub-card { background:#faf9f4; min-height:190px; }
.kdl-problem-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.kdl-problem-card { background:#fff; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius); color:var(--kdl-ink); display:flex; flex-direction:column; min-height:154px; padding:18px; text-decoration:none; }
.kdl-problem-card > span { color:var(--kdl-warm); font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.68rem; font-weight:800; margin-bottom:auto; }
.kdl-problem-card strong { font-family:ui-serif,"Yu Mincho",serif; font-size:1.18rem; margin-top:18px; }
.kdl-problem-card small { color:var(--kdl-muted); font-size:.76rem; line-height:1.55; margin-top:5px; }
.kdl-problem-card:hover { border-color:#ccd7cb; box-shadow:var(--kdl-shadow); }
.kdl-trust-section { padding:34px; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius-lg); background:#fbfbf7; }
.kdl-comparison-feature { background:#25372e; border-radius:var(--kdl-radius-lg); color:#f8f6ef; padding:32px; }
.kdl-comparison-feature h2,.kdl-comparison-feature .kdl-kicker { color:#f8f6ef; }
.kdl-compare-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.kdl-compare-links a { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; gap:2px 10px; align-items:center; background:#fff; border-radius:14px; color:var(--kdl-ink); min-height:86px; padding:14px 16px; text-decoration:none; }
.kdl-compare-links strong { font-size:.9rem; }
.kdl-compare-links span { color:var(--kdl-muted); font-size:.72rem; }
.kdl-compare-links b { grid-column:2; grid-row:1/3; font-size:1.1rem; color:var(--kdl-accent); }
.kdl-step { align-items:center; background:var(--kdl-sage); border-radius:50%; color:var(--kdl-accent); display:flex; font-size:.75rem; font-weight:900; justify-content:center; width:32px; height:32px; margin-bottom:15px; }
.kdl-text-link,.kdl-card-action { display:inline-flex; align-items:center; min-height:44px; font-size:.78rem; font-weight:800; margin-top:10px; text-decoration:none; }
.kdl-dog-grid { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.kdl-dog-card { display:grid; grid-template-columns:128px 1fr; gap:20px; align-items:center; background:#fff; border:1px solid var(--kdl-line); border-radius:var(--kdl-radius); padding:16px; }
.kdl-dog-card img { width:128px; height:128px; object-fit:cover; border-radius:16px; }
.kdl-dog-card h3 { font-family:inherit; font-size:1rem; margin:0 0 7px; }
.kdl-dog-card h3 a { color:var(--kdl-ink); text-decoration:none; }
.kdl-dog-card p:last-child { color:var(--kdl-muted); font-size:.79rem; line-height:1.65; margin:0; }
.kdl-policy-strip { display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr); gap:28px; align-items:center; border-top:1px solid var(--kdl-line); border-bottom:1px solid var(--kdl-line); padding:30px 0; }
.kdl-policy-strip h2 { font-size:1.3rem; margin:0; }
.kdl-policy-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.kdl-policy-links a { display:flex; align-items:center; min-height:46px; border:1px solid var(--kdl-line); border-radius:10px; background:#fff; color:var(--kdl-ink); font-size:.77rem; font-weight:750; padding:9px 12px; text-decoration:none; }
.kdl-latest { margin-top:52px; }
.kdl-index-card { position:relative; padding-bottom:58px; }
.kdl-index-card .kdl-card-action { position:absolute; left:22px; bottom:10px; }

.kdl-related { border-top:1px solid var(--kdl-line); margin-top:56px; padding-top:34px; }
.kdl-related h2 { font-family:inherit; font-size:1.2rem; margin:0 0 14px; }
.kdl-related-list { display:grid; gap:7px; list-style:none; margin:0; padding:0; }
.kdl-related-list a { align-items:center; border-bottom:1px solid var(--kdl-line); color:var(--kdl-ink); display:flex; font-weight:750; justify-content:space-between; min-height:50px; padding:9px 2px; text-decoration:none; }
.site-footer { background:#202820; color:#e9ece6; margin-top:0; }
.kdl-footer-inner { max-width:var(--kdl-max); margin:0 auto; padding:44px 24px 32px; }
.kdl-footer-top { display:grid; grid-template-columns:1fr 1fr; gap:40px; margin-bottom:28px; }
.kdl-footer-brand { font-size:1rem; font-weight:850; letter-spacing:.09em; }
.kdl-footer-copy { color:#bec5bc; font-size:.78rem; margin:8px 0 0; max-width:570px; }
.kdl-footer-method { border-left:1px solid #3a473c; padding-left:24px; }
.kdl-footer-method strong { display:block; font-size:.88rem; margin-bottom:7px; }
.kdl-footer-method span { color:#aeb8ae; font-size:.7rem; line-height:1.6; }
.kdl-footer-nav { display:flex; flex-wrap:wrap; gap:7px 18px; font-size:.75rem; }
.kdl-footer-nav + .kdl-footer-nav { margin-top:8px; }
.kdl-footer-nav a { color:#e8ebe5; display:inline-flex; align-items:center; min-height:36px; text-decoration:none; }
.kdl-footer-nav--policy a { color:#bfc7bf; }
.kdl-copyright { border-top:1px solid #39433a; color:#99a398; font-size:.68rem; margin-top:24px; padding-top:15px; }
.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute !important; width:1px; word-wrap:normal !important; }
.screen-reader-text:focus { clip:auto !important; clip-path:none; width:auto; height:auto; background:#fff; color:#000; padding:12px; z-index:100; }

@media (max-width:960px) {
  .kdl-grid--4,.kdl-problem-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kdl-method { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kdl-method-item:last-child { grid-column:1/-1; }
  .kdl-home-hero-inner { grid-template-columns:1.1fr .9fr; gap:30px; }
}
@media (max-width:720px) {
  :root { --kdl-header-h:102px; }
  html { scroll-padding-top:114px; }
  body { font-size:16px; line-height:1.82; }
  .kdl-header-inner { padding:9px 16px 5px; }
  .kdl-brand-row { gap:10px; }
  .kdl-brand-name { font-size:.98rem; }
  .kdl-brand-tagline { display:none; }
  .kdl-search { min-height:44px; }
  .kdl-search input { width:92px; padding-left:12px; }
  .kdl-search button { min-width:48px; font-size:.75rem; padding:8px 9px; }
  .kdl-nav { padding-top:4px; }
  .kdl-nav a { min-height:44px; padding:10px 11px 8px; }
  .kdl-shell { padding:28px 17px 58px; }
  .kdl-home-shell { padding-top:8px; }
  .kdl-home-hero-inner { grid-template-columns:1fr; gap:26px; padding:42px 17px 38px; }
  .kdl-hero-copy h1 { font-size:clamp(2rem,10vw,2.72rem); }
  .kdl-home-copy { font-size:.98rem; }
  .kdl-home-actions { display:grid; grid-template-columns:1fr; }
  .kdl-button { width:100%; }
  .kdl-hero-visual img { aspect-ratio:16/10; border-radius:20px; }
  h1 { font-size:clamp(1.9rem,8.7vw,2.55rem); }
  h2 { margin-top:3rem; }
  .kdl-section { margin-top:50px; scroll-margin-top:116px; }
  .kdl-trust-section { margin-left:-2px; margin-right:-2px; padding:22px 16px; }
  .kdl-method { grid-template-columns:1fr; }
  .kdl-method-item:last-child { grid-column:auto; }
  .kdl-problem-grid,.kdl-grid,.kdl-grid--4,.kdl-grid--3,.kdl-grid--2 { grid-template-columns:1fr; }
  .kdl-problem-card { min-height:116px; }
  .kdl-problem-card > span { margin-bottom:6px; }
  .kdl-problem-card strong { margin-top:4px; }
  .kdl-hub-card { min-height:0; }
  .kdl-comparison-feature { border-radius:20px; margin-left:-2px; margin-right:-2px; padding:22px 16px; }
  .kdl-compare-links { grid-template-columns:1fr; }
  .kdl-dog-grid { grid-template-columns:1fr; }
  .kdl-dog-card { grid-template-columns:94px 1fr; gap:14px; }
  .kdl-dog-card img { width:94px; height:94px; border-radius:14px; }
  .kdl-policy-strip { grid-template-columns:1fr; gap:15px; }
  .kdl-policy-links { grid-template-columns:1fr; }
  .kdl-source-status { margin-top:14px; }
  .kdl-summary { padding:18px 17px; }
  .kdl-boundary { grid-template-columns:34px 1fr; padding:15px; }
  .kdl-boundary-mark { width:30px; height:30px; }
  .kdl-article-nav { margin-left:-2px; margin-right:-2px; }
  .kdl-decision-frame { padding:18px 17px; }
  .entry-content h2 { scroll-margin-top:118px; }
  .kdl-comparison-scroll { margin-left:-17px; margin-right:-17px; width:calc(100% + 34px); max-width:calc(100% + 34px); border-left:0; border-right:0; border-radius:0; }
  .entry-content table { font-size:.8rem; min-width:620px; }
  .entry-content th,.entry-content td { min-width:138px; padding:10px; }
  .entry-content th:first-child,.entry-content td:first-child { position:sticky; left:0; z-index:1; background:#fff; box-shadow:5px 0 8px rgba(34,42,34,.04); }
  .entry-content th:first-child { background:var(--kdl-soft); z-index:2; }
  .kdl-method--compact .kdl-method-item { grid-template-columns:1fr; gap:3px; }
  .kdl-product-card { grid-template-columns:1fr; padding:15px; }
  .kdl-product-media { max-width:180px; }
  .kdl-product-specs { grid-template-columns:1fr; }
  .kdl-product-actions { display:grid; grid-template-columns:1fr; }
  .koru-offer { width:100%; }
  .kdl-footer-top { grid-template-columns:1fr; gap:22px; }
  .kdl-footer-method { border-left:0; border-top:1px solid #3a473c; padding:18px 0 0; }
}
@media (max-width:430px) {
  .kdl-search input { width:76px; }
  .kdl-status-label { width:100%; }
  .kdl-dog-card { grid-template-columns:78px 1fr; }
  .kdl-dog-card img { width:78px; height:78px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
