/* =====================================================================
   CurbSide Search — Design System v3 (Oct 30, 2026)
   One type scale, one button system, no section eyebrows, calmer cards,
   cleaner sections. Loaded last, so it wins over earlier layers.
   ===================================================================== */
:root{
  --ink:#000; --ink-2:#1a1a1a; --mut:#4d4d4d; --soft:#f4f4f2; --rule:#dedede; --rule-2:#c9c9c9;
  --brand:#bf5700; --brand-hover:#000;
  --fs-h1:clamp(40px, 6.2vw, 78px);
  --fs-h2:clamp(30px, 3.9vw, 50px);
  --fs-h3:clamp(19px, 1.55vw, 22px);
  --fs-lead:clamp(18px, 1.45vw, 21px);
  --fs-body:17px; --fs-small:15px; --fs-label:12.5px;
  --sec-y:clamp(72px, 8.5vw, 128px);
  --gap:clamp(16px, 2vw, 24px);
  --btn-h:56px;
}

/* ---------- Type ---------- */
body{ font-size:var(--fs-body); line-height:1.65; color:var(--ink); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
h1, .wp-block-post-content h1{ font-size:var(--fs-h1) !important; line-height:1.0 !important; letter-spacing:-.025em !important; font-weight:800; }
h2, .wp-block-post-content h2{ font-size:var(--fs-h2) !important; line-height:1.06 !important; letter-spacing:-.02em !important; font-weight:800; }
h3, .wp-block-post-content h3{ font-size:var(--fs-h3) !important; line-height:1.25 !important; letter-spacing:-.005em !important; font-weight:700; }
h1 + .lead, h1 + p.lead{ margin-top:24px !important; }
.lead, p.lead{ font-size:var(--fs-lead) !important; line-height:1.55 !important; color:var(--mut) !important; max-width:42em; }
.has-text-align-center.lead{ margin-left:auto; margin-right:auto; }
.small, p.small{ font-size:var(--fs-small) !important; line-height:1.6 !important; color:var(--mut); }
.is-style-card p:not(.eyebrow):not(.kicker){ color:var(--mut); }
.wp-block-post-content p a:not(.wp-block-button__link):not(.btn){ color:var(--ink); text-decoration:underline; text-decoration-color:var(--brand); text-decoration-thickness:2px; text-underline-offset:4px; }
.wp-block-post-content p a:not(.wp-block-button__link):not(.btn):hover{ color:var(--brand); }
.dark-section p a:not(.wp-block-button__link), .cta-band p a:not(.wp-block-button__link){ color:#fff !important; }

/* ---------- Eyebrows: gone at section level ---------- */
.sec-head > .eyebrow, .wrap > .eyebrow, .wrap > p.eyebrow, .cta-band > .eyebrow, .cta-band > p.eyebrow,
.wp-block-column > p.eyebrow, .narrow > .eyebrow, .section > .wrap > .wp-block-group > .eyebrow:first-child,
.is-style-dark-section > .eyebrow, .wp-block-group.sec-head p.eyebrow{ display:none !important; }
/* Labels that live inside cards stay, as quiet labels */
.is-style-card .eyebrow, .card .eyebrow, .is-style-card .kicker, .card .kicker, .kicker{
  display:block !important; font-family:var(--f-body) !important; font-size:var(--fs-label) !important; font-weight:700 !important;
  letter-spacing:.12em !important; text-transform:uppercase !important; color:var(--mut) !important; margin:0 0 14px !important; }
.is-style-card .eyebrow::before, .card .eyebrow::before{ display:none !important; }
.is-style-card .eyebrow[style*="#e8622a"]{ color:var(--brand) !important; }
/* Hero chips read as eyebrows too */
.blueprint-bg .chip, .section.blueprint-bg > .wrap > .chip, .blueprint-bg .wp-block-html > .chip{ display:none !important; }
.blueprint-bg h1{ margin-top:0 !important; }

/* ---------- Sections ---------- */
.section{ padding-top:var(--sec-y) !important; padding-bottom:var(--sec-y) !important; }
.section.blueprint-bg{ padding-top:clamp(56px, 7vw, 112px) !important; padding-bottom:clamp(56px, 7vw, 104px) !important; }
.wp-block-post-content > .section.blueprint-bg + .section:not(.alt):not(.blueprint-bg):not(.is-style-dark-section){ padding-top:clamp(24px, 3vw, 40px) !important; }
.section.alt{ background:var(--soft) !important; }
.sec-head{ margin-bottom:clamp(36px, 4.4vw, 56px) !important; }
.sec-head h2{ max-width:17ch; }
.sec-head.center h2, .sec-head h2.has-text-align-center{ margin-left:auto; margin-right:auto; }
.sec-head .lead{ margin-top:18px !important; }

/* ---------- Buttons: one system ---------- */
.wp-block-buttons{ gap:12px !important; }
.wp-block-button__link, .btn, .wp-element-button, .menu-cta{
  display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:12px;
  min-height:var(--btn-h) !important; padding:0 30px !important; font-family:var(--f-body) !important;
  font-size:16px !important; font-weight:700 !important; line-height:1 !important; letter-spacing:0 !important;
  border-radius:0 !important; border:2px solid var(--brand) !important; background:var(--brand) !important; color:#fff !important;
  text-decoration:none !important; box-shadow:none !important; transform:none !important;
  transition:background .18s ease, border-color .18s ease, color .18s ease !important; white-space:nowrap; }
.wp-block-button__link:hover, .btn:hover, .wp-element-button:hover, .menu-cta:hover{ background:var(--ink) !important; border-color:var(--ink) !important; color:#fff !important; }
/* Primary gets a trailing arrow that nudges on hover */
.wp-block-button:not(.is-style-ghost):not(.is-style-navy) .wp-block-button__link::after, .btn-primary::after, .menu-cta::after{
  content:""; width:16px; height:16px; flex:none; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .18s ease; }
.wp-block-button__link:hover::after, .btn-primary:hover::after, .menu-cta:hover::after{ transform:translateX(3px); }
/* Secondary: outline */
.wp-block-button.is-style-ghost .wp-block-button__link, .btn-ghost{ background:transparent !important; color:var(--ink) !important; border-color:var(--ink) !important; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover, .btn-ghost:hover{ background:var(--ink) !important; color:#fff !important; }
.dark-section .wp-block-button.is-style-ghost .wp-block-button__link, .cta-band .wp-block-button.is-style-ghost .wp-block-button__link,
.is-style-dark-section .wp-block-button.is-style-ghost .wp-block-button__link{ color:#fff !important; border-color:rgba(255,255,255,.55) !important; }
.dark-section .wp-block-button.is-style-ghost .wp-block-button__link:hover, .cta-band .wp-block-button.is-style-ghost .wp-block-button__link:hover{ background:#fff !important; color:#000 !important; border-color:#fff !important; }
.dark-section .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover, .cta-band .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover{ background:#fff !important; color:#000 !important; border-color:#fff !important; }
/* Navy style reads as black */
.wp-block-button.is-style-navy .wp-block-button__link{ background:var(--ink) !important; border-color:var(--ink) !important; }
.wp-block-button.is-style-navy .wp-block-button__link:hover{ background:var(--brand) !important; border-color:var(--brand) !important; }
/* Pairs of buttons match widths on desktop */
@media (min-width:601px){ .wp-block-buttons > .wp-block-button > .wp-block-button__link{ min-width:236px; } }
.wp-block-button.btn-lg, .wp-block-button{ padding:0 !important; }
/* Buttons inside cards sit at the bottom and fill the card */
:is(.is-style-card, .card) > .wp-block-buttons{ margin-top:auto !important; padding-top:28px !important; }
:is(.is-style-card, .card) > .wp-block-buttons > .wp-block-button{ width:100%; }
:is(.is-style-card, .card) > .wp-block-buttons > .wp-block-button > .wp-block-button__link{ width:100%; min-width:0; }
/* Phones: stacked, full width, same height */
@media (max-width:600px){
  .wp-block-buttons{ flex-direction:column; align-items:stretch !important; }
  .wp-block-buttons > .wp-block-button{ width:100% !important; }
  .wp-block-buttons > .wp-block-button > .wp-block-button__link{ width:100% !important; padding:0 20px !important; }
}

/* ---------- Cards ---------- */
.is-style-card, .card{ background:#fff !important; border:1px solid var(--rule) !important; padding:clamp(26px, 2.6vw, 36px) !important; transition:border-color .2s ease !important; }
.is-style-card:hover, .card:hover{ border-color:var(--ink) !important; }
.section.alt .is-style-card, .section.alt .card{ border-color:transparent !important; }
.section.alt .is-style-card:hover, .section.alt .card:hover{ border-color:var(--ink) !important; }
.is-style-card h3, .card h3{ margin:0 0 10px !important; }
.is-style-card h3 + p, .card h3 + p{ margin-top:0 !important; }
.wp-block-columns{ gap:var(--gap) !important; }
/* Icons: no frame, just the mark */
.card-icon, .card-icon.navy{ width:auto !important; height:auto !important; background:none !important; border:0 !important; color:var(--brand) !important; margin:0 0 22px !important; display:block !important; }
.card-icon svg{ width:30px !important; height:30px !important; stroke-width:1.75; }
/* Tick lists */
ul.ticks li{ font-size:var(--fs-small); line-height:1.5; }
:is(.is-style-card, .card) > ul.ticks{ margin-top:18px !important; }

/* ---------- Numbers ---------- */
.stat-num{ font-size:clamp(40px, 4.6vw, 64px) !important; line-height:1 !important; letter-spacing:-.02em !important; }
.stat-label{ font-size:var(--fs-small) !important; line-height:1.45 !important; color:var(--mut) !important; margin-top:12px !important; }
/* stat rows: hairline dividers */
.wrap > .wp-block-html > div[style*="display:grid"]:has(> div > .stat-num),
.wrap > div[style*="display:grid"]:has(> div > .stat-num){ gap:0 !important; }
div[style*="display:grid"]:has(> div > .stat-num) > div{ padding:8px clamp(16px, 2.5vw, 36px); }
div[style*="display:grid"]:has(> div > .stat-num) > div + div{ border-left:1px solid var(--rule); }
@media (max-width:640px){
  div[style*="display:grid"]:has(> div > .stat-num){ grid-template-columns:minmax(0,1fr) !important; text-align:left !important; }
  div[style*="display:grid"]:has(> div > .stat-num) > div{ padding:22px 0; }
  div[style*="display:grid"]:has(> div > .stat-num) > div + div{ border-left:0; border-top:1px solid var(--rule); }
  div[style*="display:grid"]:has(> div > .stat-num) > :last-child{ grid-column:auto !important; }
}

/* ---------- Call-to-action bands ---------- */
.cta-band{ padding:clamp(48px, 7vw, 96px) clamp(24px, 6vw, 88px) !important; }
.cta-band h2{ max-width:16ch; margin-left:auto !important; margin-right:auto !important; }
.cta-band .lead{ color:#bdbdbd !important; }
.cta-band .wp-block-buttons{ margin-top:8px; }

/* ---------- FAQ ---------- */
.faq-item{ border:0 !important; border-bottom:1px solid var(--rule) !important; background:transparent !important; margin:0 !important; }
.faq-item:first-of-type{ border-top:1px solid var(--rule) !important; }
.faq-q{ width:100%; background:transparent !important; border:0 !important; padding:24px 0 !important; font-family:var(--f-body) !important; font-size:18px !important; font-weight:700 !important; color:var(--ink) !important; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:56px; cursor:pointer; }
.faq-q .ic{ flex:none; width:32px; height:32px; display:grid; place-items:center; border:1.5px solid var(--ink) !important; color:var(--ink) !important; font-size:20px; font-weight:400; line-height:1; transition:transform .2s ease, background .2s ease; }
.faq-item.open .faq-q .ic{ transform:rotate(45deg); background:var(--ink); color:#fff !important; }
.faq-a p{ font-size:var(--fs-body) !important; line-height:1.65 !important; color:var(--mut) !important; padding:0 56px 26px 0 !important; margin:0 !important; }

/* ---------- Header ---------- */
.nav{ background:rgba(255,255,255,.97) !important; border-bottom:1px solid var(--rule) !important; }
.nav-in{ padding-top:16px !important; padding-bottom:16px !important; }
.nav-item > a, .nav-plain{ font-size:15px !important; font-weight:600 !important; color:var(--ink) !important; }
.nav-item > a:hover, .nav-plain:hover{ color:var(--brand) !important; }
.nav-cta .btn{ min-height:48px !important; padding:0 22px !important; font-size:15px !important; }
@media (max-width:940px){
  .nav-cta{ margin-left:auto !important; }
  .nav-toggle{ width:48px; height:48px; display:grid !important; place-items:center; padding:0 !important; border:1.5px solid var(--ink) !important; background:#fff !important; }
  .nav-toggle span{ margin:2.5px 0 !important; }
}

/* ---------- Footer ---------- */
.footer a:hover{ color:#fff !important; }

/* ---------- Misc polish ---------- */
.pill, .pill-ember{ border-radius:0 !important; }
img{ height:auto; }
.wp-block-image img{ border:1px solid var(--rule); }
::selection{ background:var(--brand); color:#fff; }

/* =====================================================================
   Homepage components (cs-*)
   ===================================================================== */
.cs-hero h1 mark{ color:var(--brand) !important; background:none !important; }
.cs-hero h1{ max-width:13ch; }
.cs-hero .lead{ margin-top:26px !important; max-width:34em; }
.cs-hero-btns{ margin-top:36px !important; }
.cs-trust{ list-style:none; margin:28px 0 0 !important; padding:0 !important; display:flex; flex-wrap:wrap; gap:10px 26px; }
.cs-trust li{ position:relative; padding-left:26px; font-size:var(--fs-small); font-weight:600; color:var(--ink); line-height:1.4; }
.cs-trust li::before{ content:""; position:absolute; left:0; top:2px; width:16px; height:16px; background:var(--brand);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat; }
@media (max-width:600px){ .cs-trust{ flex-direction:column; } }
.cs-hero .mock{ border-radius:0 !important; }

/* Burned-before cards: problem in bold, answer below a rule */
.cs-burned .is-style-card h3{ font-size:clamp(19px,1.7vw,23px) !important; }
.cs-burned .is-style-card p.small{ margin-top:18px !important; padding-top:18px; border-top:1px solid var(--rule); }
.cs-burned .is-style-card p.small strong{ color:var(--brand); }

/* Steps */
.cs-step-n{ width:44px; height:44px; display:grid; place-items:center; background:var(--ink); color:#fff; font-family:var(--f-display); font-weight:800; font-size:18px; margin-bottom:24px; }
.cs-how .wp-block-column:first-child .cs-step-n{ background:var(--brand); }
.cs-price{ font-family:var(--f-display) !important; font-weight:800 !important; font-size:clamp(20px,1.8vw,24px) !important; color:var(--brand) !important; letter-spacing:-.01em; margin:4px 0 14px !important; line-height:1.2 !important; }

/* What you get: two rows read as one grid */
.cs-get .wp-block-columns + .wp-block-columns{ margin-top:var(--gap) !important; }
.cs-get .wp-block-buttons{ margin-top:48px !important; }

/* Results */
.cs-results{ align-items:stretch !important; }
.cs-case{ padding-top:0 !important; overflow:hidden; }
.cs-case .wp-block-image{ margin:0 calc(-1 * clamp(26px,2.6vw,36px)) 28px !important; }
.cs-case .wp-block-image img{ border:0 !important; border-bottom:1px solid var(--rule) !important; width:100%; display:block; }
.cs-case h3{ font-size:clamp(21px,2vw,26px) !important; }
.cs-anon{ background:var(--ink) !important; border-color:var(--ink) !important; color:#fff; }
.cs-anon .eyebrow{ color:#bdbdbd !important; }
.cs-anon .stat-label{ color:#bdbdbd !important; }
.cs-anon p.small{ color:#bdbdbd !important; margin-top:auto !important; padding-top:24px; }
.cs-bignum{ padding:24px 0; border-top:1px solid #333; }
.cs-bignum:first-child{ border-top:0; padding-top:4px; }
.cs-anon .stat-num{ color:#fff !important; }
.cs-anon .cs-bignum:first-child .stat-num{ color:var(--brand) !important; }

/* Reviews */
.cs-stars{ color:var(--brand); font-size:18px; letter-spacing:4px; margin-bottom:20px; }
.cs-quote{ font-size:18px !important; line-height:1.6 !important; color:var(--ink) !important; }
.cs-who{ margin-top:auto !important; padding-top:24px; font-size:var(--fs-small) !important; color:var(--mut) !important; line-height:1.5 !important; }
.cs-who strong{ color:var(--ink); }
.cs-more{ text-align:center; margin-top:36px !important; font-weight:700; }
.cs-more a{ color:var(--ink) !important; text-decoration:underline; text-decoration-color:var(--brand); text-decoration-thickness:2px; text-underline-offset:5px; }
.cs-more a::after{ content:" →"; }

/* Pricing summary */
.cs-plan{ position:relative; }
.cs-plan .eyebrow{ color:var(--ink) !important; font-size:14px !important; }
.cs-plan-price{ font-family:var(--f-display) !important; font-weight:800 !important; font-size:clamp(40px,4vw,52px) !important; line-height:1 !important; letter-spacing:-.02em; color:var(--ink) !important; margin:0 0 12px !important; }
.cs-plan-price span{ font-family:var(--f-body); font-size:16px; font-weight:600; color:var(--mut); letter-spacing:0; margin-left:4px; }
.cs-featured{ border:2px solid var(--brand) !important; }
.cs-flag{ position:absolute; top:0; right:clamp(26px,2.6vw,36px); transform:translateY(-50%); background:var(--brand); color:#fff; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; }
.cs-note{ text-align:center; color:var(--mut); font-size:var(--fs-small); margin:32px auto 24px !important; max-width:40em; }

/* Trades */
.cs-trades{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
.cs-trades a{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:0 22px; background:#fff; color:var(--ink) !important; font-weight:700; font-size:16px; text-decoration:none !important; transition:background .15s ease, color .15s ease; }
.cs-trades a i{ width:16px; height:16px; flex:none; background:var(--brand);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
.cs-trades a:hover{ background:var(--ink); color:#fff !important; }
.cs-trades a:hover i{ background:#fff; }
@media (max-width:900px){ .cs-trades{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:420px){ .cs-trades a{ padding:0 16px; font-size:15px; } }

/* Final band */
.cs-final .cta-band h2{ max-width:14ch; }
.cs-final{ padding-top:0 !important; }
.cs-faq + .cs-tradesec, .cs-pricing + .cs-faq{ }
@media (max-width:940px){ .nav-cta .hide-sm, .nav-cta .btn{ display:none !important; } }
@media (max-width:781px){ .cs-hero .wp-block-columns > .wp-block-column + .wp-block-column{ margin-top:40px !important; } }
h1, h2, h3, h4, .wp-block-columns .is-style-card h3, [style*="grid-template-columns"] h3{ hyphens:manual !important; -webkit-hyphens:manual !important; }
.cs-price span{ display:inline-block; margin-left:10px; font-family:var(--f-body); font-size:15px; font-weight:600; color:var(--mut); letter-spacing:0; }
.cs-price + p, .cs-plan-price + p{ margin-top:0 !important; }
.is-style-card > * + *{ margin-block-start:0; }
.is-style-card > h3 + .cs-price{ margin-top:2px !important; }
@media (max-width:781px){
 .cs-get .is-style-card{ display:grid !important; grid-template-columns:30px minmax(0,1fr); column-gap:18px; align-items:start; padding:24px !important; }
 .cs-get .is-style-card .card-icon{ grid-row:1 / span 2; margin:2px 0 0 !important; }
 .cs-get .is-style-card .card-icon svg{ width:26px !important; height:26px !important; }
 .cs-get .is-style-card h3{ margin-bottom:6px !important; }
 .cs-get .wp-block-columns{ gap:10px !important; }
 .cs-get .wp-block-columns + .wp-block-columns{ margin-top:10px !important; }
}
.cs-case figure img{ border:0 !important; }
.cs-anon .cs-bignum:first-of-type{ border-top:0 !important; padding-top:8px !important; }
.cs-anon .cs-bignum:first-of-type .stat-num{ color:var(--brand) !important; }
@media (max-width:781px){
 .cs-reviews .wp-block-columns{ flex-direction:row !important; flex-wrap:nowrap !important; overflow-x:auto; scroll-snap-type:x mandatory; margin-left:calc(-1 * var(--wp--style--root--padding-left, 24px)); margin-right:calc(-1 * var(--wp--style--root--padding-right, 24px)); padding:0 var(--wp--style--root--padding-left, 24px) 6px; scrollbar-width:none; }
 .cs-reviews .wp-block-columns::-webkit-scrollbar{ display:none; }
 .cs-reviews .wp-block-columns.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column{ flex:0 0 84% !important; flex-basis:84% !important; scroll-snap-align:center; }
 .cs-reviews .wrap > .wp-block-columns{ margin-left:-24px !important; margin-right:-24px !important; padding-left:24px !important; padding-right:24px !important; max-width:none !important; scroll-padding:0 24px; }
 .cs-reviews .wp-block-columns::after{ content:""; flex:0 0 1px; }
}
.cta-band .lead{ margin-bottom:32px !important; }
.cs-faq .sec-head h2{ text-align:left !important; margin-left:0 !important; }
.cs-faq .sec-head{ text-align:left; }
/* Closing call to action: brand orange so it never stacks black on the black footer */
.wp-block-post-content > .section:last-child .cta-band{ background:var(--brand) !important; border:0 !important; }
.wp-block-post-content > .section:last-child .cta-band h2{ color:#fff !important; }
.wp-block-post-content > .section:last-child .cta-band .lead, .wp-block-post-content > .section:last-child .cta-band p{ color:#fff !important; opacity:.92; }
.wp-block-post-content > .section:last-child .cta-band .eyebrow{ display:none !important; }
.wp-block-post-content > .section:last-child .cta-band .wp-block-button:not(.is-style-ghost) .wp-block-button__link{ background:#000 !important; border-color:#000 !important; color:#fff !important; }
.wp-block-post-content > .section:last-child .cta-band .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover{ background:#fff !important; border-color:#fff !important; color:#000 !important; }
.wp-block-post-content > .section:last-child .cta-band .wp-block-button.is-style-ghost .wp-block-button__link{ border-color:#fff !important; color:#fff !important; }
.wp-block-post-content > .section:last-child .cta-band .wp-block-button.is-style-ghost .wp-block-button__link:hover{ background:#fff !important; color:#000 !important; }
.wp-block-post-content > .section:last-child{ padding-bottom:clamp(56px,7vw,104px) !important; }
/* ---------- Header v3 ---------- */
.skip{ position:absolute; left:-9999px; top:8px; z-index:200; background:#000; color:#fff; padding:12px 16px; }
.skip:focus{ left:8px; }
.hd{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.96); -webkit-backdrop-filter:saturate(160%) blur(10px); backdrop-filter:saturate(160%) blur(10px); border-bottom:1px solid var(--rule); }
.admin-bar .hd{ top:32px; }
.hd-in{ max-width:1228px; margin:0 auto; padding:0 24px; height:76px; display:flex; align-items:center; gap:44px; }
.hd-brand{ display:flex; align-items:center; flex:none; }
.hd-brand svg{ height:22px; width:auto; display:block; }
.hd-nav{ display:flex; align-items:center; gap:30px; margin-right:auto; height:100%; }
.hd-item{ position:relative; display:flex; align-items:center; height:100%; font-size:15px; font-weight:600; color:var(--ink) !important; text-decoration:none !important; }
.hd-item > a{ display:flex; align-items:center; gap:6px; color:var(--ink) !important; text-decoration:none !important; height:100%; }
a.hd-item:hover, .hd-item > a:hover{ color:var(--brand) !important; }
.hd .chev{ width:12px; height:12px; transition:transform .2s ease; }
.hd-dd:hover .chev, .hd-dd:focus-within .chev{ transform:rotate(180deg); }
.hd-menu{ position:absolute; top:100%; left:-18px; background:#fff; border:1px solid var(--ink); padding:8px; min-width:330px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .16s ease, transform .16s ease, visibility .16s; }
.hd-dd:hover .hd-menu, .hd-dd:focus-within .hd-menu{ opacity:1; visibility:visible; transform:none; }
.hd-menu a{ display:block; padding:12px 14px; color:var(--ink) !important; text-decoration:none !important; }
.hd-menu a b{ display:block; font-size:15px; font-weight:700; }
.hd-menu a span{ display:block; font-size:13.5px; font-weight:500; color:var(--mut); margin-top:2px; }
.hd-menu a:hover{ background:var(--soft); }
.hd-menu a:hover b{ color:var(--brand); }
.hd-mega{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); min-width:620px; left:-120px; }
.hd-mega a{ padding:10px 14px; font-size:14.5px; font-weight:600; }
.hd-mega a:hover{ color:var(--brand) !important; }
.hd-all{ grid-column:1 / -1; border-top:1px solid var(--rule); margin-top:6px; padding-top:14px !important; color:var(--brand) !important; }
.hd-act{ display:flex; align-items:center; gap:22px; flex:none; }
.hd-link{ font-size:15px; font-weight:600; color:var(--ink) !important; text-decoration:none !important; }
.hd-link:hover{ color:var(--brand) !important; }
.hd .hd-cta{ min-height:48px !important; padding:0 22px !important; font-size:15px !important; }
.hd-toggle{ display:none; }
.m-panel, .m-bar{ display:none; }
@media (max-width:1100px){ .hd-in{ gap:28px; } .hd-nav{ gap:22px; } }
@media (max-width:990px){
  .hd-in{ height:64px; }
  .hd-nav, .hd-link, .hd .hd-cta{ display:none !important; }
  .hd-toggle{ display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:48px; height:48px; margin-left:auto; padding:0; background:#fff; border:1.5px solid var(--ink); cursor:pointer; }
  .hd-toggle span{ display:block; width:20px; height:2px; background:var(--ink); transition:transform .2s ease; }
  .hd-toggle[aria-expanded="true"] span:first-child{ transform:translateY(4px) rotate(45deg); }
  .hd-toggle[aria-expanded="true"] span:last-child{ transform:translateY(-4px) rotate(-45deg); }
  .m-panel:not([hidden]){ display:flex; flex-direction:column; position:fixed; left:0; right:0; top:64px; bottom:0; background:#fff; overflow-y:auto; padding:8px 24px 28px; z-index:99; }
  .admin-bar .m-panel:not([hidden]){ top:110px; }
  .m-nav > a, .m-nav summary{ display:flex; justify-content:space-between; align-items:center; min-height:62px; border-bottom:1px solid var(--rule); font-family:var(--f-display); font-weight:800; font-size:22px; letter-spacing:-.01em; color:var(--ink) !important; text-decoration:none !important; list-style:none; cursor:pointer; }
  .m-nav summary::-webkit-details-marker{ display:none; }
  .m-nav .chev{ width:16px; height:16px; }
  .m-nav details[open] .chev{ transform:rotate(180deg); }
  .m-nav details > div{ display:grid; padding:6px 0 14px; border-bottom:1px solid var(--rule); }
  .m-nav details a{ padding:12px 0; font-size:17px; font-weight:600; color:var(--ink) !important; text-decoration:none !important; }
  .m-nav .m-ind{ grid-template-columns:1fr 1fr; column-gap:16px; }
  .m-foot{ margin-top:auto; padding-top:28px; }
  .m-foot .btn{ width:100%; }
  .m-mail{ display:block; text-align:center; margin-top:16px; font-weight:600; color:var(--mut) !important; }
  body.m-open{ overflow:hidden; }
}
/* Mobile action bar */
@media (max-width:781px){
  .m-bar{ display:flex; position:fixed; left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom)); z-index:90; min-height:56px; align-items:center; justify-content:center; gap:12px; background:var(--brand); color:#fff !important; font-weight:700; font-size:16px; text-decoration:none !important; transform:translateY(180%); transition:transform .25s ease; }
  .m-bar::after{ content:""; width:16px; height:16px; background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
  .m-bar.show{ transform:none; }
  body.m-open .m-bar{ transform:translateY(180%); }
}

/* ---------- Next-steps strip (every page) ---------- */
.journey{ background:#fff; border-top:1px solid var(--rule); }
.journey-in{ max-width:1228px; margin:0 auto; padding:clamp(56px,6vw,88px) 24px; }
.journey-h{ font-family:var(--f-display); font-weight:800; font-size:clamp(24px,2.6vw,32px); letter-spacing:-.015em; color:var(--ink); margin:0 0 28px; }
.journey-steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
.journey-steps li{ margin:0; }
.journey-steps a{ display:block; height:100%; background:#fff; padding:26px 24px; color:var(--ink) !important; text-decoration:none !important; transition:background .15s ease; }
.journey-steps .n{ display:grid; place-items:center; width:30px; height:30px; border:1.5px solid var(--ink); font-family:var(--f-display); font-weight:800; font-size:13px; margin-bottom:18px; }
.journey-steps b{ display:block; font-size:17px; font-weight:700; margin-bottom:4px; }
.journey-steps b + span{ display:block; font-size:14px; color:var(--mut); }
.journey-steps a:hover{ background:var(--soft); }
.journey-steps a:hover b{ color:var(--brand); }
.journey-steps a.go{ background:var(--brand); }
.journey-steps a.go b, .journey-steps a.go b + span{ color:#fff !important; }
.journey-steps a.go .n{ border-color:#fff; color:#fff; }
.journey-steps a.go:hover{ background:#000; }
.journey-steps a[aria-current="page"]{ box-shadow:inset 0 -4px 0 var(--brand); }
.journey-steps a[aria-current="page"] b::after{ content:"You are here"; display:inline-block; margin-left:10px; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--brand); vertical-align:2px; }
body.page-id-1398 .journey{ display:none; }
@media (max-width:900px){ .journey-steps{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:560px){
  .journey-steps{ grid-template-columns:minmax(0,1fr); }
  .journey-steps a{ display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:16px; padding:18px 20px; }
  .journey-steps .n{ grid-row:1 / span 2; margin:0; }
}

/* ---------- Footer v3 ---------- */
.ft{ background:#000; color:#bdbdbd; }
.ft-in{ max-width:1228px; margin:0 auto; padding:clamp(56px,6vw,88px) 24px 48px; display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:48px; }
.ft-brand svg{ height:46px; width:auto; display:block; }
.ft-brand p{ font-size:15px; line-height:1.6; margin:22px 0 18px; max-width:30em; color:#bdbdbd; }
.ft-mail{ color:#fff !important; font-weight:600; text-decoration:none !important; border-bottom:2px solid var(--brand); padding-bottom:2px; }
.ft-col h5{ font-family:var(--f-body); font-size:12.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; margin:0 0 14px; }
.ft-col a{ display:block; padding:7px 0; font-size:15px; color:#bdbdbd !important; text-decoration:none !important; }
.ft-col a:hover{ color:#fff !important; }
.ft-ind a:last-child{ color:#fff !important; font-weight:600; }
.ft-bot{ max-width:1228px; margin:0 auto; padding:22px 24px calc(22px + env(safe-area-inset-bottom)); border-top:1px solid #262626; display:flex; justify-content:space-between; gap:16px; font-size:13.5px; color:#8c8c8c; }
.ft-bot a{ color:#8c8c8c !important; }
@media (max-width:900px){ .ft-in{ grid-template-columns:1fr 1fr; } .ft-brand{ grid-column:1 / -1; } }
@media (max-width:781px){ .ft-bot{ padding-bottom:96px; } }
@media (max-width:480px){ .ft-in{ gap:36px 24px; } }
/* ---------- Desktop hero polish ---------- */
.cs-hero h1{ max-width:none !important; }
.cs-hero h1 mark{ display:block; }
@media (min-width:941px){ .menu-cta{ display:none !important; } }
@media (min-width:782px){
  .cs-hero .mock{ padding:22px !important; }
  .cs-hero .mock .rank-info b{ font-size:16px !important; }
  .cs-hero .mock .rank-info span{ font-size:13px !important; }
  .cs-hero .mock .mock-bar{ font-size:15px !important; }
}
/* ---- desktop pass 2 ---- */
@media (min-width:782px){ .cs-hero h1{ font-size:clamp(40px,5vw,72px) !important; } }
h1, h2, h3{ text-wrap:balance; }
/* Left-aligned sections line up on one edge (WP's constrained layout was centring narrower children) */
.sec-head:not(.center) > *, .wrap > :not(.center):not(.cs-note):not(.has-text-align-center):not(.cta-band){ margin-left:0 !important; margin-right:0 !important; }
.cs-faq .sec-head > *{ margin-left:0 !important; margin-right:0 !important; }
html body .wp-block-columns .wp-block-column > .is-style-card.cs-case > figure.wp-block-image:not(.a1):not(.a2):not(.a3):not(.a4):not(.a5):not(.a6):not(.a7){ margin:calc(-1*clamp(26px,2.6vw,36px)) calc(-1*clamp(26px,2.6vw,36px)) 28px !important; max-width:none !important; width:auto !important; }
.cs-case > figure.wp-block-image img{ display:block; width:100%; border:0 !important; border-bottom:1px solid var(--rule) !important; }
@media (min-width:1000px){
  .cs-faq .wrap{ display:grid !important; grid-template-columns:minmax(0,4fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px); align-items:start; }
  .cs-faq .wrap > .sec-head{ grid-column:1; grid-row:1 / span 20; position:sticky; top:120px; margin:0 !important; }
  .cs-faq .wrap > .faq-item{ grid-column:2; }
  .cs-faq .wrap > .faq-item:first-of-type{ border-top:1px solid var(--rule); }
}
.cs-faq .faq-q{ font-size:clamp(17px,1.35vw,19px) !important; }
.cs-faq-ask{ margin-top:20px !important; font-size:16px; color:var(--mut); max-width:30em; }
.cs-faq-ask a{ color:var(--ink) !important; font-weight:600; text-decoration:none !important; border-bottom:2px solid var(--brand); }
.wrap > .cs-trades{ max-width:none !important; }
.wrap > .cs-more{ text-align:left !important; max-width:none !important; }
.hd-in, .journey-in, .ft-in, .ft-bot{ max-width:1180px !important; box-sizing:border-box; }
body.home .journey{ display:none; }
/* ---- mobile chrome pass ---- */
@media (max-width:990px){
  .hd-act{ margin-left:auto; }
  .hd{ -webkit-backdrop-filter:none !important; backdrop-filter:none !important; background:#fff !important; }
}
.hd, .journey, .ft, .m-bar{ margin-block-start:0 !important; }
.hd-wrap, .ft-wrap{ display:contents; }
.m-nav .m-ind a:last-child, .m-nav details a[href="/services/"]{ color:var(--brand) !important; font-weight:700; }
@media (max-width:781px){ .m-bar{ box-shadow:0 10px 30px rgba(0,0,0,.18); } .m-bar.hide{ transform:translateY(180%) !important; } }
@media (max-width:900px){
  .ft-ind{ grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; column-gap:24px; }
  .ft-ind h5{ grid-column:1 / -1; }
}
.hd-nav a[aria-current]{ color:var(--brand) !important; }
.hd-nav a.hd-item[aria-current], .hd-dd > a[aria-current]{ box-shadow:inset 0 -3px 0 var(--brand); }
.m-nav > a[aria-current="page"]{ color:var(--brand) !important; }
/* ---- pillar pages ---- */
.cs-hero-sub .wrap > h1, .cs-hero-sub .wrap > .lead{ max-width:820px; }
@media (min-width:782px){ .cs-hero-sub h1{ font-size:clamp(38px,5.2vw,68px) !important; } }
.cs-for{ margin-top:20px !important; padding-top:16px; border-top:1px solid var(--rule); font-size:14.5px !important; line-height:1.5 !important; font-weight:600; color:var(--ink) !important; }
.cs-svc .cs-price{ margin-bottom:12px !important; }
.cs-picks{ display:grid; gap:1px; background:var(--rule); border:1px solid var(--rule); }
.cs-pick{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) 190px; align-items:center; gap:28px; padding:28px 30px; background:#fff; color:var(--ink) !important; text-decoration:none !important; transition:background .15s ease; }
.cs-pick .q{ font-family:var(--f-display); font-weight:800; font-size:clamp(17px,1.5vw,20px); letter-spacing:-.01em; line-height:1.3; }
.cs-pick .a{ color:var(--mut); font-size:16px; line-height:1.5; }
.cs-pick .go{ display:inline-flex; align-items:center; justify-content:flex-end; gap:10px; font-weight:700; font-size:15px; color:var(--brand); white-space:nowrap; }
.cs-pick .go::after{ content:""; width:16px; height:16px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat; }
.cs-pick:hover{ background:var(--ink); }
.cs-pick:hover .q, .cs-pick:hover .go{ color:#fff; }
.cs-pick:hover .a{ color:#bdbdbd; }
@media (max-width:781px){ .cs-pick{ grid-template-columns:minmax(0,1fr); gap:8px; padding:22px 20px; } .cs-pick .go{ justify-content:flex-start; margin-top:6px; } }
.cs-anchor{ display:block; position:relative; top:-100px; visibility:hidden; height:0; }
html{ scroll-behavior:smooth; }
.cs-plan > .wp-block-buttons{ margin-top:auto !important; padding-top:28px !important; }
.cs-plan ul.ticks{ margin-bottom:0 !important; }
.cs-terms{ list-style:none; margin:0 !important; padding:0 !important; display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:1px; background:var(--rule); border:1px solid var(--rule); }
.cs-terms li{ background:#fff; padding:28px 28px 30px 64px; position:relative; margin:0 !important; }
.cs-terms li::before{ content:""; position:absolute; left:26px; top:30px; width:20px; height:20px; background:var(--brand);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat; }
.cs-terms li.no::before{ background:var(--ink);
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
          mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E"); }
.cs-terms b{ display:block; font-size:17px; font-weight:700; margin-bottom:4px; color:var(--ink); }
.cs-terms span{ display:block; font-size:15px; line-height:1.55; color:var(--mut); }
@media (max-width:900px){ .cs-terms{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:600px){ .cs-terms{ grid-template-columns:minmax(0,1fr); } .cs-terms li{ padding:22px 20px 22px 56px; } .cs-terms li::before{ left:20px; top:24px; } }
.cs-builds .cs-plan-price span, .cs-plan-price span{ white-space:nowrap; }
.cs-next{ list-style:none; counter-reset:n; margin:36px 0 0 !important; padding:0 !important; border-top:1px solid var(--rule); }
.cs-next li{ counter-increment:n; position:relative; padding:20px 0 20px 52px; border-bottom:1px solid var(--rule); margin:0 !important; }
.cs-next li::before{ content:counter(n); position:absolute; left:0; top:20px; width:32px; height:32px; display:grid; place-items:center; background:var(--ink); color:#fff; font-family:var(--f-display); font-weight:800; font-size:14px; }
.cs-next li:first-child::before{ background:var(--brand); }
.cs-next b{ display:block; font-size:17px; font-weight:700; color:var(--ink); }
.cs-next span{ display:block; font-size:15px; line-height:1.55; color:var(--mut); margin-top:2px; }
.cs-formcard{ border:2px solid var(--ink) !important; }
.cs-formcard:hover{ border-color:var(--ink) !important; }
.cs-formcard h2{ font-size:clamp(24px,2.2vw,30px) !important; margin:0 0 6px !important; }
.cs-formnote{ margin-top:16px !important; font-size:13.5px !important; color:var(--mut) !important; text-align:center; }
.cs-audit h1{ font-size:clamp(38px,4.6vw,62px) !important; }
@media (min-width:782px){ .cs-audit .wp-block-columns{ gap:clamp(40px,5vw,72px) !important; } .cs-formcard{ position:sticky; top:100px; } }
.cs-backtoform{ padding-top:0 !important; }
@media (min-width:782px){ .cs-backtoform{ display:none !important; } }
/* WPForms: big, friendly fields */
.cs-formcard .wpforms-container{ margin:18px 0 0 !important; }
.cs-formcard .wpforms-field{ padding:0 0 16px !important; }
.cs-formcard .wpforms-field-label{ font-size:15px !important; font-weight:700 !important; color:var(--ink) !important; margin-bottom:6px !important; }
.cs-formcard .wpforms-field-label .wpforms-required-label{ color:var(--brand) !important; }
.cs-formcard input[type=text], .cs-formcard input[type=email], .cs-formcard input[type=url], .cs-formcard input[type=tel], .cs-formcard select, .cs-formcard textarea{ width:100% !important; max-width:100% !important; min-height:52px !important; border:1.5px solid #bdbdbd !important; border-radius:0 !important; padding:12px 14px !important; font-size:16px !important; background:#fff !important; box-shadow:none !important; }
.cs-formcard textarea{ min-height:110px !important; }
.cs-formcard input:focus, .cs-formcard select:focus, .cs-formcard textarea:focus{ border-color:var(--ink) !important; outline:2px solid var(--brand) !important; outline-offset:1px; }
.cs-formcard .wpforms-submit-container{ padding-top:8px !important; }
.cs-formcard button[type=submit], .cs-formcard .wpforms-submit{ width:100% !important; min-height:58px !important; background:var(--brand) !important; border:2px solid var(--brand) !important; color:#fff !important; font-size:17px !important; font-weight:700 !important; border-radius:0 !important; cursor:pointer; }
.cs-formcard button[type=submit]:hover, .cs-formcard .wpforms-submit:hover{ background:#000 !important; border-color:#000 !important; }
.cs-formcard .wpforms-field-sublabel, .cs-formcard .wpforms-field-description{ font-size:13.5px !important; color:var(--mut) !important; }
.cs-contact-form .cs-formcard{ margin-top:8px !important; }
.wrap.narrow > .cs-formcard{ max-width:none !important; }

/* ---- v3.0.1: sitewide consistency fixes found in the live review ---- */
/* Section labels: hidden everywhere except as small labels inside cards */
.eyebrow:not(.is-style-card .eyebrow):not(.card .eyebrow):not(.cs-anon .eyebrow){ display:none !important; }
/* Grids, stat rows and lists placed straight in a section use the full width, not the 780px text column */
.wrap:not(.narrow) > :is(div[style*="grid"], nav, .cs-picks, .cs-facts, .hub-jump, .cs-terms, .cs-trades){ max-width:none !important; }
/* The note under the price cards is always centred */
html body .wrap.wrap > p.cs-note.cs-note:not(.x1):not(.x2):not(.x3):not(.x4):not(.x5):not(.x6):not(.x7):not(.x8){ margin-left:auto !important; margin-right:auto !important; text-align:center !important; }
/* Hero trust row: one clean row when it fits, a clean stack when it doesn't. Never 1 + 2. */
.cs-trust{ flex-direction:column !important; flex-wrap:nowrap !important; gap:12px !important; margin-top:32px !important; }
.cs-trust li{ white-space:nowrap; }
@media (min-width:1200px){ .cs-hero .cs-trust{ flex-direction:row !important; gap:32px !important; } }
@media (min-width:782px){ .cs-hero-sub .cs-trust{ flex-direction:row !important; gap:32px !important; } }
/* Card rows: every line inside side-by-side cards lines up (titles, dividers, prices, lists, buttons, names). */
@media (min-width:782px){
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns{ display:grid !important; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); grid-template-rows:repeat(8,auto); row-gap:0 !important; column-gap:var(--gap) !important; align-items:stretch; }
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns > .wp-block-column{ display:contents !important; }
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns > .wp-block-column > .is-style-card{ display:grid !important; grid-row:1 / span 8; grid-template-rows:subgrid; row-gap:0; align-content:start; }
}
/* Centred button rows span the full section, so they centre on the page, not on the 780px text column. */
.wrap > .wp-block-buttons.is-content-justification-center{ max-width:none !important; width:100%; }
/* FAQ toggle: a square that stays square. Plus when closed, minus when open, drawn in CSS so it sits dead centre. */
.faq-q .ic{ position:relative; box-sizing:border-box; width:32px !important; height:32px !important; font-size:0 !important; transform:none !important; transition:background .2s ease, color .2s ease !important; }
.faq-q .ic::before, .faq-q .ic::after{ content:"" !important; position:absolute; left:50%; top:50%; width:12px; height:2px; margin:-1px 0 0 -6px; background:currentColor; transition:transform .2s ease; }
.faq-q .ic::after{ transform:rotate(90deg); }
.faq-item.open .faq-q .ic::after{ transform:rotate(0deg); }
.faq-item.open .faq-q .ic, .faq-q:hover .ic{ transform:none !important; background:var(--ink) !important; color:#fff !important; }
/* 'Ready when you are' steps: padding counts inside each step, so steps no longer spill into the next one. Tight two-line rows on phones. */
.journey-steps a{ box-sizing:border-box; }
@media (max-width:560px){ .journey-steps a{ align-content:center; align-items:center; row-gap:2px; padding:18px 20px !important; } .journey-steps b{ margin:0 !important; line-height:1.3 !important; } .journey-steps b + span{ line-height:1.45 !important; } .journey-steps .n{ align-self:center; } }
/* Wide cards: everything inside starts on the same left edge (WordPress was centring the 780px text column inside the card). */
.is-style-card > :not(.has-text-align-center):not(.cs-flag), .card > :not(.has-text-align-center){ margin-left:0 !important; margin-right:0 !important; }
/* Every FAQ section uses one layout: heading on the left, questions on the right (desktop); heading above, questions full width (phone). */
.wrap:has(> .faq-item) > .sec-head, .wrap:has(> .faq-item) > .sec-head > *{ text-align:left !important; margin-left:0 !important; margin-right:0 !important; }
.wrap:has(> .faq-item) > .sec-head h2{ margin-top:0 !important; }
.wrap:has(> .faq-item) > .faq-item{ max-width:none !important; margin-left:0 !important; margin-right:0 !important; }
@media (min-width:1000px){
  .wrap:has(> .faq-item){ display:grid !important; grid-template-columns:minmax(0,5fr) minmax(0,7fr) !important; column-gap:clamp(48px,6vw,96px); align-items:start; }
  .wrap:has(> .faq-item) > .sec-head{ grid-column:1; grid-row:1 / span 40; position:sticky; top:120px; margin:0 !important; padding-top:22px !important; }
  .wrap:has(> .faq-item) > .sec-head h2{ font-size:clamp(30px,2.7vw,40px) !important; max-width:none !important; }
  .wrap:has(> .faq-item) > .faq-item{ grid-column:2; }
}
/* Guides page: guide boxes use the full width. 3 across (2 for sets of 2 or 4, 4 for the 20 roofing guides), whole box clickable, no underlines. */
.wrap > .hub-list{ max-width:none !important; gap:var(--gap) !important; }
@media (min-width:600px) and (max-width:999px){ .wrap > .hub-list{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (min-width:1000px){ .wrap > .hub-list{ grid-template-columns:repeat(3,minmax(0,1fr)) !important; } .wrap > .hub-list:has(> li:nth-child(4):last-child), .wrap > .hub-list:has(> li:nth-child(2):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } .wrap > .hub-list:has(> li:nth-child(16)){ grid-template-columns:repeat(4,minmax(0,1fr)) !important; } }
.hub-list a{ text-decoration:none !important; }
.hub-list li{ position:relative; transition:border-color .15s ease; }
.hub-list a::after{ content:""; position:absolute; inset:0; }
.hub-list li:hover{ border-color:var(--brand) !important; }
.hub-list li:hover a{ color:var(--brand) !important; }
/* Section headings use the full section width (only wrapping when they have to, evenly); intro paragraphs keep a comfortable reading width. */
.sec-head{ max-width:none !important; }
.sec-head h2{ max-width:none !important; }
.sec-head > p{ max-width:780px !important; }
.sec-head.center > p{ margin-left:auto !important; margin-right:auto !important; }
/* Headings are never capped narrower than the space they sit in (WordPress capped every heading at the 780px text column; that cap now applies to paragraphs only). They only wrap when they truly run out of room, and then split evenly. */
.wp-block-post-content :is(h1,h2,h3,h4){ max-width:none !important; text-wrap:balance !important; }
/* Headings and intro paragraphs use the full width of their section, the same width as the boxes and cards below them.
   Section headings top out at 46px so typical headings fit on one line. Long-form text sections (.wrap.narrow) keep their reading width. */
:root{ --fs-h2:clamp(30px,3.6vw,46px) !important; }
h2, .wp-block-post-content h2{ font-size:var(--fs-h2) !important; }
.sec-head > p{ max-width:none !important; }
.wrap:not(.narrow) > p{ max-width:none !important; }
.wrap.narrow .sec-head > p{ max-width:780px !important; }
/* FULL WIDTH EVERYWHERE: WordPress capped every block at a 780px text column. That cap is gone; every heading, paragraph,
   list and group fills its section or card, the same width as the boxes around it. (Supersedes the narrower rules above.) */
body{ --wp--style--global--content-size:100% !important; }
.wp-block-post-content :is(.wrap, .sec-head, .is-style-card, .card, .cta-band) > :is(h1,h2,h3,h4,h5,h6,p,ul,ol,div,nav,table,blockquote,section){ max-width:none !important; }
.wp-block-post-content p.lead, .wp-block-post-content .lead{ max-width:none !important; }
.wp-block-post-content img{ max-width:100% !important; height:auto; }
.wrap.narrow .sec-head > p{ max-width:none !important; }
/* v3.0.2: headings fill their line before wrapping (no early, "balanced" breaks). The last two words are joined
   in functions.php (curbside_no_orphans), so a wrapped heading never ends on a single word. Paragraphs avoid one-word last lines too. */
html body .wp-block-post-content :is(h1,h2,h3,h4,h5,h6){ text-wrap:wrap !important; }
html body .wp-block-post-content p{ text-wrap:pretty; }
/* v3.0.4: words are never split mid-word.
   - Rows of 4+ cards become 2 across on tablets (they were too narrow for words like "Compounding").
   - Card titles shrink a little inside very narrow cards so the longest word always fits. */
@media (min-width:782px) and (max-width:1100px){
  .wp-block-columns:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(4)){ flex-wrap:wrap !important; }
  .wp-block-columns:not(.is-not-stacked-on-mobile):has(> .wp-block-column:nth-child(4)) > .wp-block-column{ flex-basis:calc(50% - var(--gap)) !important; flex-grow:0 !important; }
}
.is-style-card, .card{ container-type:inline-size; }
.is-style-card :is(h3,h4), .card :is(h3,h4){ font-size:min(var(--fs-h3, 22px), 9cqi) !important; overflow-wrap:normal !important; }
/* v3.0.5: width-matched stand-in fonts, used only for the instant before the real fonts load, so nothing re-wraps or jumps. */
@font-face{ font-family:"Archivo Expanded Fit"; src:local("Arial Black"), local("ArialMT-Black"), local("Arial-Black"); font-weight:100 900; size-adjust:112.8%; }
@font-face{ font-family:"Archivo Fit"; src:local("Arial"), local("ArialMT"), local("Helvetica Neue"), local("Helvetica"); font-weight:100 900; size-adjust:98.5%; }
:root, body{ --f-display:"Archivo Expanded","Archivo Expanded Fit","Arial Black",Arial,sans-serif !important; --f-body:"Archivo","Archivo Fit",Arial,sans-serif !important;
  --wp--preset--font-family--display:"Archivo Expanded","Archivo Expanded Fit","Arial Black",Arial,sans-serif !important; --wp--preset--font-family--body:"Archivo","Archivo Fit",Arial,sans-serif !important; }
/* Free Audit hero: text column 56%, form 44%, headline sized so each colour line fits on one line. Form card heading at card size. */
@media (min-width:782px){ .cs-audit .wp-block-columns > .wp-block-column:first-child{ flex-basis:56% !important; } .cs-audit .wp-block-columns > .wp-block-column:last-child{ flex-basis:44% !important; } html body .cs-audit h1{ font-size:clamp(38px,4vw,56px) !important; } }
html body .cs-formcard h2{ font-size:clamp(26px,2.3vw,32px) !important; }
/* v3.0.7: page titles on phones: a size that suits a phone (35px on a typical phone) and even lines.
   Two-colour titles keep the orange part on its own line only when it fits (site.js). */
@media (max-width:781px){ html body .wp-block-post-content h1, html body .cs-hero h1, html body .cs-audit h1{ font-size:clamp(30px,9vw,40px) !important; text-wrap:balance !important; } }
/* Glossary "Jump to a term" index */
.cs-index{ border-top:1px solid var(--ink); margin-top:clamp(28px,3vw,40px) !important; }
.cs-index-group{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:clamp(48px,6vw,96px); padding:24px 0; border-bottom:1px solid var(--rule); align-items:start; }
.cs-index-label{ margin:0 !important; font-family:var(--f-display); font-weight:800; font-size:clamp(18px,1.6vw,21px); line-height:1.3; letter-spacing:-.005em; color:var(--ink); padding-top:6px; }
.cs-index ul{ list-style:none; margin:0 !important; padding:0 !important; columns:2; column-gap:var(--gap); }
.cs-index li{ margin:0 !important; padding:0 !important; break-inside:avoid; }
.cs-index li::before{ display:none !important; }
.cs-index a{ display:flex; align-items:center; gap:10px; padding:7px 0; font-size:17px; font-weight:600; line-height:1.4; color:var(--ink) !important; text-decoration:none !important; transition:color .15s ease; }
.cs-index a::after{ content:""; flex:none; width:14px; height:14px; background:var(--brand); opacity:0; transform:translateY(-2px); transition:opacity .15s ease, transform .15s ease; -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M12 4v15M6 13l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='square'%3E%3Cpath d='M12 4v15M6 13l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat; }
.cs-index a:hover{ color:var(--brand) !important; }
.cs-index a:hover::after{ opacity:1; transform:none; }
@media (max-width:999px){ .cs-index-group{ grid-template-columns:minmax(0,1fr); row-gap:10px; } .cs-index-label{ padding-top:0; } }
@media (max-width:600px){ .cs-index ul{ columns:1; } .cs-index a{ min-height:44px; padding:10px 0; } .cs-index a::after{ opacity:1; transform:none; } }
.wp-block-post-content [id]{ scroll-margin-top:100px; }
/* Tick lists: the tick is centred on the first line of its text at any font size (measured from the line, not a fixed pixel offset), one tick style sitewide, and the list always has breathing room under the paragraph above it. */
ul.ticks{ list-style:none !important; padding:0 !important; display:flex !important; flex-direction:column; gap:14px !important; }
p + ul.ticks, h3 + ul.ticks, h4 + ul.ticks{ margin-top:20px !important; }
ul.ticks li{ position:relative; padding-left:30px !important; margin:0 !important; line-height:1.5 !important; }
ul.ticks li::before{ display:none !important; }
ul.ticks li::after{ content:"" !important; position:absolute; left:0; top:calc(.75em - 9px); top:calc(.5lh - 9px); width:18px; height:18px; border:0 !important; transform:none !important; background:var(--brand);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat; }
.cs-trust li::before{ top:calc(.7em - 8px); top:calc(.5lh - 8px); }
/* Tags: the black tag is the same height as the outlined one beside it. */
.pill-navy{ border:1px solid var(--navy) !important; }
/* Button pairs (outside cards, tablet and up; phones and cards already use full-width buttons): side by side when they fit, unchanged. When they have to stack, both buttons are the same width and line up with the text edges. */
@media (min-width:601px){
:not(.is-style-card):not(.card) > .wp-block-buttons:has(> .wp-block-button + .wp-block-button):not(.is-content-justification-center):not(.is-vertical){ width:fit-content !important; max-width:100% !important; }
:not(.is-style-card):not(.card) > .wp-block-buttons:has(> .wp-block-button + .wp-block-button):not(.is-content-justification-center):not(.is-vertical) > .wp-block-button{ flex:1 1 auto !important; }
:not(.is-style-card):not(.card) > .wp-block-buttons:has(> .wp-block-button + .wp-block-button):not(.is-content-justification-center):not(.is-vertical) > .wp-block-button > .wp-block-button__link{ width:100% !important; box-sizing:border-box; justify-content:center; text-align:center; }
}
/* Tags: every tag is the same height (each has a 1px edge in its own colour), tags in a row sit 8px apart, and a row of tags always has clear space before the heading under it and after the breadcrumb above it. */
.pill-ember{ border:1px solid var(--ember) !important; }
.wp-block-post-content :is(.wrap,.wp-block-column) > .pill{ vertical-align:top; margin:0 4px 8px 0 !important; }
.wp-block-post-content :is(.wrap,.wp-block-column) > .pill + :is(h1,h2,h3,h4){ margin-top:16px !important; }
.wp-block-post-content .wrap > .pill + h1{ margin-top:clamp(16px,2vw,28px) !important; }
.wp-block-post-content .wrap > div:has(+ .pill){ margin-bottom:20px !important; }
/* Full-width proof screenshots sit in the content column with a thin frame. */
.wp-block-post-content .cs-proof-shot{ margin:clamp(48px,5vw,72px) 0 0 !important; max-width:none !important; width:100%; }
.wp-block-post-content .cs-proof-shot img{ display:block; width:100% !important; height:auto; border:1px solid var(--rule); }
/* Stat rows: each number is sized to its own column, so every number in a row is the same size, stays on one line and never runs past the divider. Rows of four go two by two on tablets. */
div[style*="display:grid"]:has(> div > .stat-num) > div{ container-type:inline-size; min-width:0; }
div[style*="display:grid"]:has(> div > .stat-num) .stat-num{ font-size:min(64px, 20cqi) !important; white-space:nowrap; }
@media (min-width:641px) and (max-width:999px){
  div[style*="display:grid"]:has(> div > .stat-num):has(> div:nth-child(4):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  div[style*="display:grid"]:has(> div > .stat-num):has(> div:nth-child(4):last-child) > div:nth-child(3){ border-left:0 !important; }
  div[style*="display:grid"]:has(> div > .stat-num):has(> div:nth-child(4):last-child) > div:nth-child(n+3){ border-top:1px solid var(--rule); margin-top:24px; padding-top:32px; }
}
/* Card tags: any tag that opens a card (solid, outlined or black) sits on the card's top edge, lined up with the card's text, so every card in a row starts its heading at the same height. Plain bullet lists in cards start on the card's left edge. */
:is(.is-style-card,.card):has(> .pill:first-child){ position:relative !important; }
:is(.is-style-card,.card) > .pill:first-child{ position:absolute !important; top:0; left:clamp(26px, 2.6vw, 36px) !important; transform:translateY(-50%); margin:0 !important; z-index:1; }
:is(.is-style-card,.card) > .pill:first-child + *{ margin-top:0 !important; }
:is(.is-style-card,.card) > .pill-soft:first-child{ background:#fff !important; }
:is(.is-style-card,.card) > ul:not(.ticks):not([class*="cs-"]){ padding-left:1.15em !important; margin-left:0 !important; }
/* Card rows (fix): cards in row-matched sections must not measure their own width, or they drop out of the shared rows. The :not(#cs) beats the older one-card-per-column stacking rule. Plan buttons sit on the shared bottom row. */
@media (min-width:782px){
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns:not(#cs){ display:grid !important; }
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns > .wp-block-column:not(#cs){ display:contents !important; }
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns > .wp-block-column > .is-style-card:not(#cs){ display:grid !important; height:auto !important; }
:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns > .wp-block-column > :is(.is-style-card,.card):not(#cs){ container-type:normal !important; }
:is(.cs-pricing,.cs-builds) .wp-block-columns > .wp-block-column > .is-style-card:not(#cs) > .wp-block-buttons{ align-self:end; margin-top:0 !important; }
}
/* Card titles shrink to fit narrow cards without splitting words. The row (not the card) is measured, so cards can still share rows.
   Card text width = this card's share of the row minus card padding; titles are capped so a 7.4em word (e.g. "Competitors") always fits; never below 15px. */
.is-style-card, .card{ container-type:normal !important; }
.wp-block-columns:has(> .wp-block-column > :is(.is-style-card,.card)){ container-type:inline-size; --cs-pad:clamp(26px, 2.6vw, 36px); --cs-share:100cqi; }
.wp-block-columns:has(> .wp-block-column:nth-child(2):last-child){ --cs-share:calc(50cqi - var(--gap) / 2); }
.wp-block-columns:has(> .wp-block-column:nth-child(3):last-child){ --cs-share:calc(33.333cqi - var(--gap) * 2 / 3); }
.wp-block-columns:has(> .wp-block-column:nth-child(4):last-child){ --cs-share:calc(25cqi - var(--gap) * 3 / 4); }
.wp-block-columns:has(> .wp-block-column:nth-child(5)){ --cs-share:calc(20cqi - var(--gap) * 4 / 5); }
@media (min-width:782px) and (max-width:999px){ .wp-block-columns:has(> .wp-block-column:nth-child(4)):not(:is(.cs-burned,.cs-how,.cs-get,.cs-pricing,.cs-builds,.cs-services,.cs-reviews,.cs-contact-opts) .wp-block-columns){ --cs-share:calc(50cqi - var(--gap) / 2) !important; } }
@media (max-width:781px){ .wp-block-columns:has(> .wp-block-column > :is(.is-style-card,.card)){ --cs-share:100cqi !important; } }
.wp-block-columns > .wp-block-column > :is(.is-style-card,.card) > :is(h3,h4){ font-size:max(15px, min(var(--fs-h3, 22px), calc((var(--cs-share) - 2 * var(--cs-pad)) / 7.4))) !important; overflow-wrap:normal !important; word-break:normal !important; hyphens:manual !important; }
/* Body text: running paragraphs use the same grey as intro paragraphs, FAQ answers and card text, so size is the only difference between an intro and the text under it. Bold words stay black. Dark sections keep their own light text. */
.wp-block-post-content :is(.wrap, .sec-head, .wp-block-column) > p.wp-block-paragraph:not(.lead):not(.eyebrow):not(.small):not(.cs-note):not(.has-text-color):not(:is(.dark-section, .is-style-dark-section, .cta-band, .cs-anon) *){ color:var(--mut) !important; }
.wp-block-post-content :is(.wrap, .sec-head, .wp-block-column) > p.wp-block-paragraph:not(.has-text-color):not(:is(.dark-section, .is-style-dark-section, .cta-band, .cs-anon) *) strong{ color:var(--ink); }

/* Link cards (Related / Keep exploring rows): title, description and link line up across the row; the link sits on the card's bottom line. */
:is(.is-style-card,.card) > p + p:last-child:has(> a:only-child){ margin-top:auto !important; padding-top:16px; }
@media (min-width:1000px){
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child > p + p:last-child > a:only-child):not(#cs){ display:grid !important; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); grid-template-rows:repeat(8,auto); row-gap:0 !important; column-gap:var(--gap) !important; align-items:stretch; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child > p + p:last-child > a:only-child) > .wp-block-column:not(#cs){ display:contents !important; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child > p + p:last-child > a:only-child) > .wp-block-column > .is-style-card:not(#cs){ display:grid !important; grid-row:1 / span 8; grid-template-rows:subgrid; row-gap:0; align-content:start; height:auto !important; container-type:normal !important; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child > p + p:last-child > a:only-child) > .wp-block-column > .is-style-card:not(#cs) > p + p:last-child:has(> a:only-child){ grid-row:-2; align-self:end; }
}

/* All card rows (desktop): when every column in a row is a single card, the cards share rows, so titles, descriptions and anything below start at the same height across the row. */
@media (min-width:1000px){
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child):not(:has(> .wp-block-column > :not(.is-style-card))):not(#cs){ display:grid !important; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); grid-template-rows:repeat(8,auto); row-gap:0 !important; column-gap:var(--gap) !important; align-items:stretch; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child):not(:has(> .wp-block-column > :not(.is-style-card))) > .wp-block-column:not(#cs){ display:contents !important; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child):not(:has(> .wp-block-column > :not(.is-style-card))) > .wp-block-column > .is-style-card:not(#cs){ display:grid !important; grid-row:1 / span 8; grid-template-rows:subgrid; row-gap:0; align-content:start; height:auto !important; container-type:normal !important; }
.wp-block-columns:has(> .wp-block-column > .is-style-card:only-child):not(:has(> .wp-block-column > :not(.is-style-card))) > .wp-block-column > .is-style-card:not(#cs) > .wp-block-buttons:last-child{ grid-row:-2; align-self:end; margin-top:0 !important; }
}

/* A paragraph that follows a row of cards gets clear space above it. */
.wp-block-post-content .wrap > .wp-block-columns + p{ margin-top:clamp(28px,3vw,40px) !important; }
/* A second heading inside a card (after a list, paragraph or buttons) gets the same space above it as the card's padding, so each group reads as its own block. */
.wp-block-post-content :is(.is-style-card,.card) > :is(ul,ol,p,.wp-block-buttons,figure) + :is(h2,h3,h4){ margin-top:clamp(28px, 2.6vw, 36px) !important; }

/* v3.0.12: footer social links (square, flat; orange on hover) */
.ft-social{ display:flex; gap:10px; margin-top:22px; }
.ft-social a{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; color:#fff !important; border:1px solid rgba(255,255,255,.28); text-decoration:none !important; transition:background-color .15s ease, border-color .15s ease; }
.ft-social a:hover, .ft-social a:focus-visible{ background:var(--brand, #bf5700); border-color:var(--brand, #bf5700); }
.ft-social a:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.ft-brand .ft-social svg{ width:18px; height:18px; display:block; }
