/* Stumphead Stump Grinding. Tokens come from the build program: the fluid scales, the palette and the font fallbacks. */
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("/fonts/atkinson-hyperlegible-next-latin-variable.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Caprasimo";
  src: url("/fonts/caprasimo-latin-400.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Atkinson Fallback";
  src: local("Arial");
  size-adjust: 100.02%;
  ascent-override: 98.38%;
  descent-override: 31.59%;
  line-gap-override: 0.0%;
}
@font-face {
  font-family: "Caprasimo Fallback";
  src: local("Georgia Bold"), local("Georgia-Bold");
  size-adjust: 99.59%;
  ascent-override: 92.17%;
  descent-override: 22.99%;
  line-gap-override: 0.0%;
}

:root {
  --step--1: clamp(0.9375rem, 0.9158rem + 0.1087vi, 1.0000rem);
  --step-0: clamp(1.1250rem, 1.0815rem + 0.2174vi, 1.2500rem);
  --step-1: clamp(1.3500rem, 1.2761rem + 0.3696vi, 1.5625rem);
  --step-2: clamp(1.6200rem, 1.5041rem + 0.5793vi, 1.9531rem);
  --step-3: clamp(1.9440rem, 1.7710rem + 0.8651vi, 2.4414rem);
  --step-4: clamp(2.3328rem, 2.0827rem + 1.2504vi, 3.0518rem);
  --step-5: clamp(2.7994rem, 2.4462rem + 1.7658vi, 3.8147rem);
  --space-3xs: clamp(0.2812rem, 0.2704rem + 0.0543vi, 0.3125rem);
  --space-2xs: clamp(0.5625rem, 0.5408rem + 0.1087vi, 0.6250rem);
  --space-xs: clamp(0.8438rem, 0.8111rem + 0.1630vi, 0.9375rem);
  --space-s: clamp(1.1250rem, 1.0815rem + 0.2174vi, 1.2500rem);
  --space-m: clamp(1.6875rem, 1.6223rem + 0.3261vi, 1.8750rem);
  --space-l: clamp(2.2500rem, 2.1630rem + 0.4348vi, 2.5000rem);
  --space-xl: clamp(3.3750rem, 3.2446rem + 0.6522vi, 3.7500rem);
  --space-2xl: clamp(4.5000rem, 4.3261rem + 0.8696vi, 5.0000rem);
  --space-3xl: clamp(6.7500rem, 6.4891rem + 1.3043vi, 7.5000rem);
  --space-s-m: clamp(1.1250rem, 0.8641rem + 1.3043vi, 1.8750rem);
  --space-m-l: clamp(1.6875rem, 1.4049rem + 1.4130vi, 2.5000rem);
  --space-s-l: clamp(1.1250rem, 0.6467rem + 2.3913vi, 2.5000rem);
  --space-l-xl: clamp(2.2500rem, 1.7283rem + 2.6087vi, 3.7500rem);
  --space-xl-2xl: clamp(3.3750rem, 2.8098rem + 2.8261vi, 5.0000rem);
  --slate-1: #fcfcfd;
  --slate-2: #f9f9fb;
  --slate-3: #f0f0f3;
  --slate-4: #e8e8ec;
  --slate-5: #e0e1e6;
  --slate-6: #d9d9e0;
  --slate-7: #cdced6;
  --slate-8: #b9bbc6;
  --slate-9: #8b8d98;
  --slate-10: #80838d;
  --slate-11: #60646c;
  --slate-12: #1c2024;
  --accent-1: #fafcff;
  --accent-2: #f2f6ff;
  --accent-3: #e5ecff;
  --accent-4: #d9e4fe;
  --accent-5: #c9d9ff;
  --accent-6: #b6cbff;
  --accent-7: #9fbaff;
  --accent-8: #819ff1;
  --accent-9: #263D8F;
  --accent-10: #1e3384;
  --accent-11: #1a2d79;
  --accent-12: #111d44;
  --red-1: #fffcfc;
  --red-2: #fff7f7;
  --red-3: #feebec;
  --red-4: #ffdbdc;
  --red-5: #ffcdce;
  --red-6: #fdbdbe;
  --red-7: #f4a9aa;
  --red-8: #eb8e90;
  --red-9: #e5484d;
  --red-10: #dc3e42;
  --red-11: #ce2c31;
  --red-12: #641723;
  --green-1: #fbfefc;
  --green-2: #f4fbf6;
  --green-3: #e6f6eb;
  --green-4: #d6f1df;
  --green-5: #c4e8d1;
  --green-6: #adddc0;
  --green-7: #8eceaa;
  --green-8: #5bb98b;
  --green-9: #30a46c;
  --green-10: #2b9a66;
  --green-11: #218358;
  --green-12: #193b2d;
  --max-width: 77.5rem;
  --side-margin: var(--space-s-l);
  --radius: 0.5rem;
  --font-body: "Atkinson Hyperlegible Next", "Atkinson Fallback", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-head: "Caprasimo", "Caprasimo Fallback", Georgia, "Times New Roman", serif;

  --color-page: #ffffff;
  --color-surface: var(--accent-2);
  --color-fill: var(--slate-3);
  --color-border-subtle: var(--slate-6);
  --color-border: var(--slate-8);
  --color-action: var(--accent-9);
  --color-action-hover: var(--accent-10);
  --color-on-action: #ffffff;
  --color-text-muted: var(--slate-11);
  --color-text: var(--slate-12);
  --color-link: var(--accent-11);
  --focus-color: var(--accent-9);
  --texture-panel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .15  0 0 0 0 .24  0 0 0 0 .56  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url%28%23n%29' opacity='.16'/%3E%3C/svg%3E"), radial-gradient(60% 90% at 8% 15%, rgb(229 236 255 / 0.9), transparent 70%), radial-gradient(55% 80% at 92% 10%, rgb(255 255 255 / 0.95), transparent 70%), radial-gradient(60% 90% at 78% 95%, rgb(229 236 255 / 0.8), transparent 72%), radial-gradient(50% 80% at 12% 100%, rgb(255 255 255 / 0.9), transparent 70%);
  --texture-plate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cg fill='%23fff' fill-opacity='.075'%3E%3Crect x='-7.5' y='-2.2' width='15' height='4.4' rx='2.2' transform='translate%2810 10%29 rotate%2845%29'/%3E%3Crect x='-7.5' y='-2.2' width='15' height='4.4' rx='2.2' transform='translate%2830 10%29 rotate%28-45%29'/%3E%3Crect x='-7.5' y='-2.2' width='15' height='4.4' rx='2.2' transform='translate%2810 30%29 rotate%28-45%29'/%3E%3Crect x='-7.5' y='-2.2' width='15' height='4.4' rx='2.2' transform='translate%2830 30%29 rotate%2845%29'/%3E%3C/g%3E%3C/svg%3E");
  --header-h: 3.75rem;
  --bar-h: 3.5rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 6rem; scroll-padding-bottom: 5rem; overflow-x: clip; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-page);
  overflow-x: clip;
  padding-block-end: var(--bar-h);
}
img, picture, svg, video { max-width: 100%; height: auto; }
img { display: block; }
::selection { background: var(--accent-5); color: var(--accent-12); }

h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 400; line-height: 1.15; margin: 0; text-wrap: balance; color: var(--color-text); }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); }
h3 { font-size: var(--step-2); }
h4 { font-size: var(--step-1); }
p, ul, ol, dl, figure { margin: 0; }
p, li { text-wrap: pretty; }
.measure { max-inline-size: 68ch; }
strong, b { font-weight: 700; }
small, .small { font-size: var(--step--1); }

a { color: var(--color-link); text-underline-offset: 0.2em; text-decoration-thickness: 0.08em; }
a:hover { text-decoration-thickness: 0.16em; }
:focus-visible { outline: 3px solid var(--focus-color); outline-offset: 3px; border-radius: 2px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link { position: absolute; left: 1rem; top: -100%; z-index: 100; background: var(--color-page); color: var(--accent-12); padding: 0.75rem 1rem; border: 2px solid var(--accent-9); border-radius: var(--radius); font-weight: 700; }
.skip-link:focus { top: 1rem; }

/* Layout primitives */
.container { width: min(100% - 2 * var(--side-margin), var(--max-width)); margin-inline: auto; }
.stack { display: flex; flex-direction: column; justify-content: flex-start; }
.stack > * + * { margin-block-start: var(--stack-space, var(--space-m)); }
.stack-s { --stack-space: var(--space-xs); }
.stack-l { --stack-space: var(--space-l); }
.cluster { display: flex; flex-wrap: wrap; gap: var(--cluster-gap, var(--space-s)); align-items: center; }
.switcher { display: flex; flex-wrap: wrap; gap: var(--switcher-gap, var(--space-l)); }
.switcher > * { flex-grow: 1; flex-basis: calc((40em - 100%) * 999); }
.with-sidebar { display: flex; flex-wrap: wrap; gap: var(--space-l); align-items: flex-start; }
.with-sidebar > .side { flex-basis: 18em; flex-grow: 1; }
.with-sidebar > .main { flex-basis: 0; flex-grow: 999; min-inline-size: 55%; }
.grid { display: grid; gap: var(--space-m); grid-template-columns: repeat(auto-fit, minmax(min(16em, 100%), 1fr)); }
.frame { aspect-ratio: var(--ratio, 3 / 2); overflow: hidden; background: var(--color-fill); border-radius: var(--radius); }
.frame picture, .frame > img { display: block; width: 100%; height: 100%; }
.frame img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }

/* Bands: each section is its own block */
.band { padding-block: var(--space-xl-2xl); }
.band--surface { background-color: var(--color-surface); background-image: var(--texture-panel); background-size: 200px 200px, auto, auto, auto, auto; }
.band--brand { background: var(--accent-9); color: #ffffff; --focus-color: #ffffff; --color-link: #ffffff; }
.band--brand h1, .band--brand h2, .band--brand h3 { color: #ffffff; }
.band--brand .muted { color: var(--accent-4); }
.band--brand a:not(.button) { color: #ffffff; }
.band-head { margin-block-end: var(--space-l); }
.muted { color: var(--color-text-muted); }
.lead { font-size: var(--step-1); line-height: 1.5; }

/* Buttons and links that act */
.button {
  display: inline-flex; align-items: center; justify-content: center; text-align: center;
  min-height: 3rem; min-width: 3rem; padding: 0.5rem 1.5rem;
  background: var(--color-action); color: var(--color-on-action);
  font-weight: 700; font-size: var(--step-0); line-height: 1.2; text-decoration: none;
  border: 2px solid var(--color-action); border-radius: var(--radius);
}
.button:hover { background: var(--color-action-hover); border-color: var(--color-action-hover); text-decoration: none; }
.button--inverse { background: #ffffff; color: var(--accent-11); border-color: #ffffff; }
.button--inverse:hover { background: var(--accent-3); border-color: var(--accent-3); }
.band--brand a.button--inverse { color: var(--accent-11); }
.text-link { font-weight: 700; display: inline-block; padding-block: 0.6rem; }
.note { font-size: var(--step--1); color: var(--color-text-muted); }
.call-note { font-size: var(--step-0); line-height: 1.4; color: var(--color-text-muted); }
.band--brand .call-note { color: var(--accent-4); }
.band--brand .note { color: var(--accent-4); }

/* Header */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--color-page); border-block-end: 1px solid var(--color-border-subtle); }
.header-inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2xs) var(--space-s); min-height: var(--header-h); padding-block: 0.35rem; }
.brand { display: block; flex: none; line-height: 0; border-radius: 4px; }
.brand img { height: 48px; width: auto; }
.site-header nav { margin-inline-start: auto; }
.menu-button {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 3rem; padding: 0.5rem 1rem;
  font: inherit; font-weight: 700; color: var(--accent-11); background: var(--color-page);
  border: 2px solid var(--accent-9); border-radius: var(--radius); cursor: pointer;
}
.menu-button:hover { background: var(--accent-2); }
.menu-icon { width: 1.4rem; height: 1.4rem; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; }
#site-menu { list-style: none; margin: 0; padding: 0; }
html.js #site-menu { position: absolute; inset-inline: 0; top: 100%; background: var(--color-page); border-block-end: 1px solid var(--color-border-subtle); box-shadow: 0 10px 24px -12px rgb(0 0 0 / 0.25); padding: var(--space-xs) var(--side-margin) var(--space-s); }
html:not(.js) #site-menu { display: flex; flex-wrap: wrap; gap: 0 var(--space-s); padding-block: var(--space-2xs); }
#site-menu a { display: flex; align-items: center; min-height: 3rem; padding-inline: 0.5rem; color: var(--color-text); text-decoration: none; font-weight: 400; border-block-end: 1px solid var(--color-border-subtle); }
#site-menu li:last-child a { border-block-end: 0; }
#site-menu a:hover { color: var(--accent-11); text-decoration: underline; text-decoration-thickness: 0.12em; }
#site-menu a[aria-current="page"] { font-weight: 700; color: var(--accent-11); text-decoration: underline; text-decoration-thickness: 0.18em; text-underline-offset: 0.35em; }
.header-call { display: none; }
.call-bar { position: fixed; inset-inline: 0; bottom: 0; z-index: 60; background: var(--accent-9); border-block-start: 1px solid var(--accent-10); padding: 0.25rem var(--side-margin); }
.call-bar a { display: flex; align-items: center; justify-content: center; min-height: 2.75rem; color: #ffffff; font-weight: 700; font-size: var(--step-1); text-decoration: none; --focus-color: #ffffff; }
.call-bar a:hover { text-decoration: underline; }

@media (min-width: 40em) {
  body { padding-block-end: 0; }
  .call-bar { display: none; }
  .header-call { display: inline-flex; flex: none; }
  .header-inner { gap: var(--space-m); }
  .site-header nav { margin-inline-start: auto; }
  .brand img { height: 56px; }
}
@media (min-width: 64em) {
  .menu-button { display: none; }
  #site-menu, html.js #site-menu { display: flex; position: static; flex-wrap: nowrap; gap: 0; box-shadow: none; border: 0; padding: 0; background: transparent; }
  #site-menu a { min-height: 3rem; padding-inline: 0.45rem; border: 0; white-space: nowrap; }
  .header-inner { gap: var(--space-2xs) var(--space-xs); }
  .header-call { padding-inline: 1.1rem; }
  .brand img { height: 60px; }
}
@media (min-width: 75em) {
  #site-menu a { padding-inline: 0.65rem; }
  .header-inner { gap: var(--space-2xs) var(--space-s); }
  .header-call { padding-inline: 1.5rem; }
}
/* A narrow device turned sideways is wide but short: keep the call bar, make it smaller, and let only the header scroll away.
   From the medium size up the header carries the number and stays pinned. */
@media (orientation: landscape) and (max-height: 30em) and (max-width: 39.99em) {
  .site-header { position: static; }
  .call-bar { padding-block: 0.1rem; }
  .call-bar a { min-height: 2.5rem; font-size: var(--step-0); }
  body { padding-block-end: 2.75rem; }
}

/* Hero */
.hero { position: relative; background: var(--color-page); }
.hero-img { display: block; width: 100%; aspect-ratio: 2 / 1; object-fit: cover; object-position: 50% 62%; }
.hero-inner { padding-block: 0 var(--space-l); margin-block-start: calc(-1 * var(--space-xl)); position: relative; }
.hero-panel { background: var(--color-page); max-inline-size: 36rem; padding: var(--space-m); border: 1px solid var(--color-border-subtle); border-radius: var(--radius); box-shadow: 0 1px 0 var(--slate-4); }
.hero-panel h1 { font-size: var(--step-3); }
@media (min-width: 40em) {
  .hero-panel { padding: var(--space-m) var(--space-l); }
  .hero-panel h1 { font-size: var(--step-4); }
  .hero-img { aspect-ratio: 21 / 9; }
}
@media (min-width: 64em) {
  .hero { display: grid; }
  .hero > * { grid-area: 1 / 1; }
  .hero-img { height: 100%; min-height: clamp(30rem, 40vw, 38rem); aspect-ratio: auto; object-position: 50% 78%; }
  .hero-inner { align-self: start; margin-block-start: 0; padding-block: var(--space-l); z-index: 1; }
  .hero-panel { box-shadow: none; }
}
.page-open { padding-block: var(--space-xl) var(--space-l); background-color: var(--color-surface); background-image: var(--texture-panel); background-size: 200px 200px, auto, auto, auto, auto; border-block-end: 1px solid var(--color-border-subtle); }
.page-open h1 { font-size: var(--step-4); }

/* Content patterns */
.facts { display: grid; gap: var(--space-l) var(--space-xl); grid-template-columns: repeat(auto-fit, minmax(min(17em, 100%), 1fr)); }
.facts h3 { font-size: var(--step-1); margin-block-end: var(--space-2xs); }
.ba { display: flex; flex-direction: column; gap: var(--space-2xs); }
.ba figcaption, .photo-grid figcaption { font-size: var(--step--1); color: var(--color-text-muted); }
.ba .tag { font-weight: 700; color: var(--color-text); }
.pair { --switcher-gap: var(--space-s); }
.work-item { padding-block: var(--space-l); border-block-start: 1px solid var(--color-border-subtle); }
.work-item:first-of-type { border-block-start: 0; padding-block-start: 0; }
.photo-grid { display: grid; gap: var(--space-m); grid-template-columns: repeat(auto-fit, minmax(min(18em, 100%), 1fr)); align-items: start; }
.photo-grid figure { display: flex; flex-direction: column; gap: var(--space-2xs); }
.photo-grid .wide { grid-column: 1 / -1; }
@media (min-width: 64em) { .photo-grid .wide { grid-column: span 2; } }
.steps { list-style: none; padding: 0; margin: 0; counter-reset: step; display: flex; flex-direction: column; gap: var(--space-s); }
.steps li { counter-increment: step; display: grid; grid-template-columns: 2.5rem 1fr; gap: var(--space-xs); align-items: start; }
.steps li::before { content: counter(step); display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--accent-9); color: #ffffff; font-weight: 700; }
.plain-list { padding-inline-start: 1.25rem; }
.plain-list li + li { margin-block-start: var(--space-2xs); }
.faq-item { padding-block: var(--space-s); border-block-start: 1px solid var(--color-border-subtle); }
.faq-item:first-child { border-block-start: 0; padding-block-start: 0; }
.faq-item h3 { font-size: var(--step-1); margin-block-end: var(--space-3xs); }
.rating { font-family: var(--font-head); font-size: var(--step-4); line-height: 1.1; }
.county h3 { font-size: var(--step-1); }
.towns { column-gap: var(--space-l); }
.call-big { display: inline-block; font-family: var(--font-head); font-size: var(--step-4); line-height: 1.15; color: var(--accent-11); text-decoration: none; padding-block: 0.25rem; }
.call-big:hover { text-decoration: underline; text-decoration-thickness: 0.08em; }
.band--brand .call-big { color: #ffffff; }

/* Pictures with a purpose of their own */
.split-half { display: flex; flex-wrap: wrap; gap: var(--space-l); align-items: center; }
.split-half > * { flex: 1 1 22rem; min-inline-size: 0; }
.logo-card { display: flex; justify-content: center; }
.logo-card picture, .logo-card img { width: 100%; }
.logo-card img { border-radius: var(--radius); }
.ba-card { border-radius: calc(var(--radius) * 1.5); overflow: hidden; background: #ffffff; border: 1px solid var(--color-border-subtle); box-shadow: 0 0.6rem 1.8rem -0.9rem rgb(17 29 68 / 0.45); }
.ba-card img { width: 100%; height: auto; }
.bleed-card { margin: 0; border-radius: calc(var(--radius) * 1.5); overflow: hidden; }
.bleed-card img { width: 100%; height: auto; }
.split-half .side picture, .split-half .side img { border-radius: var(--radius); }
.work-item h3 { font-size: var(--step-2); }
.bleed { margin: 0; line-height: 0; background: var(--accent-12); }
.bleed img { width: 100%; aspect-ratio: 3 / 1; object-fit: cover; max-height: 36rem; }
.review-grid { display: grid; gap: var(--space-l); grid-template-columns: repeat(auto-fit, minmax(min(24em, 100%), 1fr)); align-items: start; }
.review { margin: 0; background: #ffffff; border: 1px solid var(--color-border-subtle); border-inline-start: 0.4rem solid var(--accent-9); border-radius: var(--radius); padding: var(--space-m); display: flex; flex-direction: column; gap: var(--space-s); }
.review blockquote { margin: 0; display: flex; flex-direction: column; gap: var(--space-xs); font-size: var(--step-0); }
.review blockquote p { max-inline-size: 62ch; }
.review figcaption { font-weight: 700; color: var(--accent-11); }

/* A placeholder holds the space of a photo still needed, and says what it should show */
.placeholder { display: grid; place-items: center; width: 100%; background: var(--color-fill); border: 2px dashed var(--slate-8); border-radius: var(--radius); color: var(--color-text-muted); font-size: var(--step--1); text-align: center; padding: var(--space-m); }
.placeholder strong { color: var(--color-text); }

/* Form */
.form { display: grid; gap: var(--space-m); max-inline-size: 36rem; }
.field { display: flex; flex-direction: column; gap: var(--space-3xs); }
.field label { font-weight: 700; }
.field input, .field textarea { font: inherit; color: var(--color-text); background: #ffffff; border: 2px solid var(--slate-9); border-radius: var(--radius); padding: 0.6rem 0.75rem; min-height: 3rem; width: 100%; }
.field textarea { min-height: 9rem; resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible { outline: 3px solid var(--accent-9); outline-offset: 2px; border-color: var(--accent-9); }
.field .hint { font-size: var(--step--1); color: var(--color-text-muted); }
.field [aria-invalid="true"] { border-color: var(--red-11); }
.error { color: var(--red-11); font-weight: 700; font-size: var(--step--1); }
.error::before { content: "Problem: "; }
.form-status { padding: var(--space-xs) var(--space-s); border: 2px solid var(--green-11); border-radius: var(--radius); color: var(--color-text); background: var(--green-3); }
.form-status[hidden] { display: none; }

/* Footer */
.site-footer { background-color: var(--accent-12); background-image: linear-gradient(to bottom, rgb(17 29 68 / 0) 0%, rgb(17 29 68 / 0.6) 100%), var(--texture-plate); border-block-start: 0.4rem solid var(--accent-9); color: var(--accent-3); --focus-color: #ffffff; padding-block: var(--space-xl) var(--space-l); }
.site-footer h2 { font-size: var(--step-1); color: #ffffff; }
.site-footer a { color: #ffffff; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.site-footer .muted { color: var(--accent-4); }
.social-link { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 2.75rem; }
.social-link svg { width: 1.5rem; height: 1.5rem; fill: currentColor; flex: none; }
.footer-legal { margin-block-start: var(--space-l); padding-block-start: var(--space-s); border-block-start: 1px solid var(--accent-10); font-size: var(--step--1); color: var(--accent-4); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
@media print { .site-header, .call-bar, .skip-link { display: none; } body { padding: 0; } }
