/*
Theme Name: Retire Calculators
Theme URI: https://retirecalculators.com/
Template: twentytwentyfive
Author: BuyerGain
Description: Block child theme for Retire Calculators, generated 2026-09-28 from the v7.4 homepage build.
Version: 1.0.4
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.1
Text Domain: retire-calculators
*/

@layer base, components, utilities;

/* ============================================================
   BASE: tokens, resets, type primitives, container widths
   ============================================================ */
@layer base {
:root{
  --primary:#00306F; --primary-rgb:0,48,111; --primary-light:#DEE5EE;
  --accent:#44AFFB; --accent-rgb:68,175,251; --accent-dark:#0565B6; --accent-dark-rgb:5,101,182; --accent-text:#0565B6;
  --tertiary:#FDC046; --tertiary-rgb:253,192,70;
  --dark-bg:#021B3E; --light-bg:color-mix(in oklch,var(--primary) 5%,white);
  --text:#15171C; --text-muted:rgba(21,23,28,.68);
  --border:rgba(var(--primary-rgb),.10); --white:#fff; --surface:#fff;
  --shadow-sm:0 1px 2px rgba(15,20,35,.04),0 1px 3px rgba(15,20,35,.06);
  --shadow-md:0 4px 6px rgba(15,20,35,.04),0 10px 20px rgba(15,20,35,.08);
  --shadow-lg:0 10px 15px rgba(15,20,35,.05),0 24px 48px rgba(15,20,35,.12);
  --shadow-glow:0 0 0 1px rgba(var(--primary-rgb),.06),0 20px 40px rgba(var(--primary-rgb),.18);
  --space-xs:8px; --space-sm:16px; --space-md:24px; --space-lg:40px; --space-xl:72px; --space-2xl:112px; --space-3xl:160px;
  --container-width:1240px; --hero-content-width:1440px; --header-h:92px; --section-padding:var(--space-2xl) var(--space-md);
  --card-padding:var(--space-lg) var(--space-md); --card-radius:16px; --btn-radius:10px;
  --text-base:clamp(1rem,.95rem + .25vw,1.125rem); --text-lg:clamp(1.125rem,1rem + .5vw,1.375rem);
  --text-xl:clamp(1.375rem,1.1rem + 1vw,1.875rem); --text-2xl:clamp(1.875rem,1.45rem + 1.75vw,2.75rem);
  --text-3xl:clamp(2.25rem,1.8rem + 2vw,3.5rem); --text-hero:clamp(2.75rem,2rem + 3vw,4.5rem);
  --ease:cubic-bezier(.22,1,.36,1); --transition:.35s var(--ease);
  --font-heading:'Plus Jakarta Sans',system-ui,sans-serif; --font-body:'Source Sans 3',system-ui,sans-serif;
  --font-reading:var(--font-body);
}
*,*::before,*::after{box-sizing:border-box;}
html{overflow-x:hidden;scroll-behavior:smooth;}
body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;text-wrap:pretty;}
h1,h2,h3,h4{font-family:var(--font-heading);color:var(--text);font-weight:700;text-wrap:balance;}
h1{font-size:var(--text-hero);line-height:1.08;letter-spacing:-.02em;}
h2{font-size:var(--text-2xl);line-height:1.15;letter-spacing:-.01em;margin-bottom:var(--space-lg);}
h3{font-size:var(--text-xl);line-height:1.35;margin-bottom:var(--space-sm);}
[id]{scroll-margin-top:calc(var(--header-h) + var(--space-sm));}
img{max-width:100%;height:auto;}
/* 44px touch targets, but never on inline body links */
a,button,.wp-block-button__link,input[type=submit]{min-height:44px;}
p a,li a,.breadcrumbs a,.footer-credits a,.post-author-box a,.wp-block-post-terms a{min-height:0;display:inline;}
@media(max-width:600px){:root{--header-h:72px;}}
ul{list-style-position:outside;}
a{color:var(--accent-text);}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}

/* Container width: every main-content wrapper resolves to 1240px */
.retire_calculators-container,.wp-block-group.retire_calculators-container,
body:not(.home) .site-main>.wp-block-post-content,.site-main>.wp-block-query,.site-main>article,
.site-main>.page-wrap,.site-main>.post-wrap,.site-main>.archive-wrap,.site-main>.author-wrap,.site-main>.search-wrap,.site-main>.error-wrap
{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--space-md);}
}

/* ============================================================
   COMPONENTS
   ============================================================ */
@layer components {

/* ---------- Header: full-width frosted bar, 1240 inner row ---------- */
.site-header,.wp-site-blocks>.site-header{position:sticky;top:0;z-index:100;width:100%;background:rgba(255,255,255,.90);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border);transition:padding var(--transition),box-shadow var(--transition);}
body.admin-bar .site-header{top:var(--wp-admin--admin-bar--height,32px);}
.site-header.scrolled{box-shadow:var(--shadow-md);}
.site-header-inner,.site-header .site-header-inner>.wp-block-group__inner-container{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);max-width:var(--hero-content-width);margin-inline:auto;padding:var(--space-sm) var(--space-md);width:100%;transition:padding var(--transition);}
.site-header.scrolled .site-header-inner{padding-block:6px;}
.site-logo{display:inline-flex;align-items:center;flex-shrink:0;margin:0;}
.site-logo img{height:64px;width:auto;display:block;margin:0;transition:height var(--transition);}
.site-header.scrolled .site-logo img{height:50px;}
@media(max-width:1439px){.site-logo img{height:48px;}.site-header.scrolled .site-logo img{height:42px;}.site-header .wp-block-navigation-item a{font-size:.8125rem;}.site-header .wp-block-navigation__container{gap:8px!important;}.site-header .header-cta>a,.site-header .wp-block-navigation-item.header-cta a{padding:9px 12px;}}
@media(max-width:600px){.site-logo img{height:44px;}.site-header.scrolled .site-logo img{height:40px;}}
.site-header .wp-block-navigation{--wp--style--block-gap:12px!important;}
.site-header .wp-block-navigation__container{display:flex;align-items:center;gap:12px!important;row-gap:8px!important;justify-content:flex-end!important;flex-wrap:nowrap;}
.site-header .wp-block-navigation-item a{font-family:var(--font-body);font-weight:500;font-size:.875rem;padding:10px 3px;position:relative;color:var(--text)!important;text-decoration:none!important;white-space:nowrap;}
.site-header .wp-block-navigation__submenu-icon{margin-left:2px;}
.site-header .wp-block-navigation-item a::after{content:'';position:absolute;bottom:4px;left:0;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform var(--transition);}
.site-header .wp-block-navigation-item a:hover::after,.site-header .wp-block-navigation-item a:focus-visible::after{transform:scaleX(1);}
.site-header .header-cta>a,.site-header .wp-block-navigation-item.header-cta a{background:var(--accent-dark)!important;color:#fff!important;text-decoration:none!important;padding:9px 16px;font-size:.85rem;white-space:nowrap;border-radius:var(--btn-radius);font-family:var(--font-heading);font-weight:600;transition:background-color var(--transition),transform var(--transition),box-shadow var(--transition);}
.site-header .header-cta>a:hover{background:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--accent-rgb),.32);}
.site-header .header-cta>a::after{display:none;}
.site-header .wp-block-navigation__submenu-container{background:var(--white);border:1px solid var(--border);border-top:2px solid var(--accent);border-radius:var(--card-radius);box-shadow:var(--shadow-lg);padding:var(--space-sm);min-width:240px;}
.site-header .wp-block-navigation__submenu-container a{padding:8px 14px!important;border-radius:8px;font-size:.92rem;}
.site-header .wp-block-navigation__submenu-container a::after{display:none;}
.site-header .wp-block-navigation__submenu-container a:hover{background:var(--light-bg);color:var(--accent-dark)!important;}
/* The nav is wide (5 dropdowns + CTA): force the overlay below 1300px instead of core's 600px */
@media(max-width:1299px){
  .site-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important;}
  .site-header .wp-block-navigation__responsive-container-open{display:flex!important;}
}

/* ---------- Mobile navigation overlay (core block) ---------- */
.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);border-radius:8px;}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--white)!important;padding:var(--space-xl) var(--space-md) var(--space-lg)!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{display:block;width:100%;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{width:100%;border-bottom:1px solid var(--border);}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a{font-size:1.25rem;padding:12px 0;width:100%;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a::after{display:none;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{border:0!important;box-shadow:none!important;padding:0 0 var(--space-sm) var(--space-md)!important;min-width:0;border-radius:0;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container a{font-size:1.05rem;padding:10px 0!important;}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.header-cta{border-bottom:0;margin-top:var(--space-md);}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.header-cta a{display:flex;justify-content:center;background:var(--accent-dark);color:#fff;border-radius:var(--btn-radius);padding:14px 0;}

/* ---------- Hero: three layers, verbatim from source (bg URL set inline at setup) ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(140px,16vh,220px) 0 clamp(96px,11vh,160px);background-color:var(--primary);background-image:linear-gradient(135deg,var(--primary),color-mix(in oklch,var(--primary) 70%,black));}
.hero-bg{position:absolute;inset:-12% 0;z-index:-2;background-size:cover;background-position:center right;background-repeat:no-repeat;background-color:var(--primary);background-blend-mode:multiply;will-change:transform;}
.hero-overlay{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(115deg,rgba(var(--primary-rgb),.88) 20%,rgba(var(--primary-rgb),.55));}
.hero-content{position:relative;max-width:var(--hero-content-width);padding-inline:var(--space-md);margin-inline:auto;}
@keyframes rise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
.hero-content>*{animation:rise .7s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms);}
.hero .eyebrow{color:var(--accent);}
.hero h1{color:var(--white);max-width:18ch;margin:0 0 var(--space-md)!important;}
.hero-sub{color:rgba(255,255,255,.92);font-size:var(--text-lg);max-width:60ch;margin:0 0 var(--space-lg)!important;}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);}
.arrow-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--font-heading);font-weight:700;color:var(--white)!important;text-decoration:none!important;border-bottom:2px solid rgba(255,255,255,.4);transition:border-color .2s ease,color .2s ease;}
.scroll-cue{position:absolute;left:50%;bottom:24px;margin-left:-12px;color:rgba(255,255,255,.7);animation:cue-bounce 1.6s ease-in-out infinite;}
@keyframes cue-bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(8px);}}
@media(max-width:599px){.hero-ctas .btn{width:100%;}}

/* ---------- Shared homepage furniture (ported from source) ---------- */
.home-section{padding:var(--section-padding);}
.section-header{max-width:760px;margin-bottom:var(--space-2xl)!important;}
.section-header>*{margin-bottom:0!important;}
.section-header h2,.section-header .wp-block-heading{margin:0 0 var(--space-lg)!important;color:var(--primary);}
.section-sub{color:var(--text-muted);font-size:var(--text-lg);max-width:65ch;}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:.85rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 var(--space-sm)!important;}
.eyebrow::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--tertiary);flex:none;}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 30px;border-radius:var(--btn-radius);font-family:var(--font-heading);font-size:1rem;font-weight:700;text-decoration:none!important;border:2px solid transparent;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .2s ease,color .2s ease,border-color .2s ease;}
.btn:active{transform:translateY(0) scale(.98);}
.btn-primary{background:var(--accent-dark);color:var(--white)!important;}
.btn-accent{background:var(--accent);color:var(--text)!important;}
.btn-ghost{background:transparent;color:var(--white)!important;border-color:rgba(255,255,255,.5);}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);padding-top:var(--space-md);align-items:stretch;}
.grid-cards>*{height:100%;}
.card{position:relative;overflow:hidden;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--shadow-md);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .25s ease;}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent-dark),var(--accent));}
.card h3{color:var(--primary);}
.card p{color:var(--text-muted);margin:0 0 var(--space-md)!important;}
.icon-chip{width:52px;height:52px;flex:none;border-radius:12px;display:grid;place-items:center;background:rgba(var(--accent-rgb),.14);color:var(--accent-dark);margin-bottom:var(--space-sm);}
.icon-chip svg{transition:transform .3s var(--ease);}
.card-cta{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:24px;font-family:var(--font-heading);font-size:.85rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;color:var(--accent-dark)!important;text-decoration:none!important;}
.arrow{display:inline-block;transition:transform .25s var(--ease);}

/* ---------- Trust bar ---------- */
.trust{background:var(--white);}
.trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-lg);}
.trust-item{text-align:center;}
.trust-item .icon-chip{margin-inline:auto;}
.trust-title{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:800;color:var(--primary);margin:0!important;}
.trust-sub{color:var(--text-muted);font-size:1rem;margin:0!important;}
.trust-lede{text-align:center;color:var(--text-muted);max-width:70ch;margin:0 auto!important;padding-top:var(--space-lg);}

/* ---------- Featured calculators / category explorer ---------- */
.calculators{background:var(--light-bg);}
.categories{background:var(--white);}
.cat-links{display:grid;gap:6px;margin:0 0 var(--space-md)!important;padding:0;list-style:none;}
.cat-links li{margin:0!important;}
.cat-links a{display:inline-flex;align-items:center;gap:8px;min-height:24px;padding:4px 0;font-weight:600;font-size:.98rem;color:var(--text)!important;text-decoration:none!important;transition:color .2s ease;}
.cat-links svg{flex:none;color:var(--accent-dark);}

/* ---------- Why / value props ---------- */
.why{background:var(--light-bg);}
.why-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-xl);align-items:center;}
.props{display:grid;gap:var(--space-md);}
.prop{display:flex;gap:var(--space-sm);align-items:flex-start;position:relative;padding-left:var(--space-sm);}
.prop::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:3px;background:var(--accent-dark);transform:scaleY(0);transform-origin:top;transition:transform .3s var(--ease);}
.prop .icon-chip{margin-bottom:0;}
.prop h3{margin:0 0 4px!important;color:var(--primary);}
.prop p{color:var(--text-muted);margin:0!important;}
.why-visual{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-glow);padding:var(--space-md);}
.why-visual svg{display:block;width:100%;height:auto;}
.why-cta{margin-top:var(--space-lg);}
@media(max-width:900px){.why-grid{grid-template-columns:1fr;}}

/* ---------- Blog / guides section + archive cards ---------- */
.guides{background:var(--white);} /* white: why (light) sat directly above it and the two read as one band */
.blog-grid.wp-block-post-template,.wp-block-post-template.is-layout-grid{gap:var(--space-lg)!important;padding-top:var(--space-md)!important;align-items:stretch;list-style:none;padding-left:0!important;}
/* wp:post-template wraps each post in an <li>: make the card fill that stretched cell */
.wp-block-post-template>li.wp-block-post{display:flex!important;margin:0!important;}
.wp-block-post-template>li.wp-block-post>.blog-card{width:100%;}
.blog-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column;padding:0 0 var(--space-md);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .25s ease;}
.blog-card .wp-block-post-featured-image{margin:0 0 var(--space-sm)!important;}
.blog-card .wp-block-post-featured-image img{border-radius:0;display:block;width:100%;}
.blog-card .wp-block-post-date{display:block;font-size:.85rem;color:var(--text-muted);padding-inline:var(--space-md);margin:0 0 6px!important;}
.blog-card .wp-block-post-title{font-size:var(--text-lg);line-height:1.35;padding-inline:var(--space-md);margin:0 0 10px!important;}
.blog-card .wp-block-post-title a{color:var(--primary)!important;text-decoration:none!important;}
.blog-card .wp-block-post-title a:hover{color:var(--accent-dark)!important;}
.blog-card .wp-block-post-excerpt{padding-inline:var(--space-md);margin:0!important;color:var(--text-muted);font-size:.98rem;}
.blog-card .wp-block-post-excerpt p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0!important;}
.wp-block-query-no-results p{color:var(--text-muted);margin:var(--space-md) 0!important;}
.wp-block-query-pagination{gap:8px!important;margin-top:var(--space-xl)!important;display:flex;flex-wrap:wrap;align-items:center;}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid var(--border);border-radius:var(--btn-radius);text-decoration:none!important;color:var(--text)!important;font-weight:600;}
.wp-block-query-pagination .page-numbers.current{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff!important;}

/* ---------- FAQ ---------- */
.faq{background:var(--light-bg);}
.faq-list{display:grid;gap:var(--space-sm);max-width:860px;}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .25s ease;}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md);min-height:44px;cursor:pointer;list-style:none;font-family:var(--font-heading);font-weight:700;color:var(--primary);}
.faq-item summary::-webkit-details-marker{display:none;}
.chevron{flex:none;color:var(--accent-dark);transition:transform .25s var(--ease);}
.faq-item[open] summary .chevron{transform:rotate(180deg);}
.faq-item p{padding:0 var(--space-md) var(--space-md);color:var(--text-muted);max-width:70ch;margin:0!important;}

/* ---------- Final CTA strip ---------- */
.cta-strip{position:relative;isolation:isolate;overflow:hidden;background:var(--primary);}
.cta-strip::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(600px 300px at 85% 20%,rgba(var(--accent-rgb),.18),transparent 70%),radial-gradient(500px 260px at 10% 90%,rgba(var(--tertiary-rgb),.10),transparent 70%);}
.cta-strip .eyebrow{color:var(--accent);}
.cta-strip h2,.cta-strip .wp-block-heading{color:var(--white)!important;max-width:20ch;margin:0 0 var(--space-lg)!important;}
.cta-strip p{color:rgba(255,255,255,.88);max-width:60ch;margin:0 0 var(--space-lg)!important;}
.cta-ctas,.cta-strip .wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--space-md)!important;margin-top:var(--space-lg)!important;}

/* ---------- Buttons: forced contrast (near-black on accent per the source design brief) ---------- */
.wp-block-button .wp-block-button__link:is(.has-primary-background-color,.has-tertiary-background-color,.has-dark-bg-background-color){
  color:#fff!important;font-family:var(--font-heading);font-weight:600;letter-spacing:.01em;
  box-shadow:0 6px 16px rgba(var(--primary-rgb),.22);position:relative;border-radius:var(--btn-radius);
  transition:background-color var(--transition),transform var(--transition),box-shadow var(--transition),color var(--transition);}
.wp-block-button .wp-block-button__link.has-primary-background-color{background:linear-gradient(135deg,var(--primary),color-mix(in oklch,var(--primary) 80%,var(--accent)))!important;}
.wp-block-button .wp-block-button__link.has-accent-background-color{background:var(--accent)!important;color:var(--text)!important;font-family:var(--font-heading);font-weight:600;letter-spacing:.01em;border-radius:var(--btn-radius);box-shadow:0 6px 16px rgba(var(--accent-rgb),.22);transition:background-color var(--transition),transform var(--transition),box-shadow var(--transition),color var(--transition);}
.wp-block-button .wp-block-button__link.btn-ghost,.wp-block-button.btn-ghost .wp-block-button__link{background:transparent!important;color:#fff!important;border:2px solid rgba(255,255,255,.5);border-radius:var(--btn-radius);font-family:var(--font-heading);font-weight:600;transition:border-color var(--transition),transform var(--transition),color var(--transition);}
.wp-block-button .wp-block-button__link:active{transform:translateY(0) scale(.98);}

/* ---------- blockGap:0 package (the side-effects) ---------- */
.section-cta .wp-block-buttons{margin-top:var(--space-lg)!important;}
.wp-block-group.why-cta{margin-top:var(--space-2xl)!important;}
.wp-block-group>.wp-block-buttons:not(:first-child){margin-top:var(--space-lg)!important;}
.wp-block-columns.testimonials-grid{gap:var(--space-md);}

/* ---------- Page title band + breadcrumbs ---------- */
.page-hero{background:var(--light-bg);padding:var(--space-xl) 0 var(--space-lg);}
.breadcrumbs{font-size:.88rem;color:var(--text-muted);margin:0 0 var(--space-sm)!important;display:block;}
/* underlined: axe link-in-text-block, the blue alone was 1.04:1 against the muted crumb text */
.breadcrumbs a{color:var(--accent-text)!important;text-decoration:underline!important;text-underline-offset:3px;}
.breadcrumbs a:hover{text-decoration-thickness:2px!important;}
.breadcrumbs .sep{margin:0 8px;opacity:.5;}
.breadcrumbs [aria-current='page']{color:var(--text-muted);}
.site-main .wp-block-post-title{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.02em;margin:var(--space-lg) 0 2rem!important;color:var(--text);}
.page-hero .wp-block-post-title{margin:var(--space-md) 0 0!important;} /* 24px under the breadcrumbs; 16px measured cramped against a 48px title */
.page-wrap,.post-wrap{padding-block:var(--space-xl) var(--space-2xl);}
.archive-wrap,.search-wrap,.author-wrap,.error-wrap{padding-block:var(--space-xl) var(--space-2xl);}
.archive-wrap h1,.search-wrap h1,.author-wrap h1,.error-wrap h1,.archive-wrap .wp-block-query-title,.search-wrap .wp-block-query-title{margin:var(--space-lg) 0 var(--space-sm)!important;color:var(--text);}
.archive-sub{color:var(--text-muted);margin:0 0 var(--space-lg)!important;max-width:65ch;}

/* ---------- Post meta: reading badge, terms, author box, post nav ---------- */
.post-top-meta{margin:0 0 5rem!important;}
.reading-time-badge{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-family:var(--font-heading);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:8px 16px;border-radius:999px;}
.reading-time-badge svg{flex:none;}
.site-main .wp-block-post-terms{margin:var(--space-lg) 0 0!important;font-size:.85rem;}
.site-main .wp-block-post-terms a{display:inline-flex;align-items:center;padding:6px 14px;margin:0 6px 6px 0;background:var(--light-bg);border:1px solid var(--border);border-radius:999px;color:var(--accent-text)!important;text-decoration:none!important;font-weight:600;}
.post-author-box{display:grid;grid-template-columns:72px 1fr;gap:var(--space-md);align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-md);margin:var(--space-xl) 0 0!important;}
.post-author-box .wp-block-avatar{margin:0!important;}
.post-author-box .wp-block-avatar img{border-radius:50%;}
.post-author-box .written-by{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:0!important;}
.post-author-box .wp-block-post-author-name{font-family:var(--font-heading);font-weight:700;margin:0!important;}
.post-author-box .wp-block-post-author-name a{color:var(--text)!important;text-decoration:none!important;}
.post-meta-dates{font-size:.88rem;color:var(--text-muted);margin:4px 0 0!important;}
@media(max-width:600px){.post-author-box{grid-template-columns:1fr;text-align:center;justify-items:center;}}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-xl) 0 0!important;}
.post-nav .wp-block-post-navigation-link{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-md);margin:0!important;}
.post-nav .wp-block-post-navigation-link .post-navigation-link__label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:6px;}
.post-nav .wp-block-post-navigation-link a{color:var(--primary)!important;font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);text-decoration:none!important;}
@media(max-width:600px){.post-nav{grid-template-columns:1fr;}}
.related-posts{margin:var(--space-xl) 0 0!important;}
.related-posts h2{font-size:var(--text-xl)!important;margin:0 0 var(--space-md)!important;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-md);}
.related-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-md);text-decoration:none!important;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.related-card strong{display:block;color:var(--primary);font-family:var(--font-heading);line-height:1.35;margin-bottom:6px;}
.related-card span{color:var(--text-muted);font-size:.85rem;}

/* ---------- Comments ---------- */
.wp-block-comments{margin:var(--space-xl) 0 0!important;}
.wp-block-comments .wp-block-comments-title{font-size:var(--text-xl)!important;margin:0 0 var(--space-md)!important;}
.wp-block-comment-template{list-style:none;padding:0;margin:0!important;}
.wp-block-comment-template>li{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);padding:var(--space-md);margin:0 0 var(--space-md)!important;}
.wp-block-comment-template .wp-block-comment-template>li{margin-left:var(--space-lg)!important;box-shadow:none;}
@media(max-width:600px){.wp-block-comment-template .wp-block-comment-template>li{margin-left:0!important;}}
.wp-block-comment-author-name{font-family:var(--font-heading);font-weight:700;}
.wp-block-comment-date{font-size:.85rem;color:var(--text-muted);}
.wp-block-post-comments-form input[type=text],.wp-block-post-comments-form input[type=email],.wp-block-post-comments-form input[type=url],.wp-block-post-comments-form textarea{border:1px solid var(--border)!important;border-radius:var(--btn-radius)!important;padding:12px 16px!important;font-family:var(--font-body);width:100%;}
.wp-block-post-comments-form input[type=submit]{background:var(--accent-dark)!important;color:#fff!important;border:0!important;border-radius:var(--btn-radius)!important;padding:14px 28px!important;font-family:var(--font-heading);font-weight:600;cursor:pointer;}

/* ---------- Search form (block-library defaults are unlayered, so force) ---------- */
.wp-block-search{margin:var(--space-lg) 0!important;max-width:560px;}
.wp-block-search .wp-block-search__input{height:52px!important;border:1px solid var(--border)!important;border-radius:var(--btn-radius)!important;padding:0 16px!important;font-family:var(--font-body)!important;font-size:1rem!important;color:var(--text)!important;background:var(--white)!important;}
.wp-block-search .wp-block-search__button{height:52px!important;background:var(--accent-dark)!important;color:#fff!important;border:0!important;border-radius:var(--btn-radius)!important;padding:0 22px!important;font-family:var(--font-heading)!important;font-weight:600!important;cursor:pointer;margin-left:8px!important;}
.top-pages{margin:var(--space-md) 0 0!important;padding:0;list-style:none;display:grid;gap:8px;}
.top-pages li{margin:0!important;}
.top-pages a{display:inline-flex;align-items:center;gap:8px;color:var(--accent-text)!important;font-weight:600;text-decoration:none!important;min-height:32px;}
.top-pages a:hover{text-decoration:underline;}

/* ---------- Entry-content rhythm (magazine spacing; every margin !important) ---------- */
/* 21px on wide screens: at 19px Source Sans 3 the full-width column ran 136 chars/line (house limit 130). Size up, never cap the column. */
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content){font-family:var(--font-reading)!important;font-size:clamp(1.1875rem,.9rem + .8vw,1.3125rem);line-height:1.8;color:var(--text);}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(p,.wp-block-paragraph){margin:0 0 1.75em!important;max-width:none!important;font-family:var(--font-reading)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(p,.wp-block-paragraph):last-child{margin-bottom:0!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(h2,h2.wp-block-heading){font-size:clamp(1.875rem,1.5rem + 1.6vw,2.5rem)!important;line-height:1.2!important;font-family:var(--font-heading)!important;font-weight:700!important;color:var(--text)!important;margin:5rem 0 1.75rem!important;padding-top:2.5rem!important;border-top:1px solid var(--border)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content)>:is(h2,h2.wp-block-heading):first-of-type{margin-top:2.5rem!important;padding-top:0!important;border-top:none!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(h3,h3.wp-block-heading){font-size:clamp(1.4rem,1.2rem + .7vw,1.7rem)!important;line-height:1.3!important;font-family:var(--font-heading)!important;font-weight:700!important;margin:3.5rem 0 1.25rem!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(h4,h4.wp-block-heading){font-size:1.25rem!important;font-family:var(--font-heading)!important;font-weight:600!important;margin:2.75rem 0 1rem!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(h2+h3,h3+h4){margin-top:1.75rem!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(ul,ol,.wp-block-list){margin:0 0 2rem!important;padding-left:1.5em;font-family:var(--font-reading)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) li{margin-bottom:.85rem!important;line-height:1.75;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(figure,.wp-block-image){margin:4rem auto!important;display:block;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(figure,.wp-block-image) img{border-radius:var(--card-radius);box-shadow:var(--shadow-sm);}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) figcaption{text-align:center;color:var(--text-muted);font-size:.95rem;margin-top:1rem!important;font-style:italic;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(blockquote,.wp-block-quote){margin:4rem 0!important;padding:2rem 2.5rem!important;border-left:4px solid var(--accent)!important;background:var(--light-bg)!important;border-radius:0 var(--card-radius) var(--card-radius) 0!important;font-style:italic;font-size:1.25rem;font-family:var(--font-reading)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(table,.wp-block-table){margin:4rem 0!important;width:100%;border-collapse:collapse;font-size:.975rem;font-family:var(--font-body)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-table{background:var(--white);border:1px solid var(--border);border-radius:var(--card-radius);overflow:hidden auto;box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(th,td){padding:18px 22px!important;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.6;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) th{background:var(--light-bg);font-family:var(--font-heading)!important;font-weight:600;font-size:.9rem;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(pre,.wp-block-code){margin:3rem 0!important;padding:1.75rem!important;background:var(--dark-bg);color:rgba(255,255,255,.92);border-radius:var(--card-radius);font-family:ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace!important;font-size:.95rem;overflow-x:auto;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) code{background:rgba(var(--primary-rgb),.06);padding:2px 7px;border-radius:6px;font-size:.9em;font-family:ui-monospace,'JetBrains Mono',Menlo,Consolas,monospace!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(hr,.wp-block-separator){margin:5rem auto!important;border:0;height:1px;background:var(--border);max-width:200px;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(p,li,td) a{color:var(--accent-text)!important;text-decoration:underline;text-underline-offset:3px;transition:color var(--transition);}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(p,li,td) a:hover{color:var(--accent-dark)!important;text-decoration-thickness:2px;}
/* undo Gutenberg's is-layout-flow child margin reset */
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content).is-layout-flow>*{margin-block-start:revert;margin-block-end:revert;}
.entry-content img,.wp-block-post-content img{max-width:100%;height:auto;border-radius:var(--card-radius);}

/* ---------- Micro-spacing polish ---------- */
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) td img{margin:.5rem 0!important;border-radius:8px;box-shadow:none;}
.wp-block-gallery{gap:var(--space-md)!important;}
.wp-block-columns img{margin-block:var(--space-sm);}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) figure+figure{margin-top:2rem!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(figure+h2,figure+h3,.wp-block-image+h2,.wp-block-image+h3){margin-top:1.75rem!important;}
.wp-block-embed{margin:4rem auto!important;border-radius:16px;overflow:hidden;}
.wp-block-embed .wp-block-embed__wrapper{aspect-ratio:16/9;}

/* ---------- Footer ---------- */
.site-footer{background:var(--dark-bg)!important;color:rgba(255,255,255,.82);padding:var(--space-xl) 0 0!important;margin:60px 0 0!important;width:100%;}
.site-footer h4{color:rgba(255,255,255,.88)!important;font-family:var(--font-heading);font-size:1rem;margin-bottom:var(--space-md);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-xl);max-width:var(--container-width);margin:0 auto;padding:0 var(--space-md) var(--space-xl);}
.footer-col p{color:rgba(255,255,255,.70);font-size:1rem;line-height:1.65;max-width:36ch;}
.footer-col ul{list-style:none;padding:0;margin:0;} .footer-col li{margin-bottom:8px;}
.footer-col li a,.footer-contact a{color:rgba(255,255,255,.72)!important;text-decoration:none!important;font-size:1rem;transition:color var(--transition),transform var(--transition);display:inline-flex;align-items:center;min-height:24px;}
.footer-col li a:hover{color:var(--accent)!important;transform:translateX(3px);} .footer-contact a:hover{color:var(--accent)!important;}
.footer-credits{border-top:1px solid rgba(255,255,255,.10);padding:var(--space-md);text-align:center;font-size:.85rem;color:rgba(255,255,255,.55);max-width:var(--container-width);margin:0 auto;}
.footer-logo{display:inline-flex;align-items:center;justify-content:center;background:var(--white);padding:14px 22px;border-radius:14px;margin-bottom:var(--space-md);box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform var(--transition),box-shadow var(--transition);min-height:0;}
.footer-logo:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.32);}
.footer-logo{max-width:100%;}
.footer-logo img{width:auto;height:auto;max-height:60px;max-width:100%;display:block;margin:0;border-radius:0;}  /* max-height, never a fixed height: the base img{max-width:100%} caps width in narrow columns and a fixed height squishes the ratio */
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;gap:var(--space-lg);}}
@media(max-width:600px){.footer-grid{grid-template-columns:1fr;}}
@media(max-width:767px){body.has-sticky-cta{padding-bottom:calc(64px + env(safe-area-inset-bottom));}}

/* ---------- Hover micro-interactions ---------- */
@media(hover:hover) and (pointer:fine){
  .btn:hover{transform:translateY(-2px);}
  .btn-primary:hover{box-shadow:0 10px 24px rgba(var(--accent-dark-rgb),.30);}
  .btn-accent:hover{box-shadow:0 10px 24px rgba(var(--accent-rgb),.30);}
  .btn-ghost:hover{border-color:var(--white);}
  .arrow-link:hover{border-color:var(--white);color:var(--accent)!important;}
  .card:hover,.blog-card:hover,.faq-item:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:rgba(var(--accent-rgb),.35);}
  .card:hover .icon-chip svg{transform:scale(1.08) rotate(3deg);}
  .card:hover .arrow,.card-cta:hover .arrow{transform:translateX(6px);}
  .cat-links a:hover{color:var(--accent-dark)!important;}
  .prop:hover::before{transform:scaleY(1);}
  .testimonial-card:hover{transform:translateY(-4px) rotate(-.5deg);box-shadow:var(--shadow-md);}
  .related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .wp-block-button .wp-block-button__link.has-primary-background-color:hover{background:linear-gradient(135deg,color-mix(in oklch,var(--primary) 80%,var(--accent)),var(--accent-dark))!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--primary-rgb),.40);}
  .wp-block-button .wp-block-button__link.has-accent-background-color:hover{background:color-mix(in oklch,var(--accent) 85%,white)!important;color:var(--text)!important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--accent-rgb),.40);}
  .wp-block-button .wp-block-button__link.btn-ghost:hover,.wp-block-button.btn-ghost .wp-block-button__link:hover{border-color:#fff;transform:translateY(-2px);color:#fff!important;}
  .wp-block-query-pagination a:hover{border-color:var(--accent-dark);color:var(--accent-dark)!important;}
}
}

/* ============================================================
   UTILITIES: focus, skip link, reduced motion, view transitions
   ============================================================ */
@layer utilities {
:is(a,button,.wp-block-button__link,input,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:inherit;transition:outline-offset .15s;}
:is(a,button):focus:not(:focus-visible){outline:none;}
.skip-link{position:absolute;left:-999px;top:auto;}
.skip-link:focus{left:var(--space-sm);top:var(--space-sm);z-index:1000;background:var(--white);padding:12px 18px;border-radius:var(--btn-radius);box-shadow:var(--shadow-lg);}
@media(prefers-reduced-motion:reduce){*,::before,::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}html{scroll-behavior:auto;}}
@view-transition{navigation:auto;}
::view-transition-old(root),::view-transition-new(root){animation-duration:.25s;}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none;}}
}

/* ============================================================
   UNLAYERED FIXES (v1.0.4). Deliberately outside @layer: each one
   has to beat an unlayered parent or core rule. Do not move them
   into a layer, they will silently stop winning.
   ============================================================ */

/* Page title asks for 800; theme.json elements.heading emits 700
   unlayered for every heading, so the display title needs its own. */
.site-main .wp-block-post-title{font-weight:800!important;}

/* Fix 5: core renders top-level nav anchors display:block, so labels sat
   high in their box. Anchors only: never set display on the open/close
   buttons (that unhides the hamburger on desktop). */
.site-header .wp-block-navigation__container>.wp-block-navigation-item>a{display:inline-flex!important;align-items:center;}
/* One nav label size: the CTA was .85rem against .875rem links. */
.site-header .wp-block-navigation-item.header-cta a{font-size:.875rem!important;}
@media(max-width:1439px){.site-header .wp-block-navigation-item.header-cta a{font-size:.8125rem!important;}}

/* Fix 12: backdrop-filter made the header the containing block for the
   fixed overlay, so the open menu was trapped at 112px tall. */
.site-header:has(.wp-block-navigation__responsive-container.is-menu-open){backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}
/* justifyContent:right leaked flex-end into the overlay: submenu rows
   right-aligned while top-level rows sat left. Everything starts left. */
.wp-block-navigation__responsive-container.is-menu-open{--navigation-layout-justify:flex-start;--navigation-layout-justification-setting:flex-start;}
.wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__container,.wp-block-navigation__submenu-container,.wp-block-navigation-item){align-items:flex-start!important;text-align:left;}

/* Card CTAs measured 23px tall: comfortable 44px target, same look. */
.card-cta{min-height:44px;}

/* Contact Form 7 ships no CSS: fields rendered 13px Arial (iOS zooms on
   focus), 21px tall. 16px text and 48px fields are the floor. */
.wpcf7{max-width:760px;}
.wpcf7 .wpcf7-form p{margin:0 0 var(--space-md)!important;}
.wpcf7 label{display:block;font-family:var(--font-heading);font-weight:600;font-size:1rem;color:var(--text);}
.wpcf7 :is(input[type=text],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],.wpcf7-select,textarea){
  display:block;width:100%;margin-top:6px;font-family:var(--font-body);font-size:1rem;line-height:1.5;color:var(--text);
  background:var(--white);border:1px solid rgba(var(--primary-rgb),.40);border-radius:var(--btn-radius);
  padding:12px 14px;min-height:48px;transition:border-color var(--transition),box-shadow var(--transition);}
.wpcf7 textarea{min-height:170px;resize:vertical;}
.wpcf7 :is(input,.wpcf7-select,textarea):focus{border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.22);outline:none;}
.wpcf7 :is(input,textarea)::placeholder{color:var(--text-muted);}
.wpcf7 input[type=submit]{background:var(--accent-dark);color:#fff;font-family:var(--font-heading);font-weight:700;font-size:1rem;
  border:0;border-radius:var(--btn-radius);padding:14px 32px;min-height:48px;cursor:pointer;
  transition:background-color var(--transition),transform var(--transition),box-shadow var(--transition);}
.wpcf7 input[type=submit]:hover{background:var(--primary);}
.wpcf7 .wpcf7-not-valid-tip{color:#B3261E;font-size:.95rem;margin-top:6px;}
.wpcf7 .wpcf7-response-output{border-radius:var(--btn-radius);padding:14px 18px;margin:var(--space-md) 0 0!important;font-size:1rem;}
.wpcf7-spinner{margin-inline-start:12px;}

/* Phones: logo + 40px gap + 44px hamburger + 48px padding overflowed 390px by 1px. */
@media(max-width:600px){.site-header-inner,.site-header .site-header-inner>.wp-block-group__inner-container{gap:var(--space-sm);padding-inline:var(--space-sm);}}
