/* ============================================================
   Buoy IT Solutions — site theme (deploy/ pages + ui_kits/website cards only)
   Adopted Oct 2026 from the approved "Space Indigo & Flag Red + Gold" trial.
   Layers the brand treatment over the page modules: deep hero, dark header with gold
   wordmark, gold CTAs, indigo icon tiles + gold icons, gold labels, indigo card outlines.
   Not part of styles.css on purpose: these #root rules are site-specific and must not
   restyle consuming projects. Fold into _site-src over time; until then, every deploy
   page must link this file after styles.css.
   ============================================================ */
/* Deep hero */
#root header + section:has(h1){background:#1D3557!important;background-image:none!important} /* TRY: badge navy */
#root header + section:has(h1) :is(h1,p):not(section [style*="background"] *):not(button *):not(button){color:var(--honeydew)!important}
#root header + section:has(h1) [style*="--red"]:not(section [style*="background"] *):not(button *):not(button){color:var(--accent)!important}
#root header + section:has(h1) [style*="--steel"]:not(section [style*="background"] *):not(button *):not(button){color:var(--powder)!important}
body{background:var(--bg-page)}
/* Accent words on dark surfaces ("done properly", etc.): gold, not pink-red */
[style*="#ea4854"],[style*="rgb(234, 72, 84)"],#root [style*="var(--accent)"]:not(button):not(button *):not([style*="solid var(--accent)"]){color:var(--accent)!important}

#root header + section:has(h1) svg:not([style*="--powder"] svg):not([style*="--honeydew"] svg):not([style*="--white"] svg):not([style*="#fff"] svg),
#root section[style*="var(--navy"] [style*="--accent"] svg,
#root section[style*="var(--navy"] svg[style*="--accent"]{color:var(--accent)!important}

/* ---- More gold (dark surfaces only — every use below sits on Space Indigo / navy-900) ---- */
/* Hero: accent words in the H1 and the eyebrow label */
#root header + section:has(h1) h1 [style*="--red"]{color:var(--accent)!important}
#root header + section:has(h1) [style*="uppercase"]:not([style*="--powder"] *):not([style*="--honeydew"] *):not([style*="--white"] *){color:var(--accent)!important}
/* Dark bands (WiFi, Steady Hands, Reviews, CTA): eyebrows, headline accents, icons, active dot */
#root section[style*="var(--navy"] [style*="uppercase"]{color:var(--accent)!important}
#root section[style*="var(--navy"] h2 [style*="--red"]{color:var(--accent)!important}
#root section[style*="var(--navy"] svg:not(button svg):not([style*="--powder"] svg):not([style*="--honeydew"] svg):not([style*="--white"] svg){color:var(--accent)!important}
#root section[style*="var(--navy"] button[aria-label^="Testimonial"][style*="--red"]{background:var(--accent)!important}
/* Footer: column headings + icons */
#root footer h4,#root footer [style*="uppercase"]:not([style*="--red"]){color:var(--accent)!important}
#root footer svg:not(button svg):not([style*="--powder"] svg):not([style*="--honeydew"] svg):not([style*="--white"] svg){color:var(--accent)!important}

/* Icon tiles on light sections: dark tile + gold icon (gold on Space Indigo = 7.63:1) */
#root :is(span,div)[style*="background: var(--powder-100)"]:has(> svg){background:var(--navy)!important}
#root :is(span,div)[style*="background: var(--powder-100)"]:has(> svg) > svg{color:var(--accent)!important}

/* Steady Hands band CTA: gold fill, Space Indigo text (7.63:1) */
#root section:has(> img) button[style*="--red"]{background:var(--accent)!important;color:var(--navy)!important;border-color:var(--accent)!important}
#root section:has(> img) button[style*="--red"] svg{color:var(--navy)!important}
/* Get in touch contact icons: same dark tile + gold icon as the other icon tiles */
#root :is(span,div)[style*="background: var(--white)"]:has(> svg):not(:has(input,textarea,select)){background:var(--navy)!important;border-color:var(--navy)!important}
#root :is(span,div)[style*="background: var(--white)"]:has(> svg):not(:has(input,textarea,select)) > svg{color:var(--accent)!important}

/* Photo band overlay for the sunset-buoys photo: the bright peach horizon sits behind the
   copy, so the hold has to be heavier than the dark-water photo needed. */
#root section:has(> img) > div[style*="linear-gradient"]:not(.steady-scrim){background:linear-gradient(90deg, color-mix(in srgb, var(--navy) 60%, transparent) 0%, color-mix(in srgb, var(--navy) 60%, transparent) 42%, color-mix(in srgb, var(--navy) 0%, transparent) 50%)!important}
/* Body copy in the photo band: lavender grey (#8D99AE) only just passes on SOLID indigo and
   drops to ~3.5:1 once photo shows through the overlay. Use the lighter steel step instead. */
#root section:has(> img) p{color:var(--honeydew)!important}
#root section:has(> img) :is(h2,p,[style*="uppercase"]){text-shadow:0 1px 14px rgba(26,27,40,.55)}
#root section:has(> img) :is(h2,p){max-width:470px!important}

/* Section labels in gold. Gold TEXT on the light sections is ~1.6:1 (unreadable), so on light
   backgrounds the label sits in a Space Indigo pill — gold on indigo is 7.63:1. On dark
   sections it is plain gold text, as before. */
#root span[style*="text-transform: uppercase"][style*="letter-spacing: var(--tracking-wider)"]{color:var(--accent)!important}
#root span[style*="text-transform: uppercase"][style*="letter-spacing: var(--tracking-wider)"] svg{color:var(--accent)!important}
#root section:not([style*="var(--navy"]):not(:has(> img)) span[style*="text-transform: uppercase"][style*="letter-spacing: var(--tracking-wider)"]{background:var(--navy);padding:7px 12px 7px 10px;border-radius:999px}
#root header + section:has(h1) span[style*="text-transform: uppercase"][style*="letter-spacing: var(--tracking-wider)"]{background:none;padding:0}

/* Cards on light sections: Space Indigo outline */
#root section:not([style*="var(--navy"]) div[style*="border: var(--border-w) solid var(--border)"][style*="border-radius: var(--radius-lg)"]{border-color:var(--navy)!important;border-width:2px!important}
/* Hero label anchor: gold, matching its text */
#root header + section:has(h1) span[style*="text-transform: uppercase"] svg,
#root header + section:has(h1) span[style*="text-transform: uppercase"] svg *{color:var(--accent)!important;stroke:var(--accent)!important}

/* ALL CTAs: gold fill, Space Indigo label + icon (7.63:1). Covers the hover state too,
   which swaps the inline fill to --red-600. */
#root button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]),
.bits-cc-b1{background:var(--accent)!important;color:var(--navy)!important;border-color:var(--accent)!important}
#root button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]) svg{color:var(--navy)!important}
#root button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]):hover{filter:brightness(1.06)}

/* Footer wordmark "SOLUTIONS": gold on dark (Ryanne's call). */
#root footer span[style*="--red"]{color:var(--accent)!important}
/* Footer contact + social icons: gold */
#root footer svg, #root footer svg *{color:var(--accent)!important}
#root footer svg[fill="none"] *{stroke:var(--accent)!important}
#root footer span[style*="width: 40px"]{border-color:color-mix(in srgb, var(--accent) 45%, transparent)!important}
/* Wave into the dark footer: drop the white crest line, which read as a stray rule on navy */
#root svg:has(path[fill="var(--navy)"]) path[fill="none"][stroke="#ffffff"]{display:none}

/* Space Indigo outline on every light-surface card, form field and choice button.
   (The earlier card rule missed the services grid and the form fields.) */
#root [style*="solid var(--border)"]:not([style*="background: var(--navy"]):not(section[style*="var(--navy"] *){border-color:var(--navy)!important;border-width:2px!important}
#root form textarea,#root form input:not([type=radio]):not([type=checkbox]):not([type=hidden]){border-color:var(--navy)!important}
/* Residential / Business choice: navy icon + label; selected = gold fill */
#root form label:has(input[type=radio]) svg{color:var(--navy)!important}
#root form label:has(input[type=radio]){color:var(--navy)!important}
#root form label:has(input[type=radio]:checked){background:var(--navy)!important;border-color:var(--navy)!important;color:var(--honeydew)!important}
#root form label:has(input[type=radio]:checked) svg{color:var(--accent)!important}
#root form label:has(input[type=radio]:focus-visible){outline:2px solid var(--navy);outline-offset:2px}

/* ---- TRIAL: dark header + gold wordmark ----
   Header goes navy-900 (#1A1B28), one step darker than the Space Indigo hero, with a thin
   gold rule so the two dark surfaces read as separate bands rather than one block.
   Logo swaps to the knockout badge; "BUOY IT" honeydew, "SOLUTIONS" gold (7.63:1+). */
/* TRY: light header so a garnet "SOLUTIONS" can read (7.8:1+ on cream).
   Previous dark header kept below, commented out. */
#root header{background:#FAF5EF!important;border-bottom:2px solid color-mix(in srgb, var(--navy) 14%, transparent)!important}
#root header .site-logo img{content:url("assets/logo.svg")}
#root header .site-logo span span:first-child{color:var(--navy)!important}
#root header .site-logo span span:last-child{color:#A50044!important}
#root header .site-nav a{color:var(--navy)!important}
#root header .site-nav a:hover{color:#A50044!important}
#root header .site-burger{border-color:color-mix(in srgb, var(--navy) 30%, transparent)!important}
#root header .site-burger svg{color:var(--navy)!important}
#root header .site-menu{background:#FAF5EF!important}
#root header .site-menu a{color:var(--navy)!important;border-color:color-mix(in srgb, var(--navy) 14%, transparent)!important}
/* DARK HEADER (previous) —
#root header{background:#142843!important; /* TRY: darker shade of badge navy *\/border-bottom:2px solid color-mix(in srgb, var(--accent) 55%, transparent)!important}
#root header .site-logo img{content:url("assets/logo-white.svg")}
#root header .site-logo span span:first-child{color:var(--honeydew)!important}
#root header .site-logo span span:last-child{color:#A50044!important} /* TRY: garnet. Fallback: var(--red-400) #A50044 *\/
#root header .site-nav a{color:var(--steel-400)!important}
#root header .site-nav a:hover{color:var(--honeydew)!important}
#root header .site-burger{border-color:color-mix(in srgb, var(--accent) 45%, transparent)!important}
#root header .site-burger svg{color:var(--honeydew)!important}
#root header .site-menu{background:var(--navy-900)!important}
#root header .site-menu a{color:var(--honeydew)!important;border-color:var(--navy)!important}
*/
#root header .site-nav a{font-size:17px!important}

/* Form consistency: every field gets the same 1.5px Space Indigo edge. The text inputs
   draw their border on a wrapper div (border-strong), which is why they stayed grey. */
#root form div[style*="solid var(--border-strong)"]{border:2px solid var(--navy)!important}
#root form textarea{border-width:2px!important}
#root form label:has(input[type=radio]){border-width:2px!important}
#root form div[style*="solid var(--border-strong)"]:focus-within,#root form textarea:focus{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 45%, transparent)!important}
/* Sensitive-info note: it used a negative top margin and overlapped the message box */
#root form p[style*="calc(var(--space-2) * -1)"]{margin:8px 0 0!important;font-size:14px!important;color:var(--steel-600)!important}

/* Closing CTA band directly above the footer: light, not navy. Two navy surfaces back to
   back read as one heavy block. Matches the homepage, where the light contact section
   meets the footer's wave. Gold button stays (Space Indigo label, 7.63:1). */
#root section[style*="var(--navy"]:has(+ footer){background:var(--powder-100)!important}
#root section[style*="var(--navy"]:has(+ footer) h2{color:var(--navy)!important}
#root section[style*="var(--navy"]:has(+ footer) h2 [style*="--red"]{color:var(--red-on-tint)!important}
#root section[style*="var(--navy"]:has(+ footer) p{color:var(--steel-600)!important}
#root section[style*="var(--navy"]:has(+ footer) [style*="uppercase"]{color:var(--navy)!important}

/* Button icons: the hero/dark-band rules paint every svg gold, which included the arrow
   inside the gold CTA — gold on gold, invisible, so the label looked pushed left. */
#root button[style*="var(--accent"] svg,#root button[style*="var(--accent"] svg *,
#root button[style*="var(--red-ink)"] svg,#root button[style*="var(--red-ink)"] svg *,
#root button[style*="var(--red-600)"] svg,#root button[style*="var(--red-600)"] svg *{color:var(--navy)!important;stroke:var(--navy)!important}
/* Secondary buttons on dark surfaces: one line, readable label + icon */
#root button{white-space:nowrap}
#root :is(section[style*="var(--navy"],header + section:has(h1)) button:not([style*="var(--red-ink)"]):not([style*="var(--red-600)"]):not([style*="var(--accent"]){color:var(--honeydew)!important;border-color:color-mix(in srgb, var(--honeydew) 55%, transparent)!important}
#root :is(section[style*="var(--navy"],header + section:has(h1)) button:not([style*="var(--red-ink)"]):not([style*="var(--red-600)"]):not([style*="var(--accent"]) svg{color:var(--accent)!important}
/* Outline "Call" links styled as buttons (they're <a>, not <button>) */
#root :is(section[style*="var(--navy"],header + section) a[href^="tel:"][style*="border"]{color:var(--honeydew)!important;white-space:nowrap;flex:none!important;border-color:color-mix(in srgb, var(--honeydew) 55%, transparent)!important}
#root :is(section[style*="var(--navy"],header + section) a[href^="tel:"][style*="border"] svg{color:var(--accent)!important}

/* Footer body text: soft grey rather than white; headings stay gold, links brighten on hover */
#root footer :is(p,li,a,span):not([style*="uppercase"]):not(.site-logo *):not(h4){color:var(--steel-400)!important}
#root footer a:hover{color:var(--honeydew)!important}

/* White page sections use a warm off-white (Oct 2026, client pick). Cards keep pure white so
   they still lift off the section. Text that sat on white passes unchanged here. */
#root section[style*="background: var(--white)"]{background:#FAF5EF!important}

/* Larger section labels (Oct 2026: "all text bigger") */
#root span[style*="text-transform: uppercase"][style*="letter-spacing: var(--tracking-wider)"]{font-size:15px!important}

/* Section edges: the hero's wave at the top of every section, drawn in that section's own
   colour (Oct 2026, client pick over a soft fade). Skipped where the section above already
   ends in its own wave, so no edge gets two. */
#root section{position:relative}
#root section::before{content:"";position:absolute;left:0;right:0;top:-55px;height:56px;z-index:2;pointer-events:none;
  background:inherit;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0,24 C150,48 300,0 450,20 C600,40 750,8 900,22 C1050,36 1150,14 1200,20 L1200,48 L0,48 Z' fill='black'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0,24 C150,48 300,0 450,20 C600,40 750,8 900,22 C1050,36 1150,14 1200,20 L1200,48 L0,48 Z' fill='black'/%3E%3C/svg%3E") center/100% 100% no-repeat}
#root header + section::before,
#root section:has(> div:last-child > svg[preserveAspectRatio="none"]) + section::before,
#root section:has(> div:last-child svg[preserveAspectRatio="none"]) + section::before{display:none!important}

/* Hairline seam fix: a wave ending a section can land on a fractional pixel, leaving a 1px
   strip of the section's own (dark) background showing under it. Nudge every wave divider
   down 1px so it overlaps the next section, which is the same colour as the wave. */
#root section > div:last-child:has(> svg[preserveAspectRatio="none"]){transform:translateY(1px)!important;position:relative;z-index:1}
#root footer > div:first-child:has(> svg[preserveAspectRatio="none"]){margin-bottom:-1px}

/* Waves were drawn in pure white, but white sections are now cream — match them */
#root svg path[fill="var(--white)"]{fill:#FAF5EF}
/* Outline "Call" link next to a large CTA: same height and type size so the pair lines up */
#root section a[href^="tel:"][style*="border"]{min-height:58px;padding-left:26px!important;padding-right:26px!important;font-size:18px!important;box-sizing:border-box;display:inline-flex!important;align-items:center}
/* Last section before the footer: the footer's wave overlaps it by 77px, so add that back
   to the bottom padding — otherwise the bottom looks far tighter than the top */
#root section:has(+ footer)::after{content:"";display:block;height:77px}

/* Spacing balance: each section's top wave overlaps the section above by 55px, which ate
   that section's bottom padding. Give the space back with a 55px spacer at the bottom of
   every section that is followed by a waved section. */
#root section:has(+ section):not(:has(> div:last-child svg[preserveAspectRatio="none"]))::after{content:"";display:block;height:55px}


/* ---- Legibility pass (Oct 27 2026): much of the audience is older, so no thin, pale body text ----
   Greys used for body copy on light sections are pulled darker (all well past 7:1 on cream),
   the lavender-grey used for copy on indigo is lifted to Mist (#D0D7DF, ~9:1 on Space Indigo),
   and paragraph/list text without an explicit weight is set at Barlow 500 instead of 400. */
#root{--gray-500:#3f4d5c;--gray-600:#2f3b48;--gray-700:#25303b;--steel-600:#3a4659;--text-muted:#3f4d5c;--powder:#D0D7DF}
#root :is(p,li,label,td,dd,blockquote){font-weight:500}
#root input,#root textarea,#root select{font-weight:500}
#root footer{--steel-400:#D0D7DF}
#root footer :is(span,a,div){font-weight:500}

/* Steady Hands band — glowing buoys photo, mirrored (Oct 28 2026). Buoys sit right; busy rocks sit behind the copy,
   so the left holds a heavy navy and fades out before the seals. */
#root .steady-scrim{background:linear-gradient(90deg, color-mix(in srgb, var(--navy) 72%, transparent) 0%, color-mix(in srgb, var(--navy) 60%, transparent) 48%, color-mix(in srgb, var(--navy) 0%, transparent) 72%)!important}
@media (max-width:1199px){#root .steady-scrim{background:linear-gradient(90deg, color-mix(in srgb, var(--navy) 84%, transparent) 0%, color-mix(in srgb, var(--navy) 78%, transparent) 60%, color-mix(in srgb, var(--navy) 20%, transparent) 78%, color-mix(in srgb, var(--navy) 0%, transparent) 92%)!important}}
@media (max-width:760px){#root .steady-scrim{background:color-mix(in srgb, var(--navy) 86%, transparent)!important}}


/* Service cards on light sections: GARNET outline (Nov 6 2026; was steel-blue #32607F).
   #32607F is the blue end of the hero gradient. Homepage "What we do" grid + Business/
   Residential service grids. Other light-section cards keep the gold outline. */
#root section:not([style*="var(--navy"]) .service-grid.service-grid.service-grid > :is(a,div)[style*="border"]{border-color:var(--navy)!important}

/* Hero CTA: slimmer than the size="lg" default (was 58px tall, 15/30 padding, 20px) */
#root header + section:has(h1) button{padding:10px 20px!important;font-size:18px!important;font-weight:700!important;letter-spacing:0.01em!important;min-height:0!important;line-height:1.2!important;border-radius:10px!important;border-width:1px!important;box-shadow:0 1px 2px rgba(29,53,87,.08)!important}


/* "On time, even when the ferry isn't." — a lightened badge red. #FF7085 = 4.65:1 on the
   hero navy (the badge's own #A50044 was 1.83:1 and unreadable at 20px). */
/* TRY: ferry line as a garnet tag — white on garnet #A50044 = 7.8:1 */
#root header + section:has(h1) p em{display:inline-block;margin-top:10px;background:#A50044;color:#fff!important;font-style:italic;font-weight:600;font-size:17px;line-height:1.3;padding:5px 12px;border-radius:999px;white-space:nowrap}

/* Header CALL button: garnet fill, white label + icon (7.8:1) */
#root header a[href^="tel:"] button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]){background:#A50044!important;color:#fff!important;border-color:#A50044!important}
#root header a[href^="tel:"] button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]) svg{color:#fff!important;width:18px!important;height:18px!important}
#root header a[href^="tel:"] button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]) svg *{stroke:#fff!important;stroke-width:2.25px!important}
#root header a[href^="tel:"] button:is([style*="var(--red-ink)"],[style*="var(--red-600)"],[style*="var(--accent"]):hover{background:#85003A!important;border-color:#85003A!important;filter:none}

/* ---- Garnet accents (light sections only — garnet is ~2:1 on navy) ---- */
/* 1. Header nav: garnet underline on hover and on the current page */
#root header .site-nav a{position:relative}
#root header .site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#A50044;transform:scaleX(0);transition:transform .2s ease}
#root header .site-nav a:hover::after,#root header .site-nav a[aria-current="page"]::after{transform:scaleX(1)}
#root header .site-nav a[aria-current="page"]{color:#A50044!important}
/* 2. Who We Are stat titles */
#root .stat-title{color:var(--navy)!important}
/* 3. Short rule under light-section headings */
#root section h2[style*="color: var(--navy)"]::after{content:"";display:block;width:40px;height:3px;border-radius:2px;background:#A50044;margin:24px 0 0}
#root [style*="text-align: center"] h2[style*="color: var(--navy)"]::after{margin:24px auto 0}
/* 4. Service cards: garnet top edge on hover */
#root .svc-card{box-shadow:inset 0 0 0 0 #A50044;transition:box-shadow .2s ease}
#root .svc-card:hover{box-shadow:inset 0 3px 0 0 #A50044,var(--shadow-md)}
/* 5. Contact form: garnet asterisks + focus ring */
/* The rounded border lives on the field's wrapper div, not the input — ring the wrapper */
#root form :is(input,textarea,select):focus{outline:none!important;box-shadow:none!important}
#root form div:has(> :is(input,textarea,select):focus){border-color:#A50044!important;box-shadow:0 0 0 1px #A50044!important}

/* ---- Garnet accents, round 2 ---- */
/* 2. Section labels on LIGHT sections: light pill so the garnet icon reads.
   White pill, thin garnet edge, navy label text (navy on white ~13:1), garnet icon (7.8:1).
   Labels on dark sections keep the navy pill with gold text + gold icon. */
#root section:not([style*="var(--navy)"]):not(:has(> img)) [style*="uppercase"]:has(> svg){background:#fff!important;border:1px solid #A50044!important;color:var(--navy)!important}
#root section:not([style*="var(--navy)"]):not(:has(> img)) [style*="uppercase"]:has(> svg) > svg{color:#A50044!important}
/* 3. Check / list icons in light-section cards */
#root section:not([style*="var(--navy)"]) li::marker{color:#A50044}
/* 4. "Learn more" arrows on service cards */
#root .svc-card svg:last-of-type{color:#A50044!important}
/* 6. Selected Residential/Business chip */
/* selected chip sits on a dark fill, so garnet TEXT was unreadable — garnet fill, white text instead */
#root form label:has(input[type="radio"]:checked){background:#A50044!important;border-color:#A50044!important;color:#fff!important;box-shadow:none!important}
#root form label:has(input[type="radio"]:checked) svg,#root form label:has(input[type="radio"]:checked) svg *{color:#fff!important;stroke:#fff!important}
/* 7. Mobile menu current page */
#root .site-menu a[aria-current="page"]{color:#A50044!important;font-weight:700}
/* Cards: Who We Are stat cards get garnet borders (matches their garnet titles) */
#root .stat-title{}
#root div:has(> .stat-title){}

/* What We Do: the header icon in its dark tile stays gold (the Learn-more arrow rule was catching it) */
#root .svc-card span[style*="background"] > svg{color:var(--accent)!important}
/* What We Do cards: garnet border */

/* CTAs on LIGHT sections: garnet fill, white label (7.8:1). Dark sections and the photo
   band keep gold — garnet on navy is ~2:1 and the button would sink into the background. */
#root section:not([style*="var(--navy"]):not(:has(> img)) button[style*="background: var(--accent)"]{background:#A50044!important;color:#fff!important;border-color:#A50044!important}
#root section:not([style*="var(--navy"]):not(:has(> img)) button[style*="background: var(--accent)"] svg{color:#fff!important}
#root section:not([style*="var(--navy"]):not(:has(> img)) button[style*="background: var(--accent)"] svg *{stroke:#fff!important}
#root section:not([style*="var(--navy"]):not(:has(> img)) button[style*="background: var(--accent)"]:hover{background:#85003A!important;border-color:#85003A!important}

/* CTA borders: garnet buttons get a gold edge; gold buttons get a navy edge */
#root section:not([style*="var(--navy"]):not(:has(> img)) button[style*="background: var(--accent)"]{border:2px solid var(--accent)!important}
#root header a[href^="tel:"] button{border:2px solid var(--accent)!important}
#root section[style*="var(--navy"] button[style*="background: var(--accent)"]{border:2px solid var(--navy-900)!important}

/* ===== Type consistency pass (Nov 6, 2026) — one size per role, site-wide =====
   Audit found 3 hero sizes, 5 section-heading sizes, 3 button sizes, 2 label sizes. */
/* Inner-page hero H1: one size everywhere (homepage hero is deliberately compact) */
#root:not(:has(.trust-pill)) header + section h1{font-size:clamp(40px,4.6vw,64px)!important}
/* Hero subheads: 24px on every page */
#root header + section p[style*="font-size: 22px"]{font-size:24px!important}
/* Section H2s: one size (legal-page headings keep their smaller document size) */
#root:not(:has(#cookies,#accept)) section h2{font-size:clamp(30px,4.2vw,44px)!important}
/* Section intro paragraphs: 19px stragglers up to 20px */
#root section p[style*="font-size: 19px"]{font-size:20px!important}
/* Legal pages: body copy up from 16 to 18px */
#root:has(#cookies,#accept) section[id] :is(p,li){font-size:18px!important}
/* CTA buttons: 18px everywhere except the compact header CALL button */
#root section button[style*="var(--font-display)"]:not([aria-label^="Testimonial"]){font-size:18px!important}
/* Section labels: one size */
#root :is(section,header,footer) [style*="uppercase"][style][style]:has(> svg){font-size:16px!important}

/* Wave dividers: the wrapper div carries the PREVIOUS section's colour, so the SVG's
   anti-aliased bottom row let that light colour show as a hairline. Overlap by a pixel or two. */
/* Overlap the next (navy) block by 3px and paint on top, so the wave's anti-aliased bottom
   edge always lands over navy, at any zoom or scroll position. */
#root div[style*="line-height: 0"]:has(path[fill="var(--navy)"]){background:linear-gradient(to top, var(--navy) 4px, transparent 4px)!important;margin-bottom:-3px!important;position:relative;z-index:2}

/* Pills must not wrap: trust marks in the hero, and section labels */
#root .trust-pill{white-space:nowrap}
#root [style*="uppercase"]:has(> svg){white-space:nowrap}

/* "Learn more" text on service cards: garnet, matching its arrow */
#root .svc-card :is(span,a,div)[style*="font-family"]:has(> svg){color:#A50044!important}
#root .svc-card :is(span,a,div):has(> svg) svg{color:#A50044!important}

/* "Send up a flare" — modern pill: full radius, arrow chip that slides on hover, soft gold glow */
#root .chip-rocket button[style]{border-radius:999px!important;padding:8px 8px 8px 24px!important;min-height:0!important;gap:14px!important;font-size:18px!important;letter-spacing:.01em!important;box-shadow:0 6px 20px -6px rgba(244,184,96,.55)!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root .chip-rocket button[style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;transform-origin:center;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B860' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z'/%3E%3Cpath d='m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z'/%3E%3Cpath d='M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0'/%3E%3Cpath d='M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .18s ease}
#root .chip-rocket button[style]:hover{background:var(--accent)!important;transform:translateY(-1px)!important;box-shadow:0 10px 26px -6px rgba(244,184,96,.7)!important}
#root .chip-rocket button[style]:hover::after{transform:translate(2px,-2px)}


/* ---- Icon chips (pill + round icon chip), matching "Send up a flare" ---- */
@keyframes chipbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}

#root .chip-buoy button[style]{border-radius:999px!important;padding-right:6px!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root .chip-buoy button[style] > svg{display:none!important}
#root .chip-buoy button[style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A50044' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='4.6' r='1.7'/%3E%3Cpath d='M10 8h4'/%3E%3Cpath d='M10.4 8 8.8 16.5M13.6 8l1.6 8.5'/%3E%3Cpath d='M6.5 16.5h11l-1.3 2.2H7.8z'/%3E%3Cpath d='M3 21.6c2 0 2-1.3 4.5-1.3s2 1.3 4.5 1.3 2-1.3 4.5-1.3 2 1.3 4.5 1.3'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .2s ease}
#root .chip-buoy button[style]:hover{transform:translateY(-1px)!important}
#root .chip-buoy button[style]:hover::after{animation:chipbob .9s ease-in-out infinite}

#root form button[type="submit"][style]{border-radius:999px!important;padding-right:6px!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root form button[type="submit"][style] > svg{display:none!important}
#root form button[type="submit"][style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A50044' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .2s ease}
#root form button[type="submit"][style]:hover{transform:translateY(-1px)!important}
#root form button[type="submit"][style]:hover::after{transform:translate(3px,-3px)}

#root header a[href^="tel:"] button[style]{border-radius:999px!important;padding-right:6px!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root header a[href^="tel:"] button[style] > svg{display:none!important}
#root header a[href^="tel:"] button[style]::after{content:"";flex:none;width:28px;height:28px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A50044' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/15px no-repeat;transition:transform .2s ease}
#root header a[href^="tel:"] button[style]:hover{transform:translateY(-1px)!important}
#root header a[href^="tel:"] button[style]:hover::after{transform:scale(1.12)}

#root a[href="about.html"] button[style]{border-radius:999px!important;padding-right:6px!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root a[href="about.html"] button[style] > svg{display:none!important}
#root a[href="about.html"] button[style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B860' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .2s ease}
#root a[href="about.html"] button[style]:hover{transform:translateY(-1px)!important}
#root a[href="about.html"] button[style]:hover::after{transform:rotate(-12deg)}
#root header a[href^="tel:"] button[style]{padding-left:16px!important;padding-top:5px!important;padding-bottom:5px!important}

/* Match the flare pill's height (54px): the lg/sm button sizes were adding min-height */
#root :is(.chip-buoy button, form button[type="submit"], a[href="about.html"] button)[style]{min-height:0!important;padding:8px 8px 8px 24px!important}

/* Inner-page hero buttons: their own icons, not the homepage rocket */
#root header + section:has(h1) div > button[style]{border-radius:999px!important;padding:8px 8px 8px 24px!important;min-height:0!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root header + section:has(h1) div > button[style] > svg{display:none!important}
#root header + section:has(h1) div > button[style]:hover{transform:translateY(-1px)!important}
#root header + section:has(h1) div > button[style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B860' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='2' width='8' height='4' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E") center/18px no-repeat;transition:transform .2s ease}
#root header + section:has(h1) div > button[style]:hover::after{transform:rotate(-8deg) scale(1.08)}
#root header + section:has(h1) a[href^="tel:"] button[style]{border-radius:999px!important;padding:8px 8px 8px 24px!important;min-height:0!important;gap:12px!important;transition:transform .18s ease, box-shadow .18s ease!important}
#root header + section:has(h1) a[href^="tel:"] button[style] > svg{display:none!important}
#root header + section:has(h1) a[href^="tel:"] button[style]:hover{transform:translateY(-1px)!important}
#root header + section:has(h1) a[href^="tel:"] button[style]::after{content:"";flex:none;width:34px;height:34px;border-radius:50%;background:var(--powder) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B2D42' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") center/17px no-repeat;transition:transform .2s ease}
#root header + section:has(h1) a[href^="tel:"] button[style]:hover::after{transform:scale(1.12)}

/* Photo bands topped by a wave: paint the section's own background the light colour instead of
   navy. The photo and overlay fill the section anyway, so nothing changes visually, but at
   fractional zoom the wave's top edge now anti-aliases against cream rather than showing a dark
   hairline. (Earlier attempts moved/unclipped the wave and exposed a worse band — don't.) */
#root section:has(> div[style*="top: -1px"][style*="position: absolute"]):has(> img){background-color:#FAF5EF!important}

/* Full-bleed photo bands carry no wave dividers — the theme's auto-waves for dark sections
   were drawing a cream-to-navy wave and a navy strip straight across the photo. */
#root section.photo-band > div:not(.band-wave){display:none!important}
#root section.photo-band::before,#root section.photo-band::after{display:none!important}
