/* Kennel Prices Australia — design system v4 "PHE family" (25 Oct 2026). One file, mobile-first.
   Palette + type echo Pet Humanization Empire (pethumanizationempire.com): paper #F6F1EA, ink #1C1714, clay #C4A484,
   rule #E2D8CC, sage #5E6D5A; Newsreader (headings) + Red Hat Display (text), both SIL OFL 1.1, self-hosted latin subsets.
   Contrast checked: body text, links and muted text ≥ 7:1 (AAA) in light and dark. */
@font-face{font-family:"Red Hat Display";font-style:normal;font-weight:300 900;font-display:swap;src:url(/assets/fonts/red-hat-display-latin-wght-normal.woff2) format("woff2-variations"),url(/assets/fonts/red-hat-display-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Newsreader;font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/newsreader-latin-500-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
  color-scheme:light dark;
  /* colour (PHE family). --brand = bronze ink for links/accents; buttons use --btn (PHE ink). */
  --bg:#f6f1ea;--surface:#fffcf7;--surface-2:#efe7db;--ink:#1c1714;--muted:#4d433c;
  --line:#e2d8cc;--line-strong:#8c7b6b;
  --brand:#5c4128;--brand-strong:#3e2b19;--brand-tint:#ede3d3;--brand-mid:#c4a484;--on-brand:#f6f1ea;
  --btn:#1c1714;--btn-hover:#493c34;--on-btn:#f6f1ea;
  --accent:#c4a484;--accent-ink:#6e3517;--accent-tint:#f3e6dc;
  --focus:#8a5a2b;--feat:#3f4b3b;--feat-tint:#eef0ea;
  --foot-bg:#1c1714;--foot-ink:#f6f1ea;--foot-muted:#cfc3b5;--foot-link:#e6cba4;--foot-line:#3b322b;
  --st-full-bg:#fde2e1;--st-full:#7f1414;--st-part-bg:#ffedd5;--st-part:#733500;--st-lim-bg:#fef9c3;--st-lim:#5a4400;
  --st-ok-bg:#dcfce7;--st-ok:#11532b;--st-unk-bg:#ebe6df;--st-unk:#4b4540;
  /* type: fluid scale */
  --font:"Red Hat Display",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  --serif:Newsreader,"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Times New Roman",serif;
  --t-sm:clamp(.875rem,.85rem + .1vw,.9375rem);--t-0:clamp(1rem,.97rem + .15vw,1.0625rem);
  --t-1:clamp(1.125rem,1.07rem + .3vw,1.25rem);--t-2:clamp(1.4rem,1.2rem + .85vw,1.8rem);
  --t-3:clamp(1.85rem,1.4rem + 2vw,2.75rem);
  /* space */
  --s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.5rem;--s6:2rem;--s7:3rem;--s8:4rem;
  --r:2px;--r-sm:2px;--r-pill:2px;--tap:44px;--wrap:1160px;--header-h:64px;
  --shadow:none;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#171310;--surface:#211b17;--surface-2:#2b241f;--ink:#f6f1ea;--muted:#d2c6b8;
  --line:#3b322b;--line-strong:#7d6e60;
  --brand:#e6cba4;--brand-strong:#f3e0c4;--brand-tint:#3a2e22;--brand-mid:#a88a68;--on-brand:#171310;
  --btn:#e6cba4;--btn-hover:#f3e0c4;--on-btn:#171310;
  --accent:#c4a484;--accent-ink:#f0b48e;--accent-tint:#33261c;
  --focus:#e6cba4;--feat:#b9c8b2;--feat-tint:#222b20;
  --foot-bg:#0f0c0a;--foot-ink:#f6f1ea;--foot-muted:#d2c6b8;--foot-link:#e6cba4;--foot-line:#3b322b;
  --st-full-bg:#4a1414;--st-full:#ffd1cf;--st-part-bg:#4a2a0a;--st-part:#ffd9b0;--st-lim-bg:#3d3205;--st-lim:#fdeb8a;
  --st-ok-bg:#0d3a1f;--st-ok:#b9f5cc;--st-unk-bg:#332c26;--st-unk:#e2d8cc;
  --shadow:none;
}}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + var(--s4))}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;font-family:var(--font);font-size:var(--t-0);line-height:1.65;color:var(--ink);background:var(--bg);text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
h1,h2,h3{line-height:1.2;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:var(--t-3);margin:var(--s4) 0 var(--s3);color:var(--ink)}
h2{font-size:var(--t-2);margin:var(--s7) 0 var(--s3)}
h3{font-size:var(--t-1);margin:var(--s5) 0 var(--s2)}
p,ul,ol{margin:0 0 var(--s4)}
li+li{margin-top:var(--s1)}
a{color:var(--brand);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:var(--brand-strong);text-decoration-thickness:.14em}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
::selection{background:var(--accent-tint);color:var(--ink)}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--s4)}
@media (min-width:48em){.wrap{padding:0 var(--s5)}}
.lede{font-size:var(--t-1);max-width:68ch}
.muted{color:var(--muted)}.small{font-size:var(--t-sm)}
.prose{max-width:72ch}
article>p,section>p{max-width:75ch}
hr{border:0;border-top:1px solid var(--line);margin:var(--s6) 0}

/* ---------- skip link ---------- */
.skip{position:absolute;left:var(--s3);top:-100px;z-index:100;background:var(--brand);color:var(--on-brand);padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-weight:700;text-decoration:none}
.skip:focus{top:var(--s3)}

/* ---------- header & navigation ---------- */
.site-header{background:var(--surface);border-bottom:1px solid var(--line);z-index:50}
.site-header{position:relative}
.js .site-header{position:sticky;top:0}
@media (min-width:64em){.site-header{position:sticky;top:0}}
.bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s2) var(--s4);min-height:var(--header-h);padding-top:var(--s2);padding-bottom:var(--s2)}
.brand{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--tap);text-decoration:none;color:var(--ink);font-weight:800;font-size:clamp(.95rem,.85rem + .5vw,1.15rem);line-height:1.1;letter-spacing:-.01em}
.brand:hover{color:var(--ink)}
.brand img{width:40px;height:40px;flex:none}
.brand-name span{color:var(--accent-ink)}
.menu-btn{display:none;align-items:center;gap:var(--s2);min-height:var(--tap);min-width:var(--tap);padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;cursor:pointer}
.js .menu-btn{display:inline-flex}
.menu-icon,.menu-icon::before,.menu-icon::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative}
.menu-icon::before,.menu-icon::after{content:"";position:absolute;left:0}
.menu-icon::before{top:-6px}.menu-icon::after{top:6px}
.menu-btn[aria-expanded=true] .menu-icon{background:transparent}
.menu-btn[aria-expanded=true] .menu-icon::before{top:0;transform:rotate(45deg)}
.menu-btn[aria-expanded=true] .menu-icon::after{top:0;transform:rotate(-45deg)}
.menu{flex-basis:100%;padding-bottom:var(--s3)}
.js .menu{display:none}
.js .menu.is-open{display:block;max-height:calc(100vh - var(--header-h));overflow-y:auto;overscroll-behavior:contain}
.menu ul{list-style:none;margin:0;padding:0}
.menu li+li{margin-top:0}
.nav-label{display:block;font-size:var(--t-sm);font-weight:700;color:var(--muted);margin:var(--s2) 0 var(--s1)}
.city-switch ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:var(--s1);background:var(--surface-2);border-radius:var(--r-pill);padding:var(--s1)}
.city-switch a{display:flex;align-items:center;justify-content:center;min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-pill);text-decoration:none;font-weight:700;color:var(--ink)}
.city-switch a:hover{background:var(--surface)}
.city-switch a[aria-current]{background:var(--brand);color:var(--on-brand)}
.main-nav ul{display:grid;gap:0}
.main-nav a{display:flex;align-items:center;min-height:var(--tap);padding:var(--s2) var(--s3);border-radius:var(--r-sm);text-decoration:none;color:var(--ink);font-weight:600}
.main-nav a:hover{background:var(--surface-2);color:var(--ink)}
.main-nav a[aria-current]{background:var(--brand-tint);color:var(--brand-strong);box-shadow:inset 3px 0 0 var(--brand)}
.main-nav .nav-cta a{background:var(--accent-tint);color:var(--accent-ink);margin-top:var(--s2)}
@media (min-width:64em){
  .bar{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"brand city" "nav nav";padding-bottom:0;row-gap:var(--s1)}
  .brand{grid-area:brand}
  .menu-btn{display:none!important}
  .menu,.js .menu{display:contents}
  .nav-label{display:none}
  .city-switch{grid-area:city;justify-self:end}
  .city-switch ul{display:flex}
  .city-switch a{min-height:40px;padding:0 var(--s4)}
  .main-nav{grid-area:nav;margin:0 calc(-1 * var(--s3))}
  .main-nav ul{display:flex;flex-wrap:wrap;gap:0 var(--s1)}
  .main-nav a{padding:var(--s2) var(--s3);border-radius:var(--r-sm) var(--r-sm) 0 0}
  .main-nav a[aria-current]{box-shadow:inset 0 -3px 0 var(--brand);background:transparent}
  .main-nav .nav-cta{margin-left:auto}
  .main-nav .nav-cta a{margin:0 0 var(--s1);border-radius:var(--r-pill)}
}
main{display:block;padding-bottom:var(--s7)}
main:focus{outline:none}

/* ---------- breadcrumbs, toc, related ---------- */
.crumbs ol{list-style:none;padding:0;margin:var(--s4) 0 0;display:flex;flex-wrap:wrap;align-items:center;font-size:var(--t-sm);color:var(--muted)}
.crumbs li{margin:0}
.crumbs li+li::before{content:"/";margin:0 var(--s2);color:var(--line-strong)}
.crumbs a{display:inline-block;padding:var(--s2) 0;color:var(--muted)}
.crumbs a:hover{color:var(--brand)}
.crumbs [aria-current]{color:var(--ink);font-weight:600}
.toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3) var(--s4);margin:var(--s5) 0;max-width:75ch}
.toc-title{font-weight:800;margin:0 0 var(--s2);font-size:var(--t-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.toc ol{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:var(--s2)}
.toc li{margin:0}
.toc a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s3);border-radius:var(--r-pill);background:var(--surface-2);text-decoration:none;font-weight:600;font-size:var(--t-sm)}
.toc a:hover{background:var(--brand-tint)}
.related{border-top:1px solid var(--line);margin-top:var(--s7);padding-top:var(--s2)}
.link-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:var(--s2)}
.link-grid li{margin:0}
.link-grid a{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:var(--tap);padding:var(--s2) var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;font-weight:600}
.link-grid a::after{content:"→";color:var(--accent-ink)}
.link-grid a:hover{border-color:var(--brand);background:var(--brand-tint)}

/* ---------- hero, buttons, callouts ---------- */
.hero{padding:var(--s5) 0 var(--s2)}
.hero-home{display:grid;gap:var(--s5);align-items:start}
@media (min-width:56em){.hero-home{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}}
.glance{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--brand);border-radius:var(--r);padding:var(--s4) var(--s5);box-shadow:var(--shadow)}
.glance h2{font-size:var(--t-1);margin:0 0 var(--s2)}
.glance ul{list-style:none;padding:0;margin:0}
.glance li{margin:0;border-top:1px solid var(--line)}
.glance li:first-child{border-top:0}
.glance a{display:flex;flex-direction:column;min-height:var(--tap);padding:var(--s2) 0;text-decoration:none;font-weight:700}
.glance a span{font-weight:400;color:var(--muted);font-size:var(--t-sm)}
.glance a:hover span{color:var(--ink)}
.hero .lede{color:var(--muted)}
.eyebrow{display:inline-block;font-size:var(--t-sm);font-weight:800;color:var(--accent-ink);text-transform:uppercase;letter-spacing:.08em;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);padding:var(--s2) var(--s5);border-radius:var(--r-pill);background:var(--brand);color:var(--on-brand);border:2px solid var(--brand);text-decoration:none;font:inherit;font-weight:700;line-height:1.2;cursor:pointer;text-align:center}
.btn:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--on-brand)}
.btn-ghost{background:transparent;color:var(--brand)}
.btn-ghost:hover{background:var(--brand-tint);color:var(--brand-strong)}
.btn-small{min-height:var(--tap);padding:var(--s1) var(--s4);font-size:var(--t-sm)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0}
button.btn{font:inherit;font-weight:700}
.checked{display:inline-block;background:var(--brand-tint);color:var(--ink);border-radius:var(--r-sm);padding:var(--s1) var(--s3);font-size:var(--t-sm);margin-bottom:var(--s3)}
.callout{background:var(--accent-tint);border-left:4px solid var(--accent);padding:var(--s3) var(--s4);border-radius:var(--r-sm);margin:var(--s5) 0;max-width:80ch}
.cta{background:var(--brand-tint);border-radius:var(--r);padding:var(--s5);margin:var(--s7) 0 var(--s5)}
.cta h2{margin-top:0}
.cta .btn{margin:var(--s1) var(--s2) var(--s1) 0}

/* ---------- search box (home) ---------- */
.searchbox{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);box-shadow:var(--shadow);max-width:40rem}
.searchbox label{flex-basis:100%;font-weight:700}
.searchbox input{flex:1 1 14rem}

/* ---------- cards, pills, stats ---------- */
.cards{list-style:none;padding:0;margin:0 0 var(--s5);display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr));gap:var(--s3)}
.cards>li{margin:0}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:var(--s1)}
.card p{margin:0}
.card:hover{border-color:var(--brand-mid)}
.card-title{font-weight:800;font-size:var(--t-1);line-height:1.3;text-decoration:none;color:var(--brand)}
.card-title:hover{text-decoration:underline}
.card .card-links{margin-top:auto;padding-top:var(--s2);display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2)}
.card .card-links a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s3);border-radius:var(--r-pill);background:var(--surface-2);text-decoration:none;font-weight:600;font-size:var(--t-sm)}
.card .card-links a:hover{background:var(--brand-tint)}
.city-card .card-title{font-size:var(--t-2)}
.pills{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.pills li{margin:0}
.pills a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s4);border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line);text-decoration:none;font-weight:600}
.pills a:hover{border-color:var(--brand);background:var(--brand-tint)}
.regions{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:var(--s2)}
.regions li{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s2) var(--s3)}
.regions .rname{flex-basis:100%;font-weight:700}
.regions a{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s3);border-radius:var(--r-pill);background:var(--surface-2);text-decoration:none;font-weight:600;font-size:var(--t-sm)}
.regions a:hover{background:var(--brand-tint)}
.stats{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--s2)}
.stats li{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s3) var(--s4)}
.stats .num{display:block;font-size:var(--t-3);font-weight:800;line-height:1.1;color:var(--brand)}
.facts{padding-left:1.2em}

/* ---------- badges ---------- */
.badge{display:inline-block;font-size:.8rem;font-weight:700;line-height:1.5;padding:.05em .6em;border-radius:var(--r-pill);white-space:nowrap;vertical-align:.08em}
.st-full{background:var(--st-full-bg);color:var(--st-full)}.st-part{background:var(--st-part-bg);color:var(--st-part)}
.st-limited{background:var(--st-lim-bg);color:var(--st-lim)}.st-ok{background:var(--st-ok-bg);color:var(--st-ok)}
.st-unknown{background:var(--st-unk-bg);color:var(--st-unk)}
.src{font-size:var(--t-sm);color:var(--muted)}
.src a,a.src{color:var(--brand)}
a[target=_blank]::after{content:"\2197" / "";display:inline-block;margin-left:.15em;font-size:.8em;text-decoration:none}
.btn[target=_blank]::after{content:none}

/* ---------- tables ---------- */
.tablewrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin:0 0 var(--s4)}
.tablewrap:focus-visible{outline-offset:-3px}
table{border-collapse:collapse;width:100%;font-size:var(--t-sm);font-variant-numeric:tabular-nums}
caption{caption-side:top;text-align:left;padding:var(--s3) var(--s4);font-weight:700;color:var(--ink);background:var(--surface-2);border-bottom:1px solid var(--line)}
caption .small{display:block;font-weight:400;color:var(--muted)}
th,td{text-align:left;vertical-align:top;padding:var(--s3);border-bottom:1px solid var(--line)}
thead th{background:var(--surface-2);font-size:var(--t-sm);white-space:nowrap}
tbody tr:last-child>*{border-bottom:0}
tbody tr:hover>td{background:color-mix(in srgb,var(--brand-tint) 45%,transparent)}
table.xmas{min-width:62rem}table.hol{min-width:84rem}table.hol abbr{text-decoration:none}@media (min-width:48em){table.hol td:last-child{min-width:20rem}}
.facts-table th{width:28%;background:var(--surface-2)}
.sort-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:var(--s1);min-height:var(--tap);cursor:pointer;font-weight:700;color:var(--brand);border-radius:4px;white-space:normal}
.sort-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.sort-ind::after{content:"\2195";opacity:.55}
[aria-sort=ascending] .sort-ind::after{content:"\25B2";opacity:1}
[aria-sort=descending] .sort-ind::after{content:"\25BC";opacity:1}
.js thead th:has(.sort-btn){padding-top:0;padding-bottom:0}
/* small screens: stack rows into cards */
@media (max-width:47.99em){
  table.stack{min-width:0}
  table.stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .js table.stack thead{position:static;width:auto;height:auto;overflow:visible;clip-path:none;display:block;border-bottom:1px solid var(--line);background:var(--surface-2)}
  .js table.stack thead tr{display:flex;flex-wrap:wrap;gap:0 var(--s2);padding:var(--s1) var(--s3)}
  .js table.stack thead tr::before{content:"Sort by:";align-self:center;font-size:var(--t-sm);color:var(--muted);margin-right:var(--s1)}
  .js table.stack thead th{display:block;border:0;padding:0;background:none}
  .js table.stack thead th[data-nosort],.js table.stack thead th:not(:has(.sort-btn)){display:none}
  table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}
  table.stack caption{display:block}
  table.stack tr{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}
  table.stack tbody tr:last-child{border-bottom:0}
  table.stack td{border:0;padding:var(--s1) 0 var(--s1) calc(38% + var(--s3));position:relative;min-height:1.6em}
  table.stack td::before{content:attr(data-label);position:absolute;left:0;top:var(--s1);width:38%;font-weight:700;color:var(--muted);font-size:var(--t-sm);line-height:1.4}
  table.stack td:first-child{padding-left:0;font-size:var(--t-0);font-weight:700;padding-bottom:var(--s2)}
  table.stack td:first-child::before{content:none}
  .tablewrap:has(table.stack){overflow:visible}
  .facts-table,.facts-table tbody,.facts-table tr,.facts-table th,.facts-table td{display:block;width:100%}
  .facts-table th{border-bottom:0;padding-bottom:0;background:none}
  .facts-table tr{border-bottom:1px solid var(--line);padding:var(--s2) 0}
  .facts-table td{border:0}
}

/* ---------- filter ---------- */
.filter{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));align-items:end;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4);margin:var(--s4) 0}
.filter[hidden]{display:none}
.filter label{display:block;font-weight:700;font-size:var(--t-sm);margin-bottom:var(--s1)}
.filter-count{grid-column:1/-1;margin:0;font-weight:600;color:var(--muted)}
.no-results{background:var(--surface-2);border-radius:var(--r);padding:var(--s4)}

/* ---------- forms ---------- */
input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;max-width:34rem;min-height:var(--tap);padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-sm);font:inherit;color:var(--ink);background:var(--surface)}
textarea{min-height:8rem}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--brand)}
input[type=checkbox]{width:1.35rem;height:1.35rem;accent-color:var(--brand);vertical-align:-.25em;margin:0 var(--s2) 0 0;flex:none}
.signup{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:var(--r);padding:var(--s5);margin:var(--s6) 0;box-shadow:var(--shadow)}
.signup h2{margin-top:0}
.form label{display:block;font-weight:700;font-size:var(--t-sm);margin-bottom:var(--s1)}
.form .check label{display:flex;align-items:flex-start;font-weight:400;font-size:var(--t-0);min-height:var(--tap);gap:0}
.form-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:0 var(--s4)}
.form-inline .check,.form-inline p:last-child{grid-column:1/-1}
.form-note{font-size:var(--t-sm);color:var(--muted)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- promos (affiliate + house ads) ---------- */
.promo{border:1px dashed var(--line-strong);background:var(--surface);border-radius:var(--r);padding:var(--s4);margin:var(--s5) 0;max-width:46rem}
.promo-label{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;font-weight:700;color:var(--muted);margin:0}
.promo-title{font-weight:800;margin:var(--s1) 0;font-size:var(--t-1)}
.promo-house{border-style:solid;border-color:var(--line);border-left:4px solid var(--accent);background:var(--surface)}
.promo .btn{margin-top:var(--s1);max-width:100%}

/* ---------- FAQ ---------- */
details{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:0 var(--s4);margin:var(--s2) 0;max-width:80ch}
summary{font-weight:700;cursor:pointer;min-height:var(--tap);display:flex;align-items:center;padding:var(--s2) 0}
details[open] summary{border-bottom:1px solid var(--line);margin-bottom:var(--s3)}

/* ---------- footer ---------- */
.site-footer{background:var(--surface);border-top:1px solid var(--line);font-size:var(--t-sm);color:var(--muted);padding:var(--s6) 0 var(--s5)}
.foot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:var(--s5)}
.foot-h{font-size:var(--t-0);margin:0 0 var(--s2);color:var(--ink)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:0}
.site-footer li a{display:inline-flex;align-items:center;min-height:36px;padding:var(--s1) 0}
.site-footer a{color:var(--brand)}
.foot-brand{display:flex;gap:var(--s3);align-items:center;margin-bottom:var(--s4)}
.foot-brand img{width:40px;height:40px}
.foot-legal{border-top:1px solid var(--line);margin-top:var(--s5);padding-top:var(--s4)}

/* ---------- 404 ---------- */
.notfound{padding:var(--s5) 0}

/* ---------- print (price pages, trackers, provider pages) ---------- */
/* ---------- v3.1 landing page, alerts ---------- */
.hero-main h1{font-size:clamp(1.9rem,1.4rem + 2.4vw,3rem)}
.finder{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4) var(--s5);box-shadow:var(--shadow);display:grid;gap:var(--s3);max-width:44rem}
.finder-title{font-weight:800;font-size:var(--t-1);margin:0 0 var(--s2)}
.finder label{display:block;font-weight:700;font-size:var(--t-sm);margin-bottom:var(--s1)}
.find-row{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s3);align-items:flex-end}
.find-row>p{margin:0;flex:1 1 11rem}
.find-row>.find-go{flex:0 0 auto}
.find-row input{flex:1 1 12rem}
.find-search{border-top:1px solid var(--line);padding-top:var(--s3)}
.kpis{list-style:none;padding:0;margin:0 0 var(--s2);display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.kpis li{margin:0;border:0!important;background:var(--surface-2);border-radius:var(--r-sm);padding:var(--s2) var(--s3);font-size:var(--t-sm)}
.kpis .num{display:block;font-size:var(--t-2);font-weight:800;color:var(--brand);line-height:1.15}
.trust-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))!important}
.city-prices,.xmas-cities,.trust-grid{list-style:none;padding:0;margin:0 0 var(--s5);display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:var(--s3)}
.city-prices>li,.xmas-cities>li,.trust-grid>li{margin:0}
.cp-city{margin:0 0 var(--s2);font-size:var(--t-2)}.cp-city a{text-decoration:none}
.price-lines{list-style:none;padding:0;margin:0;display:grid;gap:var(--s2)}
.price-lines li{margin:0;display:grid;gap:2px}
.price-lines>li>a{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"pet from" "med med";gap:0 var(--s3);align-items:baseline;min-height:var(--tap);padding:var(--s2) var(--s3);border-radius:var(--r-sm);background:var(--surface-2);text-decoration:none;color:var(--ink)}
.price-lines>li>a:hover{background:var(--brand-tint)}
.pl-pet{grid-area:pet;font-weight:800;color:var(--brand)}.pl-from{grid-area:from;text-align:right;font-size:var(--t-1)}.pl-med{grid-area:med;font-size:var(--t-sm);color:var(--muted)}
.pl-cheap{padding:0 var(--s3)}
.xmas-band{background:var(--accent-tint);border-radius:var(--r);padding:var(--s2) var(--s5) var(--s3);margin:var(--s7) 0 var(--s5)}
.xmas-band h2{margin-top:var(--s4)}
.xmas-cities h3,.trust-grid h3{margin:0 0 var(--s2)}
.deadline{border-left:4px solid var(--accent);padding-left:var(--s3)}
.trust-grid>li{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:var(--s4)}
.trust-grid p{margin:0}
.band{background:var(--brand);color:var(--on-brand);border-radius:var(--r);padding:var(--s5);margin:var(--s7) 0 var(--s5)}
.band h2{margin-top:0;color:var(--on-brand)}
.band .btn{background:var(--on-brand);color:var(--brand);border-color:var(--on-brand)}
.band .btn:hover{background:var(--brand-tint);color:var(--brand-strong)}
.band .btn-ghost{background:transparent;color:var(--on-brand);border-color:var(--on-brand)}
.band .btn-ghost:hover{background:rgb(255 255 255 / .12);color:var(--on-brand)}
.band a:not(.btn){color:var(--on-brand)}
.signup-alerts .fa-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:0 var(--s4)}
.signup-alerts .fa-email{grid-column:1/-1}
@media (min-width:48em){.signup-compact .fa-email{grid-column:auto}.signup-compact .fa-fields{grid-template-columns:2fr 1fr 1fr}}
.interests{border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--s2) var(--s3);margin:0 0 var(--s3);display:flex;flex-wrap:wrap;gap:0 var(--s5)}
.interests legend{font-weight:700;font-size:var(--t-sm);padding:0 var(--s1)}
.interests label{display:inline-flex;align-items:center;min-height:var(--tap);font-weight:400;font-size:var(--t-0);margin:0}
.feature-list{max-width:75ch}.feature-list li+li{margin-top:var(--s2)}
.steps{max-width:75ch}.steps li+li{margin-top:var(--s2)}
@media print{.finder,.band,.xmas-band .btn,.glance{display:none!important}}
/* (xmas column widths above) */
@media print{
  :root{--bg:#fff;--surface:#fff;--surface-2:#f2f2f2;--ink:#000;--muted:#333;--line:#999;--brand:#000;--brand-tint:#fff}
  body{font-size:11pt;line-height:1.4;background:#fff;color:#000}
  .site-header,.skip,.site-footer .foot-grid,.toc,.related,.promo,.signup,.cta,.filter,.menu-btn,.btn,.crumbs,form{display:none!important}
  .site-header{position:static}
  h1{font-size:20pt;margin-top:0}h2{font-size:14pt;margin-top:14pt;break-after:avoid}
  a{color:#000;text-decoration:underline}
  a[target=_blank]::after{content:none}
  .src a[href^=http]::after,td a[href^=http]::after{content:" (" attr(href) ")";font-size:8pt;word-break:break-all}
  .tablewrap{overflow:visible;border:0}
  table,table.xmas{min-width:0;font-size:9pt}
  table.stack thead{position:static!important;width:auto!important;height:auto!important;clip-path:none!important;display:table-header-group!important}
  table.stack,table.stack tbody{display:table!important}table.stack tbody{display:table-row-group!important}
  table.stack tr{display:table-row!important}table.stack td{display:table-cell!important}
  table.stack td::before{content:none!important}
  tr,td,th{break-inside:avoid}
  .badge{border:1px solid #000;background:none!important;color:#000!important}
  details{border:0;padding:0}details>*{display:block}
  .checked{background:none;border:1px solid #000}
  .sort-ind{display:none}
}
table.xmas td:first-child{min-width:11rem}table.xmas td:nth-child(2){min-width:8rem}

/* ---------- v4 "PHE family" (25 Oct 2026): echoes pethumanizationempire.com — serif headings, square ink buttons,
   flat paper cards with hairline rules, ink family strip + ink footer. Overrides the v3 component rules above. ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.012em;line-height:1.15}
h1{font-size:var(--t-3)}
.hero-main h1{font-size:clamp(2.1rem,1.5rem + 2.8vw,3.4rem)}
b,strong{font-weight:700}
main p,main li,main dd{overflow-wrap:break-word}
.eyebrow{color:var(--brand);font-weight:600;letter-spacing:.2em}
.toc-title{letter-spacing:.18em;font-weight:700}
/* family strip (inside the header; scrolls away, the bar below stays sticky) */
.family-strip{background:var(--foot-bg);color:var(--foot-ink);font-size:.75rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;text-align:center;line-height:1;height:2rem;display:flex;align-items:center;justify-content:center;padding:0 var(--s3);margin:0;white-space:nowrap;overflow:hidden}
@media (max-width:26em){.family-strip{letter-spacing:.06em;font-size:.6875rem}}
.site-header{background:var(--bg);border-bottom:1px solid var(--line)}
.js .site-header{top:-2rem}
@media (min-width:64em){.site-header{top:-2rem}}
.brand{font-weight:600;letter-spacing:.005em;font-size:clamp(1rem,.9rem + .5vw,1.2rem)}
.brand-name span{color:var(--brand)}
.skip{background:var(--btn);color:var(--on-btn)}
.menu-btn{border-color:var(--ink);background:transparent;text-transform:uppercase;letter-spacing:.14em;font-size:var(--t-sm);font-weight:600}
.city-switch ul{background:transparent;border:1px solid var(--line);padding:2px}
.city-switch a{font-weight:600}
.city-switch a:hover{background:var(--surface-2)}
.city-switch a[aria-current]{background:var(--btn);color:var(--on-btn)}
.main-nav a{font-weight:500}
.main-nav a[aria-current]{background:var(--brand-tint);color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
.main-nav .nav-cta a{background:transparent;color:var(--ink);border:1px solid var(--ink);text-transform:uppercase;letter-spacing:.12em;font-size:var(--t-sm);font-weight:600}
.main-nav .nav-cta a:hover{background:var(--btn);color:var(--on-btn)}
@media (min-width:64em){.main-nav a[aria-current]{box-shadow:inset 0 -2px 0 var(--ink);background:transparent}}
/* buttons: PHE square ink buttons, uppercase tracking */
.btn,button.btn{border-radius:0;background:var(--btn);border:1px solid var(--btn);color:var(--on-btn);font-family:var(--font);font-size:var(--t-sm);font-weight:600;text-transform:uppercase;letter-spacing:.12em;min-height:48px;padding:var(--s2) var(--s5)}
.btn:hover{background:var(--btn-hover);border-color:var(--btn-hover);color:var(--on-btn)}
.btn-ghost,button.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--btn);border-color:var(--btn);color:var(--on-btn)}
.btn-small{min-height:var(--tap);padding:var(--s1) var(--s4);font-size:.8125rem}
/* cards, panels: flat paper, hairline rule (store look) */
.card,.glance,.finder,.searchbox,.signup,.trust-grid>li,.stats li,.filter,.toc,.tablewrap,details,.link-grid a,.regions li,.promo{box-shadow:none}
.card:hover{border-color:var(--accent)}
.card-title{font-weight:700;color:var(--ink)}
.card-title:hover{color:var(--brand)}
.city-card .card-title,.cp-city{font-family:var(--serif);font-weight:500}
.glance{border-top:2px solid var(--ink)}
.glance h2,.finder-title{font-family:var(--serif);font-weight:500;font-size:var(--t-2)}
.stats .num,.kpis .num{font-family:var(--serif);font-weight:500;color:var(--ink)}
.pl-pet{color:var(--ink)}
.link-grid a::after{color:var(--brand)}
.link-grid a:hover,.pills a:hover{border-color:var(--ink);background:var(--surface-2)}
.toc a:hover,.regions a:hover,.card .card-links a:hover,.price-lines>li>a:hover{background:var(--brand-tint)}
.signup{border-top:2px solid var(--accent)}
.callout{background:var(--surface-2);border-left:3px solid var(--accent)}
.xmas-band{background:var(--surface-2);border:1px solid var(--line)}
.deadline{border-left:3px solid var(--accent)}
.promo-house{border-left:3px solid var(--accent)}
.checked{background:var(--brand-tint)}
summary{font-weight:600}
caption{font-weight:600}
.sort-btn{color:var(--ink)}
.cta{background:var(--surface-2);border:1px solid var(--line)}
/* dark ink band, like the store's "Join the family" section */
.band{background:var(--foot-bg);color:var(--foot-ink);border-radius:0}
.band h2{color:var(--foot-ink)}
.band .btn{background:var(--foot-ink);color:var(--foot-bg);border-color:var(--foot-ink)}
.band .btn:hover{background:var(--foot-link);border-color:var(--foot-link);color:var(--foot-bg)}
.band .btn-ghost{background:transparent;color:var(--foot-ink);border-color:var(--foot-ink)}
.band .btn-ghost:hover{background:var(--foot-ink);color:var(--foot-bg)}
.band a:not(.btn){color:var(--foot-link)}
.band :focus-visible{outline-color:var(--foot-link)}
/* footer: ink, paper text, clay links */
.site-footer{background:var(--foot-bg);color:var(--foot-muted);border-top:0;--focus:var(--foot-link)}
.site-footer a{color:var(--foot-link)}
.site-footer li a{text-decoration:none}.site-footer li a:hover{text-decoration:underline}
.site-footer a:hover{color:var(--foot-ink)}
.site-footer strong{color:var(--foot-ink)}
.foot-h{font-family:var(--font);font-size:.8125rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--foot-ink)}
.foot-brand img{background:var(--bg);padding:4px;width:48px;height:48px}
.foot-brand .foot-name{font-weight:600;font-size:var(--t-1);color:var(--foot-ink)}
.foot-family{margin-top:var(--s1)}
.foot-legal{border-top-color:var(--foot-line)}
@media (prefers-color-scheme:dark){.foot-brand img{background:#f6f1ea}}
@media print{.family-strip{display:none}.site-footer{background:#fff;color:#000}.site-footer a,.site-footer strong{color:#000}}


.hero-biz{margin:var(--s3) 0 0;font-size:var(--t-sm);color:var(--muted)}
.hero-biz a{font-weight:700}
.hp-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3) var(--s5);margin:var(--s4) 0 0}
.hp-compare{font-weight:700;min-height:var(--tap);display:inline-flex;align-items:center}

/* home: free listing section (26 Oct 2026) */
.home-free{margin:var(--s7) 0 var(--s6);padding-top:var(--s6);border-top:1px solid var(--line)}
.home-free>.eyebrow{margin:0 0 var(--s2)}
.home-free>h2{margin-top:0;max-width:30ch}
.home-free .hp-lede{color:var(--ink);font-size:var(--t-1,1.125rem);margin:0 0 var(--s3)}
.hf-sub{font-weight:700;margin:0 0 var(--s2)}
.hf-honest{max-width:72ch}
.list-free .btn-row{margin:var(--s4) 0 var(--s2)}
@media print{.home-free .hp-links{display:none}}

/* ---------- App (PWA, 26 Oct 2026): tab bar, save/share buttons, saved + compare, quick search, toasts ---------- */
:root{--tabbar-h:60px}
.app-only{display:none}
.js .app-only{display:block}
.js .app-only[hidden],.app-only [hidden]{display:none}
body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
/* bottom tab bar: narrow screens, and the installed app up to tablet width */
.tabbar{display:none}
@media (max-width:47.99em),(display-mode:standalone) and (max-width:63.99em){
  .tabbar{display:block;position:fixed;z-index:60;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line-strong);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
  body{padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}
  html{scroll-padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--s3))}
  .app-toast{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--s2))}
}
.tabbar ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;margin:0 auto;padding:0;max-width:40rem}
.tabbar li{margin:0}
.tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tabbar-h);padding:6px 2px 4px;color:var(--muted);text-decoration:none;font-size:.8125rem;font-weight:600;line-height:1.1;-webkit-tap-highlight-color:transparent}
.tabbar svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabbar a:hover{color:var(--ink);background:var(--surface-2)}
.tabbar a[aria-current]{color:var(--ink)}
.tabbar a[aria-current]::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;background:var(--ink)}
.tabbar a[aria-current] svg{fill:var(--brand-tint);stroke-width:2.2}
.tabbar a:focus-visible{outline:3px solid var(--focus);outline-offset:-4px;border-radius:0}
.tab-badge{position:absolute;top:5px;left:calc(50% + 6px);min-width:1.25rem;height:1.25rem;padding:0 .3rem;border-radius:999px;background:var(--btn);color:var(--on-btn);font-size:.75rem;font-weight:700;line-height:1.25rem;text-align:center}
.tab-badge:empty{display:none}
/* save / share */
.save-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);min-width:var(--tap);padding:0 var(--s4);border:1px solid var(--ink);border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:var(--t-sm);font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.save-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;flex:none}
.save-btn:hover{background:var(--surface-2)}
.save-btn[aria-pressed=true]{background:var(--btn);border-color:var(--btn);color:var(--on-btn)}
.save-btn[aria-pressed=true] svg{fill:currentColor}
.save-btn[aria-pressed=true]:hover{background:var(--btn-hover)}
.card .save-icon{position:absolute;top:var(--s2);right:var(--s2);padding:0;width:var(--tap);border-color:var(--line-strong)}
.js .card[data-slug] .card-title,.js .card[data-slug] .app-card-h{padding-right:calc(var(--tap) + var(--s2))}
.js .app-actions{display:flex;flex-wrap:wrap;gap:var(--s2);min-height:var(--tap);margin:0 0 var(--s4)}
/* quick search, saved, compare */
.qf-form{display:grid;gap:var(--s2) var(--s4);grid-template-columns:1fr}
.qf-form p{margin:0}
@media (min-width:40em){.qf-form{grid-template-columns:2fr 1fr 1fr}.qf-form .filter-count{grid-column:1/-1}}
.app-card-h{margin:0;font-size:var(--t-1);font-family:var(--font)}
.app-card-h .card-title{font-size:inherit}
.saved-summary{font-weight:600}
.saved-summary:focus{outline:none}.saved-summary:focus-visible{outline:3px solid var(--focus)}
.saved-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s4);margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--line)}
.cmp-pick{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--tap);font-weight:600;cursor:pointer}
.cmp-pick input{width:1.4rem;height:1.4rem;accent-color:var(--btn);margin:0}
.compare-box{margin-top:var(--s6)}
#compare-h:focus{outline:none}#compare-h:focus-visible{outline:3px solid var(--focus)}
.cmp-wrap{max-width:100%}
table.compare{min-width:34rem;width:100%;border-collapse:collapse}
table.compare th,table.compare td{vertical-align:top;text-align:left;padding:var(--s2) var(--s3);border-bottom:1px solid var(--line)}
table.compare thead th{font-family:var(--serif);font-weight:500;font-size:var(--t-1);min-width:11rem}
table.compare tbody th{position:sticky;left:0;z-index:1;background:var(--surface-2);font-size:var(--t-sm);width:9rem;min-width:8rem}
table.compare .cmp-corner{position:sticky;left:0;z-index:1;background:var(--surface-2)}
.cmp-rates{margin:0;padding-left:1.1em;font-size:var(--t-sm)}
.app-alerts{margin:var(--s6) 0;padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--accent)}
.app-alerts h2{margin-top:0;font-size:var(--t-2)}
.install-box{padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--line);border-top:2px solid var(--ink)}
.install-box h2{margin-top:0}
/* toast (install hint, update notice): never steals focus; dismissible */
.app-toast{position:fixed;z-index:70;left:var(--s3);right:var(--s3);bottom:calc(var(--s3) + env(safe-area-inset-bottom));max-width:30rem;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);padding:var(--s3) var(--s4);background:var(--foot-bg);color:var(--foot-ink);border:1px solid var(--foot-line);--focus:var(--foot-link)}
.app-toast p{margin:0;flex:1 1 14rem;font-size:var(--t-sm);line-height:1.45}
.app-toast strong{color:var(--foot-ink)}
.app-toast .btn{background:var(--foot-ink);color:var(--foot-bg);border-color:var(--foot-ink)}
.app-toast .btn:hover{background:var(--foot-link);border-color:var(--foot-link)}
.app-toast .btn-ghost{background:transparent;color:var(--foot-ink);border-color:var(--foot-ink)}
.app-toast .btn-ghost:hover{background:var(--foot-ink);color:var(--foot-bg)}
@media (min-width:48em){.app-toast{left:auto;right:var(--s5);margin:0}}
@media (prefers-reduced-motion:no-preference){
  .app-toast{animation:kpa-rise .2s ease-out}
  @keyframes kpa-rise{from{transform:translateY(12px)}to{transform:none}}
  @view-transition{navigation:auto}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}
}
.is-standalone .family-strip{display:none}
.is-standalone .site-header{top:0}
@media print{.tabbar,.app-toast,.app-actions,.save-btn,.app-alerts,.install-box{display:none!important}body{padding:0!important}}
.app-find>h2{margin-top:var(--s5)}
.cmp-note{margin:0 0 var(--s2);color:var(--muted)}
@media (max-width:47.99em),(display-mode:standalone) and (max-width:63.99em){.app-toast{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--s2))}}
.js #qf-results:empty{min-height:100vh}
