/*
Theme Name:        Nothing to Farm Child
Theme URI:         https://nothingtofarm.uk
Description:       A warm, rural child theme for Nothing to Farm. Built on Twenty Twenty-Five.
Author:            Nothing to Farm
Author URI:        https://nothingtofarm.uk
Template:          twentytwentyfive
Version:           1.2.0
License:           GNU General Public License v2 or later
License URI:       http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       nothing-to-farm-child
*/

/* ============================================================
   DESIGN TOKENS
   System font stack — crisp, fast, no external dependency.
   ============================================================ */
:root {
    --n2f-cream:          #F7F3EC;
    --n2f-parchment:      #EDE7D9;
    --n2f-soil:           #3B2A1A;
    --n2f-bark:           #5C3D20;
    --n2f-olive:          #6B7C4A;
    --n2f-olive-light:    #8A9E62;
    --n2f-terracotta:     #C17A4A;
    --n2f-terracotta-dk:  #9E5E30;
    --n2f-straw:          #D4B483;
    --n2f-mist:           #A8B4A0;
    --n2f-white:          #FFFFFF;

    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
    --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

    --radius-sm:   4px;
    --radius-md:   8px;
    --shadow-card: 0 2px 16px rgba(59, 42, 26, 0.10);
    --shadow-lift: 0 8px 28px rgba(59, 42, 26, 0.16);
    --shadow-soft: 0 1px 8px rgba(59, 42, 26, 0.07);
}

/* ============================================================
   BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    background-color: var(--n2f-cream) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.022'/%3E%3C/svg%3E") !important;
    color: var(--n2f-soil) !important;
    font-family: var(--font-sans) !important;
    font-size: 17px !important;
    line-height: 1.7 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.wp-block-post-title,
.entry-title {
    font-family: var(--font-sans) !important;
    color: var(--n2f-soil) !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em;
}

h1, .entry-title,
.wp-block-post-title { font-size: clamp(1.9rem, 4.5vw, 2.8rem) !important; }
h2                   { font-size: clamp(1.3rem, 2.8vw, 1.7rem) !important; font-weight: 600 !important; }
h3                   { font-size: 1.15rem !important; font-weight: 600 !important; }
h4                   { font-size: 1rem !important;    font-weight: 600 !important; }

p, li, td, th {
    font-family: var(--font-sans) !important;
    color: var(--n2f-soil) !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
}

a {
    color: var(--n2f-terracotta) !important;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.15s ease;
}
a:hover          { color: var(--n2f-terracotta-dk) !important; }
strong, b        { color: var(--n2f-bark) !important; font-weight: 600; }
em, i            { color: var(--n2f-bark); }
small            { font-size: 0.82rem; color: var(--n2f-mist); }
code, pre        {
    font-family: var(--font-mono) !important;
    font-size: 0.88em;
    background: var(--n2f-parchment);
    border-radius: var(--radius-sm);
    padding: 0.15em 0.4em;
}

/* ============================================================
   HEADER — logo top-left, nav top-right, dark background
   ============================================================ */
.wp-block-template-part[data-slug="header"],
header.wp-block-template-part,
#masthead,
.site-header {
    background-color: var(--n2f-soil) !important;
    border-bottom: 3px solid var(--n2f-terracotta) !important;
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

header .wp-block-group,
.header-inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0.75rem 1.5rem !important;
    gap: 1rem;
}

.wp-block-site-logo { flex-shrink: 0; }

.wp-block-site-logo img,
.custom-logo {
    border-radius: 50% !important;
    border: 2px solid var(--n2f-terracotta) !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.22) !important;
    width: 52px !important;
    height: 52px !important;
    object-fit: cover;
}

.wp-block-site-title,
.wp-block-site-title a,
.site-title,
.site-title a {
    font-family: var(--font-sans) !important;
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: var(--n2f-cream) !important;
    text-decoration: none !important;
    letter-spacing: -0.01em;
    white-space: nowrap;
}
.wp-block-site-title a:hover { color: var(--n2f-straw) !important; }

.wp-block-navigation,
nav.wp-block-navigation {
    background: transparent !important;
    margin-left: auto;
}

.wp-block-navigation a,
.wp-block-navigation__container a {
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    color: var(--n2f-parchment) !important;
    text-decoration: none !important;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 0.4rem 0.65rem !important;
    border-radius: var(--radius-sm);
    transition: color 0.15s ease, background 0.15s ease;
}
.wp-block-navigation a:hover,
.wp-block-navigation__container a:hover {
    color: var(--n2f-cream) !important;
    background: rgba(255,255,255,0.1) !important;
}
.wp-block-navigation .current-menu-item > a,
.wp-block-navigation .current_page_item > a {
    color: var(--n2f-straw) !important;
    background: rgba(212,180,131,0.12) !important;
}

/* Mobile hamburger */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
    stroke: var(--n2f-cream) !important;
    fill: var(--n2f-cream) !important;
}
.wp-block-navigation__responsive-container.is-menu-open {
    background-color: var(--n2f-soil) !important;
}
.wp-block-navigation__responsive-container.is-menu-open a {
    color: var(--n2f-cream) !important;
    font-size: 1.1rem !important;
    padding: 0.75rem 1rem !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
}

.admin-bar .wp-block-template-part[data-slug="header"] { top: 32px; }
@media screen and (max-width: 782px) {
    .admin-bar .wp-block-template-part[data-slug="header"] { top: 46px; }
}

/* ============================================================
   LAYOUT
   ============================================================ */
.wp-site-blocks { padding: 0 !important; }

.entry-content,
.wp-block-post-content {
    max-width: 740px;
    margin: 0 auto;
    padding: 2rem 1.5rem 3rem;
}

/* ============================================================
   BLOG INDEX
   ============================================================ */
.wp-block-query-title,
.page-title {
    font-family: var(--font-sans) !important;
    font-size: clamp(1.8rem, 4vw, 2.6rem) !important;
    font-weight: 700 !important;
    color: var(--n2f-soil) !important;
    border-bottom: 3px solid var(--n2f-terracotta);
    padding-bottom: 0.35rem;
    display: inline-block;
    margin-bottom: 0.5rem;
}

.archive-description,
.taxonomy-description,
.wp-block-term-description {
    color: var(--n2f-bark) !important;
    font-style: italic;
    font-size: 1rem !important;
    border-left: 3px solid var(--n2f-olive);
    padding-left: 0.9rem;
    margin: 1rem 0 2rem;
    max-width: 560px;
}

/* Two-column card grid */
.wp-block-post-template { gap: 1.5rem !important; }

.wp-block-post {
    background: var(--n2f-white) !important;
    border-radius: var(--radius-md) !important;
    overflow: hidden !important;
    box-shadow: var(--shadow-card) !important;
    border: 1px solid rgba(59,42,26,0.06) !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.22s ease, box-shadow 0.22s ease !important;
}
.wp-block-post:hover {
    transform: translateY(-5px) !important;
    box-shadow: var(--shadow-lift) !important;
}

.wp-block-post .wp-block-post-featured-image { overflow: hidden; flex-shrink: 0; }
.wp-block-post .wp-block-post-featured-image img {
    width: 100% !important;
    height: 215px !important;
    object-fit: cover !important;
    display: block;
    transition: transform 0.35s ease;
}
.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.05); }

.wp-block-post .wp-block-post-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 1rem 1.1rem 0.2rem !important;
}
.wp-block-post .wp-block-post-title a {
    color: var(--n2f-soil) !important;
    text-decoration: none !important;
}
.wp-block-post .wp-block-post-title a:hover { color: var(--n2f-terracotta) !important; }

.wp-block-post .wp-block-post-date,
.wp-block-post time {
    display: block;
    font-size: 0.75rem !important;
    color: var(--n2f-mist) !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 0 1.1rem !important;
}

.wp-block-post .wp-block-post-excerpt,
.wp-block-post .wp-block-post-excerpt p {
    font-size: 0.88rem !important;
    color: var(--n2f-bark) !important;
    line-height: 1.6 !important;
    padding: 0.3rem 1.1rem 1.1rem !important;
    margin: 0 !important;
}

/* ============================================================
   SINGLE POST
   ============================================================ */
.single .wp-block-post-title,
.single h1.entry-title {
    font-size: clamp(1.9rem, 4.5vw, 2.8rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    margin-bottom: 0.3rem !important;
}

.wp-block-post-author,
.wp-block-post-author__name,
.entry-meta,
.byline,
.posted-on {
    font-size: 0.82rem !important;
    color: var(--n2f-mist) !important;
    font-style: italic;
    margin-bottom: 1.5rem !important;
}
.wp-block-post-author a,
.entry-meta a {
    color: var(--n2f-olive) !important;
    text-decoration: none !important;
}

.single .wp-block-post-featured-image img {
    width: 100% !important;
    border-radius: var(--radius-md) !important;
    margin-bottom: 2rem !important;
    box-shadow: var(--shadow-card) !important;
}

.wp-block-post-content > * + * { margin-top: 1.3rem !important; }
.wp-block-post-content p { margin-bottom: 1.3rem !important; }

/* Drop cap */
.wp-block-post-content > p:first-of-type::first-letter {
    font-family: var(--font-sans);
    font-size: 3.6em;
    font-weight: 700;
    color: var(--n2f-terracotta);
    float: left;
    line-height: 0.78;
    margin: 0.06em 0.1em 0 0;
}

.wp-block-quote,
blockquote {
    border-left: 4px solid var(--n2f-terracotta) !important;
    background: var(--n2f-parchment) !important;
    padding: 1.1rem 1.4rem !important;
    margin: 1.8rem 0 !important;
    border-radius: 0 var(--radius-md) var(--radius-md) 0 !important;
}
.wp-block-quote p,
blockquote p {
    font-style: italic;
    font-size: 1.05rem !important;
    color: var(--n2f-bark) !important;
    margin: 0 !important;
}
.wp-block-quote cite { font-size: 0.82rem; color: var(--n2f-mist); display: block; margin-top: 0.5rem; }

.wp-block-image img,
.entry-content img {
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-soft) !important;
    max-width: 100% !important;
    height: auto !important;
}

figcaption,
.wp-element-caption {
    font-size: 0.8rem !important;
    color: var(--n2f-mist) !important;
    font-style: italic !important;
    text-align: center !important;
    margin-top: 0.35rem !important;
}

hr, .wp-block-separator {
    border: none !important;
    height: 1px !important;
    background: linear-gradient(to right, transparent, var(--n2f-straw), transparent) !important;
    margin: 2.5rem auto !important;
    max-width: 220px !important;
}

ul, ol { padding-left: 1.5rem !important; }
li     { margin-bottom: 0.35rem !important; }
ul li::marker { color: var(--n2f-olive) !important; }

/* ============================================================
   CATEGORY / TAG PILLS
   ============================================================ */
.wp-block-post-terms a,
.cat-links a,
.tags-links a {
    display: inline-block;
    background: var(--n2f-olive) !important;
    color: var(--n2f-white) !important;
    padding: 0.2em 0.65em !important;
    border-radius: 3px !important;
    text-decoration: none !important;
    font-size: 0.75rem !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    transition: background 0.15s ease;
    margin: 0.15rem 0.15rem 0 0;
}
.wp-block-post-terms a:hover,
.cat-links a:hover { background: var(--n2f-olive-light) !important; color: var(--n2f-white) !important; }

/* ============================================================
   SUBSCRIBE PAGE — Subscribe2 plugin
   FIX: Hide honeypot spam-trap fields which show as visible text
   ============================================================ */

/* Hide the three honeypot/hidden fields Subscribe2 outputs */
.subscribe2form .s2_honeypot,
.subscribe2form input[name="s2_honeypot"],
.subscribe2form input[name="subscribe2_email_check"],
label[for="s2_honeypot"],
label[for="subscribe2_email_check"],
/* Target by the visible label text as a fallback */
.subscribe2form label:has(+ input[type="hidden"]) {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Also hide any paragraph containing the honeypot hint text */
.subscribe2form p:has(input[name="s2_honeypot"]),
.subscribe2form p:has(input[name="subscribe2_email_check"]) {
    display: none !important;
}

/* Style the subscribe form container */
.subscribe2form,
.page-id-subscribe .entry-content form,
form.subscribe2 {
    background: var(--n2f-soil) !important;
    border-radius: var(--radius-md) !important;
    padding: 2rem !important;
    margin: 1.5rem 0 !important;
    text-align: center;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
}

.subscribe2form p,
.subscribe2form label {
    color: var(--n2f-cream) !important;
    font-size: 0.95rem !important;
    margin-bottom: 0.75rem !important;
    font-style: normal !important;
}

/* Heading above form */
.page .entry-title {
    text-align: center;
}

.subscribe2form input[type="email"],
input#subscribe2_email {
    width: 100% !important;
    max-width: 320px !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.65rem 1rem !important;
    font-size: 1rem !important;
    font-family: var(--font-sans) !important;
    color: var(--n2f-soil) !important;
    background: var(--n2f-cream) !important;
    display: block;
    margin: 0 auto 0.75rem !important;
    outline: none;
    transition: box-shadow 0.15s ease;
}
.subscribe2form input[type="email"]:focus,
input#subscribe2_email:focus {
    box-shadow: 0 0 0 3px rgba(193,122,74,0.4) !important;
}

.subscribe2form input[type="submit"],
input#subscribe2_submit {
    background: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.65rem 1.8rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.1s ease;
    letter-spacing: 0.03em;
}
.subscribe2form input[type="submit"]:hover,
input#subscribe2_submit:hover {
    background: var(--n2f-terracotta-dk) !important;
    transform: translateY(-1px);
}

/* ============================================================
   CONTACT PAGE — Contact Form 7
   ============================================================ */
.wpcf7 {
    background: var(--n2f-parchment) !important;
    border-radius: var(--radius-md) !important;
    padding: 1.8rem !important;
    border: 1px solid rgba(59,42,26,0.08);
    margin: 1.5rem 0 !important;
}

.wpcf7 label {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: var(--n2f-bark) !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: 0.3rem !important;
    margin-top: 0.9rem !important;
}

.wpcf7 label:first-child { margin-top: 0 !important; }

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100% !important;
    background: var(--n2f-white) !important;
    border: 1.5px solid var(--n2f-straw) !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.6rem 0.85rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.95rem !important;
    color: var(--n2f-soil) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    outline: none;
    -webkit-appearance: none;
}
.wpcf7 input:focus,
.wpcf7 textarea:focus {
    border-color: var(--n2f-terracotta) !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.15) !important;
}
.wpcf7 textarea { min-height: 130px; resize: vertical; }

.wpcf7 input[type="submit"] {
    background: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.65rem 1.8rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    cursor: pointer;
    margin-top: 1rem !important;
    transition: background 0.15s ease, transform 0.1s ease;
    letter-spacing: 0.03em;
}
.wpcf7 input[type="submit"]:hover {
    background: var(--n2f-terracotta-dk) !important;
    transform: translateY(-1px);
}

/* CF7 response messages */
.wpcf7-response-output {
    border-radius: var(--radius-sm) !important;
    padding: 0.75rem 1rem !important;
    font-size: 0.88rem !important;
    margin-top: 1rem !important;
    border: none !important;
}
.wpcf7-mail-sent-ok {
    background: #EEF6EC !important;
    color: #3A6B2A !important;
}
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng,
.wpcf7-acceptance-missing {
    background: #FDF0E8 !important;
    color: var(--n2f-terracotta-dk) !important;
}

/* CF7 invalid field highlight */
.wpcf7-not-valid {
    border-color: var(--n2f-terracotta) !important;
}
.wpcf7-not-valid-tip {
    font-size: 0.8rem !important;
    color: var(--n2f-terracotta-dk) !important;
}

/* ============================================================
   PRIVACY POLICY PAGE
   ============================================================ */
.privacy-policy .entry-content h2 {
    border-bottom: 2px solid var(--n2f-parchment);
    padding-bottom: 0.3rem;
    margin-top: 2.2rem !important;
    font-size: 1.15rem !important;
}
.privacy-policy .entry-content > p:first-of-type {
    font-size: 1.05rem !important;
    color: var(--n2f-bark) !important;
    font-style: italic;
    border-left: 3px solid var(--n2f-olive);
    padding-left: 0.9rem;
}
/* Suppress drop cap on privacy page — wrong tone */
.privacy-policy .wp-block-post-content > p:first-of-type::first-letter {
    font-size: 1em;
    float: none;
    margin: 0;
    color: var(--n2f-soil);
}

/* ============================================================
   COOKIE CONSENT — cookieadmin.net plugin
   ============================================================ */

/* Consent bar at bottom */
#cookie-admin-bar,
.cookie-admin-bar,
[id*="cookieadmin"],
[class*="cookieadmin"] {
    background: var(--n2f-soil) !important;
    color: var(--n2f-parchment) !important;
    border-top: 3px solid var(--n2f-terracotta) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.88rem !important;
}

[id*="cookieadmin"] a,
[class*="cookieadmin"] a {
    color: var(--n2f-straw) !important;
    font-weight: 600;
}

/* Accept / Reject buttons */
[id*="cookieadmin"] button,
[class*="cookieadmin"] button,
.cookie-accept-btn,
.cookie-reject-btn {
    font-family: var(--font-sans) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.4rem 1rem !important;
    cursor: pointer;
    border: none !important;
    transition: background 0.15s ease;
}

/* Accept = terracotta */
.cookie-accept-btn,
[id*="cookieadmin"] button.accept,
[class*="cookieadmin"] button.accept,
button[id*="accept"],
button[class*="accept"] {
    background: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
}
button[id*="accept"]:hover,
button[class*="accept"]:hover {
    background: var(--n2f-terracotta-dk) !important;
}

/* Reject = muted */
.cookie-reject-btn,
[id*="cookieadmin"] button.reject,
button[id*="reject"],
button[class*="reject"] {
    background: rgba(255,255,255,0.1) !important;
    color: var(--n2f-parchment) !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
}

/* Customise / preferences panel */
.cookie-preferences-panel,
[id*="cookieadmin"] .preferences,
[class*="cookieadmin"] .panel {
    background: var(--n2f-soil) !important;
    color: var(--n2f-parchment) !important;
    border: 2px solid var(--n2f-terracotta) !important;
    border-radius: var(--radius-md) !important;
}

/* ============================================================
   SIDEBAR / WIDGETS
   ============================================================ */
.widget,
.wp-block-widget-area {
    background: var(--n2f-parchment) !important;
    border-radius: var(--radius-md) !important;
    padding: 1.4rem !important;
    margin-bottom: 1.5rem !important;
    border: 1px solid rgba(59,42,26,0.06) !important;
}

.widget-title {
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--n2f-bark) !important;
    border-bottom: 2px solid var(--n2f-terracotta);
    padding-bottom: 0.4rem;
    margin-bottom: 0.9rem !important;
}

.wp-block-archives li,
.widget ul li {
    border-bottom: 1px solid rgba(59,42,26,0.06);
    padding: 0.3rem 0;
    font-size: 0.9rem !important;
}
.wp-block-archives li:last-child,
.widget ul li:last-child { border-bottom: none; }

/* ============================================================
   SEARCH
   ============================================================ */
.wp-block-search__input,
input[type="search"] {
    background: var(--n2f-white) !important;
    border: 1.5px solid var(--n2f-straw) !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.5rem 0.85rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.95rem !important;
    color: var(--n2f-soil) !important;
    outline: none;
}
.wp-block-search__input:focus,
input[type="search"]:focus {
    border-color: var(--n2f-terracotta) !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.15) !important;
}
.wp-block-search__button {
    background: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.5rem 1rem !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: background 0.15s ease;
}
.wp-block-search__button:hover { background: var(--n2f-terracotta-dk) !important; }

mark, .search-highlight {
    background: rgba(193,122,74,0.18);
    color: var(--n2f-bark);
    border-radius: 2px;
    padding: 0 0.15em;
}

/* ============================================================
   404 PAGE
   ============================================================ */
.error404 .entry-title {
    font-size: clamp(3.5rem, 12vw, 7rem) !important;
    color: var(--n2f-terracotta) !important;
    margin-bottom: 0 !important;
    line-height: 1 !important;
}
.error404 .page-content p {
    font-size: 1.05rem !important;
    color: var(--n2f-bark) !important;
}

/* ============================================================
   PAGINATION
   ============================================================ */
.wp-block-query-pagination,
.navigation.pagination {
    display: flex !important;
    gap: 0.4rem !important;
    justify-content: center !important;
    margin: 3rem 0 !important;
    flex-wrap: wrap;
}

.wp-block-query-pagination a,
.page-numbers {
    background: var(--n2f-parchment) !important;
    border: 1.5px solid var(--n2f-straw) !important;
    color: var(--n2f-soil) !important;
    padding: 0.45rem 0.9rem !important;
    border-radius: var(--radius-sm) !important;
    text-decoration: none !important;
    font-size: 0.9rem;
    font-weight: 600;
    transition: all 0.15s ease;
}
.wp-block-query-pagination a:hover,
.page-numbers:hover {
    background: var(--n2f-terracotta) !important;
    border-color: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
}
.page-numbers.current {
    background: var(--n2f-soil) !important;
    border-color: var(--n2f-soil) !important;
    color: var(--n2f-cream) !important;
}

/* ============================================================
   POST NAVIGATION
   ============================================================ */
.wp-block-post-navigation-link a,
.nav-links a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--n2f-terracotta) !important;
    font-weight: 600;
    font-size: 0.9rem !important;
    text-decoration: none !important;
    padding: 0.5rem 0;
    transition: color 0.15s ease;
}
.wp-block-post-navigation-link a:hover,
.nav-links a:hover { color: var(--n2f-terracotta-dk) !important; }

/* ============================================================
   FOOTER
   ============================================================ */
footer,
.site-footer,
.wp-block-template-part[data-slug="footer"] {
    background-color: var(--n2f-soil) !important;
    border-top: 3px solid var(--n2f-terracotta) !important;
    color: var(--n2f-parchment) !important;
    padding: 2.5rem 2rem !important;
    margin-top: 4rem !important;
}

footer p,
.site-footer p {
    color: var(--n2f-parchment) !important;
    font-size: 0.86rem !important;
    margin: 0 !important;
    opacity: 0.85;
}

footer a,
.site-footer a {
    color: var(--n2f-straw) !important;
    text-decoration: none !important;
    font-size: 0.86rem !important;
}
footer a:hover,
.site-footer a:hover { color: var(--n2f-cream) !important; }

footer .wp-block-navigation a,
.site-footer .wp-block-navigation a {
    color: var(--n2f-parchment) !important;
    font-size: 0.84rem !important;
    text-transform: none;
    letter-spacing: 0;
}
footer .wp-block-navigation a:hover {
    color: var(--n2f-straw) !important;
    background: transparent !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.wp-block-button__link,
.button,
button[type="submit"],
input[type="submit"] {
    background-color: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
    font-family: var(--font-sans) !important;
    font-weight: 700 !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.65rem 1.6rem !important;
    cursor: pointer;
    text-decoration: none !important;
    transition: background-color 0.15s ease, transform 0.1s ease;
    letter-spacing: 0.03em;
    display: inline-block;
}
.wp-block-button__link:hover,
button[type="submit"]:hover {
    background-color: var(--n2f-terracotta-dk) !important;
    color: var(--n2f-white) !important;
    transform: translateY(-1px);
}
.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent !important;
    border: 2px solid var(--n2f-terracotta) !important;
    color: var(--n2f-terracotta) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
}

/* ============================================================
   COMMENTS
   ============================================================ */
#comments {
    border-top: 2px solid var(--n2f-parchment);
    margin-top: 3rem;
    padding-top: 2rem;
}
.comments-title {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    margin-bottom: 1.5rem !important;
}
.comment-list .comment {
    background: var(--n2f-parchment);
    border-radius: var(--radius-md);
    padding: 1.1rem 1.3rem;
    margin-bottom: 1rem;
    border-left: 3px solid var(--n2f-olive);
}
.comment-author .fn    { font-weight: 700; color: var(--n2f-bark) !important; }
.comment-metadata      { font-size: 0.78rem !important; color: var(--n2f-mist) !important; }
.comment-content p     { margin: 0.5rem 0 0 !important; }

.comment-form input,
.comment-form textarea {
    background: var(--n2f-white) !important;
    border: 1.5px solid var(--n2f-straw) !important;
    border-radius: var(--radius-sm) !important;
    padding: 0.55rem 0.8rem !important;
    font-family: var(--font-sans) !important;
    font-size: 0.95rem !important;
    color: var(--n2f-soil) !important;
    width: 100%;
    outline: none;
    transition: border-color 0.15s ease;
}
.comment-form input:focus,
.comment-form textarea:focus {
    border-color: var(--n2f-terracotta) !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.12) !important;
}
.comment-form label {
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    color: var(--n2f-bark) !important;
    display: block;
    margin-bottom: 0.3rem;
}
.comment-form-comment textarea { min-height: 120px; resize: vertical; }

/* ============================================================
   PRINT
   ============================================================ */
@media print {
    header, footer, nav, .wp-block-query-pagination,
    .widget, #comments, .wpcf7, .subscribe2form,
    [id*="cookieadmin"], [class*="cookieadmin"] {
        display: none !important;
    }
    body {
        background: white !important;
        color: black !important;
        font-size: 12pt !important;
    }
    a { color: black !important; text-decoration: none !important; }
    a[href]::after { content: " (" attr(href) ")"; font-size: 0.8em; color: #555; }
    .wp-block-post-content { max-width: 100% !important; padding: 0 !important; }
    img { max-width: 100% !important; page-break-inside: avoid; }
    h1, h2, h3 { page-break-after: avoid; }
    p { orphans: 3; widows: 3; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
    body { font-size: 16px !important; }
    .entry-content,
    .wp-block-post-content { padding: 1.5rem 1rem 2rem; }
    .wp-block-post .wp-block-post-featured-image img { height: 185px !important; }

    /* No drop cap on mobile */
    .wp-block-post-content > p:first-of-type::first-letter {
        font-size: 1em; float: none; margin: 0; color: var(--n2f-soil);
    }

    .subscribe2form { padding: 1.4rem !important; }
}

@media (max-width: 480px) {
    .wp-block-post .wp-block-post-featured-image img { height: 160px !important; }
    header .wp-block-group { padding: 0.6rem 1rem !important; }
    .wp-block-site-logo img, .custom-logo { width: 40px !important; height: 40px !important; }
    .wp-block-site-title, .wp-block-site-title a { font-size: 1.05rem !important; }
}

/* ============================================================
   PAGINATION FIX v1.3
   Forces pagination to display on the blog index even when
   the block editor query loop has it disabled.
   ============================================================ */

/* Ensure the query pagination block is always visible */
.wp-block-query-pagination {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Hide the query if it has no posts — prevents empty pagination */
.wp-block-query:empty + .wp-block-query-pagination {
    display: none !important;
}

/* Style next/prev text links */
.wp-block-query-pagination-next,
.wp-block-query-pagination-previous {
    font-weight: 600 !important;
    color: var(--n2f-terracotta) !important;
    text-decoration: none !important;
    padding: 0.45rem 0.9rem !important;
    background: var(--n2f-parchment) !important;
    border: 1.5px solid var(--n2f-straw) !important;
    border-radius: var(--radius-sm) !important;
    transition: all 0.15s ease;
    font-size: 0.9rem;
}
.wp-block-query-pagination-next:hover,
.wp-block-query-pagination-previous:hover {
    background: var(--n2f-terracotta) !important;
    border-color: var(--n2f-terracotta) !important;
    color: var(--n2f-white) !important;
}

/* ============================================================
   ARCHIVE PAGE STYLES v1.3
   Styles the custom "All Episodes" archive page
   ============================================================ */
.n2f-archive-page {
    max-width: 680px;
    margin: 0 auto;
}

.n2f-archive-intro {
    font-size: 1.05rem;
    color: var(--n2f-bark);
    font-style: italic;
    border-left: 3px solid var(--n2f-olive);
    padding-left: 1rem;
    margin-bottom: 2.5rem;
}

.n2f-archive-month {
    margin-bottom: 2.5rem;
}

.n2f-archive-month-title {
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--n2f-terracotta) !important;
    border-bottom: 2px solid var(--n2f-parchment) !important;
    padding-bottom: 0.4rem !important;
    margin-bottom: 1.2rem !important;
}

.n2f-archive-entry {
    display: flex;
    gap: 1rem;
    margin-bottom: 1.2rem;
    align-items: flex-start;
}

.n2f-archive-week {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--n2f-mist);
    white-space: nowrap;
    padding-top: 0.15rem;
    min-width: 60px;
    flex-shrink: 0;
}

.n2f-archive-detail { flex: 1; }

.n2f-archive-link {
    font-weight: 700 !important;
    color: var(--n2f-soil) !important;
    text-decoration: none !important;
    font-size: 1rem;
    display: block;
    margin-bottom: 0.2rem;
    line-height: 1.3;
    transition: color 0.15s ease;
}
.n2f-archive-link:hover {
    color: var(--n2f-terracotta) !important;
}

.n2f-archive-detail p {
    font-size: 0.88rem !important;
    color: var(--n2f-bark) !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

.n2f-archive-note {
    font-size: 0.85rem !important;
    color: var(--n2f-mist) !important;
    margin-left: 76px !important;
    margin-top: -0.5rem !important;
    font-style: italic;
}

.n2f-archive-subscribe {
    background: var(--n2f-parchment);
    border-radius: var(--radius-md);
    padding: 1.2rem 1.4rem;
    font-size: 0.95rem !important;
    margin-top: 2rem;
    text-align: center;
    border: 1px solid rgba(59,42,26,0.06);
}

@media (max-width: 480px) {
    .n2f-archive-entry {
        flex-direction: column;
        gap: 0.2rem;
    }
    .n2f-archive-note { margin-left: 0 !important; }
}

/* ============================================================
   HEADER TEMPLATE FIX v1.4
   Overrides Twenty Twenty-Five header layout.
   Logo left, title beside it, nav right.
   ============================================================ */

/* Header wrapper — full width, sticky, dark */
header.wp-block-template-part,
.wp-block-template-part[data-slug="header"] {
    background-color: var(--n2f-soil) !important;
    border-bottom: 3px solid var(--n2f-terracotta) !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.3) !important;
    width: 100% !important;
}

/* Inner group — flex row, space between */
.n2f-header-inner,
header .wp-block-group:first-child {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 0.7rem 1.5rem !important;
    gap: 1rem !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Branding group (logo + title) — left side */
.n2f-header-inner > .wp-block-group:first-child,
header .wp-block-group:first-child > .wp-block-group:first-child {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.75rem !important;
    flex-shrink: 0 !important;
}

/* Logo */
.n2f-logo img,
header .wp-block-site-logo img,
header .custom-logo {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important;
    border: 2px solid var(--n2f-terracotta) !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.22) !important;
    object-fit: cover !important;
    display: block !important;
}

/* Site title */
.n2f-site-title,
header .wp-block-site-title,
header .wp-block-site-title a {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    color: #F7F3EC !important;
    text-decoration: none !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    font-family: var(--font-sans) !important;
}
header .wp-block-site-title a:hover {
    color: var(--n2f-straw) !important;
    text-decoration: none !important;
}

/* Navigation — right side, push to end */
.n2f-main-nav,
header .wp-block-navigation {
    margin-left: auto !important;
    background: transparent !important;
}

header .wp-block-navigation a,
header .wp-block-navigation__container a {
    font-size: 0.82rem !important;
    font-weight: 600 !important;
    color: #EDE7D9 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    padding: 0.4rem 0.65rem !important;
    border-radius: var(--radius-sm) !important;
    transition: color 0.15s ease, background 0.15s ease !important;
    white-space: nowrap !important;
}
header .wp-block-navigation a:hover,
header .wp-block-navigation__container a:hover {
    color: #F7F3EC !important;
    background: rgba(255,255,255,0.1) !important;
}

/* Active page highlight */
header .wp-block-navigation .current-menu-item > a,
header .wp-block-navigation .current_page_item > a {
    color: var(--n2f-straw) !important;
    background: rgba(212,180,131,0.12) !important;
}

/* Mobile hamburger icon — cream coloured */
header .wp-block-navigation__responsive-container-open,
header .wp-block-navigation__responsive-container-open svg,
header .wp-block-navigation__responsive-container-close,
header .wp-block-navigation__responsive-container-close svg {
    color: #F7F3EC !important;
    stroke: #F7F3EC !important;
    fill: #F7F3EC !important;
}

/* Mobile overlay */
header .wp-block-navigation__responsive-container.is-menu-open {
    background-color: var(--n2f-soil) !important;
    padding: 1rem !important;
}
header .wp-block-navigation__responsive-container.is-menu-open a {
    color: #F7F3EC !important;
    font-size: 1.1rem !important;
    padding: 0.75rem 1rem !important;
    border-bottom: 1px solid rgba(255,255,255,0.08) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
}

/* Admin bar offset */
.admin-bar header.wp-block-template-part,
.admin-bar .wp-block-template-part[data-slug="header"] {
    top: 32px !important;
}
@media screen and (max-width: 782px) {
    .admin-bar header.wp-block-template-part { top: 46px !important; }
}

/* ============================================================
   BLOG INDEX TITLE — left-aligned, smaller v1.4
   ============================================================ */

/* Remove the large gap between header and page title */
.wp-site-blocks > * + * { margin-top: 0 !important; }
.wp-site-blocks > main { padding-top: 0 !important; }

/* The blog index / archive page title */
.wp-block-query-title,
.page .entry-title,
h1.wp-block-post-title,
.home .wp-block-post-title,
.blog .page-title {
    text-align: left !important;
    font-size: clamp(1.4rem, 3vw, 1.9rem) !important;
    font-weight: 700 !important;
    margin-bottom: 0.25rem !important;
    padding-top: 2rem !important;
}

/* Blog index intro text — left aligned */
.wp-block-post-template ~ * p,
.wp-block-query > p {
    text-align: left !important;
}

/* Remove excessive top padding/margin on main content area */
.wp-block-group.alignfull > .wp-block-group__inner-container,
.wp-block-query {
    padding-top: 0 !important;
}

/* ============================================================
   MOBILE HEADER v1.4
   ============================================================ */
@media (max-width: 600px) {
    .n2f-header-inner,
    header .wp-block-group:first-child {
        padding: 0.6rem 1rem !important;
    }

    .n2f-logo img,
    header .wp-block-site-logo img {
        width: 40px !important;
        height: 40px !important;
    }

    header .wp-block-site-title,
    header .wp-block-site-title a {
        font-size: 1.05rem !important;
    }
}

/* ============================================================
   v1.5 FIXES
   ============================================================ */

/* --- GREEN: Nav wrapping fix ---
   Tighten nav items so 5 links fit on one line.
   Uses !important to override block editor inline styles.     */
header .wp-block-navigation,
header nav.wp-block-navigation {
    flex-shrink: 0 !important;
    flex-wrap: nowrap !important;
}
header .wp-block-navigation__container {
    flex-wrap: nowrap !important;
    gap: 0 !important;
}
header .wp-block-navigation a,
header .wp-block-navigation__container > .wp-block-navigation-item > a {
    font-size: 0.75rem !important;
    letter-spacing: 0.04em !important;
    padding: 0.35rem 0.45rem !important;
    white-space: nowrap !important;
}

/* --- RED: Huge gap between header and content ---
   Twenty Twenty-Five adds a cover/spacer block in the
   index template. Suppress all top spacing aggressively.     */
.wp-site-blocks {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.wp-site-blocks > * { margin-block-start: 0 !important; }

/* Target the gap-creating elements specifically */
.wp-block-cover,
.wp-block-spacer,
.wp-block-template-part + * {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* The main query block and its wrapper */
main.wp-block-query,
.wp-block-group:has(> .wp-block-query),
.wp-block-post-template {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Belt-and-braces: any element directly after the header */
header + * { margin-top: 0 !important; }
header + * > * { margin-top: 0 !important; }
header ~ main { padding-top: 0 !important; margin-top: 0 !important; }

/* The specific Twenty Twenty-Five index spacer */
.home .wp-block-group:first-of-type,
.blog .wp-block-group:first-of-type {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* --- PURPLE: Blog title alignment --- 
   Centred, no left offset, comfortable padding.              */
.wp-block-query-title,
h1.wp-block-query-title,
.home h1, .blog h1,
.wp-block-post-title.alignwide {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 2rem !important;
    font-size: clamp(1.4rem, 3vw, 1.9rem) !important;
}

/* Blog intro text — centred to match title */
.wp-block-query-title ~ p,
.home .entry-content > p,
.blog .entry-content > p,
main > .wp-block-group > p {
    text-align: center !important;
    max-width: 600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* --- YELLOW resolved: Centre align ---
   Cards remain in a grid, centred title and intro above.     */
.wp-block-post-template.is-flex-container {
    justify-content: center !important;
}

/* ============================================================
   HEADER DATABASE OVERRIDE v1.5
   The block editor saves templates to the database which
   overrides theme files. These CSS rules ensure our design
   is applied regardless of what the editor has saved.
   ============================================================ */

/* Force header background regardless of editor saved state */
.wp-block-template-part[data-type="wp_template_part"][data-slug="header"],
[class*="wp-block-template-part"] header,
body > header,
#masthead {
    background-color: #3B2A1A !important;
    border-bottom: 3px solid #C17A4A !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.3) !important;
}

/* Site tagline — hide it if it's appearing in the header */
header .wp-block-site-tagline,
.wp-block-site-tagline {
    display: none !important;
}

/* Ensure logo is always circular with terracotta border */
header img.custom-logo,
header .wp-block-site-logo img {
    border-radius: 50% !important;
    border: 2px solid #C17A4A !important;
    box-shadow: 0 0 0 3px rgba(193,122,74,0.22) !important;
    width: 52px !important;
    height: 52px !important;
    object-fit: cover !important;
}

/* ============================================================
   v1.6 NAV + GAP FIXES
   ============================================================ */

/* NAV: Force single line, no wrapping, tighter sizing.
   Subscribe is wrapping because the nav flex container
   is allowing it. Kill it completely.                        */
header .wp-block-navigation > ul,
header .wp-block-navigation__container {
    flex-wrap: nowrap !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0 !important;
}

header .wp-block-navigation-item {
    flex-shrink: 0 !important;
}

header .wp-block-navigation-item__content,
header .wp-block-navigation a {
    font-size: 0.72rem !important;
    letter-spacing: 0.03em !important;
    padding: 0.35rem 0.4rem !important;
    white-space: nowrap !important;
    display: block !important;
}

/* Give nav its own flex: 0 0 auto so it doesn't get squeezed */
header .wp-block-navigation {
    flex: 0 0 auto !important;
    min-width: 0 !important;
}

/* Give the branding group flex: 0 0 auto too */
header .wp-block-group > .wp-block-group:first-child {
    flex: 0 0 auto !important;
    min-width: 0 !important;
}

/* GAP: Target every possible source of top whitespace.
   The index template now controls this in HTML but these
   CSS rules act as a safety net.                            */
.wp-site-blocks,
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Twenty Twenty-Five specific: the gap is often a group block
   with a minHeight style applied inline.                    */
.wp-site-blocks > .wp-block-group[style*="min-height"],
.wp-site-blocks > .wp-block-cover {
    display: none !important;
}

/* Also target the pattern WordPress uses for index spacers */
.wp-block-group:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Hard reset any margin-block added by block theme styles */
main.wp-block-group {
    margin-block-start: 0 !important;
    padding-block-start: 2rem !important;
}
