/* sa-site.css v1.42.2 — SotoAlgarve Direction B (navy/gold, Playfair + Montserrat) */
/* Ships inside the plugin; version marker above must match the plugin header.   */

:root{
  --sa-navy:#0F1826; --sa-navy-soft:#162135;
  --sa-gold:#C3A575;        /* primary */
  --sa-gold-dark:#A8865A;   /* hover / pressed, and gold text on paper */
  --sa-gold-deep:#A8865A;   /* alias, kept so existing rules resolve */
  --sa-paper:#FAF9F6; --sa-border:#E7E4DE;
  --sa-grey:rgba(15,24,38,.65);   /* was Google's #5F6368 — off-system */
  --sa-ink:#3B4453;
  /* text on dark: three steps, nothing in between */
  --sa-on-dark:rgba(255,255,255,.85);
  --sa-on-dark-2:rgba(255,255,255,.70);
  --sa-on-dark-3:rgba(255,255,255,.60);
}

/* ---- base ---- */
body{ background:var(--sa-paper) !important; color:var(--sa-navy);
  font-family:'Montserrat',sans-serif !important; font-weight:300; font-size:17px; line-height:1.65; }
h1,h2,h3,h4{ font-family:'Playfair Display',serif !important; font-weight:400 !important; color:var(--sa-navy); }
::selection{ background:var(--sa-gold); color:var(--sa-navy); }
a{ color:var(--sa-gold-dark); }

/* Hide the theme's own page title and footer — the plugin renders its own heroes and footer */
.wp-block-post-title{ display:none !important; }
footer.wp-block-template-part, .wp-site-blocks > footer{ display:none !important; }

/* Content sections span full width; inner column constrains */
.sa-section{ padding:96px 24px; }
/* v1.5.3: alternating off-white retired — one paper tone, navy bands do the contrast */
.sa-section.sa-off{ background:transparent; }
.sa-inner{ max-width:1160px; margin:0 auto; }

/* ---- type components ---- */
.sa-eyebrow{ font-size:12px !important; letter-spacing:.24em; text-transform:uppercase; font-weight:500;
  color:var(--sa-gold-dark); font-family:'Montserrat',sans-serif !important; margin-bottom:10px; }
.sa-h2{ font-size:clamp(28px,3.6vw,44px) !important; line-height:1.15; margin:6px 0 8px; }
.sa-h2 em, .sa-hero-title em, .sa-panel-title em, .sa-cta-title em{ font-style:italic; color:var(--sa-gold); }
.sa-tagline{ font-family:'Playfair Display',serif !important; font-style:italic; font-size:20px; color:var(--sa-grey); margin-bottom:24px; }
.sa-h3{ font-size:22px !important; font-weight:400 !important; margin:32px 0 8px; }
.sa-list li{ margin-bottom:12px; }

/* ---- hero ---- */
.sa-hero{ min-height:88vh; display:flex; align-items:flex-end !important; }
.sa-hero .wp-block-cover__inner-container{ max-width:1160px; margin:0 auto 8vh; text-align:left; width:100%; padding:0 24px; }
.sa-hero .sa-eyebrow{ color:var(--sa-gold); }
.sa-hero-title{ font-size:clamp(42px,7vw,92px) !important; line-height:1.04 !important; letter-spacing:-0.01em;
  color:#fff !important; margin:14px 0 18px !important; max-width:14em; }
.sa-hero-lede{ color:var(--sa-on-dark); max-width:44ch; font-size:16.5px; margin-bottom:28px; }
.sa-hero .wp-block-cover__background{ background:linear-gradient(180deg,rgba(15,24,38,.55) 0%,rgba(15,24,38,.34) 45%,rgba(15,24,38,.86) 100%) !important; opacity:1 !important; }

/* ---- buttons ---- */
.wp-block-button .wp-block-button__link, .sa-btn-el{
  background:var(--sa-navy) !important; color:#fff !important; border-radius:0 !important;
  font-family:'Montserrat',sans-serif !important; font-size:12px !important; letter-spacing:.22em;
  text-transform:uppercase; font-weight:500 !important; padding:16px 32px !important; border:none; cursor:pointer;
  transition:background .3s,color .3s; text-decoration:none !important; }
.wp-block-button .wp-block-button__link:hover, .sa-btn-el:hover{ background:var(--sa-gold) !important; color:var(--sa-navy) !important; }
.sa-btn-light .wp-block-button__link{
  background:rgba(255,255,255,.12) !important; border:1px solid rgba(255,255,255,.45) !important;
  color:#fff !important; backdrop-filter:blur(6px); }
.sa-btn-light .wp-block-button__link:hover{ background:#fff !important; color:var(--sa-navy) !important; }

/* ---- statement / columns ---- */
.sa-cols{ gap:40px; }
.sa-statement .sa-h2{ font-size:clamp(26px,3.2vw,40px) !important; }

/* ---- service cards ---- */
.sa-cards{ margin-top:40px; }
.sa-card{ min-height:460px; border-radius:0; overflow:hidden; display:flex; align-items:flex-end !important; }
.sa-card .wp-block-cover__background{ background:linear-gradient(180deg,rgba(15,24,38,.05) 30%,rgba(15,24,38,.85) 100%) !important; opacity:1 !important; }
.sa-card .wp-block-cover__image-background{ transition:transform .8s cubic-bezier(.2,.6,.2,1); }
.sa-card:hover .wp-block-cover__image-background{ transform:scale(1.05); }
.sa-card .wp-block-cover__inner-container{ text-align:left; padding:24px; }
.sa-card-num{ font-family:'Playfair Display',serif !important; color:var(--sa-gold) !important; font-size:14px !important; margin-bottom:4px; }
.sa-card-title{ color:#fff !important; font-size:24px !important; margin:0 0 8px !important; }
.sa-card-text{ color:var(--sa-on-dark) !important; font-size:14px !important; max-width:34ch; }
.sa-card-go a{ color:var(--sa-gold) !important; font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  font-weight:500; text-decoration:none; font-family:'Montserrat',sans-serif !important; }
.sa-card-go a:hover{ text-decoration:underline; }

/* ---- full-bleed location panels ---- */
.sa-panel{ min-height:78vh; display:flex; align-items:center !important; }
.sa-panel .wp-block-cover__background{ background:linear-gradient(90deg,rgba(15,24,38,.84) 0%,rgba(15,24,38,.45) 48%,rgba(15,24,38,.08) 100%) !important; opacity:1 !important; }
.sa-panel-flip .wp-block-cover__background{ background:linear-gradient(270deg,rgba(15,24,38,.84) 0%,rgba(15,24,38,.45) 48%,rgba(15,24,38,.08) 100%) !important; }
.sa-panel .wp-block-cover__inner-container{ max-width:1160px; margin:0 auto; width:100%; padding:0 24px; text-align:left; }
.sa-panel-content{ max-width:520px; }
.sa-panel-flip .sa-panel-content{ margin-left:auto; }
.sa-panel .sa-eyebrow{ color:var(--sa-gold); }
.sa-panel-title{ color:#fff !important; font-size:clamp(30px,4.2vw,52px) !important; line-height:1.1 !important; margin:12px 0 14px !important; }
.sa-panel-text{ color:var(--sa-on-dark) !important; font-size:16px; margin-bottom:20px; }
.sa-pills{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.sa-pill{ border:1px solid rgba(195,165,117,.7); color:#fff; font-size:11.5px; letter-spacing:.1em;
  padding:8px 16px; background:rgba(15,24,38,.25); backdrop-filter:blur(4px); display:inline-block;
  font-family:'Montserrat',sans-serif; }

/* ---- founder ---- */
.sa-founder{ align-items:center; }
.sa-portrait img{ width:100%; height:auto; display:block; }
.sa-portrait{ position:relative; }
.sa-portrait::after{ content:""; position:absolute; inset:18px; border:1px solid rgba(195,165,117,.65); pointer-events:none; }

/* ---- CTA band ---- */
.sa-cta{ min-height:60vh; display:flex; align-items:center !important; text-align:center; }
.sa-cta .wp-block-cover__background{ background:rgba(15,24,38,.72) !important; opacity:1 !important; }
.sa-cta .wp-block-cover__inner-container{ max-width:760px; margin:0 auto; }
.sa-cta .sa-eyebrow{ color:var(--sa-gold); }
.sa-cta-title{ color:#fff !important; font-size:clamp(30px,4.4vw,54px) !important; line-height:1.12 !important; margin:14px 0 !important; }
.sa-cta-text{ color:var(--sa-on-dark) !important; margin-bottom:28px; }
.sa-cta .wp-block-buttons{ justify-content:center; }

/* ---- contact form ---- */
.sa-form{ max-width:720px; }
.sa-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.sa-form label{ display:block; font-size:12px; letter-spacing:.14em; text-transform:uppercase; font-weight:500;
  margin-bottom:8px; font-family:'Montserrat',sans-serif; }
.sa-form input, .sa-form select, .sa-form textarea{ width:100%; background:#fff; border:1px solid var(--sa-border);
  padding:14px 16px; font-family:'Montserrat',sans-serif; font-size:15px; color:var(--sa-navy); border-radius:0; }
.sa-form input:focus, .sa-form select:focus, .sa-form textarea:focus{ outline:none; border-color:var(--sa-gold); }
.sa-form-consent{ font-size:13px; color:var(--sa-grey); }
.sa-hp{ position:absolute !important; left:-9999px !important; }
.sa-form-success{ border-left:3px solid var(--sa-gold); background:#fff; padding:20px 24px; margin-bottom:32px; }

/* ---- footer ---- */
.sa-footer{ background:var(--sa-navy); color:var(--sa-on-dark-3); border-top:1px solid rgba(195,165,117,.3);
  padding:56px 24px 40px; font-family:'Montserrat',sans-serif; }
.sa-footer-inner{ max-width:1160px; margin:0 auto; display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; align-items:baseline; }
.sa-footer-brand{ font-family:'Playfair Display',serif; font-size:19px; letter-spacing:.05em; color:#fff; }
.sa-footer-brand em{ font-style:normal; color:var(--sa-gold); }
.sa-footer-tag{ display:block; font-size:11px; letter-spacing:.14em; text-transform:uppercase; margin-top:8px; }
.sa-footer-nav{ display:flex; gap:26px; flex-wrap:wrap; }
.sa-footer-nav a{ color:var(--sa-on-dark-2); text-decoration:none; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; }
.sa-footer-nav a:hover{ color:var(--sa-gold); }
.sa-footer-legal{ max-width:1160px; margin:32px auto 0; font-size:11px; letter-spacing:.08em; border-top:1px solid rgba(255,255,255,.12); padding-top:20px; }

/* ---- header (Twenty Twenty-Five) recolour ---- */
header.wp-block-template-part{ background:rgba(250,249,246,.88); backdrop-filter:blur(14px); border-bottom:1px solid var(--sa-border); }
header.wp-block-template-part .wp-block-site-title a{ font-family:'Playfair Display',serif !important; color:var(--sa-navy) !important; text-decoration:none; }
header.wp-block-template-part .wp-block-navigation a{ font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--sa-navy) !important; font-family:'Montserrat',sans-serif !important; }
header.wp-block-template-part .wp-block-navigation a:hover{ color:var(--sa-gold-dark) !important; }

/* ---- motion & responsive ---- */
@media (prefers-reduced-motion: reduce){
  .sa-card .wp-block-cover__image-background{ transition:none; }
}
@media (max-width: 781px){
  .sa-section{ padding:64px 20px; }
  .sa-hero{ min-height:78vh; }
  .sa-card{ min-height:320px; }
  .sa-panel{ min-height:64vh; }
  .sa-form-row{ grid-template-columns:1fr; }
}


/* ---- v1.1.3: plugin-owned header + burger navigation ---- */
header.wp-block-template-part{ display:none !important; } /* theme header replaced by .sa-header */
.sa-header{ position:fixed; top:0; left:0; right:0; z-index:1000; display:flex; justify-content:space-between;
  align-items:center; padding:12px 24px; background:rgba(250,249,246,.9); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--sa-border); }
.admin-bar .sa-header{ top:32px; }
.sa-brand{ font-family:'Playfair Display',serif; font-size:20px; letter-spacing:.05em; color:var(--sa-navy) !important; text-decoration:none; }
.sa-brand em{ font-style:normal; color:var(--sa-gold-dark); }
.sa-header-right{ display:flex; align-items:center; gap:22px; }
.sa-header-phone{ font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.14em; color:var(--sa-navy) !important; text-decoration:none; }
.sa-burger{ width:30px; height:22px; background:none; border:none; cursor:pointer; display:flex; flex-direction:column;
  justify-content:space-between; padding:0; }
.sa-burger span{ display:block; height:1.5px; background:var(--sa-navy); transition:transform .3s, opacity .3s; }
body.sa-nav-open .sa-burger span:nth-child(1){ transform:translateY(10px) rotate(45deg); }
body.sa-nav-open .sa-burger span:nth-child(2){ opacity:0; }
body.sa-nav-open .sa-burger span:nth-child(3){ transform:translateY(-10px) rotate(-45deg); }
body.sa-nav-open .sa-burger span{ background:#fff; }
body.sa-nav-open .sa-header{ background:transparent; border-bottom-color:transparent; backdrop-filter:none; }
body.sa-nav-open .sa-brand, body.sa-nav-open .sa-header-phone{ color:#fff !important; }
body.sa-nav-open .sa-brand em{ color:var(--sa-gold); }
.sa-nav-overlay{ position:fixed; inset:0; background:var(--sa-navy); z-index:999; display:flex; flex-direction:column;
  justify-content:center; align-items:center; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
body.sa-nav-open .sa-nav-overlay{ opacity:1; visibility:visible; }
body.sa-nav-open{ overflow:hidden; }
.sa-nav-overlay ul{ list-style:none; margin:0; padding:0; text-align:center; }
.sa-nav-overlay li{ margin:14px 0; }
.sa-nav-overlay a{ font-family:'Playfair Display',serif; font-size:clamp(26px,4vw,40px); color:#fff !important;
  text-decoration:none; transition:color .25s; }
.sa-nav-overlay a:hover{ color:var(--sa-gold) !important; }
.sa-nav-strap{ margin-top:40px; font-family:'Montserrat',sans-serif; font-size:12px; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(255,255,255,.55); }
.sa-nav-strap em{ font-style:italic; color:var(--sa-gold); text-transform:none; letter-spacing:.06em;
  font-family:'Playfair Display',serif; font-size:15px; }
/* v1.1.3: kill every stacked top gap — hero sits flush under the fixed strip */
body{ padding-top:0; }
.wp-site-blocks{ padding-top:0 !important; }
.wp-site-blocks > main{ margin-block-start:0 !important; padding-top:0 !important; }
.wp-block-post-content{ margin-block-start:0 !important; padding-top:0 !important; }
.wp-block-post-content > *:first-child{ margin-top:0 !important; }
.sa-hero{ margin-top:0 !important; padding-top:0 !important; }
/* v1.1.3: TT25 wraps content in a global-padding group (70px top) — the real gap */
main .has-global-padding{ padding-block-start:0 !important; padding-block-end:0 !important; }
main > .wp-block-group.alignfull{ padding-top:0 !important; padding-bottom:0 !important; }
.wp-site-blocks > main{ margin-block-end:0 !important; padding-bottom:0 !important; }
.wp-block-post-content > *{ margin-block-start:0 !important; margin-block-end:0 !important; }
.wp-block-post-content > *:last-child{ margin-bottom:0 !important; }
.sa-footer{ margin-top:0; }
/* pages that open with a text section (e.g. Privacy) clear the fixed header */
.wp-block-post-content > .sa-section:first-child{ padding-top:130px; }

/* v1.1.3: transparent header over hero, paper on scroll (blueprint behaviour) */
body.sa-has-hero:not(.sa-scrolled) .sa-header{ background:transparent !important; border-bottom-color:transparent !important; backdrop-filter:none !important; }
body.sa-has-hero:not(.sa-scrolled) .sa-brand,
body.sa-has-hero:not(.sa-scrolled) .sa-header-phone{ color:#fff !important; }
body.sa-has-hero:not(.sa-scrolled) .sa-brand em{ color:var(--sa-gold) !important; }
body.sa-has-hero:not(.sa-scrolled) .sa-burger span{ background:#fff !important; }
.sa-header{ transition:background .3s, border-color .3s; }
.sa-brand, .sa-header-phone{ transition:color .3s; }
.sa-burger span{ transition:transform .3s, opacity .3s, background .3s; }

/* CTA secondary path */
.sa-cta-altwrap{ margin-top:18px; }
.sa-cta-alt{ color:var(--sa-on-dark-2) !important; font-size:13px; text-decoration:none; border-bottom:1px solid rgba(195,165,117,.5); padding-bottom:2px; }
.sa-cta-alt:hover{ color:var(--sa-gold) !important; }


/* ---- v1.1.3 motion pack ---- */
.sa-progress{ position:fixed; top:0; left:0; height:2px; background:var(--sa-gold); z-index:1002; width:0%; }
.sa-rv{ opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.2,.6,.2,1), transform .8s cubic-bezier(.2,.6,.2,1); }
.sa-rv.sa-in{ opacity:1; transform:none; }
@keyframes sa-kb{ from{ transform:scale(1); } to{ transform:scale(1.07); } }
.sa-hero img.wp-block-cover__image-background{ animation:sa-kb 22s ease-in-out infinite alternate; }
.sa-panel{ overflow:hidden; }
.sa-panel img.wp-block-cover__image-background{ will-change:transform; transform:scale(1.15); }
.sa-section a:not(.wp-block-button__link){ position:relative; text-decoration:none; }
.sa-section a:not(.wp-block-button__link)::after{ content:""; position:absolute; left:0; bottom:-3px; height:1px; width:100%;
  background:var(--sa-gold); transform:scaleX(0); transform-origin:left; transition:transform .35s cubic-bezier(.2,.6,.2,1); }
.sa-section a:not(.wp-block-button__link):hover::after{ transform:scaleX(1); }

/* process timeline */
.sa-tl{ position:relative; max-width:760px; margin:56px auto 0; padding-left:56px; }
.sa-tl::before{ content:""; position:absolute; left:12px; top:6px; bottom:6px; width:1px; background:var(--sa-border); }
.sa-tl-line{ position:absolute; left:12px; top:6px; width:1px; background:var(--sa-gold); height:0; }
.sa-stage{ position:relative; margin-bottom:56px; opacity:0; transform:translateY(18px); transition:opacity .7s, transform .7s; }
.sa-stage.in{ opacity:1; transform:none; }
.sa-stage-num{ position:absolute; left:-56px; top:-4px; font-family:'Playfair Display',serif; font-size:22px;
  color:var(--sa-gold-dark); width:26px; text-align:center; background:inherit; }
.sa-stage h3{ font-size:22px !important; font-weight:400 !important; margin-bottom:6px; }
.sa-stage p{ color:var(--sa-grey); font-size:15.5px; }

/* FAQ accordions */
.sa-faq{ max-width:820px; margin:24px auto 0; }
.sa-qa{ border-bottom:1px solid var(--sa-border); }
.sa-qa button{ width:100%; background:none; border:none; text-align:left; padding:22px 40px 22px 0;
  font-family:'Playfair Display',serif; font-size:20px; color:var(--sa-navy); cursor:pointer; position:relative; }
.sa-qa button::after{ content:""; position:absolute; right:6px; top:50%; width:10px; height:10px;
  border-right:1.5px solid var(--sa-gold-dark); border-bottom:1.5px solid var(--sa-gold-dark);
  transform:translateY(-70%) rotate(45deg); transition:transform .35s; }
.sa-qa.open button::after{ transform:translateY(-30%) rotate(225deg); }
.sa-a{ max-height:0; overflow:hidden; transition:max-height .45s cubic-bezier(.2,.6,.2,1); }
.sa-a p{ color:var(--sa-grey); font-size:15.5px; padding:0 24px 24px 0; }

@media (prefers-reduced-motion: reduce){
  .sa-hero img.wp-block-cover__image-background{ animation:none; }
  .sa-rv{ opacity:1; transform:none; transition:none; }
  .sa-panel img.wp-block-cover__image-background{ transform:none; }
  .sa-a{ transition:none; }
}


/* ---- v1.1.3 audit fixes ---- */
/* text legibility over busy imagery */
.sa-panel-title, .sa-panel-text, .sa-hero-title, .sa-hero-lede, .sa-cta-title, .sa-cta-text{
  text-shadow:0 1px 12px rgba(15,24,38,.35); }
/* mobile pill tower: smaller pills, cap the visible set */
@media (max-width: 781px){
  .sa-pill{ font-size:10px; padding:6px 11px; letter-spacing:.06em; }
  .sa-pills .sa-pill:nth-child(n+6){ display:none; } /* SEO anchors stay in HTML, visually capped at 5 */
  .sa-panel{ min-height:0; padding:72px 0; }
}


/* ---- v1.2.0: iceberg band (Buy-Side) + the off-market 404 ---- */
.sa-ice{ background:var(--sa-navy); padding:90px 24px; }
.sa-ice svg{ width:100%; height:auto; display:block; max-width:920px; margin:0 auto; }
.sa-ice svg text{ font-family:'Montserrat',sans-serif; }
.sa-ice svg .sa-serif{ font-family:'Playfair Display',serif; }
.sa-draw path.d, .sa-draw line.d{ stroke-dasharray:var(--len,1200); stroke-dashoffset:var(--len,1200);
  transition:stroke-dashoffset 1.8s cubic-bezier(.3,.6,.2,1); }
.sa-draw.in path.d, .sa-draw.in line.d{ stroke-dashoffset:0; }
.sa-draw .fade{ opacity:0; transition:opacity .8s ease; }
.sa-draw.in .fade{ opacity:1; }
.sa-draw .f2{ transition-delay:.9s; } .sa-draw .f3{ transition-delay:1.35s; }
.sa-draw .f4{ transition-delay:1.8s; } .sa-draw .f5{ transition-delay:2.3s; }
@media (prefers-reduced-motion: reduce){ .sa-draw *{ stroke-dashoffset:0 !important; opacity:1 !important; transition:none !important; } }

body.sa-404-page, html:has(.sa-404), body:has(.sa-404){ background:var(--sa-navy); }
.sa-404{ position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
  text-align:center; color:#fff; padding:80px 24px;
  background:var(--sa-navy);   /* on the element itself: the body class is not guaranteed */ }
.sa-404-corner{ position:absolute; width:34px; height:34px; border-color:var(--sa-gold); border-style:solid; border-width:0; }
.sa-404-tl{ top:96px; left:28px; border-top-width:1.5px; border-left-width:1.5px; }
.sa-404-br{ bottom:28px; right:28px; border-bottom-width:1.5px; border-right-width:1.5px; }
.sa-404-inner{ max-width:560px; }
.sa-404-code{ font-size:12px; letter-spacing:.3em; color:var(--sa-gold); margin-bottom:14px; font-family:'Montserrat',sans-serif; }
.sa-404 h1{ font-size:clamp(32px,5vw,54px) !important; line-height:1.1; color:#fff !important; margin-bottom:14px; }
.sa-404 h1 em{ font-style:italic; color:var(--sa-gold); }
.sa-404-text{ color:var(--sa-on-dark-2); margin-bottom:28px; }
.sa-404 .wp-block-button__link{ background:rgba(255,255,255,.12) !important; border:1px solid rgba(255,255,255,.45) !important; }
.sa-404 .wp-block-button__link:hover{ background:#fff !important; color:var(--sa-navy) !important; }
.sa-404-alt{ margin-top:22px; } .sa-404-alt a{ color:var(--sa-on-dark-3); font-size:13px; text-decoration:none; }
.sa-404-alt a:hover{ color:var(--sa-gold); }
body.sa-404-page .sa-footer{ display:none; } /* the 404 is its own complete moment */


/* ---- v1.3.0: signal field, map band, live clocks ---- */
.sa-draw circle.d{ stroke-dasharray:var(--len,200); stroke-dashoffset:var(--len,200);
  transition:stroke-dashoffset 1.2s cubic-bezier(.3,.6,.2,1); }
.sa-draw.in circle.d{ stroke-dashoffset:0; }
.sa-draw .dot{ opacity:0; transition:opacity .5s ease; }
.sa-draw.in .dot{ opacity:1; }
.sa-draw .f1{ transition-delay:.5s; } .sa-draw .f6{ transition-delay:2.8s; }
.sa-band-title{ color:#fff !important; font-size:clamp(26px,3.2vw,38px) !important; text-align:center; margin:8px 0 6px !important; }
.sa-band-title em{ font-style:italic; color:var(--sa-gold); }
.sa-ice .sa-eyebrow{ text-align:center; color:var(--sa-gold); }
.sa-pulse{ animation:sa-pl 3s ease-in-out infinite; }
@keyframes sa-pl{ 0%,100%{ opacity:.5; } 50%{ opacity:1; } }
.sa-clocks{ display:flex; gap:64px; justify-content:center; margin-top:40px; flex-wrap:wrap; text-align:center; }
.sa-clock span{ font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--sa-gold);
  font-family:'Montserrat',sans-serif; display:block; }
.sa-clock b{ font-family:'Playfair Display',serif; font-weight:400; font-size:clamp(38px,5vw,56px);
  display:block; color:#fff; font-variant-numeric:tabular-nums; }
.sa-clock-note{ text-align:center; margin-top:26px; font-family:'Playfair Display',serif; font-style:italic;
  font-size:19px; color:var(--sa-on-dark-3) !important; }
.sa-clock-note b{ color:var(--sa-gold); font-weight:400; }
@media (prefers-reduced-motion: reduce){ .sa-pulse{ animation:none; } }


/* v1.3.1: clocks as a slim closing strip before the footer */
.sa-clocks-band{ padding:70px 24px 76px; }
.sa-clocks-band .sa-clocks{ margin-top:24px; }


/* ---- v1.3.3: specificity armour for all text over imagery ----
   A bundled plugin (DesignSetGo) injects `body .wp-site-blocks :is(...)` colour
   rules with !important that outrank single-class selectors. These doubled-class
   rules outrank it back, whoever wins the plugin arms race next. */
body .wp-site-blocks .sa-hero-title.sa-hero-title,
body .wp-site-blocks .sa-panel-title.sa-panel-title,
body .wp-site-blocks .sa-cta-title.sa-cta-title,
body .wp-site-blocks .sa-band-title.sa-band-title,
body .wp-site-blocks .sa-card-title.sa-card-title{ color:#fff !important; }
body .wp-site-blocks .sa-hero-title.sa-hero-title em,
body .wp-site-blocks .sa-panel-title.sa-panel-title em,
body .wp-site-blocks .sa-cta-title.sa-cta-title em,
body .wp-site-blocks .sa-band-title.sa-band-title em{ color:var(--sa-gold) !important; }
body .wp-site-blocks .sa-hero-lede.sa-hero-lede,
body .wp-site-blocks .sa-panel-text.sa-panel-text{ color:var(--sa-on-dark) !important; }
body .wp-site-blocks .sa-cta-text.sa-cta-text{ color:var(--sa-on-dark) !important; }
body .wp-site-blocks .sa-card-text.sa-card-text{ color:var(--sa-on-dark) !important; }
body .wp-site-blocks .sa-card-num.sa-card-num{ color:var(--sa-gold) !important; }
body .wp-site-blocks .sa-hero .sa-eyebrow.sa-eyebrow,
body .wp-site-blocks .sa-panel .sa-eyebrow.sa-eyebrow,
body .wp-site-blocks .sa-cta .sa-eyebrow.sa-eyebrow,
body .wp-site-blocks .sa-ice .sa-eyebrow.sa-eyebrow{ color:var(--sa-gold) !important; }
body .wp-site-blocks .sa-card-go.sa-card-go a{ color:var(--sa-gold) !important; }
body .wp-site-blocks .sa-cta-alt.sa-cta-alt{ color:var(--sa-on-dark-2) !important; }
body .wp-site-blocks .sa-pill.sa-pill{ color:#fff !important; }
body .wp-site-blocks .sa-clock.sa-clock b{ color:#fff !important; }
body .wp-site-blocks .sa-clock.sa-clock span{ color:var(--sa-gold) !important; }
body .wp-site-blocks .sa-clock-note.sa-clock-note{ color:var(--sa-on-dark-3) !important; }
body .wp-site-blocks .sa-clock-note.sa-clock-note b{ color:var(--sa-gold) !important; }


/* ---- v1.3.4: DesignSetGo judo ----
   The intruding rule paints text with var(--dsgo-text-color, inherit) !important.
   Rather than escalate specificity, we define that variable on our elements with
   our intended colours — their own rule then applies our palette. */
.sa-hero, .sa-panel, .sa-cta, .sa-card, .sa-ice{ --dsgo-text-color:#fff; }
.sa-eyebrow{ --dsgo-text-color:var(--sa-gold-dark); }
.sa-hero .sa-eyebrow, .sa-panel .sa-eyebrow, .sa-cta .sa-eyebrow, .sa-ice .sa-eyebrow{ --dsgo-text-color:var(--sa-gold); }
.sa-hero-title em, .sa-panel-title em, .sa-cta-title em, .sa-band-title em, .sa-h2 em{ --dsgo-text-color:var(--sa-gold); }
.sa-hero-lede, .sa-panel-text{ --dsgo-text-color:var(--sa-on-dark); }
.sa-cta-text{ --dsgo-text-color:var(--sa-on-dark); }
.sa-cta-alt{ --dsgo-text-color:var(--sa-on-dark-2); }
.sa-card-text{ --dsgo-text-color:var(--sa-on-dark); }
.sa-card-num, .sa-card-go a{ --dsgo-text-color:var(--sa-gold); }
.sa-tagline{ --dsgo-text-color:var(--sa-grey); }
.sa-clock span, .sa-clock-note b{ --dsgo-text-color:var(--sa-gold); }
.sa-clock b{ --dsgo-text-color:#fff; }
.sa-clock-note{ --dsgo-text-color:var(--sa-on-dark-3); }
.sa-footer{ --dsgo-text-color:var(--sa-on-dark-3); }
.sa-footer-brand{ --dsgo-text-color:#fff; }
.sa-footer-brand em{ --dsgo-text-color:var(--sa-gold); }
.sa-footer-nav a{ --dsgo-text-color:var(--sa-on-dark-2); }
.sa-stage p, .sa-a p{ --dsgo-text-color:var(--sa-grey); }
.wp-block-button__link, .sa-btn-el{ --dsgo-text-color:#fff; }
.sa-btn-light .wp-block-button__link{ --dsgo-text-color:#fff; }


/* v1.3.5: the intruder resets the var between container and heading —
   set it directly on the text elements, where it demonstrably wins */
.sa-hero-title, .sa-panel-title, .sa-cta-title, .sa-band-title, .sa-card-title{ --dsgo-text-color:#fff; }
h1.sa-hero-title, h2.sa-panel-title, h2.sa-cta-title, h2.sa-band-title, h3.sa-card-title{ --dsgo-text-color:#fff; }


/* ---- v1.4.2: real logo in header + footer ---- */
.sa-brand{ display:flex; align-items:center; }
.sa-brand img{ height:24px; width:auto; display:block; }
.sa-brand-light{ display:none; }
body.sa-has-hero:not(.sa-scrolled) .sa-brand-dark,
body.sa-nav-open .sa-brand-dark{ display:none; }
body.sa-has-hero:not(.sa-scrolled) .sa-brand-light,
body.sa-nav-open .sa-brand-light{ display:block; }
.sa-footer-logo{ height:52px; width:auto; display:block; }
@media (max-width:781px){ .sa-brand img{ height:20px; } .sa-footer-logo{ height:44px; } }


/* ---- v1.5.0: side-by-side framed territory plates (homepage) ---- */
.sa-plates{ display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:44px; }
.sa-plate{ position:relative; overflow:hidden; border:1px solid rgba(168,134,90,.45); aspect-ratio:4/5;
  display:flex; align-items:flex-end; text-decoration:none; }
.sa-plate img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.3s cubic-bezier(.2,.6,.2,1); }
.sa-plate:hover img{ transform:scale(1.05); }
.sa-plate::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(15,24,38,.05) 40%,rgba(15,24,38,.88)); }
.sa-plate-in{ position:relative; z-index:2; padding:30px; width:100%; display:block; }
.sa-plate-in .sa-eyebrow{ color:var(--sa-gold); display:block; --dsgo-text-color:var(--sa-gold); }
.sa-plate-title{ display:block; font-family:'Playfair Display',serif; font-weight:400; color:#fff;
  font-size:clamp(24px,2.6vw,34px); margin:8px 0 6px; --dsgo-text-color:#fff; }
.sa-plate-text{ display:block; color:var(--sa-on-dark); font-size:14px; max-width:38ch;
  --dsgo-text-color:var(--sa-on-dark); }
.sa-plate-go{ display:inline-block; margin-top:14px; color:var(--sa-gold); font-size:11px;
  letter-spacing:.24em; text-transform:uppercase; border-bottom:1px solid rgba(195,165,117,.5);
  padding-bottom:4px; --dsgo-text-color:var(--sa-gold); }
body .wp-site-blocks .sa-plate-title.sa-plate-title{ color:#fff !important; }
body .wp-site-blocks .sa-plate-go.sa-plate-go{ color:var(--sa-gold) !important; }
@media (max-width:860px){ .sa-plates{ grid-template-columns:1fr; gap:24px; } }


/* v1.5.1: logo swap reinforced */
img.sa-brand-light{ display:none !important; }
body.sa-has-hero:not(.sa-scrolled) img.sa-brand-dark,
body.sa-nav-open img.sa-brand-dark{ display:none !important; }
body.sa-has-hero:not(.sa-scrolled) img.sa-brand-light,
body.sa-nav-open img.sa-brand-light{ display:block !important; }


/* ---- v1.5.2: Direction W findings boxes (About — Where Ashley stands) ---- */
.sa-findings{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:44px; }
.sa-fnd{ border:1px solid rgba(195,165,117,.35); padding:34px 28px; background:rgba(15,24,38,.5); }
.sa-fnd b{ font-family:'Playfair Display',serif; font-weight:400; font-size:15px; color:var(--sa-gold);
  display:block; margin-bottom:12px; --dsgo-text-color:var(--sa-gold); }
.sa-fnd h3{ font-size:22px !important; font-weight:400 !important; color:#fff !important;
  margin:0 0 10px !important; --dsgo-text-color:#fff; }
.sa-fnd p{ color:var(--sa-on-dark-3); font-size:13.8px; --dsgo-text-color:var(--sa-on-dark-3); }
body .wp-site-blocks .sa-fnd h3{ color:#fff !important; }
@media (max-width:860px){ .sa-findings{ grid-template-columns:1fr; gap:18px; } }


/* ---- v1.6.0: area shelf (Locations) ---- */
.sa-shelfwrap{ margin-top:28px; }
.sa-shelf{ display:flex; gap:22px; overflow-x:auto; padding:4px 4px 22px;
  scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--sa-gold) transparent; }
.sa-shelf::-webkit-scrollbar{ height:3px; }
.sa-shelf::-webkit-scrollbar-thumb{ background:var(--sa-gold); }
.sa-acard{ flex:0 0 320px; scroll-snap-align:start; background:var(--sa-navy); color:#fff;
  padding:34px 28px 30px; border:1px solid rgba(195,165,117,.35); display:flex; flex-direction:column; min-height:250px; }
.sa-acard i{ font-style:normal; font-family:'Playfair Display',serif; color:var(--sa-gold); font-size:15px;
  display:block; margin-bottom:12px; --dsgo-text-color:var(--sa-gold); }
.sa-acard h4{ font-family:'Playfair Display',serif; font-weight:400; font-size:22px; color:#fff;
  margin:0 0 10px; --dsgo-text-color:#fff; }
.sa-acard p{ color:var(--sa-on-dark-3); font-size:13.5px; flex:1; --dsgo-text-color:var(--sa-on-dark-3); }
body .wp-site-blocks .sa-acard h4{ color:#fff !important; }
.sa-shelf-hint{ font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--sa-grey); margin-top:6px; }
@media (max-width:600px){ .sa-acard{ flex-basis:280px; } }


/* ---- v1.7.0: Track Record page ---- */
.sa-claims{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding:20px 0; }
.sa-claim b{ font-family:'Playfair Display',serif; font-weight:400; font-size:clamp(40px,4.6vw,64px);
  display:block; line-height:1; color:#fff; --dsgo-text-color:#fff; }
.sa-claim b i{ font-style:italic; color:var(--sa-gold); --dsgo-text-color:var(--sa-gold); }
.sa-claim span{ display:block; margin-top:12px; color:var(--sa-on-dark-3); font-size:13.5px; max-width:28ch;
  --dsgo-text-color:var(--sa-on-dark-3); }
body .wp-site-blocks .sa-claim b{ color:#fff !important; }
.sa-quotes{ margin-top:34px; }
.sa-quote{ border-top:1px solid var(--sa-border); padding:38px 0 34px; margin:0; }
.sa-quote:last-child{ border-bottom:1px solid var(--sa-border); }
.sa-quote blockquote{ font-family:'Playfair Display',serif; font-style:italic; font-size:clamp(19px,2vw,24px);
  line-height:1.5; color:var(--sa-navy); margin:0; max-width:62ch; }
.sa-quote figcaption{ margin-top:18px; display:flex; align-items:baseline; gap:14px; }
.sa-quote figcaption::before{ content:""; width:34px; height:1px; background:var(--sa-gold); align-self:center; }
.sa-quote figcaption b{ font-weight:500; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--sa-navy); }
.sa-quote figcaption span{ font-size:12px; color:var(--sa-grey); letter-spacing:.06em; }
.sa-engagements{ list-style:none; padding:0; margin:30px 0 0; }
.sa-engagements li{ border-top:1px solid var(--sa-border); padding:20px 0; display:grid;
  grid-template-columns:180px 1fr; gap:20px; color:var(--sa-grey); font-size:15px; }
.sa-engagements li:last-child{ border-bottom:1px solid var(--sa-border); }
.sa-engagements li b{ font-weight:500; font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--sa-gold-dark); padding-top:2px; }
.sa-note{ margin-top:26px !important; font-size:13.5px !important; color:var(--sa-grey) !important;
  border-left:2px solid var(--sa-gold); padding-left:16px; max-width:60ch; }
@media (max-width:860px){ .sa-claims{ grid-template-columns:1fr; gap:0; }
  .sa-claim{ border-top:1px solid rgba(195,165,117,.15); padding:24px 0; }
  .sa-engagements li{ grid-template-columns:1fr; gap:6px; } }


/* ---- v1.7.2: Selected Work case-study dossier ---- */
.sa-cs{ margin-top:34px; border:1px solid var(--sa-border); background:#fff; padding:44px 48px; }
.sa-cs h3{ font-size:22px !important; margin:0 0 22px !important; }
.sa-cs-facts{ display:flex; flex-wrap:wrap; gap:14px 40px; border-top:1px solid var(--sa-border);
  border-bottom:1px solid var(--sa-border); padding:16px 0; margin-bottom:24px; }
.sa-cs-fact b{ display:block; font-weight:500; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--sa-gold-dark); margin-bottom:3px; }
.sa-cs-fact span{ font-size:14px; color:var(--sa-navy); }
.sa-cs-body p{ color:var(--sa-grey); font-size:15.5px; margin:0 0 14px; max-width:72ch; }
.sa-cs-body p:last-child{ margin-bottom:0; }
@media (max-width:700px){ .sa-cs{ padding:30px 24px; } .sa-cs-facts{ gap:12px 26px; } }


/* ---- v1.9.0 ---- */
/* personal note sign-off */
.sa-signoff{ font-family:'Playfair Display',serif !important; font-style:italic; font-size:19px !important;
  color:var(--sa-navy) !important; margin-top:6px !important; }
/* header logo alignment */
.sa-brand{ line-height:0; }
.sa-brand img{ vertical-align:middle; }
.sa-burger{ align-self:center; }
/* desktop nav: right-hand drawer, not full screen */
@media (min-width:900px){
  body.sa-nav-open::before{ content:""; position:fixed; inset:0; background:rgba(15,24,38,.55); z-index:98; }
  .sa-nav-overlay{ left:auto; right:0; width:420px; z-index:99;
    border-left:1px solid rgba(195,165,117,.35); box-shadow:-40px 0 90px rgba(7,12,22,.5); }
}


/* ---- v1.10.0: The Pitfalls ---- */
.sa-lede{ font-size:18.5px !important; }
.sa-pit{ border-top:1px solid var(--sa-border); padding:46px 0 42px; display:grid; grid-template-columns:90px 1fr; gap:28px; }
.sa-pit:last-of-type{ border-bottom:1px solid var(--sa-border); }
.sa-pit i{ font-style:normal; font-family:'Playfair Display',serif; font-size:clamp(34px,3.6vw,52px);
  color:rgba(195,165,117,.55); line-height:1; --dsgo-text-color:rgba(195,165,117,.55); }
.sa-pit h3{ font-family:'Playfair Display',serif; font-weight:400; font-size:22px;
  margin:0 0 10px; color:var(--sa-navy); }
.sa-pit-prob{ color:var(--sa-grey) !important; font-size:15px !important; max-width:66ch; }
.sa-pit-ans{ margin-top:18px; padding-left:18px; border-left:2px solid var(--sa-gold); max-width:66ch; }
.sa-pit-ans b{ display:block; font-weight:500; font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--sa-gold-dark); margin-bottom:6px; }
.sa-pit-ans p{ font-size:15px; margin:0; }
.sa-crosslink{ font-size:15.5px !important; color:var(--sa-grey) !important; }
.sa-crosslink a{ color:var(--sa-gold-dark); text-decoration:none; border-bottom:1px solid rgba(168,134,90,.4); }
.sa-crosslink a:hover{ border-bottom-color:var(--sa-gold-dark); }
@media (max-width:700px){ .sa-pit{ grid-template-columns:1fr; gap:8px; } }


/* ---- v1.11.0: the pilot's chart ---- */
.sa-chartband svg{ width:100%; height:auto; display:block; margin-top:34px; }
.sa-chartband svg text{ font-family:'Montserrat',sans-serif; }
.sa-chartband svg .sa-serif{ font-family:'Playfair Display',serif; }
.sa-chartband svg.sa-chart-mobile{ display:none; }
@media (max-width:700px){
  .sa-chartband svg.sa-chart-desktop{ display:none; }
  .sa-chartband svg.sa-chart-mobile{ display:block; }
}
.sa-hz{ cursor:pointer; }
.sa-hz:hover .sa-hz-ring, .sa-hz:focus .sa-hz-ring{ stroke:#C3A575; stroke-width:1.5; }
.sa-hz:hover text, .sa-hz:focus text{ fill:#F3E4C8; }
.sa-chart-note{ text-align:center; margin-top:26px !important; color:rgba(255,255,255,.55) !important; font-size:13px !important; }
.sa-chart-note em{ display:block; margin-top:6px; font-family:'Playfair Display',serif; font-style:italic; font-size:17px; color:var(--sa-gold); }
.sa-pit{ scroll-margin-top:120px; }
@keyframes sa-pit-pulse{ 0%{ color:var(--sa-gold); } 100%{ color:rgba(195,165,117,.55); } }
.sa-pit.sa-arrived i{ animation:sa-pit-pulse 1.6s ease 1; }


/* ---- v1.12.0: audit sprint 1 ---- */
.sa-form input, .sa-form select, .sa-form textarea{ font-size:16px !important; }
.sa-burger{ box-sizing:content-box; width:30px; height:22px; padding:13px; margin:-13px;
  display:flex; flex-direction:column; justify-content:space-between; }
.sa-nav-overlay a{ display:block; padding:11px 0; }
.sa-footer a{ display:inline-block; padding:11px 8px; margin:-4px -2px; }
.sa-card a, .sa-plate a{ display:inline-block; padding:14px 10px; margin:-10px -10px; }
.sa-cta-altwrap a{ display:inline-block; padding:12px 6px; }
.sa-qa-q{ margin:0; font-size:inherit; font-weight:inherit; }
.sa-anchor{ display:block; height:0; scroll-margin-top:110px; }
.sa-chart-mobile .sa-hz > circle:first-of-type{ r:36px; }
.sa-shelf-nav{ display:flex; gap:12px; margin-top:14px; }
.sa-shelf-btn{ width:46px; height:46px; border:1px solid var(--sa-gold-dark); background:none;
  color:var(--sa-gold-dark); font-size:19px; line-height:1; cursor:pointer; transition:.25s; }
.sa-shelf-btn:hover{ background:var(--sa-navy); color:#fff; border-color:var(--sa-navy); }


/* ---- v1.13.0: tonal + structure ---- */
.sa-ice-sign{ text-align:center; font-family:'Playfair Display',serif; font-style:italic;
  font-size:clamp(18px,2vw,23px); color:var(--sa-gold-dark) !important; margin:26px auto 0 !important; }


/* ---- v1.13.3: mobile fixes ---- */
/* nav overlay: start below header, scroll if tall, all 12 items reachable */
.sa-nav-overlay{ justify-content:flex-start; padding:128px 24px 60px; overflow-y:auto; }
.sa-nav-overlay li{ margin:9px 0; }
.sa-nav-overlay a{ font-size:clamp(22px,5.4vw,34px); }
@media (min-width:900px){ .sa-nav-overlay{ justify-content:flex-start; padding:120px 40px 60px; } }

/* plates: proper gradient + readable text */
.sa-plate .wp-block-cover__background{ background:linear-gradient(180deg,rgba(15,24,38,.28) 0%,rgba(15,24,38,.48) 55%,rgba(15,24,38,.88) 100%) !important; opacity:1 !important; }

/* legibility over imagery: brighter gold eyebrows + soft navy halo on all over-image text */
.sa-hero .sa-eyebrow, .sa-plate .sa-eyebrow, .sa-panel .sa-eyebrow{ color:var(--sa-gold) !important; }
.sa-hero .sa-eyebrow, .sa-hero-title, .sa-hero-lede,
.sa-plate .sa-eyebrow, .sa-plate h3, .sa-plate p, .sa-plate a,
.sa-panel .sa-eyebrow, .sa-panel h2, .sa-panel p{
  text-shadow:0 1px 3px rgba(15,24,38,.55), 0 4px 26px rgba(15,24,38,.55); }


/* ---- v1.13.4: open-menu header must not eat taps ---- */
body.sa-nav-open .sa-header{ pointer-events:none; }
body.sa-nav-open .sa-header .sa-burger{ pointer-events:auto; }


/* ---- v1.14.0: review build ---- */
.sa-portrait figcaption{ font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--sa-grey); margin-top:12px; }
.sa-numtiles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:26px; margin-top:34px; }
.sa-numtile{ border-top:2px solid var(--sa-gold); padding-top:18px; }
.sa-numtile b{ display:block; font-family:'Playfair Display',serif; font-weight:400;
  font-size:clamp(40px,5vw,62px); color:var(--sa-navy); line-height:1; }
.sa-numtile span{ display:block; margin-top:8px; font-size:12px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--sa-grey); }
.sa-numnote{ color:var(--sa-grey) !important; font-size:14.5px !important; margin-top:26px !important; }


/* ---- v1.16.6: landscape phones (wide + short) ---- */
@media (orientation:landscape) and (max-height:520px){
  .sa-hero{ min-height:100vh; }
  .sa-hero .wp-block-cover__inner-container{ padding-top:118px !important; }
  .sa-hero-title{ font-size:clamp(24px,8vh,34px) !important; line-height:1.12 !important; }
  .sa-hero-lede{ font-size:14px !important; max-width:58ch; }
  .sa-hero .sa-eyebrow{ font-size:10px !important; letter-spacing:.2em !important; }
  .sa-hero .sa-btn, .sa-btn-el{ padding:14px 22px !important; font-size:11px !important; min-height:44px !important; }
  .sa-nav-overlay{ padding:60px 24px 36px !important; }
  .sa-nav-overlay li{ margin:5px 0 !important; }
  .sa-nav-overlay a{ font-size:21px !important; }
  .sa-plate{ min-height:72vh; }
  .sa-chartband svg.sa-chart-desktop{ display:block; }
  .sa-chartband svg.sa-chart-mobile{ display:none; }
}

.sa-footer-co{ border-top:0 !important; margin-top:8px !important; padding-top:0 !important; opacity:.72; }


/* ---- v1.20.0 ---- */
.sa-card-link{ display:block; text-decoration:none; color:inherit; }
.sa-card-link:hover .sa-card-go{ color:var(--sa-gold); }
.sa-card-go{ transition:color .3s ease; }
.sa-svc-cta{ margin-top:26px !important; font-family:'Montserrat',sans-serif; font-size:12px;
  letter-spacing:.16em; text-transform:uppercase; }
.sa-svc-cta a{ color:var(--sa-gold); text-decoration:none; border-bottom:1px solid rgba(195,165,117,.4); }
.sa-inline-cta{ margin:0 0 34px !important; font-family:'Montserrat',sans-serif; font-size:12.5px;
  letter-spacing:.14em; text-transform:uppercase; }
.sa-inline-cta a{ color:var(--sa-gold); text-decoration:none; border-bottom:1px solid rgba(195,165,117,.45); }
.sa-btn-wrap{ margin:0 !important; }
.sa-modal-backdrop{ position:fixed; inset:0; background:rgba(15,24,38,.72); z-index:9999;
  display:flex; align-items:center; justify-content:center; padding:24px; }
.sa-modal{ background:var(--sa-paper); max-width:520px; width:100%; padding:44px 40px 36px; text-align:center;
  border-top:3px solid var(--sa-gold); box-shadow:0 30px 80px rgba(0,0,0,.35); }
.sa-modal h2{ font-family:'Playfair Display',serif; font-weight:400; font-size:34px; color:var(--sa-navy);
  margin:6px 0 16px; }
.sa-modal p{ font-size:16px; color:#3B4453; margin:0 0 14px; }
.sa-modal .sa-modal-sub{ font-size:14px; color:var(--sa-grey); }
.sa-modal .sa-btn-el{ margin-top:14px; cursor:pointer; border:0; }
.sa-wa{ position:fixed; right:20px; bottom:20px; z-index:900; width:54px; height:54px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.25); }
@media (max-width:600px){ .sa-modal{ padding:34px 24px 28px; } .sa-modal h2{ font-size:28px; } }


/* ---- v1.23.1: header phone + hero clearance ---- */
.sa-header-phone{ display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.sa-phone-icon{ display:none; flex:0 0 auto; }
@media (max-width:900px){
  .sa-header-right{ gap:14px; }
  .sa-phone-icon{ display:block; }
  .sa-phone-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .sa-header-phone{ width:44px; height:44px; justify-content:center; gap:0; }
}
/* hero content must always clear the fixed header */
@media (max-width:900px){
  .sa-hero .wp-block-cover__inner-container{ padding-top:104px !important; }
  .sa-hero .sa-eyebrow{ font-size:10.5px !important; letter-spacing:.18em !important; }
}


/* ---- v1.23.2: mobile tap targets ---- */
@media (max-width:900px){
  .sa-brand{ display:inline-flex; align-items:center; min-height:44px; }
  .sa-svc-cta a, .sa-crosslink a, .sa-inline-cta a{
    display:inline-block; padding:14px 0; line-height:1.5; min-height:24px; }
  .sa-svc-cta, .sa-crosslink, .sa-inline-cta{ line-height:1.6; }
}

/* v1.25.0: comfortable click targets at all widths */
.sa-brand{ display:inline-flex; align-items:center; min-height:44px; }
.sa-inline-cta a, .sa-svc-cta a, .sa-crosslink a{ display:inline-block; padding:12px 0; }


/* ---- v1.26.0: form error ---- */
.sa-form-error{ background:#FBF0EE; border-left:3px solid #8A2A2A; color:#6B2320;
  padding:14px 18px; margin:0 0 22px; font-size:15px; line-height:1.5; }


/* ---- v1.28.0: cookie choice ---- */
.sa-cookie{ position:fixed; left:0; right:0; bottom:0; z-index:9500; background:var(--sa-navy);
  border-top:2px solid var(--sa-gold); box-shadow:0 -8px 30px rgba(0,0,0,.28); }
.sa-cookie[hidden]{ display:none; }
.sa-cookie-inner{ max-width:1100px; margin:0 auto; padding:20px 26px; display:flex; align-items:center;
  gap:26px; flex-wrap:wrap; }
.sa-cookie-text{ flex:1 1 420px; margin:0 !important; color:#D8D4CC !important; font-size:14px !important;
  line-height:1.6 !important; }
.sa-cookie-text a{ color:var(--sa-gold); text-decoration:none; border-bottom:1px solid rgba(195,165,117,.45); }
.sa-cookie-actions{ display:flex; gap:14px; align-items:center; flex:0 0 auto; }
.sa-cookie .sa-btn-el{ cursor:pointer; border:0; min-height:44px; padding:12px 26px; }
.sa-cookie-decline{ background:none; border:0; cursor:pointer; color:#B9B4AA; font-family:'Montserrat',sans-serif;
  font-size:12px; letter-spacing:.16em; text-transform:uppercase; min-height:44px; padding:12px 6px; }
.sa-cookie-decline:hover{ color:#fff; }
@media (max-width:700px){
  .sa-cookie-inner{ padding:18px 20px; gap:16px; }
  .sa-cookie-actions{ width:100%; justify-content:space-between; }
}


/* ---- v1.29.0: CTA boxes, direct contact, vector logo ---- */
.sa-ctabox-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; margin-top:44px; }
.sa-ctabox-row.sa-ctabox-single{ grid-template-columns:minmax(280px,520px); }
.sa-ctabox{ display:block; text-decoration:none; background:var(--sa-navy); color:#fff;
  padding:28px 30px 26px; border-left:3px solid var(--sa-gold);
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease; }
.sa-ctabox:hover{ transform:translateY(-3px); box-shadow:0 16px 40px rgba(15,24,38,.22); background:#16233a; }
.sa-ctabox-eyebrow{ display:block; font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sa-gold); margin-bottom:12px; }
.sa-ctabox-title{ display:block; font-family:'Playfair Display',serif; font-weight:400; font-size:23px;
  line-height:1.25; color:#fff; }
.sa-ctabox-go{ display:block; margin-top:16px; font-family:'Montserrat',sans-serif; font-size:11.5px;
  letter-spacing:.18em; text-transform:uppercase; color:var(--sa-gold); }
.sa-direct{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin:0 0 8px; }
.sa-direct-item{ display:block; text-decoration:none; border:1px solid rgba(15,24,38,.14); padding:22px 24px;
  transition:border-color .3s ease, background .3s ease; }
.sa-direct-item:hover{ border-color:var(--sa-gold); background:rgba(195,165,117,.06); }
.sa-direct-label{ display:block; font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--sa-grey); margin-bottom:8px; }
.sa-direct-value{ display:block; font-family:'Playfair Display',serif; font-size:21px; color:var(--sa-navy); }
.sa-brand svg{ display:block; height:24px; width:auto; }
body.sa-nav-open .sa-brand .sa-mark-soto path{ fill:#fff; }
.sa-footer-logo{ display:block; }
.sa-footer-logo svg{ display:block; height:30px; width:auto; }
.sa-footer-logo .sa-mark-soto path{ fill:#fff; }
@media (max-width:900px){ .sa-brand svg{ height:21px; } }

/* ---- v1.29.1: WhatsApp button ---- */
.sa-wa{ gap:0; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
.sa-wa:hover{ transform:translateY(-2px); box-shadow:0 12px 30px rgba(0,0,0,.3); }
.sa-wa:focus-visible{ outline:3px solid var(--sa-gold); outline-offset:3px; }
@media (max-width:700px){ .sa-wa{ right:16px; bottom:16px; width:52px; height:52px; } }


/* ---- v1.32.0: market-reality band on paper ---- */
.sa-reality .sa-findings-2up{ grid-template-columns:repeat(2,1fr); gap:42px 56px; margin-top:38px; }
.sa-reality .sa-fnd{ background:none; border:0; border-top:2px solid var(--sa-gold); padding:20px 0 0; }
.sa-reality .sa-fnd b{ font-family:'Playfair Display',serif; font-style:italic; font-size:19px;
  color:var(--sa-gold-deep,#A8865A); display:block; margin-bottom:10px; }
.sa-reality .sa-fnd h3{ font-family:'Playfair Display',serif; font-weight:400; font-size:22px;
  color:var(--sa-navy); margin:0 0 12px; }
.sa-reality .sa-fnd p{ color:#3B4453; font-size:16px; line-height:1.7; margin:0; }
@media (max-width:800px){ .sa-reality .sa-findings-2up{ grid-template-columns:1fr; gap:34px; } }


/* ---- v1.33.0: form selects match the text inputs ---- */
.sa-form select{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  width:100%; border-radius:0; background:#fff;
  border:1px solid rgba(15,24,38,.2);
  font-family:'Montserrat',sans-serif; font-size:16px; color:var(--sa-navy);
  padding:14px 44px 14px 16px; line-height:1.4;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23C3A575' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:12px 8px;
}
.sa-form select:focus{ outline:0; border-color:var(--sa-gold); box-shadow:0 0 0 3px rgba(195,165,117,.18); }
.sa-form select:invalid, .sa-form select option[value=""]{ color:var(--sa-grey); }
.sa-form label{ color:rgba(15,24,38,.65); }


/* ---- v1.35.0: footer sitemap ---- */
.sa-footer-map{ display:grid; grid-template-columns:repeat(4,1fr); gap:30px 40px; align-items:start; }
.sa-footer-map div{ display:flex; flex-direction:column; gap:9px; }
.sa-footer-head{ font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--sa-gold); margin-bottom:3px; }
.sa-footer-map a{ font-size:13px; letter-spacing:.04em; text-transform:none;
  color:var(--sa-on-dark-2); text-decoration:none; }
.sa-footer-map a:hover{ color:var(--sa-gold); }
@media (max-width:820px){ .sa-footer-map{ grid-template-columns:repeat(2,1fr); gap:26px 24px; } }
@media (max-width:420px){ .sa-footer-map{ grid-template-columns:1fr; } }


/* ---- v1.36.0: WhatsApp in brand colours, clear of the cookie banner ---- */
.sa-wa{
  background:var(--sa-navy) !important;
  color:#25D366 !important;                      /* the glyph carries the recognition */
  border:1px solid rgba(37,211,102,.45);
  box-shadow:0 8px 26px rgba(15,24,38,.28) !important;
  z-index:9600;                      /* above the cookie banner, never hidden by it */
}
.sa-wa:hover{ background:#16233a !important; border-color:#25D366; }
/* while the cookie banner is showing, lift the button clear of it */
body:has(#sa-cookie:not([hidden])) .sa-wa{ bottom:160px; }
@media (max-width:700px){ body:has(#sa-cookie:not([hidden])) .sa-wa{ bottom:200px; } }



/* ---- v1.38.0: market comparison in prose ---- */
.sa-cmp{ margin-top:12px; }
.sa-cmp-set{ padding:36px 0; border-bottom:1px solid rgba(15,24,38,.10); }
.sa-cmp-set:last-child{ border-bottom:0; }
.sa-cmp-q{ font-family:'Playfair Display',serif; font-weight:400; font-size:26px; color:var(--sa-navy);
  margin:0 0 22px; }
.sa-cmp-cols{ display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.sa-cmp-market{ display:block; font-family:'Montserrat',sans-serif; font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--sa-gold-deep,#A8865A); margin-bottom:10px;
  padding-top:12px; border-top:2px solid var(--sa-gold); }
.sa-cmp-col p{ margin:0; font-size:16px; line-height:1.75; color:#3B4453; }
@media (max-width:800px){
  .sa-cmp-cols{ grid-template-columns:1fr; gap:28px; }
  .sa-cmp-q{ font-size:23px; margin-bottom:18px; }
}


/* ---- v1.39.0: design tokens ---- */
/* One heading scale. Fractional clamp values were producing four different H3s. */
h3, .sa-h3, .sa-fnd h3, .sa-acard h4, .sa-pit h3{
  font-family:'Playfair Display',serif; font-weight:400; line-height:1.3;
}
/* Two deliberate exceptions, both distinct components rather than body headings */
.sa-card-t{ font-size:24px; }   /* homepage service cards */
.sa-cmp-q{ font-size:26px; }    /* market comparison questions */
/* One field style, one label colour */
.sa-form label{ color:var(--sa-grey); }
/* Buttons: one solid, one ghost, applied by role rather than by page */
.sa-btn-el{ background:var(--sa-navy); color:#fff; border:1px solid var(--sa-navy); }
.sa-btn-el:hover{ background:var(--sa-gold-dark); border-color:var(--sa-gold-dark); }
.sa-btn-light{ background:transparent; border:1px solid rgba(255,255,255,.55); color:#fff; }
.sa-btn-light:hover{ border-color:var(--sa-gold); color:var(--sa-gold); }


/* ---- v1.39.2: a section holding only a cross-link needs a fraction of the padding ---- */
.sa-section.sa-linkrow{ padding:34px 24px; }
.sa-linkrow + .sa-linkrow{ padding-top:0; }
@media (max-width:700px){ .sa-section.sa-linkrow{ padding:26px 20px; } }


/* ---- v1.40.0: header call to action ---- */
.sa-header-cta{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Montserrat',sans-serif; font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:#fff; background:var(--sa-navy); border:1px solid var(--sa-navy);
  padding:12px 22px; min-height:44px; text-decoration:none; white-space:nowrap;
  transition:background .3s ease, border-color .3s ease;
}
.sa-header-cta:hover{ background:var(--sa-gold-dark); border-color:var(--sa-gold-dark); color:#fff; }
.sa-header-cta:focus-visible{ outline:3px solid var(--sa-gold); outline-offset:3px; }
/* below 900px the phone icon and burger already serve; there is no room for it */
@media (max-width:900px){ .sa-header-cta{ display:none; } }
/* when the menu is open the header sits over navy — keep the button legible */
body.sa-nav-open .sa-header-cta{ background:transparent; border-color:rgba(255,255,255,.5); }
body.sa-nav-open .sa-header-cta:hover{ background:var(--sa-gold-dark); border-color:var(--sa-gold-dark); }


/* ---- v1.41.0 ---- */
/* 7 · The findings band is dark by default, so .sa-fnd h3 is forced white at high
   specificity. On the paper version of that band the headings were invisible. */
body .wp-site-blocks .sa-reality .sa-fnd h3,
.sa-reality .sa-fnd h3{ color:var(--sa-navy) !important; }
body .wp-site-blocks .sa-reality .sa-fnd p,
.sa-reality .sa-fnd p{ color:#3B4453 !important; }
body .wp-site-blocks .sa-reality .sa-fnd b,
.sa-reality .sa-fnd b{ color:var(--sa-gold-dark) !important; }

/* 12 · Cross-link boxes were navy slabs. Paper ground, gold edge, navy type:
   the same register as everything around them. */
.sa-ctabox{
  background:#fff; color:var(--sa-navy);
  border:1px solid rgba(15,24,38,.12); border-left:2px solid var(--sa-gold);
  padding:26px 30px 24px; box-shadow:0 1px 2px rgba(15,24,38,.04);
  transition:border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.sa-ctabox:hover{ background:#fff; transform:translateY(-2px);
  border-left-color:var(--sa-gold-dark); box-shadow:0 12px 30px rgba(15,24,38,.10); }
.sa-ctabox-eyebrow{ color:var(--sa-gold-dark); }
.sa-ctabox-title{ color:var(--sa-navy); font-size:22px; }
.sa-ctabox-go{ color:var(--sa-gold-dark); margin-top:14px; }
.sa-ctabox:hover .sa-ctabox-go{ color:var(--sa-navy); }
.sa-ctabox-row{ gap:18px; }
/* anchored sections should not sit under the fixed header when jumped to */
#svc-1, #svc-2, #svc-3{ scroll-margin-top:110px; }
