/*
Theme Name:   The Botanical Pour (GeneratePress child)
Theme URI:    https://thebotanicalpour.co.uk/
Description:  Child theme for The Botanical Pour. Brand tokens, self-hosted fonts (no Google Fonts calls), WP Recipe Maker card styling, AI-image captions, post hooks (breadcrumbs, byline, disclosure line, author box), footer, and a 503 coming-soon gate.
Author:       The Botanical Pour
Template:     generatepress
Version:      1.0.4
Requires at least: 6.4
Requires PHP: 8.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  botanical-pour-child
*/

/* =====================================================================
   1. Brand tokens + base styles (merged from design/brand.css, incl. .ai-caption)
   Font URLs are relative to this file: fonts/*.woff2
   ===================================================================== */
/* The Botanical Pour — brand tokens + base styles (v1 draft, 31 Oct 2026)
   Self-hosted fonts: upload /fonts/*.woff2 to the theme and keep paths relative. */
@font-face{font-family:"Cormorant Garamond";src:url("fonts/cormorant-garamond-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/cormorant-garamond-500-italic.woff2") format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  /* Core palette */
  --tbp-sage:#8A9A7B;          /* decorative: leaves, rules, illustration, large shapes. NOT for text on ivory (2.81:1) */
  --tbp-ivory:#FAF7F0;         /* page background */
  --tbp-lavender:#B7AACB;      /* muted lavender: accents, tags, callout fills (ink text on it 6.33:1) */
  --tbp-ink:#2A2E28;           /* body text, headings (12.91:1 on ivory) */
  /* Supporting */
  --tbp-deep-sage:#4A5D43;     /* links, buttons, footer bg (6.68:1 with ivory) */
  --tbp-deep-lavender:#5E5179; /* focus ring, hover, secondary links (6.70:1 on ivory) */
  --tbp-linen:#ECE6DA;         /* cards, recipe box, alt sections (ink 11.12:1) */
  --tbp-white:#FFFFFF;
  --tbp-caption-sage:#5A6A50;  /* muted sage for small captions: 5.43:1 ivory, 4.68:1 linen, 5.81:1 white (AA small text) */

  /* Semantic */
  --color-bg:var(--tbp-ivory);
  --color-surface:var(--tbp-linen);
  --color-text:var(--tbp-ink);
  --color-heading:var(--tbp-ink);
  --color-link:var(--tbp-deep-sage);
  --color-link-hover:var(--tbp-deep-lavender);
  --color-accent:var(--tbp-lavender);
  --color-decor:var(--tbp-sage);
  --color-button-bg:var(--tbp-deep-sage);
  --color-button-text:var(--tbp-ivory);
  --color-focus:var(--tbp-deep-lavender);
  --color-caption:var(--tbp-caption-sage);
  --fs-caption:0.75rem;                                    /* 12px */
  --color-border:#CFC7B8;      /* decorative hairlines only */

  /* Type */
  --font-heading:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --fw-regular:400; --fw-semibold:600;
  --fs-small:0.9375rem;                                   /* 15px */
  --fs-body:1.125rem;                                      /* 18px */
  --fs-lead:1.25rem;                                       /* 20px */
  --fs-h4:1.25rem;                                         /* 20px, Source Sans 600 */
  --fs-h3:clamp(1.5rem,1.35rem + 0.6vw,1.75rem);           /* 24–28px */
  --fs-h2:clamp(1.875rem,1.6rem + 1.2vw,2.375rem);         /* 30–38px */
  --fs-h1:clamp(2.375rem,1.9rem + 2.2vw,3.5rem);           /* 38–56px */
  --fs-display:clamp(2.75rem,2rem + 3.4vw,4.5rem);         /* 44–72px, hero only */
  --lh-body:1.7; --lh-heading:1.15;
  --measure:68ch;

  /* Space, shape */
  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;
  --radius-sm:6px;--radius:12px;--radius-lg:20px;
  --shadow:0 1px 2px rgba(42,46,40,.06),0 6px 20px rgba(42,46,40,.06);
  --container:1180px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular)}
h1,h2,h3{font-family:var(--font-heading);font-weight:var(--fw-semibold);line-height:var(--lh-heading);color:var(--color-heading);margin:0 0 var(--space-4);letter-spacing:-.005em}
h1{font-size:var(--fs-h1)} h2{font-size:var(--fs-h2)} h3{font-size:var(--fs-h3)}
h4{font-family:var(--font-body);font-size:var(--fs-h4);font-weight:var(--fw-semibold);line-height:1.3;margin:0 0 var(--space-3)}
p{margin:0 0 var(--space-4);max-width:var(--measure)}
a{color:var(--color-link);text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--color-link-hover);text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;border-radius:2px}
img{max-width:100%;height:auto;display:block}
.eyebrow{font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tbp-deep-sage)}
.btn{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.65em 1.3em;border-radius:999px;background:var(--color-button-bg);color:var(--color-button-text);font-weight:600;font-size:1rem;text-decoration:none;border:2px solid var(--color-button-bg)}
.btn:hover{background:var(--tbp-deep-lavender);border-color:var(--tbp-deep-lavender);color:var(--tbp-ivory)}
.btn--ghost{background:transparent;color:var(--tbp-deep-sage)}
.tag{display:inline-block;background:var(--tbp-lavender);color:var(--tbp-ink);font-size:.8125rem;font-weight:600;padding:.2em .7em;border-radius:999px;text-decoration:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* AI image disclosure: soft caption BELOW every AI image (never overlaid). Full opacity; #5A6A50 = 5.43:1 on ivory. */
.ai-caption{display:block;margin:.4rem 0 0;font-family:var(--font-body);font-size:var(--fs-caption);line-height:1.4;font-weight:400;letter-spacing:.02em;color:var(--color-caption);opacity:1}
figure{margin:0}


/* =====================================================================
   2. Recipe card (merged from design/recipe-card.css, WP Recipe Maker free)
   ===================================================================== */
/* The Botanical Pour — WP Recipe Maker card styling (free plugin + Template Editor custom CSS).
   Uses brand.css custom properties. Class names mirror WPRM's wprm-* classes where they exist. */
.tbp-recipe{--rc-bg:var(--tbp-white);--rc-border:var(--tbp-sage);--rc-accent:var(--tbp-deep-sage);--rc-soft:var(--tbp-linen);
  background:var(--rc-bg);border:2px solid var(--rc-border);border-radius:var(--radius-lg);padding:var(--space-5);margin:var(--space-7) 0;color:var(--tbp-ink);scroll-margin-top:1rem}
@media(min-width:768px){.tbp-recipe{padding:var(--space-6)}}
.tbp-recipe__head{display:grid;gap:var(--space-5);grid-template-columns:1fr}
@media(min-width:720px){.tbp-recipe__head{grid-template-columns:240px 1fr;align-items:start}}
.tbp-recipe__media{max-width:320px}
.tbp-recipe .eyebrow{margin:0 0 var(--space-2)}
.tbp-recipe .wprm-recipe-name{font-size:var(--fs-h2);margin:0 0 var(--space-3)}
.tbp-recipe .wprm-recipe-summary{margin:0 0 var(--space-4)}
.tbp-recipe__times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0 0 var(--space-4);padding:0}
.tbp-recipe__times div{background:var(--rc-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}
.tbp-recipe__times dt{font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tbp-deep-sage)}
.tbp-recipe__times dd{margin:0;font-weight:600;font-size:1.0625rem}
.tbp-recipe__buttons{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.tbp-recipe__buttons .btn{min-height:44px;font-size:.9375rem}
.tbp-recipe__body{display:grid;gap:var(--space-6);grid-template-columns:1fr;margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-5)}
@media(min-width:900px){.tbp-recipe__body{grid-template-columns:5fr 7fr}}
.tbp-recipe h3{font-size:var(--fs-h3);margin:0 0 var(--space-3)}
.tbp-recipe h4{margin-top:var(--space-4)}
.wprm-recipe-ingredients{list-style:none;margin:0;padding:0}
.wprm-recipe-ingredient{padding:.55em 0 .55em 1.6em;border-bottom:1px dotted var(--color-border);position:relative}
.wprm-recipe-ingredient::before{content:"";position:absolute;left:.2em;top:1.05em;width:.6em;height:.6em;border-radius:50%;background:var(--tbp-sage)}
.wprm-recipe-ingredient-amount,.wprm-recipe-ingredient-unit{font-weight:600}
.wprm-recipe-ingredient-notes{color:var(--tbp-ink);font-style:italic}
.wprm-recipe-instructions{margin:0;padding:0;list-style:none;counter-reset:step}
.wprm-recipe-instruction{counter-increment:step;position:relative;padding:0 0 var(--space-4) 3rem;min-height:2.4rem}
.wprm-recipe-instruction::before{content:counter(step);position:absolute;left:0;top:0;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--tbp-deep-sage);color:var(--tbp-ivory);display:grid;place-items:center;font-weight:600;font-size:1rem}
.wprm-recipe-equipment{margin:0;padding-left:1.2em}
.wprm-recipe-equipment li{padding:.25em 0}
.tbp-shop{background:var(--rc-soft);border-radius:var(--radius);padding:var(--space-4);margin-top:var(--space-5)}
.tbp-shop h4{margin:0 0 var(--space-2)}
.tbp-shop ul{list-style:none;padding:0;margin:0 0 var(--space-2)}
.tbp-shop li a{display:flex;align-items:center;min-height:44px;font-weight:600}
.tbp-shop li a::after{content:"↗";margin-left:.4em;font-size:.85em;text-decoration:none}
.tbp-disclosure-sm{font-size:.8125rem;line-height:1.45;margin:0;max-width:none}
.tbp-recipe__notes{background:#F1EEF6;border-left:4px solid var(--tbp-lavender);border-radius:var(--radius-sm);padding:var(--space-4);margin-top:var(--space-5)}
.tbp-recipe__notes ul{margin:0;padding-left:1.2em}
.tbp-recipe__nutrition{font-size:var(--fs-small);margin-top:var(--space-4)}
.tbp-recipe__footer{margin-top:var(--space-5);font-size:var(--fs-small);border-top:1px solid var(--color-border);padding-top:var(--space-4)}
.tbp-recipe__footer p{max-width:none;margin:0 0 .4rem}
@media print{
  @page{margin:15mm}
  body{background:#fff!important;color:#000!important;font-size:11pt}
  .site-header,.site-footer,.mock-note,.no-print,.tbp-recipe__buttons,.tbp-shop li a::after,nav,.related,.author-box,.faq{display:none!important}
  .tbp-recipe{border:1px solid #999;border-radius:0;padding:0;margin:0;box-shadow:none}
  .tbp-recipe__media{max-width:45mm}
  .tbp-recipe__times div,.tbp-shop,.tbp-recipe__notes{background:none;border:1px solid #bbb}
  .wprm-recipe-instruction::before{background:none;color:#000;border:1px solid #000}
  a{color:#000;text-decoration:none}
  .tbp-recipe__body{grid-template-columns:1fr 1.4fr}
  .wprm-recipe-ingredient,.wprm-recipe-instruction{break-inside:avoid}
}
/* v2: "Shop the equipment" as an ordinary block above the card (not inside it: WPRM free has no in-card affiliate links) */
.tbp-shop--standalone{background:var(--tbp-linen);border-radius:var(--radius);padding:var(--space-4) var(--space-5);margin:var(--space-6) 0 0}
.tbp-shop--standalone .tbp-shop__title{font-family:var(--font-body);font-size:var(--fs-h4);font-weight:600;line-height:1.3;margin:0 0 var(--space-2)}
.tbp-recipe__media .ai-figure img{border-radius:var(--radius)}

/* =====================================================================
   3. GeneratePress integration (header, nav, posts, archives, footer)
   Layout pieces adapted from design/mockups/site.css for GP's markup.
   ===================================================================== */
body{background:var(--color-bg)}
.site-header{background:var(--tbp-ivory);border-bottom:1px solid var(--color-border)}
.inside-header{min-height:72px;padding-top:var(--space-3);padding-bottom:var(--space-3)}
.site-logo img,.header-image{width:230px;height:auto}
@media(min-width:1024px){.site-logo img,.header-image{width:270px}}
.main-navigation,.main-navigation ul ul{background:transparent}
.main-navigation .main-nav ul li a{color:var(--tbp-ink);font-family:var(--font-body);font-weight:600;font-size:1rem;line-height:44px;padding-left:.75rem;padding-right:.75rem}
.main-navigation .main-nav ul li a:hover,.main-navigation .main-nav ul li.current-menu-item>a,.main-navigation .main-nav ul li.current-menu-ancestor>a{color:var(--tbp-deep-sage);text-decoration:underline;text-underline-offset:.25em}
.main-navigation ul ul{background:var(--tbp-ivory);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.main-navigation .menu-toggle,.main-navigation .search-item a,.menu-bar-item>a{min-height:44px;min-width:44px;color:var(--tbp-ink)}
.navigation-search input[type=search]{background:var(--tbp-ivory);color:var(--tbp-ink);border:1px solid var(--color-border)}
@media(max-width:768px){.main-navigation.toggled .main-nav ul li a{line-height:48px;border-top:1px solid var(--color-border)}}

/* Content column: ~720px reading measure on posts and pages (GP: no sidebar) */
.single .site-main,.page:not(.home) .site-main{max-width:780px;margin-left:auto;margin-right:auto}
.separate-containers .inside-article,.one-container .site-content{background:transparent}
.entry-title{font-size:var(--fs-h1);margin-bottom:var(--space-3)}
.entry-content h2{margin-top:var(--space-7)}
.entry-content h3{margin-top:var(--space-5)}
.entry-content>*{max-width:none}
.entry-content p{max-width:var(--measure)}

/* Breadcrumbs (Rank Math) */
.tbp-breadcrumbs,.rank-math-breadcrumb{font-size:var(--fs-small);margin:0 0 var(--space-3)}
.rank-math-breadcrumb p{margin:0;max-width:none}
.rank-math-breadcrumb a{display:inline-block;padding:.6em 0}
.rank-math-breadcrumb .separator{margin:0 .4em}

/* Byline + disclosure line (child-theme hooks) */
.tbp-byline{display:flex;flex-wrap:wrap;gap:.3em 1em;font-size:var(--fs-small);margin:0 0 var(--space-3);max-width:none}
.tbp-disc-line{font-size:var(--fs-small);background:var(--tbp-linen);border-radius:var(--radius-sm);padding:.5em .8em;max-width:none;margin:0 0 var(--space-4)}
.tbp-disc-line a{font-weight:600}

/* Buttons: core Button block + WPRM jump link use the brand pill */
.wp-block-button__link,.wp-element-button,.wprm-recipe-jump,.wprm-recipe-link,button.wprm-recipe-print,
.entry-content .wp-block-search__button{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.65em 1.3em;border-radius:999px;background:var(--color-button-bg);color:var(--color-button-text)!important;font-family:var(--font-body);font-weight:600;font-size:1rem;text-decoration:none;border:2px solid var(--color-button-bg)}
.wp-block-button__link:hover,.wprm-recipe-jump:hover,.wprm-recipe-link:hover{background:var(--tbp-deep-lavender);border-color:var(--tbp-deep-lavender);color:var(--tbp-ivory)!important}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--tbp-deep-sage)!important;border-color:var(--tbp-deep-sage)}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--tbp-deep-lavender);color:var(--tbp-ivory)!important;border-color:var(--tbp-deep-lavender)}
/* GeneratePress prints "a.wp-block-button__link:not(.has-background){background:#55555e;color:#fff}" (+ #3f4047 on
   :hover/:focus/:active) inline in the page head, specificity 0,2,1 — it beat the rules above, so every core button
   rendered grey. "body a.…" (0,2,2 / 0,3,2) outranks it without !important on the background. */
body a.wp-block-button__link:not(.has-background){background-color:var(--color-button-bg);border-color:var(--color-button-bg);color:var(--color-button-text)!important}
body a.wp-block-button__link:not(.has-background):hover,body a.wp-block-button__link:not(.has-background):focus,body a.wp-block-button__link:not(.has-background):active{background-color:var(--tbp-deep-lavender);border-color:var(--tbp-deep-lavender);color:var(--tbp-ivory)!important}
body .wp-block-button.is-style-outline a.wp-block-button__link:not(.has-background){background-color:transparent;border-color:var(--tbp-deep-sage);color:var(--tbp-deep-sage)!important}
body .wp-block-button.is-style-outline a.wp-block-button__link:not(.has-background):hover,body .wp-block-button.is-style-outline a.wp-block-button__link:not(.has-background):focus{background-color:var(--tbp-deep-lavender);border-color:var(--tbp-deep-lavender);color:var(--tbp-ivory)!important}
body a.wp-block-button__link:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
/* WPForms (contact form) submit: brand pill instead of WPForms blue */
.wpforms-container{--wpforms-button-background-color:#4A5D43;--wpforms-button-border-color:#4A5D43;--wpforms-button-text-color:#FAF7F0;--wpforms-button-border-radius:999px}
body .wpforms-container button.wpforms-submit:hover,body .wpforms-container button.wpforms-submit:focus{background:var(--tbp-deep-lavender)!important;border-color:var(--tbp-deep-lavender)!important;color:var(--tbp-ivory)!important}
body .wpforms-container button.wpforms-submit:focus-visible{outline:3px solid var(--color-focus)!important;outline-offset:3px}

/* AI image caption, everywhere. Core Image blocks can't carry a class on <figcaption>,
   so the class goes on the figure (.ai-image) and every content figcaption gets the .ai-caption rules. */
.entry-content figure figcaption,.wp-block-image.ai-image figcaption,.wp-block-image .wp-element-caption,
.wp-block-post-featured-image+.ai-caption,p.ai-caption{display:block;margin:.4rem 0 0;font-family:var(--font-body);font-size:var(--fs-caption);line-height:1.4;font-weight:400;letter-spacing:.02em;color:var(--color-caption);opacity:1;text-align:left;font-style:normal}
.entry-content .wp-block-image{margin:var(--space-5) 0}
.entry-content .wp-block-image img{border-radius:var(--radius);background:var(--tbp-linen)}
/* Real (non-AI) photos: add class "real-photo" to the Image block and write your own caption */

/* Editorial placeholders: impossible to miss while drafting */
.tbp-placeholder{background:#FFF3C4;border:2px dashed #8A6D00;color:#3D3000;padding:.75em 1em;border-radius:var(--radius-sm);font-weight:600;max-width:none!important}

/* Notes / safety callouts */
.tbp-note{background:#F1EEF6;border-left:4px solid var(--tbp-lavender);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);margin:var(--space-5) 0}
.tbp-note p:last-child{margin-bottom:0}

/* Shop the equipment box (ordinary group block above the WPRM card) */
.entry-content .tbp-shop{background:var(--tbp-linen);border-radius:var(--radius);padding:var(--space-4) var(--space-5);margin:var(--space-6) 0 0}
.entry-content .tbp-shop h3{font-family:var(--font-body);font-size:var(--fs-h4);font-weight:600;margin:0 0 var(--space-2)}
.entry-content .tbp-shop ul{list-style:none;margin:0 0 var(--space-2);padding:0}
.entry-content .tbp-shop li a{display:flex;align-items:center;min-height:44px;font-weight:600}

/* Author box */
.tbp-author-box{display:flex;gap:var(--space-4);align-items:center;background:var(--tbp-linen);border-radius:var(--radius);padding:var(--space-5);margin:var(--space-7) 0}
.tbp-author-box img{width:96px;height:96px;border-radius:50%;object-fit:cover;flex:none}
.tbp-author-box p{margin:0 0 .4rem}
.tbp-author-box__name{font-family:var(--font-heading);font-size:1.5rem;font-weight:600}

/* Home + hubs: bands, containers, cards (core Group / Columns / Query Loop) */
.tbp-band{padding:var(--space-7) var(--space-4);margin:0}
.tbp-band--linen{background:var(--tbp-linen)}
.tbp-band--sage{background:var(--tbp-deep-sage);color:var(--tbp-ivory)}
.tbp-band--sage h2,.tbp-band--sage p,.tbp-band--sage a:not(.wp-block-button__link),.tbp-band--sage .tbp-eyebrow{color:var(--tbp-ivory)}
/* On deep sage: solid ivory pill, deep-sage text (6.68:1); hover/focus muted lavender with ink text (6.4:1); ivory focus ring */
body .tbp-band--sage a.wp-block-button__link:not(.has-background){background-color:var(--tbp-ivory);border-color:var(--tbp-ivory);color:var(--tbp-deep-sage)!important}
body .tbp-band--sage a.wp-block-button__link:not(.has-background):hover,body .tbp-band--sage a.wp-block-button__link:not(.has-background):focus,body .tbp-band--sage a.wp-block-button__link:not(.has-background):active{background-color:var(--tbp-lavender);border-color:var(--tbp-lavender);color:var(--tbp-ink)!important}
body .tbp-band--sage a.wp-block-button__link:focus-visible,.tbp-band--sage :focus-visible{outline:3px solid var(--tbp-ivory);outline-offset:3px}
.tbp-container{max-width:var(--container);margin-left:auto;margin-right:auto}
.tbp-eyebrow{font-family:var(--font-body);font-size:.8125rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--tbp-deep-sage);margin:0 0 .625rem}
/* Eyebrow sits ~10px above its heading: cancel ".entry-content h2{margin-top:3rem}", GP heading margins and any block-gap */
.tbp-eyebrow+:is(h1,h2,h3,h4,h5,h6),.entry-content .tbp-eyebrow+:is(h1,h2,h3,h4,h5,h6),
.entry-content :is(.is-layout-flow,.is-layout-constrained)>.tbp-eyebrow+:is(h1,h2,h3,h4,h5,h6){margin-top:0!important;margin-block-start:0!important}
.entry-content .tbp-eyebrow{margin-top:0;margin-bottom:.625rem}
.tbp-display{font-size:var(--fs-display)!important;line-height:1.05}
.tbp-lead{font-size:var(--fs-lead)}
.tbp-tiles{gap:var(--space-4)!important}
.tbp-tile{background:var(--tbp-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-5) var(--space-4)}
.tbp-tile h3{font-size:1.375rem;margin:0 0 .3rem}
.tbp-tile h3 a{color:var(--tbp-ink);text-decoration:none}
.tbp-tile h3 a:hover{text-decoration:underline;color:var(--tbp-deep-sage)}
.tbp-tile p{font-size:var(--fs-small);margin:0}
.tbp-cards .wp-block-post-template{gap:var(--space-5)}
.tbp-cards .wp-block-post{background:var(--tbp-white);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;padding-bottom:var(--space-4)}
.tbp-cards .wp-block-post>*:not(.wp-block-post-featured-image){margin-left:var(--space-4);margin-right:var(--space-4)}
.tbp-cards .wp-block-post-featured-image{margin:0}
.tbp-cards .wp-block-post-featured-image img{aspect-ratio:4/3;object-fit:cover;width:100%}
.tbp-cards .wp-block-post-title{font-size:1.5rem;margin:.3rem var(--space-4) .4rem}
.tbp-cards .wp-block-post-title a{color:var(--tbp-ink);text-decoration:none}
.tbp-cards .wp-block-post-title a:hover{text-decoration:underline;color:var(--tbp-deep-sage)}
.tbp-cards .wp-block-post-terms a{display:inline-block;background:var(--tbp-lavender);color:var(--tbp-ink);font-size:.8125rem;font-weight:600;padding:.2em .7em;border-radius:999px;text-decoration:none;margin-top:var(--space-3)}
.home .entry-content>.alignfull{margin-left:0;margin-right:0;width:100%;max-width:none}
.home .inside-article{padding:0}

/* Category / tag archives: H1 + intro, then a 3-column grid (GP free has no columns option) */
.archive .page-header{margin-bottom:var(--space-6)}
.archive .taxonomy-description p{max-width:var(--measure)}
@media(min-width:768px){
  .archive .site-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5)}
  .archive .site-main>.page-header,.archive .site-main>.paging-navigation,.archive .site-main>nav{grid-column:1/-1}
  .archive .site-main>article{margin:0}
}
@media(min-width:1024px){.archive .site-main{grid-template-columns:repeat(3,minmax(0,1fr))}}
.archive .inside-article{background:var(--tbp-white);border:1px solid var(--color-border);border-radius:var(--radius);height:100%}
.archive .post-image img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-sm)}
.archive .entry-title{font-size:1.5rem}

/* Footer (rendered by the child theme into GP's footer) */
.site-footer{background:var(--tbp-deep-sage);color:var(--tbp-ivory);font-size:var(--fs-small)}
.site-footer a{color:var(--tbp-ivory)}
.tbp-footer{max-width:var(--container);margin:0 auto;padding:var(--space-7) var(--space-4) var(--space-5)}
.tbp-footer__grid{display:grid;gap:var(--space-6);grid-template-columns:1fr}
@media(min-width:768px){.tbp-footer__grid{grid-template-columns:1.4fr 1fr 1fr}}
.tbp-footer img{width:260px;height:auto}
.tbp-footer ul{list-style:none;padding:0;margin:0}
.tbp-footer li a{display:inline-block;padding:.55em 0}
.tbp-footer h2{font-family:var(--font-body);font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tbp-ivory);margin-bottom:var(--space-3)}
.tbp-footer p{max-width:60ch}
.site-info{background:var(--tbp-deep-sage);color:var(--tbp-ivory);border-top:1px solid rgba(250,247,240,.35)}
.site-info a{color:var(--tbp-ivory)}

/* WPRM free card: wrapper class .tbp-recipe is set on the template container in the WPRM Template Editor.
   The recipe-card rules above (section 2) style it. Make sure the jump target clears the header. */
.wprm-recipe-container{scroll-margin-top:1rem}

/* Comments + forms */
input[type=text],input[type=email],input[type=url],input[type=search],textarea{border:1px solid #8C8577;border-radius:var(--radius-sm);background:var(--tbp-white);color:var(--tbp-ink);font-size:1rem;padding:.6em .8em}
input:focus-visible,textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}

/* Tighter seasonal/sage bands (Nov 2026 feedback) */
body .tbp-band{padding:var(--space-6) var(--space-4)}
body .tbp-band > .tbp-container,body .tbp-band .wp-block-columns{margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}
body .tbp-band .wp-block-column > :first-child{margin-top:0}
body .tbp-band .wp-block-column > :last-child{margin-bottom:0}
@media (min-width:782px){body .tbp-band .wp-block-columns{align-items:center}}

/* Text pages (About, How We Test, Privacy, Contact etc.): centred readable column, matching posts */
body.page:not(.home) .site-content{display:block}
body.page:not(.home) .content-area{width:100%!important;float:none!important;max-width:none}
body.page:not(.home) .site-main{max-width:780px;margin:0 auto!important;padding:0 var(--space-4)}
body.page:not(.home) .inside-article{padding:var(--space-7) 0}
body.page:not(.home) .entry-content h2{margin-top:var(--space-6);margin-bottom:var(--space-3)}
