/*
Theme Name: Fishing Lives
Theme URI: https://fishinglives.com
Author: Fishing Lives
Description: British maritime heritage theme for the Fishing Lives archive — boats, crews and stories, past and present. Requires the Fishing Lives Core plugin.
Version: 1.2.2
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: fishing-lives
*/

/* ---------- Self-hosted fonts (no external requests) ----------
   Libre Caslon Text and Archivo, SIL Open Font License — licences in assets/fonts/. */
@font-face{
	font-family:"Libre Caslon Text";
	src:url("assets/fonts/LibreCaslonText-Variable.woff2") format("woff2");
	font-weight:400 700;font-style:normal;font-display:swap;
}
@font-face{
	font-family:"Libre Caslon Text";
	src:url("assets/fonts/LibreCaslonText-Italic-Variable.woff2") format("woff2");
	font-weight:400 700;font-style:italic;font-display:swap;
}
@font-face{
	font-family:"Archivo";
	src:url("assets/fonts/Archivo-Variable.woff2") format("woff2");
	font-weight:100 900;font-style:normal;font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
	--navy:#16324A;
	--navy-deep:#0D2130;
	--paper:#F6F1E6;
	--paper-dim:#EFE7D6;
	--copper:#A6552F;
	--copper-bright:#C1703F;
	--copper-a11y:#E0946A; /* copper for small text on navy — 5.4:1 contrast (WCAG AA) */
	--copper-hero:#F5BC9C; /* copper for small text over the hero photograph — 5.0:1 (WCAG AA) */
	--ink:#22303B;
	--muted:#5F6C76;
	--line:rgba(22,50,74,.16);
	--font-display:"Libre Caslon Text",Georgia,serif;
	--font-body:"Archivo",system-ui,-apple-system,sans-serif;
	--maxw:72rem;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
	margin:0;
	background:var(--paper);
	color:var(--ink);
	font-family:var(--font-body);
	font-size:1.0625rem;
	line-height:1.65;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--copper);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--copper-bright)}
:focus-visible{outline:3px solid var(--copper);outline-offset:2px}
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.15;color:var(--navy);margin:0 0 .6em}
h1{font-size:clamp(1.9rem,4.5vw,3rem)}
h2{font-size:clamp(1.4rem,3vw,1.9rem)}
h3{font-size:1.15rem}
p{margin:0 0 1.1em}
.fl-wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.1rem}
.screen-reader-text{position:absolute!important;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
.screen-reader-text:focus{clip-path:none;width:auto;height:auto;position:fixed;left:1rem;top:1rem;z-index:1000;background:var(--paper);color:var(--navy);padding:.75rem 1.1rem;border:3px solid var(--copper);border-radius:4px;font-weight:700;text-decoration:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.fl-card:hover{transform:none}}

/* Tide rule — double hairline divider used across the site */
.fl-tide{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);height:5px;margin:2.2rem 0;background:transparent}

/* ---------- Signature: hull registration plate ---------- */
.fl-reg{
	display:inline-block;
	font-family:var(--font-body);
	font-weight:800;
	font-size:.78em;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#fff;
	background:var(--navy);
	border:2px solid rgba(255,255,255,.85);
	box-shadow:0 0 0 2px var(--navy), inset 0 0 6px rgba(0,0,0,.45);
	border-radius:2px;
	padding:.22em .6em;
	margin:0 .5em .3em 0;
	white-space:nowrap;
}
.fl-reg--light{background:var(--copper);box-shadow:0 0 0 2px var(--copper),inset 0 0 6px rgba(0,0,0,.35)}

/* ---------- Header ---------- */
.site-header{background:var(--navy);color:var(--paper);border-bottom:4px solid var(--copper)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.1rem;max-width:var(--maxw);margin:0 auto}
.site-brand{display:flex;flex-direction:column;text-decoration:none;color:var(--paper)}
.site-brand:hover{color:#fff}
.site-brand__name{font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:.01em;line-height:1.1}
.site-brand__tag{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--copper-a11y);margin-top:.2rem}
.nav-toggle{display:none;background:none;border:2px solid var(--paper);color:var(--paper);border-radius:4px;padding:.4rem .7rem;font:inherit;cursor:pointer}
.site-nav ul{list-style:none;display:flex;gap:1.35rem;margin:0;padding:0;flex-wrap:wrap}
.site-nav a{color:var(--paper);text-decoration:none;font-size:.95rem;font-weight:500}
.site-nav a:hover{color:var(--copper-a11y)}
.site-nav .fl-nav-cta a{background:var(--copper);color:#fff;padding:.45rem .9rem;border-radius:4px;font-weight:700}
.site-nav .fl-nav-cta a:hover{background:var(--copper-bright)}
@media(max-width:820px){
	.nav-toggle{display:block}
	.site-nav{display:none;width:100%}
	.site-nav.is-open{display:block}
	.site-header__inner{flex-wrap:wrap}
	.site-nav ul{flex-direction:column;gap:0;padding:.5rem 0}
	.site-nav li{border-top:1px solid rgba(246,241,230,.15)}
	.site-nav a{display:block;padding:.8rem .2rem}
	.site-nav .fl-nav-cta a{display:inline-block;margin:.6rem 0}
}

/* ---------- Hero ----------
   Background photograph is decorative: it carries no meaning that the words
   don't already say, so it is a CSS background with no alt text rather than an
   <img>. A navy gradient sits over it, heaviest behind the wording on the left
   and lightest over the vessel on the right. Every overlay value below was
   chosen by measuring the composited result against the actual image pixels;
   all hero text passes WCAG AA (worst case 5.01:1). */

.fl-hero{
	background-color:var(--navy-deep); /* shown if the image is still loading or fails */
	color:var(--paper);
	padding:3.2rem 0 3.6rem;
	position:relative;
	overflow:hidden;
	min-height:26rem;              /* fixed box: the background cannot shift layout */
	display:flex;
	align-items:center;
}
.fl-hero > .fl-wrap{position:relative;z-index:2;width:100%}

/* The photograph. Separate layer so the gradient never tints the fallback colour. */
.fl-hero::before{
	content:"";
	position:absolute;inset:0;z-index:0;
	background-image:url("assets/img/hero-narrow.jpg");
	background-image:image-set(
		url("assets/img/hero-narrow.webp") type("image/webp"),
		url("assets/img/hero-narrow.jpg") type("image/jpeg")
	);
	background-repeat:no-repeat;
	background-size:cover;          /* fills the hero, never stretched or distorted */
	background-position:50% 50%;    /* portrait crop: the vessel fills the phone hero */
}

/* The gradient overlay. */
.fl-hero::after{
	content:"";
	position:absolute;inset:0;z-index:1;
	background:
		linear-gradient(180deg,
			rgba(13,33,48,.95) 0%,
			rgba(13,33,48,.92) 55%,
			rgba(13,33,48,.86) 70%,
			rgba(13,33,48,.52) 87%,
			rgba(13,33,48,.30) 100%),
		linear-gradient(90deg, rgba(13,33,48,.50) 0%, rgba(13,33,48,.18) 100%);
}

.fl-hero h1{color:var(--paper);max-width:22ch}
.fl-hero .fl-hero__kicker{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--copper-hero);margin:0 0 1rem}
.fl-hero p.fl-hero__lead{font-size:1.15rem;max-width:52ch;color:#CFD8DE}
/* Two intros: the full one on desktop and tablet, a shorter one on phones.
   Only ever one is rendered, so there is no duplicated visible text. */
.fl-hero p.fl-hero__lead--short{display:none}
.fl-search{display:flex;gap:.5rem;max-width:34rem;margin-top:1.6rem;flex-wrap:wrap}
.fl-search input[type=search]{flex:1 1 14rem;min-width:0;padding:.85rem 1rem;border:0;border-radius:4px;font:inherit;background:var(--paper);color:var(--ink)}
.fl-search button{padding:.85rem 1.3rem;border:0;border-radius:4px;background:var(--copper);color:#fff;font:inherit;font-weight:700;cursor:pointer}
.fl-search button:hover{background:var(--copper-bright)}
.fl-hero__hint{font-size:.85rem;color:#C6D2DA;margin-top:.6rem}
.fl-hero__hint a{color:#E4EBF0}

/* Focus indicators must stay visible against the photograph. */
.fl-hero a:focus-visible,
.fl-hero input:focus-visible,
.fl-hero button:focus-visible{
	outline:3px solid var(--paper);
	outline-offset:2px;
	border-radius:4px;
}


/* Tablet / small laptop: a mid-sized file and a stronger left-hand overlay,
   because the wording spans more of the width here. */
@media (min-width:600px){
	.fl-hero::before{
		background-image:url("assets/img/hero-mid.jpg");
		background-image:image-set(
			url("assets/img/hero-mid.webp") type("image/webp"),
			url("assets/img/hero-mid.jpg") type("image/jpeg")
		);
		background-position:62% 50%;
	}
	.fl-hero::after{
		background:
			linear-gradient(180deg, rgba(13,33,48,.26) 0%, rgba(13,33,48,0) 30%, rgba(13,33,48,.42) 100%),
			linear-gradient(90deg, rgba(13,33,48,.97) 0%, rgba(13,33,48,.94) 50%, rgba(13,33,48,.70) 74%, rgba(13,33,48,.44) 100%);
	}
}

/* Desktop: the full-width file, vessel to the right, open water behind the words. */
@media (min-width:1000px){
	.fl-hero{min-height:30rem;padding:4rem 0 4.4rem}
	.fl-hero::before{
		background-image:url("assets/img/hero-wide.jpg");
		background-image:image-set(
			url("assets/img/hero-wide.webp") type("image/webp"),
			url("assets/img/hero-wide.jpg") type("image/jpeg")
		);
		background-position:65% 50%;
	}
	.fl-hero::after{
		background:
			linear-gradient(180deg, rgba(13,33,48,.24) 0%, rgba(13,33,48,0) 32%, rgba(13,33,48,.40) 100%),
			linear-gradient(90deg, rgba(13,33,48,.96) 0%, rgba(13,33,48,.92) 42%, rgba(13,33,48,.62) 66%, rgba(13,33,48,.34) 100%);
	}
}

/* Very wide screens: hold the vessel in shot rather than letting it drift off. */
@media (min-width:1600px){
	.fl-hero::before{background-position:62% 50%}
}

/* Small phones: shorter hero, wording stays comfortable, no overflow. */
/* ---------- Mobile hero (767px and below) ----------
   Tighter spacing, slightly smaller type and a lighter overlay towards the
   lower right, so more of the vessel shows without any word dropping below
   WCAG AA. Desktop and tablet (768px and up) are untouched. */
@media (max-width:767px){
	.fl-hero{
		min-height:0;                 /* height comes from the content, not a fixed box */
		padding:1.6rem 0 2.6rem;      /* trimmed again from 1.9rem / 3.1rem */
	}
	/* Swap to the short introduction. */
	.fl-hero p.fl-hero__lead--full{display:none}
	.fl-hero p.fl-hero__lead--short{display:block}
	.fl-hero h1{
		font-size:1.55rem;            /* was 1.75rem */
		line-height:1.18;
		max-width:none;
		overflow-wrap:break-word;
		margin:0 0 .4rem;
	}
	.fl-hero .fl-hero__kicker{
		font-size:.7rem;
		letter-spacing:.14em;
		margin:0 0 .35rem;
	}
	.fl-hero p.fl-hero__lead{
		font-size:.95rem;             /* headline size and controls unchanged */
		line-height:1.45;
		margin:0 0 .1rem;
	}
	.fl-search{
		flex-direction:column;
		gap:.5rem;
		max-width:none;
		margin-top:.8rem;
	}
	.fl-search input[type=search],
	.fl-search button{width:100%;flex:1 1 auto}
	.fl-search input[type=search]{padding:.75rem .9rem;text-overflow:ellipsis}
	.fl-search button{padding:.8rem 1rem}
	.fl-hero__hint{margin-top:.4rem;font-size:.82rem;line-height:1.45}

}

/* Phones: the portrait crop, positioned to show more of the vessel, with the
   overlay eased off down the right-hand side. */
@media (max-width:599px){
	.fl-hero::before{
		/* Raised so the mast, wheelhouse and net drum sit in shot rather than
		   being cropped off the top. */
		background-position:52% 30%;
	}
	.fl-hero::after{
		/* Heavy behind the headline at the top, easing off over the vessel below
		   it, then lifting again slightly so the search controls stay crisp.
		   Every value below was set by measuring the rendered result. */
		background:
			linear-gradient(180deg,
				rgba(13,33,48,.93) 0%,
				rgba(13,33,48,.88) 32%,
				rgba(13,33,48,.70) 56%,
				rgba(13,33,48,.66) 74%,
				rgba(13,33,48,.80) 90%,
				rgba(13,33,48,.86) 100%),
			linear-gradient(90deg, rgba(13,33,48,.40) 0%, rgba(13,33,48,.24) 60%, rgba(13,33,48,.10) 100%);
	}
}

/* 600-767px: still the mid-sized landscape file (as tablet uses), but nudged so
   the vessel stays in shot at these in-between widths. */
@media (min-width:600px) and (max-width:767px){
	.fl-hero::before{background-position:58% 50%}
	.fl-hero::after{
		background:
			linear-gradient(180deg, rgba(13,33,48,.20) 0%, rgba(13,33,48,0) 34%, rgba(13,33,48,.38) 100%),
			linear-gradient(90deg, rgba(13,33,48,.97) 0%, rgba(13,33,48,.95) 50%, rgba(13,33,48,.66) 74%, rgba(13,33,48,.40) 100%);
	}
}

/* ---------- Sections ---------- */
.fl-section{padding:2.6rem 0}
.fl-section--dim{background:var(--paper-dim)}
.fl-section__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.fl-section__head h2{margin:0}
.fl-section__more{font-size:.9rem;font-weight:600;white-space:nowrap}

/* ---------- Boat cards ---------- */
.fl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:1.4rem;margin:0;padding:0;list-style:none}
.fl-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column;transition:transform .15s ease,box-shadow .15s ease}
.fl-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(13,33,48,.14)}
.fl-card__media{aspect-ratio:4/3;background:var(--navy) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 75"><path d="M0 55 Q 12 50 25 55 T 50 55 T 75 55 T 100 55 V 75 H 0 Z" fill="%2316324A"/><path d="M0 58 Q 12 53 25 58 T 50 58 T 75 58 T 100 58" stroke="%23A6552F" stroke-width="1" fill="none" opacity=".6"/></svg>') center/cover no-repeat;position:relative}
.fl-card__media img{width:100%;height:100%;object-fit:cover}
.fl-card__media .fl-noimg{position:absolute;inset:auto 0 .7rem;text-align:center;color:rgba(246,241,230,.7);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.fl-card__body{padding:.95rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.fl-card__title{font-family:var(--font-display);font-size:1.15rem;margin:0;line-height:1.25}
.fl-card__title a{color:var(--navy);text-decoration:none}
.fl-card__title a:hover{color:var(--copper)}
.fl-card__meta{font-size:.85rem;color:var(--muted);margin:0}
.fl-card__regs{margin-top:.25rem}

/* ---------- Filter bar (Explore Boats) ---------- */
.fl-filters{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.1rem;margin-bottom:1.8rem}
.fl-filters__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem;align-items:end}
.fl-filters label{display:block;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.25rem}
.fl-filters input,.fl-filters select{width:100%;padding:.55rem .6rem;border:1px solid var(--line);border-radius:4px;font:inherit;background:var(--paper)}
.fl-filters .fl-btn{padding:.6rem 1.1rem}
.fl-filters__clear{font-size:.85rem;margin-left:.6rem;white-space:nowrap}

/* ---------- Single boat ---------- */
.fl-boat-head{background:var(--navy);color:var(--paper);padding:2.4rem 0 2rem}
.fl-boat-head h1{color:var(--paper);margin-bottom:.4rem}
.fl-boat-head .fl-boat-head__meta{color:#b9c6cf;font-size:.95rem}
.fl-boat-head .fl-reg{font-size:.95rem}
.fl-boat-head__actions{margin-top:1rem;display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.fl-fav{background:transparent;border:2px solid var(--copper-a11y);color:var(--copper-a11y);border-radius:4px;padding:.4rem .9rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;gap:.4rem;align-items:center}
.fl-fav.is-on,.fl-fav:hover{background:var(--copper);border-color:var(--copper);color:#fff}
.fl-share{color:#b9c6cf;font-size:.9rem}
.fl-boat-layout{display:grid;grid-template-columns:2fr 1fr;gap:2.4rem;padding:2.4rem 0}
@media(max-width:820px){.fl-boat-layout{grid-template-columns:1fr}}
.fl-facts{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.2rem 1.3rem;font-size:.95rem}
.fl-facts h2{font-size:1.05rem;margin-bottom:.8rem}
.fl-facts dl{margin:0}
.fl-facts dt{font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:.8rem}
.fl-facts dt:first-child{margin-top:0}
.fl-facts dd{margin:0 0 .2rem}
.fl-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;margin:1.2rem 0 0;padding:0;list-style:none}
.fl-gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.fl-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}
.fl-gallery figcaption{padding:.6rem .75rem .8rem;font-size:.82rem;color:var(--muted)}
.fl-gallery figcaption strong{display:block;color:var(--ink);font-size:.9rem;margin-bottom:.15rem}
.fl-timeline{list-style:none;margin:1rem 0 0;padding:0;border-left:3px solid var(--copper)}
.fl-timeline li{position:relative;padding:.15rem 0 1rem 1.3rem}
.fl-timeline li::before{content:"";position:absolute;left:-8px;top:.5rem;width:13px;height:13px;border-radius:50%;background:var(--paper);border:3px solid var(--copper)}
.fl-timeline .fl-timeline__year{font-family:var(--font-display);font-weight:700;color:var(--navy)}
.fl-timeline .fl-timeline__event{font-weight:600}
.fl-memory{background:#fff;border:1px solid var(--line);border-left:4px solid var(--copper);border-radius:0 6px 6px 0;padding:1rem 1.2rem;margin:0 0 1rem}
.fl-memory__by{font-size:.82rem;color:var(--muted);margin-top:.4rem}

/* ---------- Term chip lists (harbours / decades) ---------- */
.fl-terms{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.7rem}
.fl-terms a{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:4px;padding:.55rem .95rem;text-decoration:none;color:var(--navy);font-weight:600}
.fl-terms a:hover{border-color:var(--copper);color:var(--copper)}
.fl-terms .fl-terms__count{color:var(--muted);font-weight:400;font-size:.85rem}

/* ---------- Stories ---------- */
.fl-story-card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:1.4rem;display:grid;grid-template-columns:1fr;text-decoration:none}
@media(min-width:640px){.fl-story-card.has-thumb{grid-template-columns:16rem 1fr}}
.fl-story-card img{width:100%;height:100%;object-fit:cover}
.fl-story-card__body{padding:1.2rem 1.4rem}
.fl-story-card__body h3{margin-bottom:.4rem}
.fl-story-card__body p{color:var(--muted);font-size:.95rem;margin:0}

/* ---------- Content / entry ---------- */
.fl-entry{max-width:46rem}
.fl-entry .wp-block-image img,.fl-entry img{border-radius:4px}
.fl-page-head{padding:2.2rem 0 0}
.fl-page-head p.fl-page-head__intro{color:var(--muted);max-width:52ch}

/* ---------- Pagination ---------- */
.fl-pagination{margin:2.2rem 0;display:flex;gap:.4rem;flex-wrap:wrap}
.fl-pagination .page-numbers{padding:.5rem .9rem;background:#fff;border:1px solid var(--line);border-radius:4px;text-decoration:none;color:var(--navy)}
.fl-pagination .page-numbers.current{background:var(--navy);color:var(--paper);border-color:var(--navy)}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-deep);color:#b9c6cf;margin-top:3rem;border-top:4px solid var(--copper)}
.site-footer__inner{max-width:var(--maxw);margin:0 auto;padding:2.4rem 1.1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1.8rem;font-size:.9rem}
.site-footer h3{color:var(--paper);font-size:.95rem;margin-bottom:.6rem}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer li{margin:0 0 .45rem}
.site-footer a{color:#b9c6cf}
.site-footer a:hover{color:var(--copper-a11y)}
.site-footer__base{border-top:1px solid rgba(246,241,230,.12);text-align:center;padding:1rem;font-size:.8rem;color:#7d8f9c}
.site-footer__base p{margin:0}
/* Understated build credit, matched to the footer's base bar. */
.site-footer__credit{margin-top:.4rem;font-size:.75rem;color:#7d8f9c}
.site-footer__credit a{color:#93a5b1;text-decoration:underline;text-underline-offset:2px}
.site-footer__credit a:hover,.site-footer__credit a:focus{color:var(--copper-a11y)}

/* Theme overrides of plugin form styles for cohesion */
.fl-panel{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.5rem;margin-bottom:1.8rem}
.fl-panel h2{margin-top:0}
.fl-btn{background:var(--navy)}
.fl-btn:hover{background:var(--copper)}
.fl-btn--ghost{background:transparent;color:var(--navy);border-color:var(--navy)}
.fl-btn--ghost:hover{background:var(--navy);color:var(--paper)}

/* v1.2.0: From the Archive sits inside a standard section wrapper. */
.fl-section .fl-featured { margin: 0; }
/* v1.2.1: tighter foot under the From the Archive CTA. */
.fl-section--archive { padding-bottom: 1.1rem; }
.fl-section--archive .fl-featured__cta { margin-bottom: 0; }
@media (max-width: 700px) {
	.fl-section--archive { padding-bottom: 0.9rem; }
}
/* Homepage only: the archive section is the last block, so the footer's
   global 3rem clearance would double up — trimmed here, untouched elsewhere. */
.home .site-footer { margin-top: 1.25rem; }

