/*
Theme Name: Pet Cost Calculators
Theme URI: https://petcostcalculators.com/
Template: twentytwentyfive
Author: BuyerGain
Description: Block child theme for Pet Cost Calculators, generated 2026-10-02 from the v7.4 homepage build.
Version: 1.0.1
Requires at least: 6.8
Tested up to: 6.9
Requires PHP: 8.1
Text Domain: pet-cost-calculators
*/

@layer base, components, utilities;

/* ===================================================================
   BASE: tokens, resets, type primitives, container width
   =================================================================== */
@layer base {
:root{
  --primary:#002853; --primary-rgb:0,40,83; --primary-light:color-mix(in oklch,var(--primary) 12%,white);
  --accent:#009B69; --accent-rgb:0,155,105; --accent-dark:#006E49; --accent-dark-rgb:0,110,73; --accent-text:#006E49;
  --tertiary:#0088E8; --tertiary-rgb:0,136,232;
  --dark-bg:#001530; --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:var(--container-width); --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:'Outfit',system-ui,sans-serif; --font-body:'Nunito',system-ui,sans-serif;
  --font-reading:var(--font-body);
}
*,*::before,*::after{box-sizing:border-box;}
html{overflow-x:hidden;scroll-behavior:smooth;}
body{margin:0;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;}
svg{display:block;}
a{color:var(--accent-text);}
/* 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,.pet-links a,.text-link,.footer-col li a{min-height:0;display:inline;}
@media(max-width:600px){:root{--header-h:72px;--section-padding:var(--space-xl) var(--space-md);--card-padding:var(--space-md);}}

/* Container width: every main-content wrapper resolves to 1240px.
   body:not(.home) on post-content is mandatory: the front page renders through wp:post-content too. */
.pcc-container,.wp-block-group.pcc-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);}
}

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

/* ---------- Header (frosted bar, 1240 inner row, core navigation) ---------- */
.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;min-height:0;}
.site-logo img{width:auto;height:auto;max-height:64px;max-width:min(100%,369px);display:block;margin:0;transition:max-height var(--transition);}
.site-header.scrolled .site-logo img{max-height:50px;}
@media(max-width:600px){.site-logo img,.site-header.scrolled .site-logo img{max-height:50px;max-width:min(100%,288px);}.site-header.scrolled .site-logo img{max-height:44px;}}
.site-header .wp-block-navigation{--wp--style--block-gap:var(--space-xs)!important;}
.site-header .wp-block-navigation__container{display:flex;align-items:center;gap:var(--space-xs)!important;row-gap:8px!important;justify-content:flex-end!important;flex-wrap:wrap;}
.site-header .wp-block-navigation-item a,.site-header .wp-block-navigation-item button.wp-block-navigation-submenu__toggle{color:var(--primary);font-family:var(--font-heading);font-weight:600;font-size:.95rem;padding:10px 8px;position:relative;text-decoration:none;white-space:nowrap;}
.site-header .wp-block-navigation-item a::after{content:'';position:absolute;bottom:4px;left:8px;right:8px;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 .wp-block-navigation__submenu-icon{color:var(--primary);}
.site-header .wp-block-navigation-item.header-cta{margin-left:var(--space-xs);}
/* Header CTA: core's unlayered navigation CSS sets link color and padding, so these carry !important */
.site-header .header-cta>a,.site-header .wp-block-navigation-item.header-cta a,.site-header .wp-block-navigation-item.header-cta .wp-block-navigation-item__content{display:inline-flex!important;align-items:center;justify-content:center;min-height:48px;background:var(--accent-dark)!important;color:#fff!important;padding:12px 26px!important;border-radius:var(--btn-radius)!important;font-family:var(--font-heading)!important;font-size:1rem!important;font-weight:600!important;line-height:1.2;text-decoration:none!important;box-shadow:0 6px 16px rgba(var(--accent-rgb),.22);transition:background-color var(--transition),transform var(--transition),box-shadow var(--transition);}
.site-header .header-cta>a:hover,.site-header .wp-block-navigation-item.header-cta a:hover{background:var(--accent)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--accent-rgb),.32);}
.site-header .header-cta>a::after,.site-header .wp-block-navigation-item.header-cta a::after{display:none;}
.site-header .wp-block-navigation__submenu-container{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--accent);border-radius:12px;box-shadow:var(--shadow-lg);padding:var(--space-xs);min-width:260px;}
.site-header .wp-block-navigation__submenu-container a{padding:8px 14px!important;border-radius:8px;font-size:.92rem;font-family:var(--font-body);color:var(--text);white-space:normal;}
.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);}

/* Wide submenu (Dogs, 9 items): stays absolutely anchored to its item, never position:fixed */
.site-header .wp-block-navigation-item.dogs-menu{position:relative;}
.site-header .wp-block-navigation-item.dogs-menu>.wp-block-navigation__submenu-container{position:absolute!important;top:100%!important;left:0!important;right:auto!important;margin:0!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:2px!important;width:min(560px,calc(100vw - 32px))!important;padding:var(--space-xs)!important;transition:visibility 0s linear .15s,opacity .12s ease .15s;}
.site-header .wp-block-navigation-item.dogs-menu:hover>.wp-block-navigation__submenu-container,.site-header .wp-block-navigation-item.dogs-menu:focus-within>.wp-block-navigation__submenu-container{transition-delay:0s,0s;}

/* ---------- 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;min-height:44px;}
.wp-block-navigation__responsive-container-open svg,.wp-block-navigation__responsive-container-close svg{width:28px;height:28px;}
.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__responsive-container-content{padding-top:var(--space-md);}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{flex-direction:column;align-items:stretch;justify-content:flex-start!important;gap:0!important;}
.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,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item>.wp-block-navigation-item__content{font-size:1.25rem;padding:12px 0!important;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,.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.dogs-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;border-top:0!important;box-shadow:none!important;padding:0 0 var(--space-xs) var(--space-md)!important;background:transparent;}
.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!important;justify-content:center;width:100%;background:var(--accent-dark)!important;color:#fff!important;border-radius:var(--btn-radius)!important;padding:14px 22px!important;font-size:1.1rem!important;}

/* ---------- Shared primitives ---------- */
.eyebrow,.section-label{display:inline-block;font-family:var(--font-heading);font-weight:600;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dark);margin:0 0 var(--space-sm)!important;}
.section-header{max-width:760px;margin:0 0 var(--space-lg)!important;}
.section-header h2{color:var(--primary);margin:0 0 var(--space-lg)!important;}
.section-header .sub,.section-subtitle{font-size:var(--text-lg);color:var(--text-muted);max-width:65ch;margin:0 0 var(--space-lg)!important;}
.text-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-heading);font-weight:600;color:var(--accent-dark);font-size:.85rem;white-space:nowrap;min-height:24px;text-decoration:none;}
.arrow{display:inline-block;transition:transform .25s var(--ease);}
section.wp-block-group{padding:var(--space-2xl) 0;}
@media(max-width:600px){section.wp-block-group{padding:var(--space-xl) 0;}}

/* ---------- Hero (verbatim from source; background-image set inline by setup) ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;width:100%;background-color:var(--primary);background-image:linear-gradient(135deg,var(--primary),color-mix(in oklch,var(--primary) 70%,black));padding:clamp(140px,16vh,220px) 0 clamp(96px,11vh,160px);color:var(--white);}
.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);will-change:transform;}
.hero-overlay{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(100deg,rgba(var(--primary-rgb),.74) 0%,rgba(var(--primary-rgb),.58) 50%,rgba(var(--primary-rgb),.30) 100%);}
.hero-content{position:relative;max-width:var(--hero-content-width);margin-inline:auto;padding-inline:var(--space-md);}
.hero-content>*{animation:rise .7s var(--ease) both;animation-delay:calc(var(--i,0) * 90ms);}
.hero .eyebrow{color:#7FE0BE;}
.hero h1{color:var(--white);max-width:22ch;margin:0 0 var(--space-md);}
.hero-sub{font-size:var(--text-lg);color:rgba(255,255,255,.88);max-width:58ch;margin:0 0 var(--space-lg);}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;}
.scroll-hint{position:absolute;left:50%;bottom:28px;width:26px;height:42px;margin-left:-13px;border:2px solid rgba(255,255,255,.5);border-radius:14px;}
.scroll-hint::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--white);animation:bounce 1.6s ease-in-out infinite;}
@keyframes rise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:none;}}
@keyframes bounce{0%,100%{transform:translateY(0);opacity:1;}50%{transform:translateY(12px);opacity:.4;}}

/* ---------- Buttons: plain anchors in wp:html ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:48px;padding:.8rem 1.6rem;border-radius:var(--btn-radius);font-family:var(--font-heading);font-weight:600;font-size:1rem;line-height:1.2;cursor:pointer;border:2px solid transparent;white-space:nowrap;text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .2s,color .2s,border-color .2s;}
.btn:active{transform:translateY(0) scale(.98);}
.btn-primary{background:var(--accent-dark);color:var(--white)!important;box-shadow:0 10px 24px rgba(0,0,0,.25);}
.btn-outline{background:transparent;color:var(--white)!important;border-color:rgba(255,255,255,.55);}

/* ---------- Buttons: core wp:button forced contrast (no shimmer) ---------- */
.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;}
.wp-block-button .wp-block-button__link.has-accent-background-color{background:var(--accent-dark)!important;}
.wp-block-button .wp-block-button__link.has-white-background-color{background:var(--white)!important;color:var(--primary)!important;font-family:var(--font-heading);font-weight:600;border-radius:var(--btn-radius);box-shadow:0 6px 16px rgba(0,0,0,.18);transition:transform var(--transition),box-shadow var(--transition);}
.wp-block-button .wp-block-button__link:active{transform:translateY(0) scale(.98);}

/* ---------- Trust bar ---------- */
.trust-bar.wp-block-group{padding:var(--space-xl) 0;background:var(--white);}
.trust-lead{max-width:70ch;font-size:var(--text-lg);color:var(--text);margin:0 auto var(--space-lg)!important;text-align:center;}
.trust-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-md);list-style:none;margin:0;padding:0;}
.trust-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:12px;background:var(--surface);}
.trust-item svg{width:28px;height:28px;flex-shrink:0;fill:var(--accent);}
.trust-item span{font-family:var(--font-heading);font-weight:600;color:var(--primary);font-size:.98rem;line-height:1.3;}

/* ---------- Cards (calculators, browse by pet) ---------- */
.calculators.wp-block-group{background:var(--white);border-top:1px solid var(--border);}
.grid-cards,.grid-pets{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);padding-top:var(--space-md);}
.card{position:relative;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--shadow-md);border:1px solid transparent;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.card-icon{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(var(--accent-rgb),.14),rgba(var(--tertiary-rgb),.14));margin-bottom:var(--space-md);transition:transform .3s var(--ease);}
.card-icon svg{width:28px;height:28px;fill:none;stroke:var(--accent-dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.card h3{color:var(--primary);font-size:var(--text-lg);margin:0 0 var(--space-sm);}
.card p{color:var(--text-muted);flex-grow:1;margin:0 0 var(--space-md);}
.pets.wp-block-group{background:var(--white);}
.pet-card .card-icon{background:linear-gradient(135deg,rgba(var(--primary-rgb),.08),rgba(var(--accent-rgb),.16));}
.pet-links{display:grid;gap:2px;margin:0 0 var(--space-sm);padding:0;list-style:none;}
.pet-links a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);padding:.45rem .6rem;border-radius:8px;font-weight:600;font-size:.95rem;color:var(--text);text-decoration:none;transition:background-color .2s,color .2s,transform .2s var(--ease);}
.pet-links a svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.5;}

/* ---------- Why / value props ---------- */
.why.wp-block-group{background:var(--light-bg);}
.why-grid.wp-block-columns{gap:var(--space-xl)!important;align-items:center;}
.prop-list{display:grid;gap:var(--space-md);list-style:none;margin:0;padding:0;}
.prop{position:relative;display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--surface);border-radius:12px;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
.prop::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--accent);transform:scaleY(0);transform-origin:center;transition:transform .3s var(--ease);}
.prop svg{width:26px;height:26px;flex-shrink:0;margin-top:4px;fill:none;stroke:var(--accent-dark);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.prop h3{font-size:var(--text-base);color:var(--primary);margin:0 0 4px;}
.prop p{margin:0;color:var(--text-muted);font-size:.95rem;}
.wp-block-group.why-cta{margin-top:var(--space-lg)!important;}
.why-figure{margin:0;}
.why-figure svg{width:100%;height:auto;border-radius:var(--card-radius);box-shadow:var(--shadow-glow);}

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

/* ---------- Final CTA strip ---------- */
.final-cta.wp-block-group{position:relative;isolation:isolate;overflow:hidden;background:var(--primary)!important;color:var(--white);text-align:center;}
.final-cta::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.35;pointer-events:none;background:radial-gradient(60% 80% at 10% 0%,rgba(var(--accent-rgb),.55),transparent 60%),radial-gradient(50% 70% at 95% 100%,rgba(var(--tertiary-rgb),.45),transparent 60%);}
.final-cta h2{color:var(--white)!important;margin:0 auto var(--space-sm)!important;max-width:20ch;}
.final-cta p{color:rgba(255,255,255,.86)!important;font-size:var(--text-lg);max-width:60ch;margin:0 auto var(--space-lg)!important;}
.final-cta .wp-block-buttons{justify-content:center;margin-top:0!important;}

/* ---------- 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:.04em;text-transform:uppercase;margin:0 0 var(--space-md)!important;}
.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,.82);font-size:.95rem;line-height:1.65;max-width:42ch;}
.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,.82);font-size:.95rem;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,.12);padding:var(--space-md);text-align:center;font-size:.88rem;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;max-width:100%;}
.footer-logo:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.32);}
.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));}}

/* ---------- Page title band + breadcrumbs (page.html, single.html) ---------- */
.page-hero{background:var(--light-bg)!important;padding:var(--space-xl) 0 var(--space-lg)!important;width:100%;}
.page-hero .wp-block-post-title{margin:var(--space-sm) 0 0!important;}
.breadcrumbs{font-size:.88rem;color:var(--text-muted);margin:0 0 var(--space-sm)!important;}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;}
.breadcrumbs li+li::before{content:"/";color:var(--border);margin-right:6px;}
.breadcrumbs a{color:var(--accent-text);text-decoration:none;}
.breadcrumbs [aria-current]{color:var(--text-muted);}
.post-wrap .breadcrumbs{margin-top:var(--space-lg)!important;}
.wp-block-post-title{font-size:var(--text-3xl);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--primary);margin:var(--space-lg) 0 2rem!important;}
.page-wrap{padding-top:var(--space-xl)!important;padding-bottom:var(--space-xl)!important;}
.post-wrap{padding-bottom:var(--space-xl)!important;}

/* ---------- Post furniture: reading badge, terms, author box, nav, related, comments ---------- */
.post-top-meta{margin:0 0 5rem!important;display:flex;gap:var(--space-sm);align-items:center;}
.reading-time-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-family:var(--font-heading);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;}
.reading-time-badge svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;}
.wp-block-post-terms{margin:var(--space-xl) 0 0!important;display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;}
.wp-block-post-terms a{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--light-bg);color:var(--accent-text);text-decoration:none;font-weight:600;}
.wp-block-post-terms .wp-block-post-terms__separator{display:none;}
.post-author-box{display:grid;grid-template-columns:72px 1fr;gap:var(--space-md);align-items:center;margin:var(--space-xl) 0 0!important;padding:var(--space-md);background:var(--light-bg);border-radius:var(--card-radius);}
.post-author-box .wp-block-avatar img{border-radius:50%;}
.post-author-box .author-label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0!important;}
.post-author-box .wp-block-post-author-name{font-family:var(--font-heading);font-weight:700;font-size:var(--text-lg);margin:4px 0!important;}
.post-author-box .post-dates{font-size:.88rem;color:var(--text-muted);margin:0!important;}
@media(max-width:600px){.post-author-box{grid-template-columns:1fr;}}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)!important;margin:var(--space-xl) 0 0!important;}
.post-nav .wp-block-post-navigation-link{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);margin:0!important;}
.post-nav .post-navigation-link-next{text-align:right;}
.post-nav .wp-block-post-navigation-link a{text-decoration:none;color:var(--primary);font-family:var(--font-heading);font-size:var(--text-lg);font-weight:600;}
.post-nav .post-navigation-link__label{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;}
@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);color:var(--primary);margin:0 0 var(--space-md)!important;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-md);list-style:none;margin:0;padding:0;}
.related-grid li{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);}
.related-grid a{font-family:var(--font-heading);font-weight:600;color:var(--primary);text-decoration:none;}
.related-grid time{display:block;font-size:.85rem;color:var(--text-muted);margin-top:6px;}
.wp-block-comments{margin:var(--space-xl) 0 0!important;}
.wp-block-comments .wp-block-comments-title,.wp-block-comments .wp-block-post-comments-form .comment-reply-title{font-size:var(--text-xl);margin:0 0 var(--space-md)!important;}
.wp-block-comments .wp-block-comment-template{list-style:none;padding:0;margin:0 0 var(--space-lg)!important;}
.wp-block-comments .wp-block-comment-template>li{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--card-radius);margin:0 0 var(--space-md)!important;background:var(--surface);}
.wp-block-comments .wp-block-comment-template ol{list-style:none;padding-left:var(--space-lg);margin:var(--space-md) 0 0!important;}
.wp-block-comments .wp-block-comment-author-name{font-family:var(--font-heading);font-weight:600;}
.wp-block-comments .wp-block-comment-date{font-size:.85rem;color:var(--text-muted);}
.wp-block-post-comments-form{margin:0!important;}
.wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments-form textarea{width:100%;border:1px solid var(--border)!important;border-radius:var(--btn-radius)!important;padding:12px 16px!important;font-family:var(--font-body);font-size:1rem;background:var(--white);}
.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:12px 24px!important;font-family:var(--font-heading);font-weight:600;cursor:pointer;}
@media(max-width:600px){.wp-block-comments .wp-block-comment-template ol{padding-left:0;}}

/* ---------- Archive, index, search, author, 404 ---------- */
.archive-wrap,.author-wrap,.search-wrap,.error-wrap{padding-top:var(--space-xl)!important;padding-bottom:var(--space-xl)!important;}
.archive-wrap>h1,.search-wrap>h1,.author-wrap h1,.error-wrap>h1,.wp-block-query-title{font-size:var(--text-3xl);color:var(--primary);margin:0 0 var(--space-sm)!important;}
.archive-subtitle,.wp-block-term-description,.error-wrap>p,.search-wrap>p{color:var(--text-muted);font-size:var(--text-lg);max-width:65ch;margin:0 0 var(--space-lg)!important;}
.wp-block-post-template.is-layout-grid{gap:var(--space-lg)!important;padding-top:var(--space-md)!important;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;}
.blog-card{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-sm);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.blog-card .wp-block-post-featured-image{margin:calc(var(--space-lg) * -1) calc(var(--space-md) * -1) var(--space-md)!important;}
.blog-card .wp-block-post-featured-image img{border-radius:0;width:100%;}
.blog-card .wp-block-post-date{font-size:.85rem;color:var(--text-muted);margin:0 0 var(--space-xs)!important;}
.blog-card .wp-block-post-title{font-size:var(--text-lg);font-weight:700;line-height:1.3;margin:0 0 var(--space-sm)!important;}
.blog-card .wp-block-post-title a{color:var(--primary);text-decoration:none;}
.blog-card .wp-block-post-excerpt{margin:0!important;}
.blog-card .wp-block-post-excerpt__excerpt{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--text-muted);font-size:.95rem;margin: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{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--border);color:var(--primary);text-decoration:none;font-weight:600;}
.wp-block-query-pagination .page-numbers.current{background:var(--accent-dark);color:#fff;border-color:var(--accent-dark);}
.wp-block-query-no-results p{color:var(--text-muted);margin:0 0 var(--space-md)!important;}
.author-hero{display:flex;gap:var(--space-md);align-items:center;margin:0 0 var(--space-lg)!important;}
.author-hero .wp-block-avatar img{border-radius:50%;}
.author-hero .wp-block-post-author-biography{color:var(--text-muted);margin:0!important;}
.top-pages{margin:var(--space-md) 0 var(--space-lg)!important;}
.top-pages ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;}
.top-pages a{display:inline-block;padding:10px 16px;border-radius:999px;border:1px solid var(--border);color:var(--primary);text-decoration:none;font-weight:600;}
.wp-block-search{margin:0 0 var(--space-lg)!important;max-width:640px;}
.wp-block-search .wp-block-search__inside-wrapper{gap:8px;border:0!important;padding:0!important;}
.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;background:var(--white)!important;color:var(--text)!important;}
.wp-block-search .wp-block-search__button{height:52px!important;border:0!important;border-radius:var(--btn-radius)!important;padding:0 22px!important;background:var(--accent-dark)!important;color:#fff!important;font-family:var(--font-heading);font-weight:600;cursor:pointer;margin-left:0!important;}
.error-wrap .wp-block-buttons{margin-top:var(--space-md)!important;}

/* ---------- blockGap:0 package ---------- */
.section-cta .wp-block-buttons{margin-top:var(--space-lg)!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);}

/* ---------- Entry-content rhythm (verbatim contract, scoped off the homepage and page-builder pages) ---------- */
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;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-gallery{gap:var(--space-md)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-columns img{margin-block:var(--space-sm)!important;}
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,.wp-block-image)+:is(h2,h3,h4){margin-top:1.75rem!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-embed{margin:4rem auto!important;border-radius:16px;overflow:hidden;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-embed .wp-block-embed__wrapper{aspect-ratio:16/9;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) .wp-block-embed iframe{width:100%;height:100%;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(details,.wp-block-details){margin:0 0 1.5rem!important;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);padding:0 var(--space-md)!important;}
body:not(.pb-content):not(.home) :is(.entry-content,.wp-block-post-content) :is(details,.wp-block-details) summary{min-height:44px;cursor:pointer;font-family:var(--font-heading)!important;font-weight:600;color:var(--primary);padding:var(--space-sm) 0;}

/* ---------- Hover (fine pointers only) ---------- */
@media(hover:hover) and (pointer:fine){
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(var(--accent-rgb),.30);background:var(--accent-dark);}
  .btn-outline:hover{transform:translateY(-2px);border-color:var(--white);background:rgba(255,255,255,.08);}
  .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)!important;color:#fff!important;transform:translateY(-2px);box-shadow:0 12px 28px rgba(var(--accent-rgb),.40);}
  .wp-block-button .wp-block-button__link.has-white-background-color:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.25);}
  .card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:rgba(var(--accent-rgb),.35);}
  .card:hover .card-icon{transform:scale(1.08) rotate(3deg);}
  .card:hover .arrow,.text-link:hover .arrow{transform:translateX(6px);}
  .prop:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
  .prop:hover::before{transform:scaleY(1);}
  .pet-links a:hover{background:var(--light-bg);color:var(--accent-dark);transform:translateY(-1px);}
  .pet-links a:hover svg{opacity:1;}
  .blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:transparent;}
  .wp-block-query-pagination a:hover,.top-pages a:hover{background:var(--light-bg);}
  .related-grid a:hover{color:var(--accent-dark);}
}

/* ---------- Responsive ---------- */
@media(max-width:781px){
  .why-grid.wp-block-columns .wp-block-column.why-figure-col{order:-1;}
  .hero h1{max-width:none;}
}
@media(max-width:600px){
  .hero-cta .btn{width:100%;}
  .scroll-hint{display:none;}
}
}

/* ===================================================================
   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;}}
}
