/*
Theme Name: Critter Guys
Theme URI: https://critterguyswildlife.com/
Author: OC Growth
Description: Custom theme for Critter Guys Humane Wildlife Management. Every page is built from standard WordPress blocks, so text, images, layout and buttons are editable in the block editor. Business details (phone, email, map, form recipient) live under Appearance > Customize > Critter Guys.
Version: 1.3.0
Requires at least: 6.4
Tested up to: 7.2
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: critterguys
*/

/* ---------- Tokens ---------- */
:root{
  --red:#E30B21;          /* logo red, deepened slightly for contrast */
  --red-deep:#B5091A;
  --red-bright:#FB041A;   /* pure logo red, large decorative use only */
  --ink:#202326;          /* body text, near the logo's triangle charcoal */
  --charcoal:#36373B;     /* logo triangle */
  --palm:#1E3A2F;         /* deep palmetto green: the second dark */
  --palm-2:#27493B;
  --palm-ink:#CFE0D6;
  --stucco:#EDF0EC;       /* cool Florida stucco, light surface */
  --line:#D3D9D3;
  --muted:#5B6560;
  --white:#fff;
  --wrap:1200px;
  --gut:clamp(18px,4vw,32px);
  --pad:clamp(56px,7.5vw,104px);
  --r:10px;
  --shadow:0 18px 50px -24px rgba(16,32,24,.45);
  --display:"Saira Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Saira",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --tri-red:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 180' fill='none' stroke='%23E30B21' stroke-width='4.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='52,10 12,10 27,37'/%3E%3Cline x1='78' y1='10' x2='122' y2='10'/%3E%3Cpolyline points='148,10 188,10 173,37'/%3E%3Cline x1='39' y1='60' x2='61' y2='99'/%3E%3Cline x1='161' y1='60' x2='139' y2='99'/%3E%3Cpolyline points='79,132 100,170 121,132'/%3E%3C/svg%3E");
  --tri-faint:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 180' fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='52,10 12,10 27,37'/%3E%3Cline x1='78' y1='10' x2='122' y2='10'/%3E%3Cpolyline points='148,10 188,10 173,37'/%3E%3Cline x1='39' y1='60' x2='61' y2='99'/%3E%3Cline x1='161' y1='60' x2='139' y2='99'/%3E%3Cpolyline points='79,132 100,170 121,132'/%3E%3C/svg%3E");
  --tri-dot:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M1 1h10L6 10z' fill='black' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:110px}
@media (prefers-reduced-motion:no-preference){html.cg-smooth{scroll-behavior:smooth}}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--body);font-size:clamp(16.5px,1.05vw + 12px,18px);line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img,video,iframe{max-width:100%;height:auto;display:block}
a{color:var(--red-deep);text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:3px}
p{margin:0 0 1.05em}
strong{font-weight:700}
h1,h2,h3,h4{color:inherit;margin:0 0 .5em;text-wrap:balance}
h1,h2{font-family:var(--display);font-weight:800;letter-spacing:-.005em}
h1{font-size:clamp(2.45rem,5.4vw,4.25rem);line-height:1}
h2{font-size:clamp(1.9rem,3.5vw,2.85rem);line-height:1.05;font-weight:700}
h3{font-family:var(--body);font-weight:700;font-size:clamp(1.08rem,1.2vw + .6rem,1.25rem);line-height:1.3}
h4{font-weight:600;font-size:1rem}
ul,ol{padding-left:1.2em;margin:0 0 1.1em}
li{margin:.25em 0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--ink);color:#fff;padding:10px 16px;border-radius:6px}
.skip-link:focus{top:12px}

/* ---------- Header ---------- */
.cg-topbar{background:var(--palm);color:var(--palm-ink);font-size:.82rem;line-height:1.3}
.cg-topbar__in{max-width:var(--wrap);margin:auto;padding:8px var(--gut);display:flex;gap:22px;align-items:center;justify-content:space-between}
.cg-topbar ul{display:flex;gap:22px;list-style:none;margin:0;padding:0}
.cg-topbar li{margin:0;display:flex;align-items:center;gap:7px}
.cg-topbar li::before{content:"";width:9px;height:8px;background:var(--red-bright);-webkit-mask:var(--tri-dot) center/contain no-repeat;mask:var(--tri-dot) center/contain no-repeat}
.cg-topbar a{color:#fff}
.cg-topbar li,.cg-topbar__in>span{white-space:nowrap}
@media (max-width:1240px){.cg-topbar__in>span{display:none}.cg-topbar ul{width:100%;justify-content:center}}
@media (max-width:900px){.cg-topbar{display:none}}

.cg-header{position:sticky;top:0;z-index:90;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s}
.cg-header.is-stuck{box-shadow:0 8px 24px -16px rgba(0,0,0,.35)}
.admin-bar .cg-header{top:32px}
@media (max-width:782px){.admin-bar .cg-header{top:0}}
.cg-header__in{max-width:var(--wrap);margin:auto;padding:10px var(--gut);display:flex;align-items:center;gap:22px}
.cg-logo{display:block;flex:0 0 auto;line-height:0}
.cg-logo img{height:84px;width:auto}
@media (max-width:640px){.cg-logo img{height:62px}}

.cg-nav{margin-left:auto}
.cg-nav ul{list-style:none;margin:0;padding:0}
.cg-nav>ul{display:flex;align-items:center;gap:4px}
.cg-nav li{margin:0;position:relative}
.cg-nav a{display:block;color:var(--ink);text-decoration:none;font-weight:600;font-size:.98rem;padding:10px 12px;border-radius:6px}
.cg-nav>ul>li>a:hover,.cg-nav>ul>li.current-menu-item>a,.cg-nav>ul>li.current-menu-ancestor>a{color:var(--red-deep)}
.cg-nav .menu-item-has-children>a{padding-right:4px}
.cg-subtoggle{background:none;border:0;padding:8px 6px;margin:0;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;border-radius:6px}
.cg-subtoggle svg{width:12px;height:12px;transition:transform .2s}
.cg-nav>ul>li{display:flex;align-items:center}
/* Dropdowns are display:none until opened, so a closed menu can never catch the mouse. */
.cg-nav .sub-menu{display:none;position:absolute;z-index:5;left:0;top:100%;min-width:270px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:8px}
.cg-nav li.is-hover>.sub-menu,.cg-nav li.is-open>.sub-menu{display:block;animation:cg-drop .14s ease-out}
@media (min-width:961px){html:not(.cg-js) .cg-nav li:hover>.sub-menu{display:block}}
@keyframes cg-drop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cg-nav li.is-hover>.sub-menu,.cg-nav li.is-open>.sub-menu{animation:none}}
.cg-nav li.is-hover>.cg-subtoggle svg,.cg-nav li.is-open>.cg-subtoggle svg{transform:rotate(180deg)}
.cg-nav .sub-menu a{font-weight:500;padding:9px 12px}
.cg-nav .sub-menu a:hover,.cg-nav .sub-menu a:focus-visible{background:var(--stucco);color:var(--red-deep)}
.cg-nav .sub-menu .current-menu-item>a{color:var(--red-deep)}
.cg-nav .sub-menu li.cg-menu-all{border-top:1px solid var(--line);margin-top:6px;padding-top:6px}
.cg-nav .sub-menu li.cg-menu-all>a{font-weight:700;color:var(--red-deep)}

.cg-header__cta{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.cg-phone{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);line-height:1.1}
.cg-phone__icon{width:40px;height:40px;border-radius:50%;background:var(--stucco);display:grid;place-items:center;color:var(--red)}
.cg-phone__icon svg{width:19px;height:19px}
.cg-phone small{display:block;font-size:.74rem;color:var(--muted);font-weight:500}
.cg-phone strong{font-family:var(--display);font-size:1.28rem;font-weight:700;letter-spacing:.01em}
.cg-phone:hover strong{color:var(--red-deep)}
.cg-burger{display:none;margin-left:auto;background:var(--ink);color:#fff;border:0;border-radius:8px;padding:10px 14px;font:600 .95rem var(--body);align-items:center;gap:8px;cursor:pointer}
.cg-burger svg{width:20px;height:20px}

@media (max-width:1180px){
  .cg-phone small{display:none}
}
@media (max-width:1080px){
  .cg-header__cta .cg-btn{display:none}
}
@media (max-width:960px){
  .cg-burger{display:inline-flex}
  .cg-header__cta{margin-left:auto}
  .cg-burger{margin-left:0}
  .cg-phone strong{display:none}
  .cg-nav{position:fixed;inset:0 0 0 auto;width:min(420px,100%);background:#fff;z-index:120;padding:76px 18px 120px;overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform .25s ease,visibility .25s;margin:0}
  .cg-nav.is-open{transform:none;visibility:visible;box-shadow:-20px 0 60px -30px rgba(0,0,0,.5)}
  .cg-nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .cg-nav>ul>li{flex-wrap:wrap;border-bottom:1px solid var(--line)}
  .cg-nav>ul>li>a{flex:1;padding:14px 6px;font-size:1.08rem}
  .cg-subtoggle{padding:14px 12px}
  .cg-nav .sub-menu{position:static;box-shadow:none;border:0;border-radius:0;min-width:0;width:100%;padding:0 0 12px 8px;animation:none}
  .cg-nav li.is-hover>.sub-menu{display:none}
  .cg-nav li.is-open>.sub-menu{display:block}
  .cg-nav li.is-hover>.cg-subtoggle svg{transform:none}
  .cg-nav li.is-open>.cg-subtoggle svg{transform:rotate(180deg)}
  .cg-nav .sub-menu a{padding:11px 8px;font-size:1.02rem}
  .cg-nav-close{position:absolute;top:16px;right:16px}
}
.cg-nav__mobile-cta{display:grid;gap:10px;margin-top:22px}
@media (min-width:961px){.cg-nav .cg-nav-close,.cg-nav .cg-nav__mobile-cta{display:none}}
.cg-scrim{position:fixed;inset:0;background:rgba(10,20,15,.45);z-index:85;opacity:0;visibility:hidden;transition:opacity .2s}
.cg-scrim.is-open{opacity:1;visibility:visible}

/* ---------- Buttons ---------- */
.cg-btn,.wp-block-button__link,.wp-element-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--red);color:#fff;border:2px solid var(--red);border-radius:8px;padding:13px 22px;font:700 1.02rem/1.15 var(--body);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.cg-btn:hover,.wp-block-button__link:hover{background:var(--red-deep);border-color:var(--red-deep);color:#fff}
.cg-btn svg,.wp-block-button__link svg{width:18px;height:18px}
.cg-btn--ghost,.wp-block-button.is-style-cg-outline .wp-block-button__link{background:transparent;color:var(--ink);border-color:currentColor}
.cg-btn--ghost:hover,.wp-block-button.is-style-cg-outline .wp-block-button__link:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.cg-bg-dark .wp-block-button.is-style-cg-outline .wp-block-button__link,.cg-bg-red .wp-block-button.is-style-cg-outline .wp-block-button__link,.cg-hero--a .wp-block-button.is-style-cg-outline .wp-block-button__link,.cg-hero--d .wp-block-button.is-style-cg-outline .wp-block-button__link{color:#fff}
.cg-bg-dark .wp-block-button.is-style-cg-outline .wp-block-button__link:hover,.cg-hero--a .wp-block-button.is-style-cg-outline .wp-block-button__link:hover,.cg-hero--d .wp-block-button.is-style-cg-outline .wp-block-button__link:hover{background:#fff;color:var(--palm);border-color:#fff}
.cg-bg-red .wp-block-button__link{background:#fff;color:var(--red-deep);border-color:#fff}
.cg-bg-red .wp-block-button__link:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.cg-bg-red .wp-block-button.is-style-cg-outline .wp-block-button__link{background:transparent;color:#fff;border-color:#fff}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:1.4em 0 0}
.wp-block-button{margin:0}

/* ---------- Sections ---------- */
.entry-content>*:not(.cg-sec){max-width:var(--wrap);margin-left:auto;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut)}
.cg-sec{padding:var(--pad) max(var(--gut),calc((100% - var(--wrap))/2));margin:0;position:relative}
.cg-sec>*{margin-left:0;margin-right:0}
.cg-sec>*:last-child{margin-bottom:0}
.cg-bg-white{background:#fff}
.cg-bg-stucco{background:var(--stucco)}
.cg-bg-dark{background:var(--palm);color:#E9F1EC}
.cg-bg-dark a{color:#fff}
.cg-bg-red{background:var(--red);color:#fff}
.cg-bg-red a{color:#fff}
.cg-head{max-width:760px;margin-bottom:clamp(26px,3vw,40px)}
.cg-head p{color:var(--muted);font-size:1.06em}
.cg-bg-dark .cg-head p{color:var(--palm-ink)}
.cg-narrow{max-width:780px}

/* list markers: the logo's inverted triangle */
.cg-ticks{list-style:none;padding:0}
.cg-ticks li{position:relative;padding-left:26px;margin:.5em 0}
.cg-ticks li::before{content:"";position:absolute;left:2px;top:.52em;width:13px;height:12px;background:var(--red);-webkit-mask:var(--tri-dot) center/contain no-repeat;mask:var(--tri-dot) center/contain no-repeat}
.cg-bg-dark .cg-ticks li::before,.cg-hero--a .cg-ticks li::before,.cg-hero--d .cg-ticks li::before{background:var(--red-bright)}
.cg-ticks--cols{columns:2 300px;column-gap:40px}
.cg-ticks--cols li{break-inside:avoid}

/* photos: field-photo frame */
.cg-photo{margin:0}
.cg-photo img{border-radius:var(--r);box-shadow:var(--shadow);width:100%;object-fit:cover}
.cg-photo figcaption,.wp-block-image figcaption,.wp-block-video figcaption{font-size:.84rem;color:var(--muted);margin-top:10px;line-height:1.4}
.cg-bg-dark figcaption{color:var(--palm-ink)}

/* ---------- Hero ---------- */
.cg-hero{overflow:hidden;padding-top:clamp(28px,4vw,48px);padding-bottom:clamp(110px,10vw,150px)}
.cg-crumbs{font-size:.84rem;margin:0 0 18px;color:var(--muted)}
.cg-crumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px 0}
.cg-crumbs li{margin:0;display:flex;align-items:center}
.cg-crumbs li+li::before{content:"/";margin:0 9px;opacity:.55}
.cg-crumbs a{color:inherit;text-decoration:none}
.cg-crumbs a:hover{text-decoration:underline}
.cg-hero__cols{display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(28px,5vw,70px);align-items:center;margin:0}
.cg-hero__cols>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-hero h1{margin-bottom:.32em}
.cg-hero__lead{font-size:clamp(1.08rem,1.1vw + .7rem,1.28rem);line-height:1.55;max-width:36em}
.cg-hero .cg-ticks{margin:1.1em 0 0;display:flex;flex-wrap:wrap;gap:4px 24px}
.cg-hero .cg-ticks li{margin:.2em 0;font-weight:600}
.cg-hero__media{position:relative}
.cg-hero__photo{margin:0 auto!important;position:relative;z-index:1;width:72%}
.cg-hero__photo img{border-radius:12px;aspect-ratio:4/5;object-fit:cover;width:100%;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
/* signature: the logo triangle drawn around the hero photo */
.cg-hero__media::before{content:"";position:absolute;z-index:0;width:122%;aspect-ratio:200/180;left:50%;top:-9%;transform:translateX(-50%);background:var(--tri-red) center/contain no-repeat;pointer-events:none}
.cg-hero__media .cg-rating-chip{position:absolute;z-index:2;left:2%;bottom:6%;margin:0}
.cg-hero__media>p{margin:0!important}
.cg-rating-chip{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--ink);border-radius:999px;padding:9px 16px 9px 12px;box-shadow:0 12px 30px -12px rgba(0,0,0,.45);font-size:.88rem;line-height:1.2}
.cg-rating-chip b{font-family:var(--display);font-size:1.35rem}
.cg-stars{color:#F5A400;letter-spacing:1px;font-size:1rem}
@media (prefers-reduced-motion:no-preference){
  .cg-hero__media::before{animation:cg-tri 1.1s .15s cubic-bezier(.2,.7,.2,1) both}
  .cg-hero__photo{animation:cg-rise .8s cubic-bezier(.2,.7,.2,1) both}
  @keyframes cg-tri{from{opacity:0;transform:translate(-50%,14px) scale(.94)}to{opacity:1;transform:translateX(-50%) scale(1)}}
  @keyframes cg-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}
/* a: palmetto */
.cg-hero--a{background:var(--palm) var(--tri-faint) no-repeat right -160px top -80px/780px;color:#fff}
.cg-hero--a .cg-crumbs{color:var(--palm-ink)}
.cg-hero--a .cg-hero__lead{color:#E3EDE7}
/* b: light, photo first */
.cg-hero--b{background:linear-gradient(180deg,var(--stucco) 0,var(--stucco) 78%,#fff 78%)}
.cg-hero--b .cg-hero__cols{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.cg-hero--b .cg-hero__media{order:-1}
.cg-hero--b .cg-hero__media .cg-rating-chip{left:auto;right:2%}
/* c: collage */
.cg-hero--c{background:#fff}
.cg-hero--c .cg-hero__media::before{width:104%;top:-2%}
.cg-collage{display:grid;grid-template-columns:1fr 1fr;gap:14px;position:relative;z-index:1}
.cg-collage .wp-block-image{margin:0}
.cg-collage img{border-radius:12px;width:100%;aspect-ratio:4/5;object-fit:cover;box-shadow:0 24px 50px -28px rgba(0,0,0,.55)}
.cg-collage .wp-block-image:nth-child(1){grid-row:span 2;align-self:center}
.cg-collage .wp-block-image:nth-child(1) img{aspect-ratio:3/4.4}
.cg-collage .wp-block-image:nth-child(3){transform:translateX(-12%)}
/* d: centered on charcoal-green with a photo strip */
.cg-hero--d{background:linear-gradient(160deg,var(--palm) 0%,#16291F 100%);color:#fff;text-align:center}
.cg-hero--d .cg-crumbs ol{justify-content:center}
.cg-hero--d .cg-crumbs{color:var(--palm-ink)}
.cg-hero--d h1{max-width:15em;margin-left:auto;margin-right:auto}
.cg-hero--d .cg-hero__lead{margin:0 auto;color:#E3EDE7}
.cg-hero--d .cg-ticks{justify-content:center}
.cg-hero--d .wp-block-buttons{justify-content:center}
.cg-strip{display:grid!important;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(30px,4vw,48px)!important}
.cg-strip .wp-block-image{margin:0}
.cg-strip img{border-radius:10px;aspect-ratio:1/1;object-fit:cover;width:100%}
.cg-strip .wp-block-image:nth-child(even){transform:translateY(18px)}
@media (max-width:860px){
  .cg-hero{padding-bottom:84px}
  .cg-formband{margin-top:-52px!important}
  .cg-hero__cols,.cg-hero--b .cg-hero__cols{grid-template-columns:1fr}
  .cg-hero--b .cg-hero__media{order:0}
  .cg-hero__media{width:100%;max-width:560px;margin:6px 0 0}
  .cg-hero__media::before{display:none}
  .cg-hero__photo{width:100%}
  .cg-hero__photo img{aspect-ratio:16/11}
  .cg-hero__media .cg-rating-chip,.cg-hero--b .cg-hero__media .cg-rating-chip{left:12px;right:auto;bottom:12px}
  .cg-collage{grid-template-columns:1.2fr 1fr;gap:10px}
  .cg-collage .wp-block-image:nth-child(1) img{aspect-ratio:3/4}
  .cg-collage img{aspect-ratio:1/1}
  .cg-collage .wp-block-image:nth-child(3){transform:none}
  .cg-callout::after{display:none}
  .cg-strip{grid-template-columns:repeat(2,1fr)}
  .cg-strip .wp-block-image:nth-child(n+3){display:none}
  .cg-hero--a{background-size:520px}
}

/* ---------- Quote form band ---------- */
.cg-formband{padding-top:0;padding-bottom:clamp(40px,5vw,72px);margin-top:calc(clamp(110px,10vw,150px) * -1 + 34px)!important;background:transparent;z-index:3}
.cg-form-card{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);background:#fff;border-radius:16px;box-shadow:0 30px 80px -36px rgba(12,30,20,.55);border:1px solid var(--line);overflow:hidden}
.cg-form-card__side{background:var(--stucco);padding:clamp(24px,3vw,40px);border-right:1px solid var(--line)}
.cg-form-card__side h2{font-size:clamp(1.7rem,2.6vw,2.2rem);margin-bottom:.35em}
.cg-form-card__side p{color:var(--muted)}
.cg-form-card__side .cg-ticks li{font-weight:600}
.cg-form-card__call{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:.95rem}
.cg-form-card__call a{font-family:var(--display);font-weight:800;font-size:1.6rem;color:var(--ink);text-decoration:none;display:block;line-height:1.1}
.cg-form-card__call a:hover{color:var(--red-deep)}
.cg-form{padding:clamp(22px,3vw,40px)}
.cg-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.cg-field{display:flex;flex-direction:column;gap:6px;margin:0}
.cg-field--full{grid-column:1/-1}
.cg-field label,.cg-field legend{font-weight:600;font-size:.9rem}
.cg-field .req{color:var(--red)}
.cg-field input,.cg-field select,.cg-field textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #C4CCC6;border-radius:8px;padding:12px 13px;min-height:50px}
.cg-field textarea{min-height:110px;resize:vertical}
.cg-field input:focus,.cg-field select:focus,.cg-field textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(227,11,33,.16)}
.cg-field fieldset{border:0;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}
.cg-field fieldset legend{margin-bottom:6px;width:100%}
.cg-radio{display:inline-flex;align-items:center;gap:7px;border:1.5px solid #C4CCC6;border-radius:999px;padding:7px 14px;font-size:.92rem;cursor:pointer}
.cg-radio input{width:auto;min-height:0;accent-color:var(--red)}
.cg-radio:has(input:checked){border-color:var(--red);background:#FFF1F2}
.cg-form__foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:4px}
.cg-form__foot .cg-btn{min-width:240px;padding:15px 24px;font-size:1.06rem}
.cg-form__note{font-size:.82rem;color:var(--muted);margin:0;flex:1;min-width:200px}
.cg-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.cg-form__msg{grid-column:1/-1;border-radius:10px;padding:14px 16px;font-weight:600;margin:0 0 6px}
.cg-form__msg--ok{background:#E6F4EA;color:#14532D;border:1px solid #9BD3AE}
.cg-form__msg--err{background:#FDECEE;color:#8A0F1C;border:1px solid #F3A7B0}
@media (max-width:860px){
  .cg-form-card{grid-template-columns:1fr}
  .cg-form-card__side{border-right:0;border-bottom:1px solid var(--line)}
  .cg-form-card__side .cg-ticks,.cg-form-card__call{display:none}
}
@media (max-width:560px){
  .cg-form__grid{grid-template-columns:1fr}
  .cg-form__foot .cg-btn{width:100%}
}

/* ---------- Short answer ---------- */
.cg-answer{padding-top:clamp(18px,3vw,36px);padding-bottom:clamp(36px,4vw,56px)}
.cg-answer p{max-width:58em;font-size:clamp(1.06rem,.6vw + .9rem,1.22rem);line-height:1.6;border-left:4px solid var(--red);padding:4px 0 4px 22px;margin:0}
.cg-answer strong{font-family:var(--display);font-weight:800;font-size:1.1em;margin-right:4px}

/* ---------- Prose ---------- */
.cg-prose .cg-prose__body{max-width:760px}
.cg-prose.has-figure .cg-prose__grid{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:clamp(28px,5vw,64px);align-items:start;margin:0}
.cg-prose__grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-prose h3{margin-top:1.4em}
.cg-prose .cg-photo{position:sticky;top:120px}
@media (max-width:860px){.cg-prose.has-figure .cg-prose__grid{grid-template-columns:1fr}.cg-prose .cg-photo{position:static;max-width:420px}}

/* ---------- Signs grid ---------- */
.cg-signs__grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:2px solid var(--ink);margin:0}
.cg-signs__grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.cg-signs__grid,.cg-signs__grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cg-signs__grid,.cg-signs__grid:has(>:nth-child(4):last-child){grid-template-columns:1fr}}
.cg-bg-dark .cg-signs__grid{border-color:rgba(255,255,255,.5)}
.cg-sign{padding:22px 22px 18px 0;border-bottom:1px solid var(--line);margin:0}
.cg-bg-dark .cg-sign{border-color:rgba(255,255,255,.14)}
.cg-sign h3{display:flex;gap:10px;align-items:flex-start;margin-bottom:.35em}
.cg-sign h3::before{content:"";flex:0 0 13px;height:12px;margin-top:.42em;background:var(--red);-webkit-mask:var(--tri-dot) center/contain no-repeat;mask:var(--tri-dot) center/contain no-repeat}
.cg-bg-dark .cg-sign h3::before{background:var(--red-bright)}
.cg-sign p{margin:0;font-size:.97em}
@media (min-width:861px){.cg-signs__grid{column-gap:34px}}

/* ---------- Process steps (a real sequence, so numbered) ---------- */
.cg-steps{counter-reset:cgstep;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0}
.cg-steps:has(>:nth-child(4):last-child){grid-template-columns:repeat(4,minmax(0,1fr))}
.cg-steps:has(>:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))}
.cg-steps:has(>:nth-child(5):last-child)>*{grid-column:span 2}
.cg-steps:has(>:nth-child(5):last-child)>:nth-child(n+4){grid-column:span 3}
@media (max-width:960px){.cg-steps,.cg-steps:has(>:nth-child(4):last-child),.cg-steps:has(>:nth-child(5):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.cg-steps:has(>:nth-child(5):last-child)>*,.cg-steps:has(>:nth-child(5):last-child)>:nth-child(n+4){grid-column:auto}}
@media (max-width:560px){.cg-steps,.cg-steps:has(>:nth-child(4):last-child),.cg-steps:has(>:nth-child(5):last-child){grid-template-columns:1fr}}
.cg-step{counter-increment:cgstep;position:relative;padding:26px 22px 22px;border-radius:12px;background:#fff;border:1px solid var(--line);margin:0}
.cg-bg-stucco .cg-step{border-color:#DCE2DC}
.cg-bg-dark .cg-step{background:var(--palm-2);border-color:rgba(255,255,255,.12)}
.cg-step::before{content:counter(cgstep);display:block;font-family:var(--display);font-weight:800;font-size:3rem;line-height:1;color:transparent;-webkit-text-stroke:1.6px var(--red);margin-bottom:12px}
.cg-bg-dark .cg-step::before{-webkit-text-stroke-color:var(--red-bright)}
.cg-step h3{margin-bottom:.4em}
.cg-step p{margin:0;font-size:.96em}

/* ---------- Local ---------- */
.cg-local__grid{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);gap:clamp(28px,5vw,64px);align-items:start;margin:0}
.cg-local__grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-local__card{background:var(--palm);color:#fff;border-radius:14px;padding:26px 24px 22px;position:relative;overflow:hidden}
.cg-local__card::after{content:"";position:absolute;right:-50px;bottom:-60px;width:220px;aspect-ratio:200/180;background:var(--tri-faint) center/contain no-repeat;opacity:1}
.cg-local__card h3{font-family:var(--display);font-size:1.5rem;margin-bottom:.6em}
.cg-chips{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.cg-chips li{margin:0;padding:9px 12px;border-radius:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-weight:600;font-size:.95rem}
.cg-local__card .cg-photo{margin-top:18px}
.cg-local__card .cg-photo img{box-shadow:none;aspect-ratio:4/3}
.cg-bg-dark .cg-local__card{background:#fff;color:var(--ink)}
.cg-bg-dark .cg-chips li{background:var(--stucco);border-color:var(--line)}
@media (max-width:860px){.cg-local__grid{grid-template-columns:1fr}}

/* ---------- Compare table ---------- */
.cg-compare table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line);font-size:.97em}
.cg-compare th,.cg-compare td{padding:14px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.cg-compare tr:last-child td{border-bottom:0}
.cg-compare thead th{font-family:var(--display);font-size:1.2rem;font-weight:700;background:var(--stucco);border-bottom:2px solid var(--ink)}
.cg-compare thead th:last-child{background:var(--red);color:#fff;border-bottom-color:var(--red-deep)}
.cg-compare td:last-child{font-weight:600;background:#FFF8F8}
.cg-compare .wp-block-table{margin:0;overflow-x:auto}
.cg-bg-dark .cg-compare table{color:var(--ink)}

/* ---------- Callout ---------- */
.cg-callout{overflow:hidden}
.cg-callout::after{content:"";position:absolute;right:max(-60px,calc((100% - var(--wrap))/2 - 120px));top:50%;transform:translateY(-50%);width:clamp(220px,32vw,420px);aspect-ratio:200/180;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 180' fill='none' stroke='%23ffffff' stroke-opacity='.22' stroke-width='6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='52,10 12,10 27,37'/%3E%3Cline x1='78' y1='10' x2='122' y2='10'/%3E%3Cpolyline points='148,10 188,10 173,37'/%3E%3Cline x1='39' y1='60' x2='61' y2='99'/%3E%3Cline x1='161' y1='60' x2='139' y2='99'/%3E%3Cpolyline points='79,132 100,170 121,132'/%3E%3C/svg%3E") center/contain no-repeat;pointer-events:none}
.cg-callout h2{max-width:20em;position:relative;z-index:1}
.cg-callout p{max-width:44em;font-size:1.12em;position:relative;z-index:1}

/* ---------- Split (media & text) ---------- */
.cg-split .wp-block-media-text{gap:0;align-items:center;grid-template-columns:42% auto}
.cg-split .wp-block-media-text.has-media-on-the-right{grid-template-columns:auto 42%}
.cg-split .wp-block-media-text__media img{border-radius:12px;box-shadow:var(--shadow);aspect-ratio:4/5;object-fit:cover}
.cg-split .wp-block-media-text__content{padding:0 0 0 clamp(24px,5vw,64px)}
.cg-split .has-media-on-the-right .wp-block-media-text__content{padding:0 clamp(24px,5vw,64px) 0 0}
@media (max-width:600px){
  .cg-split .wp-block-media-text,.cg-split .wp-block-media-text.has-media-on-the-right{grid-template-columns:100%!important}
  .cg-split .wp-block-media-text__content,.cg-split .has-media-on-the-right .wp-block-media-text__content{padding:24px 0 0!important}
  .cg-split .wp-block-media-text__media img{max-width:400px}
}

/* ---------- Reviews ---------- */
.cg-reviews__top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:28px}
.cg-reviews__top h2{margin:0;max-width:16em}
.cg-reviews__score{display:flex;align-items:center;gap:14px;margin:0}
.cg-reviews__score b{font-family:var(--display);font-size:3.2rem;line-height:.9}
.cg-review-grid{columns:3 290px;column-gap:18px;margin:0}
.cg-review-grid>.cg-review{break-inside:avoid;margin:0 0 18px!important;display:block}
.cg-review{background:#fff;color:var(--ink);border-radius:14px;padding:24px 24px 20px;border:1px solid var(--line);margin:0;position:relative}
.cg-review::before{content:"\201C";position:absolute;right:18px;top:-6px;font-family:Georgia,serif;font-size:5rem;line-height:1;color:var(--stucco)}
.cg-review p{margin:0 0 .8em}
.cg-review .cg-stars{margin-bottom:.5em}
.cg-review__who{font-weight:700;margin:0!important;font-size:.95rem}
.cg-review__who span{display:block;font-weight:500;color:var(--muted);font-size:.82rem}
.cg-review--lead{}
.cg-review--lead p:not(.cg-review__who):not(.cg-stars){font-size:1.1em}
.cg-reviews__more{margin-top:22px!important}

/* ---------- Service ledger ---------- */
.cg-svc-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;border-top:2px solid var(--ink);margin:0}
.cg-bg-dark .cg-svc-list{border-color:rgba(255,255,255,.55)}
.cg-svc{padding:22px 0;border-bottom:1px solid var(--line);margin:0;display:grid;grid-template-columns:52px 1fr;gap:0 16px}
.cg-bg-dark .cg-svc{border-color:rgba(255,255,255,.15)}
.cg-svc::before{content:"";grid-row:span 3;width:40px;height:36px;margin-top:6px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 180' fill='none' stroke='%23E30B21' stroke-width='11' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='52,10 12,10 27,37'/%3E%3Cline x1='78' y1='10' x2='122' y2='10'/%3E%3Cpolyline points='148,10 188,10 173,37'/%3E%3Cline x1='39' y1='60' x2='61' y2='99'/%3E%3Cline x1='161' y1='60' x2='139' y2='99'/%3E%3Cpolyline points='79,132 100,170 121,132'/%3E%3C/svg%3E") center/contain no-repeat}
.cg-svc h3{margin:0 0 .25em;font-family:var(--display);font-size:1.45rem;font-weight:700}
.cg-svc h3 a{color:inherit;text-decoration:none}
.cg-svc h3 a:hover{color:var(--red-deep)}
.cg-bg-dark .cg-svc h3 a:hover{color:#fff;text-decoration:underline}
.cg-svc p{margin:0;font-size:.97em}
@media (max-width:760px){.cg-svc-list{grid-template-columns:1fr}}

/* ---------- Areas ---------- */
.cg-region-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 30px;margin:0}
.cg-region{margin:0}
.cg-region h3{font-family:var(--display);font-size:1.4rem;padding-bottom:8px;border-bottom:2px solid var(--red);margin-bottom:10px}
.cg-region ul{list-style:none;padding:0;margin:0}
.cg-region li{margin:0}
.cg-region a{display:block;padding:5px 0;text-decoration:none;color:inherit;font-weight:500}
.cg-region a:hover{color:var(--red-deep);text-decoration:underline}
.cg-bg-dark .cg-region a:hover{color:#fff}
.cg-region p{font-size:.95em}
@media (max-width:960px){.cg-region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.cg-region-grid{grid-template-columns:1fr}}

/* county groups */
.cg-county-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 28px;margin:0}
.cg-county-grid>*{margin-block:0!important}
.cg-county h3{font-family:var(--display);font-size:1.3rem;padding-bottom:7px;border-bottom:2px solid var(--red);margin-bottom:8px}
.cg-county ul{list-style:none;padding:0;margin:0}
.cg-county li{margin:0}
.cg-county a{display:block;padding:4px 0;text-decoration:none;color:inherit;font-weight:500}
.cg-county a:hover{color:var(--red-deep);text-decoration:underline}
.cg-bg-dark .cg-county a:hover{color:#fff}
.cg-areas--all .cg-region-row{display:grid!important;grid-template-columns:minmax(0,.85fr) minmax(0,2fr);gap:24px 48px;padding:30px 0;border-top:2px solid var(--ink);margin:0!important;scroll-margin-top:120px}
.cg-areas--all .cg-region-row>*{margin-block:0!important}
.cg-region-row__intro h3{font-family:var(--display);font-size:1.8rem;margin-bottom:.4em}
.cg-region-row__intro p{color:var(--muted);font-size:.97em}
.cg-county-grid--inner{grid-template-columns:repeat(3,minmax(0,1fr))}
.cg-county{scroll-margin-top:130px}
.cg-county:target h3{color:var(--red-deep)}
@media (max-width:1100px){.cg-county-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:960px){.cg-areas--all .cg-region-row{grid-template-columns:1fr}.cg-county-grid,.cg-county-grid--inner{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.cg-county-grid,.cg-county-grid--inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}}

/* pills for nearby links */
.cg-pills{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px}
.cg-pills li{margin:0}
.cg-pills a{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;background:#fff;border:1.5px solid var(--line);text-decoration:none;color:var(--ink);font-weight:600}
.cg-pills a::before{content:"";width:11px;height:10px;background:var(--red);-webkit-mask:var(--tri-dot) center/contain no-repeat;mask:var(--tri-dot) center/contain no-repeat}
.cg-pills a:hover{border-color:var(--red);color:var(--red-deep)}

/* ---------- Map ---------- */
.cg-map-grid{display:grid!important;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:clamp(22px,4vw,48px);align-items:stretch;margin:0}
.cg-map-grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-map{position:relative;border-radius:14px;overflow:hidden;min-height:340px;height:100%;background:var(--stucco);border:1px solid var(--line)}
.cg-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.cg-nap{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;margin:0}
.cg-nap h3{font-family:var(--display);font-size:1.5rem}
.cg-nap p{margin:0 0 .8em}
.cg-nap .cg-nap__phone{font-family:var(--display);font-size:1.7rem;font-weight:800;color:var(--ink);text-decoration:none}
@media (max-width:860px){.cg-map-grid{grid-template-columns:1fr}.cg-map{min-height:300px}}

/* ---------- Video ---------- */
.cg-video-grid{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px);align-items:center;margin:0}
.cg-video-grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-video-grid .wp-block-video{margin:0}
.cg-video-grid video{border-radius:14px;width:100%;aspect-ratio:1/1;object-fit:cover;box-shadow:var(--shadow);background:#000}
@media (max-width:860px){.cg-video-grid{grid-template-columns:1fr}.cg-video-grid .wp-block-video{max-width:460px}}

/* ---------- FAQ ---------- */
.cg-faq__grid{display:grid!important;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(28px,5vw,72px);align-items:start;margin:0}
.cg-faq__grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-faq__intro{position:sticky;top:120px}
.cg-faq__intro p{color:var(--muted)}
.cg-bg-dark .cg-faq__intro p{color:var(--palm-ink)}
.cg-faq .wp-block-details{border-bottom:1px solid var(--line);padding:0;margin:0}
.cg-faq .wp-block-details:first-child{border-top:2px solid var(--ink)}
.cg-bg-dark .cg-faq .wp-block-details{border-color:rgba(255,255,255,.18)}
.cg-bg-dark .cg-faq .wp-block-details:first-child{border-top-color:rgba(255,255,255,.6)}
.cg-faq summary{list-style:none;cursor:pointer;padding:20px 44px 20px 0;font-weight:700;font-size:1.07rem;position:relative;line-height:1.35}
.cg-faq summary::-webkit-details-marker{display:none}
.cg-faq summary::after{content:"";position:absolute;right:6px;top:50%;width:18px;height:18px;margin-top:-9px;background:linear-gradient(var(--red),var(--red)) center/18px 2.5px no-repeat,linear-gradient(var(--red),var(--red)) center/2.5px 18px no-repeat;transition:transform .2s}
.cg-faq details[open] summary::after{transform:rotate(45deg)}
.cg-faq details>*:not(summary){padding-right:44px}
.cg-faq details p{margin:0 0 20px}
@media (max-width:860px){.cg-faq__grid{grid-template-columns:1fr}.cg-faq__intro{position:static}}

/* ---------- Final CTA ---------- */
.cg-cta{overflow:hidden}
.cg-cta__grid{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:30px 60px;align-items:center;margin:0}
.cg-cta__grid>.wp-block-column{margin:0!important;flex-basis:auto!important;min-width:0}
.cg-cta h2{font-size:clamp(2.1rem,4.4vw,3.4rem);margin-bottom:.3em}
.cg-cta__phone{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4vw,3rem);line-height:1;margin:0 0 6px}
.cg-cta__phone a{text-decoration:none}
.cg-cta__aside{border-left:2px solid rgba(255,255,255,.35);padding-left:clamp(20px,3vw,40px)}
.cg-bg-white .cg-cta__aside,.cg-bg-stucco .cg-cta__aside{border-color:var(--line)}
.cg-cta__aside p{margin:0 0 .5em}
@media (max-width:860px){.cg-cta__grid{grid-template-columns:1fr}.cg-cta__aside{border-left:0;padding-left:0;border-top:2px solid rgba(255,255,255,.3);padding-top:22px}}

/* grid/flex children never take flow-layout margins */
.cg-hero__cols>*,.cg-collage>*,.cg-strip>*,.cg-signs__grid>*,.cg-steps>*,.cg-review-grid>*,.cg-svc-list>*,.cg-region-grid>*,.cg-local__grid>*,.cg-map-grid>*,.cg-video-grid>*,.cg-faq__grid>*,.cg-cta__grid>*,.cg-prose__grid>*,.cg-reviews__top>*,.wp-block-buttons>*{margin-block:0!important}
.cg-sec>.wp-block-buttons,.cg-hero .wp-block-buttons{margin-top:1.5rem!important}
.cg-head>*:first-child{margin-top:0}

/* pay page */
.cg-paysec{padding-top:0}
.cg-paycard{max-width:640px;margin-top:calc(clamp(110px,10vw,150px) * -1 + 34px)!important;position:relative;z-index:3;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px -36px rgba(12,30,20,.55);padding:clamp(24px,3vw,40px)}
.cg-paycard h2{font-size:clamp(1.7rem,2.6vw,2.2rem)}
.cg-paycard .cg-btn{font-size:1.1rem;padding:16px 30px;min-width:240px}
@media (max-width:860px){.cg-paycard{margin-top:-52px!important}}


/* ---------- Photo layouts ---------- */
/* photo-background sections (cover blocks) */
.wp-block-cover.cg-sec{min-height:0;display:block;padding:var(--pad) max(var(--gut),calc((100% - var(--wrap))/2));color:#fff;align-items:initial}
.wp-block-cover.cg-sec .wp-block-cover__inner-container{position:relative;z-index:2;width:100%;max-width:none;margin:0;color:#fff}
.wp-block-cover.cg-sec .wp-block-cover__image-background{object-fit:cover;filter:saturate(.9)}
.wp-block-cover.cg-callout{padding-top:clamp(70px,9vw,130px);padding-bottom:clamp(70px,9vw,130px)}
.wp-block-cover.cg-callout::after{z-index:1}
.wp-block-cover.cg-sec h2,.wp-block-cover.cg-sec p,.wp-block-cover.cg-sec a{color:#fff}
.wp-block-cover.cg-sec .cg-cta__aside{border-color:rgba(255,255,255,.4)}
.wp-block-cover.cg-bg-red .wp-block-button__link{background:#fff;color:var(--red-deep);border-color:#fff}
.wp-block-cover.cg-bg-red .wp-block-button__link:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.wp-block-cover.cg-sec .wp-block-button.is-style-cg-outline .wp-block-button__link{background:transparent;color:#fff;border-color:#fff}
.wp-block-cover.cg-sec .wp-block-button.is-style-cg-outline .wp-block-button__link:hover{background:#fff;color:var(--palm)}

/* text beside a photo: alternate sides */
.cg-prose.has-figure.fig-left .cg-prose__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr)}
.cg-prose.has-figure.fig-left .cg-prose__grid>.wp-block-column:last-child{order:-1}
.cg-prose .cg-photo img{aspect-ratio:4/5}
@media (max-width:860px){.cg-prose.has-figure.fig-left .cg-prose__grid{grid-template-columns:1fr}.cg-prose.has-figure.fig-left .cg-prose__grid>.wp-block-column:last-child{order:0}.cg-prose .cg-photo img{aspect-ratio:4/3}}

/* warning signs with a photo */
.cg-signs__cols{display:grid!important;grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr);gap:clamp(26px,4vw,56px);align-items:start;margin:0}
.cg-signs__cols>*{margin-block:0!important;min-width:0}
.cg-signs__cols .cg-photo{position:sticky;top:120px}
.cg-signs__cols .cg-photo img{aspect-ratio:3/4}
.cg-signs__cols .cg-signs__grid,.cg-signs__cols .cg-signs__grid:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.cg-signs__cols{grid-template-columns:1fr}.cg-signs__cols .cg-photo{position:static}.cg-signs__cols .cg-photo img{aspect-ratio:16/10}}
@media (max-width:560px){.cg-signs__cols .cg-signs__grid,.cg-signs__cols .cg-signs__grid:has(>:nth-child(4):last-child){grid-template-columns:1fr}}

/* list with a photo */
.cg-list__cols{display:grid!important;grid-template-columns:minmax(0,1.3fr) minmax(0,.85fr);gap:clamp(26px,5vw,64px);align-items:center;margin:0}
.cg-list__cols>*{margin-block:0!important;min-width:0}
.cg-list__cols .cg-photo img{aspect-ratio:4/5}
@media (max-width:860px){.cg-list__cols{grid-template-columns:1fr}.cg-list__cols .cg-photo img{aspect-ratio:4/3}}

/* job photo rows */
.cg-gallery{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0}
.cg-gallery--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cg-gallery>*{margin:0!important}
.cg-gallery .wp-block-image{margin:0}
.cg-gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;box-shadow:0 18px 40px -26px rgba(0,0,0,.6)}
.cg-gallery figcaption{font-size:.86rem;color:var(--muted);margin-top:8px;line-height:1.35;text-align:left}
.cg-bg-dark .cg-gallery figcaption{color:var(--palm-ink)}
@media (max-width:860px){.cg-gallery,.cg-gallery--3{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

/* photo under the FAQ intro */
.cg-faq__photo{margin-top:26px!important}
.cg-faq__photo img{aspect-ratio:4/3}
@media (max-width:860px){.cg-faq__photo{display:none}}

/* local card photo */
.cg-local__card .cg-photo img{aspect-ratio:4/3}

/* photo captions */
.cg-photo figcaption{margin-top:10px}

/* ---------- Generic page (non-built pages, posts) ---------- */
.cg-pagehead{background:var(--palm) var(--tri-faint) no-repeat right -120px top -60px/560px;color:#fff;padding:clamp(40px,6vw,80px) max(var(--gut),calc((100% - var(--wrap))/2))}
.cg-pagehead .cg-crumbs{color:var(--palm-ink)}
.cg-pagehead h1{margin:0;max-width:18em}
.cg-generic{max-width:820px;margin:0 auto;padding:clamp(36px,5vw,64px) var(--gut)}
.cg-generic h2{margin-top:1.4em}
.cg-postlist{display:grid;gap:22px}
.cg-postlist article{border-bottom:1px solid var(--line);padding-bottom:20px}
.cg-postlist h2{font-size:1.8rem;margin:0 0 .3em}
.cg-postlist h2 a{color:var(--ink);text-decoration:none}

/* ---------- Footer ---------- */
.cg-footer{background:var(--palm);color:var(--palm-ink);font-size:.95rem}
.cg-footer a{color:#fff;text-decoration:none}
.cg-footer a:hover{text-decoration:underline}
.cg-footer__in{max-width:var(--wrap);margin:auto;padding:clamp(40px,5vw,64px) var(--gut) 30px;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px}
.cg-footer h2{font-family:var(--display);font-size:1.3rem;color:#fff;margin:0 0 14px}
.cg-footer ul{list-style:none;padding:0;margin:0}
.cg-footer li{margin:0 0 8px}
.cg-footer__brand img{width:190px;height:auto;margin-bottom:18px}
.cg-footer__brand p{margin:0 0 8px}
.cg-footer__phone{font-family:var(--display);font-size:1.7rem;font-weight:800;color:#fff;display:inline-block;margin:6px 0 4px}
.cg-social{display:flex;gap:10px;margin-top:16px}
.cg-social a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1)}
.cg-social a:hover{background:var(--red)}
.cg-social svg{width:18px;height:18px;fill:#fff}
.cg-footer__base{border-top:1px solid rgba(255,255,255,.14)}
.cg-footer__base div{max-width:var(--wrap);margin:auto;padding:18px var(--gut);display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:.85rem}
@media (max-width:960px){.cg-footer__in{grid-template-columns:1fr 1fr}.cg-footer__brand{grid-column:1/-1}}
.cg-footer-areas{border-bottom:1px solid rgba(255,255,255,.14)}
.cg-footer-areas__in{max-width:var(--wrap);margin:auto;padding:clamp(44px,5vw,68px) var(--gut) clamp(32px,4vw,48px)}
.cg-footer-areas h2{font-size:clamp(1.6rem,2.4vw,2rem);margin-bottom:22px}
.cg-footer-areas__list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px 28px}
.cg-footer-areas__list>li{margin:0}
.cg-footer-areas__list>li>a{display:block;font-family:var(--display);font-weight:700;font-size:1.18rem;color:#fff;padding-bottom:6px;margin-bottom:8px;border-bottom:2px solid var(--red-bright)}
.cg-footer-areas__list .sub-menu{list-style:none;padding:0;margin:0}
.cg-footer-areas__list .sub-menu li{margin:0 0 5px}
.cg-footer-areas__list .sub-menu a{color:var(--palm-ink);font-size:.93rem}
.cg-footer-areas__list .sub-menu a:hover{color:#fff}
@media (max-width:1100px){.cg-footer-areas__list{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:860px){.cg-footer-areas__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:600px){.cg-footer-areas__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}}
@media (max-width:560px){.cg-footer__in{grid-template-columns:1fr}}

/* sticky mobile action bar */
.cg-mbar{display:none}
@media (max-width:860px){
  body{padding-bottom:70px}
  .cg-mbar{display:grid;grid-template-columns:1fr 1fr 1.55fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:95;background:#fff;border-top:1px solid var(--line);padding:9px 10px calc(9px + env(safe-area-inset-bottom));box-shadow:0 -10px 30px -18px rgba(0,0,0,.4)}
  .cg-mbar a{display:flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:11px 4px;font-weight:700;font-size:.92rem;white-space:nowrap;text-decoration:none;color:var(--ink);border:1.5px solid var(--line)}
  .cg-mbar a svg{width:17px;height:17px}
  .cg-mbar a.is-primary{background:var(--red);border-color:var(--red);color:#fff}
}

/* ---------- Editor tweaks ---------- */
.editor-styles-wrapper .cg-sec{padding-left:24px;padding-right:24px}
.editor-styles-wrapper .is-root-container>.wp-block-group.cg-sec{max-width:none!important;margin-left:0!important;margin-right:0!important}
.editor-styles-wrapper .cg-formband{margin-top:0!important}
.editor-styles-wrapper .cg-hero{padding-bottom:var(--pad)}
.editor-styles-wrapper .cg-hero__media::before{animation:none}

@media print{.cg-header,.cg-topbar,.cg-mbar,.cg-formband,.cg-footer{display:none}}
