/*
Theme Name: Property Tax Calcs
Theme URI: https://propertytaxcalcs.com/
Template: twentytwentyfive
Author: BuyerGain
Description: Block child theme for Property Tax Calcs, generated 2026-09-28 from the v7.4 homepage build.
Version: 1.2.0
Requires at least: 6.8
Tested up to: 7.0
Requires PHP: 8.1
Text Domain: property-tax-calcs
*/

@layer base, components, utilities;

@layer base {
:root{
  --primary:#1E374D; --primary-rgb:30,55,77; --primary-light:color-mix(in oklch,var(--primary) 12%,white);
  --accent:#AF4F22; --accent-rgb:175,79,34; --accent-dark:#7D3615; --accent-dark-rgb:125,54,21;
  --accent-text:#AF4F22; /* measured 5.30:1 on white, passes AA as text without darkening */
  --tertiary:#CED6DD; --tertiary-rgb:206,214,221;
  --dark-bg:#152435; --light-bg:color-mix(in oklch, var(--primary) 5%, white);
  --text:#15171C; --text-muted:rgba(21,23,28,0.68);
  --border:rgba(var(--primary-rgb),0.10); --white:#ffffff; --surface:#ffffff;
  --shadow-sm:0 1px 2px rgba(15,20,35,0.04),0 1px 3px rgba(15,20,35,0.06);
  --shadow-md:0 4px 6px rgba(15,20,35,0.04),0 10px 20px rgba(15,20,35,0.08);
  --shadow-lg:0 10px 15px rgba(15,20,35,0.05),0 24px 48px rgba(15,20,35,0.12);
  --shadow-glow:0 0 0 1px rgba(var(--primary-rgb),0.06),0 20px 40px rgba(var(--primary-rgb),0.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; --header-h:92px; --section-padding:var(--space-2xl) var(--space-md);
  --card-padding:var(--space-lg) var(--space-md); --card-radius:16px; --btn-radius:12px;
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem); --text-lg:clamp(1.125rem,1rem + 0.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(0.22,1,0.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);
}
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(--primary);text-wrap:balance;margin:0;}
h1{font-size:var(--text-hero);font-weight:800;line-height:1.08;letter-spacing:-0.025em;}
h2{font-size:var(--text-2xl);font-weight:800;line-height:1.15;letter-spacing:-0.015em;margin-bottom:var(--space-lg);}
h3{font-size:var(--text-xl);font-weight:700;line-height:1.35;margin-bottom:var(--space-sm);}
li{text-wrap:pretty;}
p{margin:0 0 var(--space-sm);max-width:68ch;text-wrap:pretty;}
a{color:var(--accent-text);text-decoration-thickness:1px;text-underline-offset:3px;transition:color .2s;}
img{max-width:100%;height:auto;}
[id]{scroll-margin-top:calc(var(--header-h) + var(--space-sm));}
/* 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;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.eyebrow,.section-label{display:inline-flex;align-items:center;gap:10px;font-size:0.85rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-sm);}
.eyebrow::before,.section-label::before{content:'';width:28px;height:2px;background:var(--accent);}
.section-header{max-width:720px;margin-bottom:var(--space-lg);}
.section-header .sub,.section-subtitle{color:var(--text-muted);font-size:var(--text-lg);margin-bottom:var(--space-lg);}
section{padding:var(--section-padding);}
/* every main-content wrapper resolves to 1240px */
.ptc-container,.wp-block-group.ptc-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);}
.entry-content img,.wp-block-post-content img{max-width:100%;height:auto;border-radius:var(--card-radius);}
@media(max-width:600px){:root{--header-h:72px;--section-padding:var(--space-xl) var(--space-md);}}
}

@layer components {
/* ===== source homepage sections, lifted from the v7.4 build ===== */
/* ===== hero ===== */
.hero { position: relative; isolation: isolate; overflow: hidden; padding: clamp(140px,16vh,220px) var(--space-md) 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; will-change: transform; }
.hero-overlay { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(115deg, rgba(var(--primary-rgb),0.88) 15%, rgba(var(--primary-rgb),0.55)); }
.hero-content { position: relative; max-width: var(--hero-content-width, 1440px); margin-inline: auto; --hero-content-width: 1440px; }
.hero .eyebrow { color: rgba(255,255,255,0.92); }
.hero .eyebrow::before { background: var(--accent); }
.hero h1 { color: var(--white); max-width: 15ch; }
.hero-sub { color: rgba(255,255,255,0.88); font-size: var(--text-lg); max-width: 54ch; margin-top: var(--space-md); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-lg); }
.scroll-hint { position: absolute; left: 50%; bottom: 22px; width: 24px; height: 38px; border: 2px solid rgba(255,255,255,0.55); border-radius: 14px; transform: translateX(-50%); }
.scroll-hint::after { content: ''; position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: rgba(255,255,255,0.8); animation: hint 1.6s ease-in-out infinite; }
@keyframes hint { 0%,100% { transform: translateY(0); opacity: 1; } 60% { transform: translateY(10px); opacity: 0.2; } }
@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); }


/* ===== trust bar ===== */
.trust { background: var(--white); padding: var(--space-xl) var(--space-md); border-bottom: 1px solid var(--border); }
.trust-bar { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-lg); }
.trust-item { display: flex; gap: var(--space-sm); align-items: flex-start; }
.trust-item svg { flex-shrink: 0; color: var(--accent); }
.trust-item strong { display: block; font-size: 1.1rem; color: var(--primary); }
.trust-item span { color: var(--text-muted); font-size: 0.95rem; }
.trust-num { font-weight: 800; font-family: 'Plus Jakarta Sans', system-ui, sans-serif; font-size: 1.6rem; line-height: 1; color: var(--primary); }


/* ===== featured calculators ===== */
.calcs { background: var(--light-bg); }
.grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-lg); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--card-radius); padding: var(--card-padding); box-shadow: var(--shadow-md); display: flex; flex-direction: column; transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .25s; }
.card-icon { width: 52px; height: 52px; border-radius: 12px; background: color-mix(in oklch, var(--accent) 10%, white); color: var(--accent); display: grid; place-items: center; margin-bottom: var(--space-sm); transition: transform .3s var(--ease); }
.card p { color: var(--text-muted); flex-grow: 1; }
.card-cta { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.03em; text-transform: uppercase; color: var(--accent); text-decoration: none; white-space: nowrap; min-height: 24px; }
.card-cta .arrow { transition: transform .25s var(--ease); }


/* ===== why choose ===== */
.why { background: var(--white); }
.props { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-lg); }
.prop { position: relative; padding: var(--space-md) var(--space-md) var(--space-md) calc(var(--space-md) + 6px); transition: transform .3s var(--ease); }
.prop::before { content: ''; position: absolute; left: 0; top: var(--space-md); bottom: var(--space-md); width: 3px; border-radius: 2px; background: var(--accent); transform: scaleY(0.35); transform-origin: top; transition: transform .3s var(--ease); }
.prop svg { color: var(--primary); margin-bottom: var(--space-sm); }
.prop p { color: var(--text-muted); margin-bottom: 0; }


/* ===== browse by state ===== */
.states { background: var(--light-bg); }
.pill-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.pill { display: inline-flex; align-items: center; padding: 10px 18px; min-height: 44px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface); color: var(--primary); font-weight: 600; font-size: 0.95rem; text-decoration: none; box-shadow: var(--shadow-sm); transition: transform .25s var(--ease), background-color .2s, color .2s, border-color .2s; }


/* ===== guides / blog teaser ===== */
.guides { background: var(--light-bg); }
.g-card { background: var(--surface); border: 1px solid var(--border); border-top: 4px solid var(--accent); border-radius: var(--card-radius); padding: var(--card-padding); box-shadow: var(--shadow-md); display: flex; flex-direction: column; transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.g-date { display: inline-block; align-self: flex-start; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--primary); background: color-mix(in oklch, var(--primary) 7%, white); border-radius: 6px; padding: 4px 10px; margin-bottom: var(--space-sm); }
.g-card p { color: var(--text-muted); flex-grow: 1; }


/* ===== faq ===== */
.faq { background: var(--white); }
.faq-list { max-width: 820px; }
.faq-list details { border: 1px solid var(--border); border-radius: 12px; background: var(--surface); box-shadow: var(--shadow-sm); margin-bottom: var(--space-sm); padding: 0 var(--space-md); }
.faq-list summary { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); cursor: pointer; list-style: none; font-weight: 700; font-size: var(--text-lg); font-family: 'Plus Jakarta Sans', system-ui, sans-serif; color: var(--primary); padding: var(--space-sm) 0; min-height: 44px; }
.faq-list summary::-webkit-details-marker { display: none; }
.chevron { flex-shrink: 0; color: var(--accent); transition: transform .25s var(--ease); }
details[open] summary .chevron { transform: rotate(180deg); }
.faq-list details p { padding-bottom: var(--space-md); margin-bottom: 0; }


/* ===== final cta ===== */
.final-cta { background: var(--primary); text-align: center; }
.final-cta h2 { color: var(--white); }
.final-cta p { color: rgba(255,255,255,0.85); font-size: var(--text-lg); margin-inline: auto; margin-bottom: var(--space-lg); max-width: 55ch; }



/* ===== buttons: forced contrast on TT5's wp-element-button cascade (no shimmer) ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:1.05rem;padding:16px 32px;border-radius:var(--btn-radius);text-decoration:none;min-height:44px;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .2s,color .2s;}
.btn:active{transform:translateY(0) scale(.98);}
.btn-primary{background:var(--accent);color:var(--white);}
.btn-ghost{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.45);}
.wp-block-button .wp-block-button__link:is(.has-primary-background-color,.has-accent-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;}
/* design brief: white on accent measured 5.30:1, so accent buttons keep the true brand copper (hover darkens), mirroring the source */
.wp-block-button .wp-block-button__link.has-accent-background-color{background:var(--accent)!important;}
.wp-block-button .wp-block-button__link:active{transform:translateY(0) scale(.98);}

/* ===== 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(--container-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:600px){.site-logo img{height:50px;}.site-header.scrolled .site-logo img{height:44px;}}
.site-header .wp-block-navigation{--wp--style--block-gap:var(--space-md)!important;}
.site-header .wp-block-navigation__container{display:flex;align-items:center;gap:var(--space-md)!important;row-gap:8px!important;justify-content:flex-end!important;flex-wrap:wrap;}
.site-header .wp-block-navigation-item a{color:var(--text);font-family:var(--font-body);font-weight:500;font-size:.95rem;padding:10px 4px;position:relative;text-decoration:none;}
.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);color:#fff;padding:10px 22px;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-dark);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;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);}
/* 51-state mega menu: grid panel anchored to the right edge of its item */
.site-header .wp-block-navigation-item.states-menu>.wp-block-navigation__submenu-container{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:2px;width:min(920px,calc(100vw - 48px));max-height:min(70vh,640px);overflow-y:auto;left:auto;right:-200px;}
@media(max-width:1280px){.site-header .wp-block-navigation-item.states-menu>.wp-block-navigation__submenu-container{right:0;}}

/* ===== mobile navigation overlay (core block) ===== */
.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close{width:44px;height:44px;display:grid;place-items:center;color:var(--text);border-radius:8px;}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--white);padding:var(--space-xl) var(--space-md) var(--space-lg);}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a{font-size:1.25rem;padding:12px 0;width:100%;border-bottom:1px solid var(--border);}
.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;box-shadow:none;padding-left:var(--space-md);min-width:0;border-radius:0;display:block;width:auto;max-height:none;overflow:visible;}
.wp-block-navigation__responsive-container.is-menu-open .header-cta a{background:var(--accent);color:#fff!important;border-radius:var(--btn-radius);text-align:center;margin-top:var(--space-md);border-bottom:0;padding:14px 22px;}

/* ===== 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;letter-spacing:0.10em;text-transform:uppercase;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:.92rem;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);font-size:.92rem;text-decoration:none;transition:color var(--transition),transform var(--transition);display:inline-block;min-height:0;}
.footer-col li a:hover{color:var(--accent);transform:translateX(3px);}
.footer-contact a:hover{color:var(--accent);}
.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,.82);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;}
@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));}}

/* ===== entry-content rhythm (blockGap:0 restoration; :not(.home) keeps the homepage's own design) ===== */
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content){font-family:var(--font-reading)!important;font-size:1.1875rem;line-height:1.85;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);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);text-decoration-thickness:2px;}
/* undo Gutenberg's :where(.is-layout-flow)>* 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;}

/* ===== micro-spacing polish ===== */
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) td img{margin:.5rem 0!important;}
.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){margin-top:1.75rem!important;}
.wp-block-embed{margin:4rem auto!important;border-radius:var(--card-radius);overflow:hidden;}
.wp-block-embed .wp-block-embed__wrapper{aspect-ratio:16/9;}

/* ===== blockGap:0 package (remaining fixes; nav gap in header, entry margins above) ===== */
.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 + single furniture ===== */
.page-hero{background:var(--light-bg);padding:calc(var(--header-h) + var(--space-lg)) 0 var(--space-lg);}
body.admin-bar .page-hero{padding-top:calc(var(--header-h) + var(--space-lg));}
.site-main .wp-block-post-title{font-size:var(--text-3xl);font-weight:800;letter-spacing:-0.02em;margin:var(--space-lg) 0 2rem;max-width:none;}
.page-hero .wp-block-post-title{margin-bottom:var(--space-md);}
.page-wrap,.post-wrap{padding-block:var(--space-lg) var(--space-2xl);}
.breadcrumbs{font-size:.85rem;color:var(--text-muted);margin:var(--space-md) 0 0;}
.breadcrumbs a{color:var(--text-muted);text-decoration:none;}
.breadcrumbs a:hover{color:var(--accent-text);}
.breadcrumbs .sep{margin:0 8px;color:var(--tertiary);}
.breadcrumbs [aria-current="page"]{color:var(--text);font-weight:600;}
.post-top-meta{margin:0 0 5rem;}
.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-weight:600;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 16px;border-radius:999px;}
.wp-block-post-terms{display:block;margin-top:var(--space-xl);font-size:.85rem;color:var(--text-muted);}
.wp-block-post-terms a{display:inline-block;background:var(--light-bg);border:1px solid var(--border);border-radius:999px;padding:6px 14px;margin:0 6px 6px 0;color:var(--primary);text-decoration:none;font-weight:600;}
.post-author-box{display:grid;grid-template-columns:72px 1fr;gap:var(--space-md);align-items:center;background:var(--light-bg);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-md);margin-top:var(--space-xl);box-shadow:var(--shadow-sm);}
.post-author-box .wp-block-avatar img{border-radius:50%;}
.post-author-box .byline-label{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;}
.post-author-box .wp-block-post-author-name{font-family:var(--font-heading);font-weight:700;}
.post-author-box .meta-dates{font-size:.85rem;color:var(--text-muted);margin:4px 0 0;}
@media(max-width:600px){.post-author-box{grid-template-columns:1fr;text-align:left;}}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin-top:var(--space-xl);}
.post-nav .wp-block-post-navigation-link{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-md);box-shadow:var(--shadow-sm);font-size:var(--text-lg);font-family:var(--font-heading);font-weight:700;transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.post-nav .wp-block-post-navigation-link .post-navigation-link__label{display:block;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-family:var(--font-body);font-weight:600;margin-bottom:6px;}
.post-nav a{text-decoration:none;color:var(--primary);}
@media(max-width:600px){.post-nav{grid-template-columns:1fr;}}
.related-posts{margin-top:var(--space-xl);}
.related-posts h2{font-size:var(--text-xl);margin-bottom:var(--space-md);}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-md);}
.related-grid .related-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-md);box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.related-grid .related-card a{text-decoration:none;color:var(--primary);font-family:var(--font-heading);font-weight:700;}
.related-grid .related-card time{display:block;font-size:.85rem;color:var(--text-muted);margin-top:8px;}

/* ===== archive, search, index grids ===== */
.archive-wrap,.search-wrap,.author-wrap,.error-wrap{padding-block:calc(var(--header-h) + var(--space-lg)) var(--space-2xl);}
.archive-sub{color:var(--text-muted);font-size:var(--text-lg);margin-bottom:var(--space-lg);}
.wp-block-post-template.is-layout-grid{gap:var(--space-lg);padding-top:var(--space-md);}
.blog-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--accent);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--shadow-md);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.blog-card .wp-block-post-featured-image{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-md)) var(--space-sm);border-radius:calc(var(--card-radius) - 4px) calc(var(--card-radius) - 4px) 0 0;overflow:hidden;}
.blog-card .wp-block-post-featured-image img{border-radius:0;display:block;}
.blog-card .wp-block-post-date{font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin-bottom:var(--space-sm);}
.blog-card :is(h2,h3).wp-block-post-title{font-size:var(--text-lg);font-weight:700;margin:0 0 var(--space-sm);letter-spacing:0;}
.blog-card .wp-block-post-title a{text-decoration:none;color:var(--primary);}
.blog-card .wp-block-post-title a:hover{color:var(--accent-text);}
.blog-card .wp-block-post-excerpt{color:var(--text-muted);flex-grow:1;}
.blog-card .wp-block-post-excerpt__excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.wp-block-query-pagination{margin-top:var(--space-xl);display:flex;gap:8px;justify-content:center;}
.wp-block-query-pagination a,.wp-block-query-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:var(--btn-radius);text-decoration:none;color:var(--primary);font-weight:600;}
.wp-block-query-pagination .page-numbers.current{background:var(--accent);border-color:var(--accent);color:#fff;}
.query-no-results p{color:var(--text-muted);font-size:var(--text-lg);}

/* ===== search form + comments ===== */
.wp-block-search .wp-block-search__input{height:52px;border:1px solid var(--border);border-radius:var(--btn-radius);padding:0 16px;font-family:var(--font-body);font-size:1rem;}
.wp-block-search .wp-block-search__button{background:var(--accent);color:#fff;border:0;border-radius:var(--btn-radius);padding:0 22px;min-height:52px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background-color var(--transition);}
.wp-block-search .wp-block-search__button:hover{background:var(--accent-dark);}
.wp-block-comments{margin-top:var(--space-2xl);}
.wp-block-comments .comment{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);padding:var(--space-md);margin-bottom:var(--space-md);box-shadow:var(--shadow-sm);list-style:none;}
.wp-block-comments ol{list-style:none;padding-left:0;}
.wp-block-comments ol ol{padding-left:var(--space-lg);}
@media(max-width:600px){.wp-block-comments ol ol{padding-left:0;}}
.comment-respond input:not([type=submit]),.comment-respond textarea{width:100%;border:1px solid var(--border);border-radius:var(--btn-radius);padding:12px 16px;font-family:var(--font-body);font-size:1rem;margin-bottom:var(--space-sm);}
.comment-respond input[type=submit]{background:var(--accent);color:#fff;border:0;border-radius:var(--btn-radius);padding:14px 28px;font-family:var(--font-heading);font-weight:600;cursor:pointer;transition:background-color var(--transition);}
.comment-respond input[type=submit]:hover{background:var(--accent-dark);}

/* ===== author hero, 404 ===== */
.author-hero{display:grid;grid-template-columns:96px 1fr;gap:var(--space-md);align-items:center;margin-bottom:var(--space-xl);}
.author-hero .wp-block-avatar img{border-radius:50%;}
.top-pages{list-style:none;padding:0;margin:var(--space-md) 0;display:flex;flex-wrap:wrap;gap:10px;}
.top-pages a{display:inline-flex;align-items:center;padding:10px 18px;min-height:44px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--primary);font-weight:600;font-size:.95rem;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease),background-color .2s,color .2s,border-color .2s;}

/* ===== hover (fine pointers only) ===== */
@media (hover: hover) and (pointer: fine) {
  .btn-primary:hover { background: var(--accent-dark); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(var(--accent-rgb),0.30); }
  .btn-ghost:hover { border-color: var(--white); transform: translateY(-2px); }
  .card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-color: rgba(var(--accent-rgb),0.35); }
  .card:hover .card-icon { transform: scale(1.08) rotate(3deg); }
  .card:hover .card-cta .arrow { transform: translateX(6px); }
  .g-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
  .g-card:hover .card-cta .arrow { transform: translateX(6px); }
  .prop:hover { transform: translateY(-5px); }
  .prop:hover::before { transform: scaleY(1); }
  .pill:hover { background: var(--primary); color: var(--white); border-color: var(--primary); transform: translateY(-3px); }
  .t-card:hover { transform: translateY(-5px) rotate(-0.5deg); box-shadow: var(--shadow-lg); }
  .site-footer a:hover { color: var(--white); }
  a.card-cta:hover { color: var(--accent-dark); }
}


@media(hover:hover) and (pointer:fine){
  .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:var(--accent-dark)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--accent-rgb),.40);}
  .blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);}
  .post-nav .wp-block-post-navigation-link:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .related-grid .related-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .top-pages a:hover{background:var(--primary);color:var(--white);border-color:var(--primary);transform:translateY(-3px);}
}
}

@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;}}
}

/* ===== v1.1.0 patch: core's unlayered layout CSS (blockGap:0 margin resets, container gap:0,
   block-library defaults) beats layered rules, so everything structural below carries !important ===== */
@layer components {

/* grid + flex gaps core zeroes */
.wp-block-post-template.is-layout-grid{gap:var(--space-lg)!important;padding-top:var(--space-md)!important;}
.wp-block-query-pagination{gap:8px!important;margin-top:var(--space-xl)!important;}
.wp-block-comments-pagination{gap:8px!important;margin-top:var(--space-md)!important;}

/* homepage + shared section headers (source: header 720px, h2 then sub, sub mb 40) */
.section-header{margin:0 0 var(--space-sm)!important;}
.section-header .eyebrow,.section-header .section-label{margin:0 0 var(--space-sm)!important;max-width:none;}
.section-header h2{margin:0 0 var(--space-sm)!important;}
.section-header .sub{margin:0 0 var(--space-lg)!important;max-width:68ch;}
.final-cta h2{margin:0 0 var(--space-sm)!important;}
.final-cta p{margin:0 auto var(--space-lg)!important;max-width:55ch;}

/* breadcrumbs, titles, reading badge */
.breadcrumbs{margin:var(--space-md) 0 0!important;}
.site-main .wp-block-post-title{margin:var(--space-lg) 0 2rem!important;}
.page-hero .wp-block-post-title{margin:var(--space-sm) 0 0!important;}
.post-top-meta{margin:0 0 4.5rem!important;}

/* single post furniture */
.wp-block-post-terms{margin:var(--space-xl) 0 0!important;}
.post-nav{margin:var(--space-lg) 0 0!important;}
.related-posts{margin:var(--space-xl) 0 0!important;}
.related-posts h2{margin:0 0 var(--space-md)!important;}
.wp-block-comments{margin:var(--space-2xl) 0 0!important;}
.wp-block-comments .wp-block-comments-title{margin:0 0 var(--space-md)!important;}
.wp-block-comments .comment-body .wp-block-comment-author-name{font-family:var(--font-heading);font-weight:700;margin:0!important;}
.wp-block-comments .comment-body .wp-block-comment-date{font-size:.85rem;color:var(--text-muted);margin:0 0 .75rem!important;display:block;}
.wp-block-comments .comment-body .wp-block-comment-content p{margin:0 0 .75rem!important;max-width:none;}
.wp-block-comments .comment-body .wp-block-comment-reply-link{margin:.5rem 0 0!important;font-size:.85rem;}
.comment-respond{margin-top:var(--space-lg)!important;}

/* author box, rebuilt */
.post-author-box{display:grid!important;grid-template-columns:72px 1fr;gap:var(--space-md);align-items:center;background:var(--light-bg);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--card-radius);padding:var(--space-md) var(--space-lg);margin:var(--space-xl) 0 0!important;box-shadow:var(--shadow-sm);}
.post-author-box .wp-block-avatar{margin:0!important;line-height:0;}
.post-author-box .wp-block-avatar img{border-radius:50%;box-shadow:var(--shadow-sm);}
.post-author-box .byline-label{font-size:.75rem;letter-spacing:.10em;text-transform:uppercase;color:var(--text-muted);margin:0 0 2px!important;max-width:none;}
.post-author-box .wp-block-post-author-name{font-family:var(--font-heading);font-weight:700;font-size:1.05rem;margin:0!important;}
.post-author-box .wp-block-post-author-name a{color:var(--primary);text-decoration:none;}
.post-author-box .meta-dates{font-size:.85rem;color:var(--text-muted);margin:4px 0 0!important;max-width:none;}
@media(max-width:600px){.post-author-box{grid-template-columns:1fr;}}

/* archive / search / author / 404 spacing */
.archive-wrap h1,.wp-block-query-title{margin:0 0 var(--space-sm)!important;}
.archive-sub,.wp-block-term-description{margin:0 0 var(--space-lg)!important;color:var(--text-muted);font-size:var(--text-lg);}
.search-wrap .wp-block-search,.error-wrap .wp-block-search{margin:0 0 var(--space-lg)!important;max-width:560px;}
.error-wrap h1{margin:0 0 var(--space-sm)!important;}
.error-wrap p{margin:0 0 var(--space-md)!important;}
.top-pages{margin:var(--space-md) 0!important;}
.author-hero{margin:0 0 var(--space-xl)!important;}
.author-hero .wp-block-avatar{margin:0!important;line-height:0;}
.author-hero .wp-block-post-author-biography p{margin:0!important;color:var(--text-muted);max-width:60ch;}
.query-no-results p{margin:0 0 var(--space-sm)!important;max-width:none;}

/* blog cards: flush image, tight meta */
.blog-card .wp-block-post-featured-image{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-md)) var(--space-sm)!important;border-radius:calc(var(--card-radius) - 4px) calc(var(--card-radius) - 4px) 0 0;overflow:hidden;}
.blog-card .wp-block-post-date{margin:0 0 var(--space-sm)!important;}
.blog-card :is(h2,h3).wp-block-post-title{margin:0 0 var(--space-sm)!important;}
.blog-card .wp-block-post-excerpt{margin:0!important;}
.blog-card .wp-block-post-excerpt__excerpt{max-width:none;}

/* search form: beat block-library defaults */
.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);font-size:1rem;}
.wp-block-search .wp-block-search__button{background:var(--accent)!important;color:#fff!important;border:0!important;border-radius:var(--btn-radius)!important;padding:0 22px!important;min-height:52px;font-family:var(--font-heading);font-weight:600;cursor:pointer;margin-left:8px!important;}
.wp-block-search .wp-block-search__button:hover{background:var(--accent-dark)!important;}
.wp-block-search__inside-wrapper{border:0!important;padding:0!important;}

/* states mega menu: absolutely anchored to its nav item so the panel touches it (hover never
   breaks crossing a gap), centered on the item, scrolling when taller than 68vh; a short close
   delay forgives micro-exits, and the chevron click-toggle pins it open regardless */
.site-header .wp-block-navigation-item.states-menu{position:relative!important;}
.site-header .wp-block-navigation-item.states-menu>.wp-block-navigation__submenu-container{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:2px!important;
  position:absolute!important;top:100%!important;left:50%!important;right:auto!important;
  transform:translateX(-50%);margin:0!important;
  width:min(760px,calc(100vw - 32px))!important;max-height:min(68vh,600px)!important;overflow-y:auto!important;
  overscroll-behavior:contain;padding:var(--space-sm)!important;
  transition:visibility 0s linear .15s,opacity .12s ease .15s!important;
}
.site-header .wp-block-navigation-item.states-menu:hover>.wp-block-navigation__submenu-container,
.site-header .wp-block-navigation-item.states-menu:focus-within>.wp-block-navigation__submenu-container{transition-delay:0s,0s!important;}
.site-header .wp-block-navigation-item.states-menu>.wp-block-navigation__submenu-container a{padding:8px 14px!important;border-radius:8px;white-space:nowrap;}
.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item{margin:0!important;}

/* mobile overlay: neutralize the desktop panel and style the drawer */
.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__submenu-container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.states-menu>.wp-block-navigation__submenu-container{
  position:static!important;display:block!important;width:auto!important;max-height:none!important;overflow:visible!important;
  margin:0!important;border:0!important;box-shadow:none!important;padding:0 0 0 var(--space-md)!important;border-radius:0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item a{font-size:1.15rem!important;padding:12px 0!important;width:100%;border-bottom:1px solid var(--border);}
}
