/*
Theme Name: Tax Shop Outeniqua
Theme URI: https://taxshop.co.za
Author: The Tax Shop Outeniqua
Description: Custom theme for The Tax Shop Outeniqua — accounting, tax and payroll services in George, South Africa.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: taxshop-outeniqua
*/

:root{
  --ink:#1E2328;
  --ink-soft:#333A40;
  --paper:#FAFAF8;
  --sand:#EFEEEA;
  --clay:#E15A2B;
  --clay-dark:#C24A21;
  --peach:#F4DDCB;
  --gold:#E8B14F;
  --slate:#69707A;
  --line:#DEDDD8;
  --white:#FFFFFF;
  --radius:4px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Utility: force a heading/line onto one row on desktop, but let it wrap
   normally as soon as the layout gets tight, so it never gets clipped. */
.nowrap-until-mobile{white-space:nowrap;}
@media (max-width:940px){
  .nowrap-until-mobile{white-space:normal;}
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  max-width:100vw;
}
h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:500;
  line-height:1.15;
  margin:0;
  color:var(--ink);
}
p{margin:0;color:var(--ink-soft);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1300px;margin:0 auto;padding:0 32px;}
section{padding:96px 0;}
.measure{max-width:60ch;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:12px 20px;z-index:999;}
.skip-link:focus{left:16px;top:16px;}

/* Announcement bar */
.announce-bar{
  background:var(--ink);color:rgba(250,250,248,.85);
  text-align:center;font-size:13px;padding:9px 16px;
}
.announce-bar a{color:var(--clay);font-weight:600;text-decoration:underline;text-underline-offset:2px;}

/* Buttons */
.btn-pill{background:var(--clay);color:var(--white);border-radius:999px;padding:15px 30px;}
.btn-pill:hover{background:var(--clay-dark);}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 26px;
  font-family:'Inter',sans-serif;font-weight:600;font-size:15px;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn-primary{background:var(--clay);color:var(--white);}
.btn-primary:hover{background:var(--clay-dark);}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent;}
.btn-outline:hover{background:var(--ink);color:var(--paper);}
.btn-outline-clay{border-color:var(--clay);color:var(--clay-dark);background:transparent;}
.btn-outline-clay:hover{background:var(--clay);color:var(--white);border-color:var(--clay);}
.btn-outline-light{border-color:rgba(251,247,241,.4);color:var(--paper);background:transparent;}
.btn-outline-light:hover{background:var(--paper);color:var(--ink);}

/* Nav */
header.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(251,247,241,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
nav.wrap{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;
}
.logo{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.logo span{color:var(--clay);}
.logo-image{display:flex;align-items:center;}
.logo-image img{height:58px;width:auto;max-width:none;}
.logo-image a{display:flex;}
.nav-links{display:flex;gap:36px;align-items:center;list-style:none;margin:0;padding:0;}
.nav-links a{font-size:15px;font-weight:500;color:var(--ink-soft);}
.nav-links a:hover{color:var(--clay);}
.nav-links li{position:relative;}
.nav-links .menu-item-has-children > a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.6;}
.nav-links .sub-menu{
  list-style:none;margin:0;padding:8px 0;
  position:absolute;top:100%;left:0;min-width:200px;
  background:var(--paper);border:1px solid var(--line);border-radius:6px;
  box-shadow:0 16px 32px rgba(30,35,40,.14);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
  z-index:60;
}
.nav-links li:hover > .sub-menu,
.nav-links li:focus-within > .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav-links .sub-menu a{display:block;padding:10px 18px;font-size:14px;white-space:nowrap;}
.nav-links .sub-menu a:hover{background:var(--sand);color:var(--clay);}
.menu-back{display:none;}
.nav-cta{display:flex;gap:12px;align-items:center;}
.nav-phone{display:flex;align-items:center;gap:7px;font-weight:600;font-size:15px;white-space:nowrap;}
.nav-phone svg{width:17px;height:17px;color:var(--clay);flex-shrink:0;}
.nav-phone:hover{color:var(--clay);}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:4px;}
.menu-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;}

/* Hero */
.hero-band{background:var(--paper);padding:0;position:relative;overflow:hidden;}
.hero-bg{position:absolute;inset:0;display:flex;}
.bg-left{flex:1.05;background:var(--ink);}
.bg-right{flex:.95;background:var(--peach);}
.hero-split{position:relative;z-index:1;display:flex;min-height:560px;max-width:1300px;margin:0 auto;}
.hero-left{flex:1.05;display:flex;align-items:center;}
.hero-right{flex:.95;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;}
.hero-left-inner{padding:80px 56px 80px 32px;max-width:560px;}
.hero-left h1{color:var(--paper);font-size:48px;letter-spacing:-.01em;}
.hero-left .measure{margin-top:20px;font-size:17px;color:rgba(250,250,248,.72);}
.hero-ctas{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.blob-wrap{position:relative;width:440px;height:440px;}
.blob{position:absolute;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;}
.blob-a{width:170px;height:170px;background:var(--gold);top:-30px;left:-40px;}
.blob-b{width:150px;height:150px;background:var(--clay);bottom:-36px;right:-30px;border-radius:40% 60% 70% 30%/50% 60% 40% 50%;}
.hero-photo-wrap{position:relative;}
.hero-photo-wrap::before{
  content:"";
  position:absolute;
  top:24px;left:24px;right:-24px;bottom:-24px;
  border:2px solid var(--clay);
  z-index:0;
}
.hero-photo{border-radius:2px;overflow:hidden;aspect-ratio:4/5;position:relative;z-index:1;}
.hero-photo img{width:100%;height:100%;object-fit:cover;}
.circle-photo{border-radius:50%;aspect-ratio:1/1;position:absolute;inset:20px;z-index:1;box-shadow:0 0 0 6px var(--peach);}
.corner-mark{position:absolute;width:22px;height:22px;z-index:2;}
.corner-mark.tl{top:-1px;left:-1px;border-top:3px solid var(--clay);border-left:3px solid var(--clay);}
.corner-mark.br{bottom:-1px;right:-1px;border-bottom:3px solid var(--clay);border-right:3px solid var(--clay);}
.trust-strip{
  margin-top:56px;padding-top:28px;border-top:1px solid var(--line);
  display:flex;gap:48px;flex-wrap:wrap;
}
.trust-strip div{display:flex;flex-direction:column;gap:2px;}
.trust-strip strong{font-family:'Fraunces',serif;font-size:26px;font-weight:500;}
.trust-strip span{font-size:13px;color:var(--slate);}
.trust-strip-dark{border-top-color:rgba(250,250,248,.15);}
.trust-strip-dark strong{color:var(--paper);}
.trust-strip-dark span{color:rgba(250,250,248,.6);}

/* About */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:72px;align-items:center;}
.about-photo{border-radius:6px;overflow:hidden;}
.eyebrow{font-size:14px;font-weight:600;color:var(--clay);margin-bottom:14px;}
.about-grid h2{font-size:36px;margin-bottom:20px;}
.about-grid p + p{margin-top:14px;}
.about-grid .btn{margin-top:28px;}

/* Services */
.services{background:var(--sand);}
.services-head{max-width:640px;margin-bottom:56px;}
.services-head h2{font-size:36px;margin-top:14px;}
.services-head p{margin-top:14px;font-size:17px;}
.cat-group{margin-bottom:44px;}
.cat-group:last-child{margin-bottom:0;}
.cat-group h3{font-size:15px;font-family:'Inter',sans-serif;font-weight:700;color:var(--ink);margin-bottom:20px;}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.svc-grid-3{grid-template-columns:repeat(3,1fr);}
.svc-card{
  background:var(--paper);
  border:1px solid var(--line);
  border-top:3px solid var(--line);
  padding:26px 24px;
  display:flex;flex-direction:column;
  transition:border-top-color .15s ease;
}
.svc-card:hover{border-top-color:var(--clay);}
.svc-icon{
  display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;margin-bottom:16px;
  background:var(--peach);border-radius:50%;
  color:var(--clay-dark);flex-shrink:0;
}
.svc-icon svg{width:22px;height:22px;}
.svc-card h4{font-family:'Inter',sans-serif;font-size:16px;font-weight:600;margin-bottom:8px;}
.svc-card p{font-size:14px;color:var(--slate);flex-grow:1;}
.svc-card .svc-cta{margin-top:18px;font-size:13px;font-weight:600;color:var(--clay);display:inline-flex;align-items:center;gap:6px;}
.svc-card .svc-cta:hover{color:var(--clay-dark);}

/* Stats band */
.stats{background:var(--ink);color:var(--paper);}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.stats-grid div{text-align:left;}
.stats-grid strong{font-family:'Fraunces',serif;font-size:44px;font-weight:500;color:var(--clay);display:block;}
.stats-grid span{font-size:14px;color:rgba(251,247,241,.7);}

/* Testimonials */
.testi-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:24px;flex-wrap:wrap;}
.testi-head h2{font-size:36px;}
.testi-widget{max-width:100%;overflow-x:hidden;}
.testi-more{text-align:center;margin-top:40px;}

/* Blog */
.blog-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:24px;flex-wrap:wrap;}
.blog-head h2{font-size:36px;}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;}
.blog-photo{border-radius:4px;overflow:hidden;aspect-ratio:16/10;margin-bottom:18px;background:var(--sand);}
.blog-photo img{width:100%;height:100%;object-fit:cover;}
.blog-card small{font-size:13px;color:var(--slate);}
.blog-card h4{font-family:'Fraunces',serif;font-size:19px;font-weight:500;margin:8px 0 8px;}
.blog-card p{font-size:14px;}
.blog-card .read{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:var(--clay);}

/* CTA band */
.cta-band{background:var(--clay);}
.cta-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;}
.cta-inner h2{color:var(--paper);font-size:32px;white-space:nowrap;}
.cta-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.btn-dark{background:var(--ink);color:var(--paper);}
.btn-dark:hover{background:#000;}
.cta-email{font-weight:600;font-size:15px;color:var(--paper);text-underline-offset:3px;text-decoration:underline;}
.cta-email:hover{color:var(--ink);}

/* Footer */
footer.site-footer{background:var(--ink);color:rgba(251,247,241,.75);padding-top:64px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(251,247,241,.12);}
.foot-grid h5{font-family:'Inter',sans-serif;color:var(--paper);font-size:14px;font-weight:700;margin-bottom:18px;}
.foot-grid p{color:rgba(251,247,241,.6);font-size:14px;margin-top:12px;}
.foot-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
.foot-links a{font-size:14px;color:rgba(251,247,241,.75);}
.foot-links a:hover{color:var(--clay);}
.foot-logo{font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--paper);}
.foot-logo span{color:var(--clay);}
.foot-logo img{height:44px;width:auto;}
.foot-social{list-style:none;margin:20px 0 0;padding:0;display:flex;gap:12px;}
.foot-social a{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;
  background:rgba(251,247,241,.08);color:rgba(251,247,241,.75);
  transition:background .15s ease, color .15s ease;
}
.foot-social a:hover{background:var(--clay);color:var(--white);}
.foot-social svg{width:16px;height:16px;}
.foot-bottom{padding:24px 0;display:flex;justify-content:space-between;font-size:13px;color:rgba(251,247,241,.5);flex-wrap:wrap;gap:8px;}
.foot-bottom a:hover{color:rgba(251,247,241,.8);}

/* Generic page/post content (used by non-front-page templates) */
.page-content{padding:64px 0;}
.page-content h1{font-size:40px;margin-bottom:24px;}
.entry-content > * + *{margin-top:18px;}
.entry-content h2{font-size:30px;font-weight:600;margin-top:48px;padding-bottom:14px;border-bottom:3px solid var(--clay);}
.entry-content h3{font-family:'Inter',sans-serif;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--clay-dark);margin-top:32px;}
.entry-content ul,.entry-content ol{color:var(--ink-soft);padding-left:22px;}
.entry-content img{border-radius:4px;margin:24px 0;}
.entry-content a{color:var(--clay-dark);text-decoration:underline;text-underline-offset:2px;}
.entry-content strong{color:var(--ink);}
.entry-content blockquote{border-left:3px solid var(--clay);padding-left:20px;font-style:italic;color:var(--ink-soft);}

/* Intro band (used at the top of interior pages) */
.intro-band{padding:72px 0 8px;}
.intro-band .measure{margin-top:18px;font-size:17px;}
.intro-band .btn{margin-top:28px;}
.intro-band-dark{
  background:#1E2328;position:relative;overflow:hidden;
  padding:96px 0;
}
.intro-inner{position:relative;z-index:1;text-align:center;}
.intro-band-dark h1{color:var(--paper);}
.intro-band-dark .measure{color:rgba(250,250,248,.72);margin-left:auto;margin-right:auto;}
.intro-band-dark .btn{display:inline-flex;}
.intro-blob{position:absolute;border-radius:60% 40% 30% 70%/60% 30% 70% 40%;z-index:0;}
.intro-blob-left{width:260px;height:260px;background:var(--gold);top:-70px;left:-90px;}
.intro-blob-right{width:220px;height:220px;background:var(--clay);bottom:-70px;right:-70px;border-radius:40% 60% 70% 30%/50% 60% 40% 50%;}

/* Pricing */
.pricing{background:var(--sand);}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pricing-card{background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--line);padding:32px 28px;display:flex;flex-direction:column;}
.pricing-card.is-featured{border-top-color:var(--clay);box-shadow:0 12px 32px rgba(30,35,40,.08);}
.pricing-card h3{font-size:20px;}
.pricing-card .pricing-tagline{margin-top:8px;font-size:14px;color:var(--slate);}
.pricing-card .pricing-includes{font-size:13px;font-weight:700;color:var(--ink);margin-top:24px;padding-top:24px;border-top:1px solid var(--line);}
.pricing-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px;flex-grow:1;}
.pricing-list li{font-size:14px;color:var(--ink-soft);padding-left:22px;position:relative;}
.pricing-list li::before{content:"✓";position:absolute;left:0;color:var(--clay);font-weight:700;}
.pricing-card .btn{margin-top:24px;justify-content:center;}
.pricing-disclaimer{margin-top:32px;font-size:13px;color:var(--slate);text-align:center;}

/* Blog hero (single-colour dark hero, homepage image treatment) */
.blog-hero{background:var(--ink);position:relative;overflow:hidden;padding:88px 0;}
.blog-hero .intro-blob-left{top:-80px;left:-100px;}
.blog-hero .intro-blob-right{bottom:-80px;right:-80px;}
.blog-hero-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:56px;flex-wrap:wrap;}
.blog-hero h1{color:var(--paper);font-size:42px;margin-top:14px;letter-spacing:-.01em;}
.blog-hero-text{flex:1.1;min-width:280px;}
.blog-hero-meta{margin-top:22px;font-size:14px;color:rgba(250,250,248,.65);display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.blog-hero-meta span:not(:last-child)::after{content:"•";margin-left:10px;color:rgba(250,250,248,.35);}
.blog-hero-photo{flex:.9;display:flex;justify-content:center;min-width:260px;}
.blog-hero-text-only{text-align:center;max-width:760px;margin:0 auto;}
.blog-hero-text-only .blog-hero-meta{justify-content:center;}

/* Blog single body: content + table of contents */
.blog-body{padding:80px 0;}
.blog-body-grid{display:grid;grid-template-columns:1fr 280px;gap:64px;align-items:start;}
.blog-toc{position:sticky;top:110px;background:var(--sand);border:1px solid var(--line);border-radius:8px;padding:24px;}
.blog-toc h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink);margin-bottom:16px;font-family:'Inter',sans-serif;}
.blog-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:toc;}
.blog-toc li{counter-increment:toc;}
.blog-toc li a{
  display:flex;gap:10px;font-size:14px;color:var(--ink-soft);line-height:1.4;
}
.blog-toc li a::before{content:counter(toc);flex-shrink:0;color:var(--clay);font-weight:700;font-size:13px;}
.blog-toc li a:hover{color:var(--clay);}
.blog-toc li.toc-level-3{padding-left:20px;}

/* Related posts */
.related-posts{background:var(--sand);}

/* Floating WhatsApp button */
.whatsapp-float{
  position:fixed;right:24px;bottom:24px;z-index:60;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.25);
  transition:transform .15s ease, box-shadow .15s ease;
}
.whatsapp-float:hover{transform:scale(1.06);box-shadow:0 10px 28px rgba(0,0,0,.3);}
.whatsapp-float svg{width:30px;height:30px;}
@media (max-width:560px){
  .whatsapp-float{width:52px;height:52px;right:16px;bottom:16px;}
  .whatsapp-float svg{width:26px;height:26px;}
}

/* Service page template */
.why-us-title{white-space:nowrap;}
.intro-points{list-style:none;margin:24px 0 0;padding:0;display:flex;justify-content:center;gap:28px;flex-wrap:wrap;}
.intro-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;}
.about-grid .intro-ctas{justify-content:flex-start;}
.services-head .intro-ctas{justify-content:center;}
.intro-points li{display:flex;align-items:center;gap:8px;font-size:14px;color:rgba(250,250,248,.85);}
.intro-points svg{color:var(--clay);flex-shrink:0;}
.includes-list{
  list-style:none;margin:40px auto 0;padding:0;max-width:1000px;
  display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;
}
.includes-list li{
  font-size:15px;color:var(--ink-soft);padding-left:26px;position:relative;
}
.includes-list li::before{content:"✓";position:absolute;left:0;color:var(--clay);font-weight:700;}
.area-marquee{
  margin-top:28px;overflow:hidden;
  -webkit-mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  mask-image:linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}
.area-chips{
  list-style:none;margin:0;padding:0;
  display:flex;gap:12px;width:max-content;
  animation:tso-area-scroll 26s linear infinite;
}
.area-marquee:hover .area-chips{animation-play-state:paused;}
.area-chips li{
  background:var(--paper);border:1px solid var(--line);border-radius:999px;
  padding:8px 20px;font-size:14px;font-weight:600;color:var(--ink);
  white-space:nowrap;flex-shrink:0;transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.area-chips li:has(a):hover{background:var(--clay);border-color:var(--clay);}
.area-chips li:has(a):hover a{color:var(--white);}
@keyframes tso-area-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .area-chips{animation:none;}
}

/* About page */
.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.mission-grid .svc-card{align-items:flex-start;}
.values-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:8px;}
.values-list li{font-size:14px;color:var(--ink-soft);padding-left:20px;position:relative;}
.values-list li::before{content:"✓";position:absolute;left:0;color:var(--clay);font-weight:700;}

.team-row{display:grid;grid-template-columns:.7fr 1.3fr;gap:56px;align-items:center;margin-top:72px;}
.team-row:first-child{margin-top:0;}
.team-row.reverse{grid-template-columns:1.3fr .7fr;}
.team-row.reverse .team-photo{order:2;}
.team-photo{border-radius:6px;overflow:hidden;aspect-ratio:3/4;}
.team-photo img{width:100%;height:100%;object-fit:cover;}
.team-info .team-role{font-size:14px;font-weight:600;color:var(--clay);margin-bottom:6px;}
.team-info h3{font-size:28px;margin-bottom:16px;}
.team-info p + p{margin-top:14px;}

/* Thank you page */
.thank-you-check{
  display:flex;align-items:center;justify-content:center;
  width:64px;height:64px;margin:0 auto 24px;border-radius:50%;
  background:var(--clay);color:var(--white);
}
.thank-you-check svg{width:30px;height:30px;}

/* Tax calculator page */
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;}
.calc-form{display:flex;flex-direction:column;gap:18px;}
.calc-form .btn{align-self:flex-start;margin-top:4px;}
.calc-note{font-size:13px;color:var(--slate);margin-top:16px;padding-top:16px;border-top:1px solid var(--line);}
.calc-results{background:var(--sand);border:1px solid var(--line);border-radius:8px;padding:28px;position:sticky;top:110px;}
.calc-result-primary{background:var(--ink);border-radius:6px;padding:24px;text-align:center;margin-bottom:20px;}
.calc-result-primary .calc-result-label{color:rgba(250,250,248,.7);}
.calc-result-primary .calc-result-value{color:var(--clay);font-family:'Fraunces',serif;font-size:36px;font-weight:600;margin-top:6px;}
.calc-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.calc-result-card{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:16px;}
.calc-result-label{font-size:12px;color:var(--slate);}
.calc-result-value{font-family:'Fraunces',serif;font-size:20px;font-weight:600;color:var(--ink);margin-top:4px;}

/* Contact page */
.tso-honeypot{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.form-notice{padding:14px 16px;border-radius:4px;font-size:14px;margin-top:18px;}
.form-notice-error{background:#FCEBE8;border:1px solid #F0B8AE;color:var(--clay-dark);}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
.contact-grid h2{font-size:30px;margin-top:8px;}
.contact-form{margin-top:28px;display:flex;flex-direction:column;gap:18px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field label{font-size:13px;font-weight:600;color:var(--ink);}
.form-field input,.form-field select,.form-field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:4px;
  font-family:'Inter',sans-serif;font-size:15px;color:var(--ink);background:var(--paper);
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--clay);outline-offset:1px;}
.form-field textarea{min-height:140px;resize:vertical;}
.contact-form .btn{align-self:flex-start;margin-top:4px;}
.contact-details{margin-top:0;}
.contact-detail-card{display:flex;gap:16px;align-items:center;margin-top:24px;}
.contact-detail-card .svc-icon{margin-bottom:0;flex-shrink:0;}
.contact-detail-card h4{font-family:'Inter',sans-serif;font-size:15px;font-weight:600;margin-bottom:4px;}
.contact-detail-card p{font-size:15px;color:var(--ink-soft);}
.contact-detail-card a{color:var(--ink-soft);}
.contact-detail-card a:hover{color:var(--clay);}
.map-embed{width:100%;aspect-ratio:16/6;border-radius:6px;overflow:hidden;border:1px solid var(--line);}

/* FAQ accordion */
.faq-list{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:0 32px;align-items:start;}
.faq-column{display:flex;flex-direction:column;}
.faq-item{
  background:var(--white);border:1px solid var(--line);border-radius:6px;
  padding:4px 24px;margin:0 0 20px;
}
.faq-item summary{
  list-style:none;cursor:pointer;padding:20px 0;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  font-family:'Fraunces',serif;font-size:18px;font-weight:500;color:var(--ink);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:'Inter',sans-serif;font-size:22px;color:var(--clay);flex-shrink:0;}
.faq-item[open] summary::after{content:"−";}
.faq-item .faq-answer{padding:0 0 20px;font-size:15px;color:var(--ink-soft);}

@media (max-width:940px){
  .services-head h2.why-us-title{white-space:normal;}
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px;}
  .pricing-grid{grid-template-columns:1fr;}
  .faq-list{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;gap:48px;}
  .calc-grid{grid-template-columns:1fr;gap:32px;}
  .mission-grid{grid-template-columns:1fr;}
  .team-row,.team-row.reverse{grid-template-columns:1fr;gap:24px;margin-top:48px;}
  .team-row .team-photo,.team-row.reverse .team-photo{order:-1;max-width:280px;}
  .calc-results{position:static;}
  .includes-list{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .blog-body-grid{grid-template-columns:1fr;gap:32px;}
  .blog-toc{position:static;order:-1;}
  .blog-hero h1{font-size:32px;}
  .map-embed{aspect-ratio:4/3;}
  .about-grid{grid-template-columns:1fr;}
  .hero-photo-wrap{order:-1;}
  .hero-photo:not(.circle-photo){aspect-ratio:16/9;}
  .hero-photo-wrap::before{top:14px;left:14px;right:-14px;bottom:-14px;}
  .hero-split{flex-direction:column;min-height:0;}
  /* The absolutely-positioned bg-left/bg-right split colours the two desktop
     columns by a fixed flex ratio, which doesn't track real content height
     once the columns stack. Paint colour directly on the content blocks
     instead, so it always matches however tall each one actually is. */
  .hero-bg{display:none;}
  .hero-left{background:var(--ink);}
  .hero-right{background:var(--peach);}
  .hero-right{padding:56px 0 72px;}
  .hero-left-inner{padding:64px max(5vw,24px) 56px;max-width:none;}
  .hero-left h1{font-size:34px;}
  .trust-strip{gap:24px;margin-top:40px;padding-top:24px;}
  .trust-strip strong{font-size:22px;}
  .trust-strip span{font-size:12px;}
  .svc-grid{grid-template-columns:repeat(2,1fr);}
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:36px;}
  .blog-grid{grid-template-columns:1fr;gap:44px;}
  .cta-inner h2{font-size:26px;}
  .nav-links,.nav-phone{display:none;}
  .nav-cta .btn{display:none;}
  .nav-links.is-open{
    display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;top:100%;left:0;right:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:8px 32px 20px;
    overflow:hidden;
    max-height:calc(100vh - 90px);overflow-y:auto;
  }
  .nav-links.is-open a{display:block;padding:14px 0;border-bottom:1px solid var(--line);}
  .nav-links.is-open li:last-child a{border-bottom:none;}
  .nav-links.is-open li{position:static;}
  .nav-links.is-open .menu-item-has-children > a{display:flex;align-items:center;justify-content:space-between;}
  .nav-links.is-open .menu-item-has-children > a::after{
    content:"";width:7px;height:7px;margin-left:8px;
    border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(-45deg);opacity:.6;
  }
  /* Step 1 (root): sub-menus hidden until their parent is tapped.
     Reset every desktop dropdown property (position/box/opacity) so the
     mobile panel is a plain static block, not a floating card. */
  .nav-links.is-open .sub-menu{
    display:none;list-style:none;margin:0;padding:0;
    position:static;top:auto;left:auto;min-width:0;
    background:transparent;border:none;border-radius:0;box-shadow:none;
    opacity:1;visibility:visible;transform:none;transition:none;
  }
  .nav-links.is-open .menu-back{display:none;}
  /* Step 2 (drilled in): show only the active branch, as its own list with a back row */
  .nav-links.is-open.is-drilled-in > li{display:none;}
  .nav-links.is-open.is-drilled-in > li.is-active-branch{display:block;}
  .nav-links.is-open.is-drilled-in > li.is-active-branch > a{display:none;}
  .nav-links.is-open.is-drilled-in > li.is-active-branch > .sub-menu{display:block;}
  .nav-links.is-open.is-drilled-in .is-active-branch .menu-back{
    display:block;font-weight:700;color:var(--clay);
  }
  .nav-links.is-open .menu-back a{
    display:flex;align-items:center;gap:8px;padding:14px 0;
    border-bottom:1px solid var(--line);color:var(--clay);font-weight:700;
  }
  .nav-links.is-open .menu-back a::before{
    content:"";width:7px;height:7px;
    border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
    transform:rotate(45deg);
  }
  .menu-toggle{display:block;}
  header.site-header nav.wrap{position:relative;}
  section{padding:64px 0;}
}
@media (max-width:560px){
  .svc-grid{grid-template-columns:1fr;}
  .blob-wrap{width:280px;height:280px;}
  .cta-inner h2{font-size:19px;white-space:normal;}
  .intro-blob-left{width:150px;height:150px;top:-50px;left:-60px;}
  .intro-blob-right{width:130px;height:130px;bottom:-40px;right:-40px;}
  .foot-grid{grid-template-columns:1fr;gap:32px;}
}
