/*
Theme Name: Stress Free Locksmith
Theme URI: https://stressfreelocksmith.com
Description: Child theme of Hello Elementor for Stress Free Locksmith. Holds the design system (colours, type, component styles). All page content is built with native Elementor widgets and is editable in Elementor.
Author: Stress Free Locksmith
Template: hello-elementor
Version: 1.0.0
Text Domain: sfl
*/

/* ============================================================ TOKENS */
:root{
  --sfl-navy:#14264A;
  --sfl-navy-2:#1B315C;
  --sfl-blue:#1E5FBF;
  --sfl-blue-2:#2E72D2;
  --sfl-blue-50:#EDF3FC;
  --sfl-gold:#DFA63C;
  --sfl-ink:#1A2331;
  --sfl-muted:#586474;
  --sfl-line:#E4E8EF;
  --sfl-line-2:#EEF1F5;
  --sfl-paper:#F5F7FA;
  --sfl-on-dark:#E9EEF6;
  --sfl-on-dark-muted:#9FB0C6;
  --sfl-fd:"Barlow","Arial Narrow",system-ui,sans-serif;
  --sfl-fb:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sfl-r:8px;
  --sfl-shadow:0 14px 40px -22px rgba(20,38,74,.28);
}

/* ============================================================ BASE */
html{overflow-x:clip}
body{font-family:var(--sfl-fb);color:var(--sfl-ink);font-size:16px;line-height:1.68;background:#fff;overflow-x:clip}
h1,h2,h3,h4,h5,h6{font-family:var(--sfl-fd);color:var(--sfl-navy);line-height:1.15;letter-spacing:-.01em}
/* Elementor's heading widget defaults the colour to the global "primary" (blue).
   Re-assert navy at matching-plus-one specificity; on-dark / kicker / hero rules
   below are more specific and still win. */
.elementor-widget-heading.elementor-widget .elementor-heading-title{color:var(--sfl-navy)}
a{color:var(--sfl-blue);text-decoration:none}
a:hover{color:var(--sfl-blue-2)}
img{max-width:100%;height:auto}

/* Elementor global container gutter is handled by kit; keep sane defaults */
.e-con{--container-max-width:1500px}

/* ============================================================ LAYOUT SYSTEM
   One place for every section's vertical rhythm + the gap between a section's
   intro block and its content block. */
.sfl-section{padding-block:clamp(58px,7vw,98px)}
.sfl-section--tight{padding-block:clamp(26px,4vw,44px)}
.sfl-section--flush{padding-block:clamp(20px,3vw,30px)}
.sfl-section > .e-con-inner{display:flex;flex-direction:column;gap:clamp(22px,2.6vw,32px);
  padding-inline:clamp(20px,4vw,60px)}
/* keep prose that sits directly in a section (not inside a grid/card) to a readable measure.
   The extra `.elementor-widget` beats Elementor's own `.e-con-inner > .elementor-element{max-width:100%}`. */
.sfl-section > .e-con-inner > .elementor-widget-text-editor.elementor-widget{max-width:680px}
.sfl-section > .e-con-inner > .elementor-widget-heading.elementor-widget:not(.sfl-prose-h){max-width:640px}

/* section intro (kicker + h2 + optional lead) */
.sfl-intro > .e-con-inner{display:flex;flex-direction:column;gap:10px;max-width:60ch}
.sfl-intro--center > .e-con-inner{max-width:660px;margin-inline:auto;text-align:center;align-items:center}
.sfl-intro--center .elementor-heading-title,
.sfl-intro--center .elementor-text-editor{text-align:center}

/* ============================================================ SOFT ENTRANCE ANIMATION
   `opacity:0` lives ONLY inside the keyframe `from`, so if animations don't run for
   any reason the content is fully visible. `both` fill leaves it visible when done.
   Purely CSS + on-load — no scroll/IntersectionObserver dependency. */
@keyframes sfl-rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.sfl-js .sfl-reveal{animation:sfl-rise .75s cubic-bezier(.22,.61,.36,1) both}
.sfl-js .sfl-reveal:nth-of-type(3){animation-delay:.05s}
.sfl-js .sfl-reveal:nth-of-type(4){animation-delay:.08s}
.sfl-js .sfl-reveal:nth-of-type(5){animation-delay:.05s}
/* staggered items inside a grid */
.sfl-js .sfl-stagger > *{animation:sfl-rise .6s cubic-bezier(.22,.61,.36,1) both}
.sfl-js .sfl-stagger > *:nth-child(2){animation-delay:.07s}
.sfl-js .sfl-stagger > *:nth-child(3){animation-delay:.14s}
.sfl-js .sfl-stagger > *:nth-child(4){animation-delay:.21s}
.sfl-js .sfl-stagger > *:nth-child(5){animation-delay:.28s}
.sfl-js .sfl-stagger > *:nth-child(6){animation-delay:.35s}
@media (prefers-reduced-motion:reduce){
  .sfl-js .sfl-reveal,.sfl-js .sfl-stagger > *{animation:none}
}

/* ============================================================ BUTTONS (Elementor button widget)
   Selectors carry `.elementor-widget-button` so they out-specify Elementor's own
   `.elementor-widget-button .elementor-button` kit rule (which otherwise paints the
   button with the global accent colour). */
.elementor-button{font-family:var(--sfl-fd);font-weight:600;border-radius:6px;transition:transform .14s,background-color .14s,box-shadow .14s,border-color .14s}
.elementor-widget-button .elementor-button{padding:13px 24px}
.elementor-widget-button .elementor-button:hover{transform:translateY(-2px)}
.elementor-widget-button.sfl-btn-primary .elementor-button{background:var(--sfl-blue);color:#fff;box-shadow:0 10px 24px -12px rgba(30,95,191,.7);border:0}
.elementor-widget-button.sfl-btn-primary .elementor-button:hover{background:var(--sfl-blue-2)}
.elementor-widget-button.sfl-btn-dark .elementor-button{background:var(--sfl-navy);color:#fff;border:0}
.elementor-widget-button.sfl-btn-dark .elementor-button:hover{background:var(--sfl-navy-2)}
.elementor-widget-button.sfl-btn-white .elementor-button{background:#fff;color:var(--sfl-navy);border:0}
.elementor-widget-button.sfl-btn-outline .elementor-button{background:transparent;color:var(--sfl-navy);border:1.5px solid var(--sfl-line)}
.elementor-widget-button.sfl-btn-outline .elementor-button:hover{border-color:var(--sfl-blue);color:var(--sfl-blue)}
.elementor-widget-button.sfl-btn-ghost .elementor-button{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.elementor-widget-button.sfl-btn-ghost .elementor-button:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* ============================================================ HEADING HELPERS
   Spacing between kicker / h2 / lead is handled by `.sfl-intro` gap, not margins. */
.elementor-widget-heading.sfl-kicker .elementor-heading-title{
  font-family:var(--sfl-fd);font-weight:700;font-size:12.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sfl-blue);display:inline-flex;align-items:center;gap:12px}
/* accent tick before every kicker (was hero-only) */
.elementor-widget-heading.sfl-kicker .elementor-heading-title::before{
  content:"";width:22px;height:2px;background:var(--sfl-blue);border-radius:2px;flex:0 0 auto;opacity:.85}
.sfl-intro--center .elementor-widget-heading.sfl-kicker .elementor-heading-title{justify-content:center}
.elementor-widget-heading.sfl-kicker.sfl-on-dark .elementor-heading-title{color:#8FB4EA}
.elementor-widget-heading.sfl-kicker.sfl-on-dark .elementor-heading-title::before{background:var(--sfl-blue-2)}
.elementor-widget-heading.sfl-h2 .elementor-heading-title{font-size:clamp(26px,3.6vw,40px);font-weight:800;line-height:1.14}
.elementor-widget-heading.sfl-on-dark .elementor-heading-title{color:#fff}
.elementor-widget-text-editor.sfl-lead,.elementor-widget-text-editor.sfl-lead .elementor-text-editor{font-size:clamp(16px,1.6vw,18px);color:var(--sfl-muted)}
.elementor-widget-text-editor.sfl-on-dark,.elementor-widget-text-editor.sfl-on-dark .elementor-text-editor{color:var(--sfl-on-dark-muted)}
.elementor-widget.sfl-on-dark .elementor-icon-list-text,.elementor-widget.sfl-on-dark .elementor-icon-list-icon i{color:var(--sfl-on-dark)}

/* ============================================================ LAYOUT CONTAINERS */
.sfl-grid,.sfl-grid>.e-con-inner{display:grid;gap:20px}
.sfl-grid-2,.sfl-grid-2>.e-con-inner{grid-template-columns:repeat(2,1fr)}
.sfl-grid-3,.sfl-grid-3>.e-con-inner{grid-template-columns:repeat(3,1fr)}
.sfl-grid-4,.sfl-grid-4>.e-con-inner{grid-template-columns:repeat(4,1fr)}
.sfl-split,.sfl-split>.e-con-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,56px);align-items:center}
/* media column in a split — constrain so tall portrait photos don't blow up the row */
.sfl-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--sfl-r);display:block}

/* ============================================================ HERO (content slider) */
.sfl-hero{position:relative;color:#fff;overflow:hidden;background:var(--sfl-navy)}
.sfl-hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .8s ease;background-color:var(--sfl-navy)}
.sfl-hero-slide.is-active{opacity:1;visibility:visible;position:relative}
.sfl-hero-slide::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(96deg,rgba(9,14,26,.95) 0,rgba(9,14,26,.84) 40%,rgba(9,14,26,.44) 74%,rgba(9,14,26,.24) 100%)}
.sfl-hero-slide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:160px;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,rgba(9,14,26,.6),transparent)}
.sfl-hero-slide > .e-con-inner{position:relative;z-index:2}
.sfl-hero-inner,.sfl-hero-inner > .e-con-inner{max-width:600px;width:100%;display:flex;flex-direction:column;gap:18px;align-items:flex-start}
.sfl-hero .elementor-widget-heading .elementor-heading-title{color:#fff}
.sfl-hero .elementor-widget-heading.sfl-kicker .elementor-heading-title{color:#8FB4EA;font-size:13px}
.sfl-hero .elementor-widget-heading.sfl-kicker .elementor-heading-title::before{width:28px;background:var(--sfl-blue-2);opacity:1}
.sfl-hero .elementor-widget-heading.sfl-hero-h1 .elementor-heading-title{font-size:clamp(31px,4.6vw,54px);font-weight:800;line-height:1.05;letter-spacing:-.02em}
.sfl-hero .elementor-widget-text-editor,.sfl-hero .elementor-widget-text-editor .elementor-text-editor{color:var(--sfl-on-dark-muted);font-size:clamp(15px,1.35vw,18px)}
.sfl-hero .sfl-hero-inner .elementor-widget-button .elementor-button{padding:15px 26px}
/* soft crossfade of the slide text when a slide activates */
.sfl-js .sfl-hero-slide.is-active > .e-con-inner > *{animation:sfl-hero-in .7s cubic-bezier(.22,.61,.36,1) both}
.sfl-js .sfl-hero-slide.is-active > .e-con-inner > *:nth-child(2){animation-delay:.06s}
.sfl-js .sfl-hero-slide.is-active > .e-con-inner > *:nth-child(3){animation-delay:.12s}
.sfl-js .sfl-hero-slide.is-active > .e-con-inner > *:nth-child(4){animation-delay:.18s}
@keyframes sfl-hero-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.sfl-js .sfl-hero-slide.is-active > .e-con-inner > *{animation:none}}

/* trust row — pinned to the bottom band of the hero */
.sfl-hero-trustwrap{position:absolute;left:0;right:0;bottom:0;z-index:3}
.sfl-hero-trustwrap > .e-con-inner{padding-top:16px;padding-bottom:26px}
.elementor-widget-icon-list.sfl-hero-trust .elementor-icon-list-items{gap:8px 24px !important}
.elementor-widget-icon-list.sfl-hero-trust .elementor-icon-list-text{color:rgba(255,255,255,.9);font-size:12.5px;font-weight:500}
.elementor-widget-icon-list.sfl-hero-trust .elementor-icon-list-icon svg,
.elementor-widget-icon-list.sfl-hero-trust .elementor-icon-list-icon i{fill:var(--sfl-blue-2);color:var(--sfl-blue-2);width:13px;height:13px}

/* slider controls (built by sfl.js) — a thin control row sitting just above the trust strip */
.sfl-hero-dots{position:absolute;left:0;right:0;bottom:92px;z-index:4;display:flex;gap:8px;justify-content:center}
.sfl-hero-dots button{width:26px;height:3px;border:0;border-radius:2px;background:rgba(255,255,255,.3);cursor:pointer;padding:0;transition:background .2s,width .2s}
.sfl-hero-dots button[aria-current="true"]{background:#fff;width:40px}
.sfl-hero-arrow{position:absolute;bottom:82px;z-index:4;width:44px;height:44px;border-radius:50%;
  border:1px solid rgba(255,255,255,.28);background:rgba(9,14,26,.4);color:#fff;font-size:22px;line-height:1;
  display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.sfl-hero-arrow:hover{background:rgba(255,255,255,.16);border-color:#fff;transform:translateY(-2px)}
.sfl-hero-arrow--prev{right:82px} .sfl-hero-arrow--next{right:28px}
.sfl-hero-counter{position:absolute;left:28px;bottom:96px;z-index:4;font-family:var(--sfl-fd);font-weight:700;font-size:11px;letter-spacing:.22em;color:rgba(255,255,255,.55)}
@media(max-width:900px){
  .sfl-hero-arrow{display:none}
  .sfl-hero-dots{bottom:100px} .sfl-hero-counter{left:0;right:0;text-align:center;bottom:124px}
}
@media(max-width:768px){
  .sfl-hero-slide{position:relative;opacity:1;visibility:visible;display:none}
  .sfl-hero-slide.is-active{display:block}
  .sfl-hero-slide{padding-top:60px !important;padding-bottom:158px !important;min-height:0 !important}
  .sfl-hero-slide::before{background:linear-gradient(180deg,rgba(9,14,26,.82),rgba(9,14,26,.92))}
  .sfl-hero-trustwrap{padding:0}
}

/* ============================================================ BRAND LOGO STRIP (marquee) */
.sfl-logos,.sfl-logos > .e-con-inner{display:flex !important;flex-direction:row !important;align-items:center;gap:28px;flex-wrap:nowrap}
.sfl-logos .sfl-logos-label{flex:0 0 auto;width:auto}
.sfl-logos .sfl-logos-label .elementor-heading-title{font-family:var(--sfl-fb);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--sfl-muted);white-space:nowrap}
.sfl-logos-viewport{flex:1 1 0 !important;min-width:0 !important;max-width:100% !important;overflow:hidden !important;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.sfl-logos-track{display:flex !important;flex-direction:row !important;align-items:center;gap:0;width:max-content;flex-wrap:nowrap;
  animation:sfl-marquee 40s linear infinite;will-change:transform}
.sfl-logos:hover .sfl-logos-track{animation-play-state:paused}
.sfl-logo-item{flex:0 0 auto;width:auto}
.sfl-logos .sfl-logo-item .elementor-heading-title{font-family:var(--sfl-fd);font-weight:800;font-size:16px;color:#9AA6B6;white-space:nowrap;padding:0 26px}
@keyframes sfl-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.sfl-logos-track{animation:none}}
@media(max-width:640px){.sfl-logos,.sfl-logos > .e-con-inner{flex-wrap:wrap}.sfl-logos .sfl-logos-label{width:100%}}

/* ============================================================ ICON BOX cards (service / who-we-help) */
.sfl-card{background:#fff;border:1px solid var(--sfl-line);border-radius:var(--sfl-r);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.sfl-card:hover{transform:translateY(-5px);box-shadow:var(--sfl-shadow);border-color:var(--sfl-blue-2)}
/* left-aligned, icon on top — reset every stray Elementor spacing so the icon
   sits tight above the title. NOTE this Elementor build drops .elementor-widget-container,
   so card padding lives on .elementor-icon-box-wrapper. */
.elementor-widget-icon-box.sfl-card .elementor-icon-box-wrapper{text-align:left;display:block;padding:26px 24px}
.elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-wrapper{padding:22px 20px}
.elementor-widget-icon-box.sfl-card .elementor-icon-box-icon{margin:0 0 14px !important;padding:0 !important;line-height:0;text-align:left}
.elementor-widget-icon-box.sfl-card .elementor-icon-box-icon .elementor-icon{margin:0 !important}
.elementor-widget-icon-box.sfl-card .elementor-icon-box-content{text-align:left;margin:0 !important}
.sfl-card .elementor-icon{width:48px;height:48px;border-radius:12px;background:var(--sfl-blue-50);color:var(--sfl-blue);display:flex;align-items:center;justify-content:center;font-size:22px}
.sfl-card:hover .elementor-icon{background:var(--sfl-blue);color:#fff}
.sfl-card:hover .elementor-icon svg,
.sfl-card:hover .elementor-icon i{fill:#fff;color:#fff}
.elementor-widget-icon-box.sfl-card .elementor-icon-box-title,
.elementor-widget-icon-box.sfl-card .elementor-icon-box-title a{font-family:var(--sfl-fd);font-weight:700;font-size:18.5px;margin:0 0 7px !important;color:var(--sfl-navy)}
.elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-title{font-size:16.5px}
.elementor-widget-icon-box.sfl-card .elementor-icon-box-description{color:var(--sfl-muted);font-size:14.5px;line-height:1.6}
.elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-description{font-size:13.5px}
.sfl-card .elementor-icon-box-description::after{content:"Learn more \2192";display:inline-block;margin-top:16px;font-family:var(--sfl-fd);font-weight:600;font-size:13px;color:var(--sfl-blue);transition:letter-spacing .15s}
.sfl-card:hover .elementor-icon-box-description::after{letter-spacing:.04em}

/* ============================================================ FEATURE LIST (icon box, left) */
.sfl-feature .elementor-icon-box-wrapper{display:flex;gap:14px;text-align:left}
.sfl-feature .elementor-icon-box-icon{margin:0;flex:0 0 auto}
.sfl-feature .elementor-icon{width:34px;height:34px;border-radius:8px;background:var(--sfl-blue-50);color:var(--sfl-blue);display:flex;align-items:center;justify-content:center;font-size:16px}
.elementor-widget-icon-box.sfl-feature .elementor-icon-box-title{font-family:var(--sfl-fd);font-weight:600;font-size:15.5px;margin-bottom:2px;color:var(--sfl-navy)}
.elementor-widget-icon-box.sfl-feature .elementor-icon-box-description{color:var(--sfl-muted);font-size:14px}

/* ============================================================ STATS — minimal band */
.sfl-stats-sec > .e-con-inner{max-width:1000px;margin-inline:auto;width:100%}
.sfl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;background:transparent;border:0;box-shadow:none;
  border-radius:0;overflow:visible;border-top:1px solid var(--sfl-line);border-bottom:1px solid var(--sfl-line);padding-block:8px}
.sfl-stat{background:transparent;text-align:center;border-left:1px solid var(--sfl-line);padding:16px 18px}
.sfl-stat:first-child{border-left:0}
.sfl-stat .elementor-widget-heading.sfl-stat-num .elementor-heading-title{font-family:var(--sfl-fd);font-weight:800;
  font-size:clamp(32px,3.8vw,46px);color:var(--sfl-navy);line-height:1;letter-spacing:-.02em;
  position:relative;display:inline-block;padding-bottom:14px}
.sfl-stat .elementor-widget-heading.sfl-stat-num .elementor-heading-title::after{content:"";position:absolute;
  left:50%;bottom:0;transform:translateX(-50%);width:24px;height:2px;border-radius:2px;background:var(--sfl-blue)}
.sfl-stat .elementor-widget-heading.sfl-stat-label .elementor-heading-title{font-size:11px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:var(--sfl-muted);margin-top:12px}
@media(max-width:560px){
  .sfl-stats,.sfl-stats>.e-con-inner{grid-template-columns:repeat(2,1fr) !important}
  .sfl-stat{padding:16px 12px}
  .sfl-stat:nth-child(3){border-left:0}
  .sfl-stat:nth-child(n+3){border-top:1px solid var(--sfl-line)}
}

/* ============================================================ STEPS — numbered process, connector line */
.sfl-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:sflstep;position:relative}
.sfl-step{background:transparent;border:0;border-radius:0;padding:0;counter-increment:sflstep;
  position:relative;display:flex;flex-direction:column;gap:12px}
.sfl-step:hover{transform:none;box-shadow:none}
.sfl-step::before{content:counter(sflstep,decimal-leading-zero);
  width:44px;height:44px;border-radius:50%;background:var(--sfl-navy);color:#fff;
  font-family:var(--sfl-fd);font-weight:800;font-size:15px;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  position:relative;z-index:1;box-shadow:0 0 0 5px var(--sfl-paper);transition:background .2s}
.sfl-step:hover::before{background:var(--sfl-blue)}
/* connector line from each step's circle to the next */
.sfl-step:not(:last-child)::after{content:"";position:absolute;top:21px;left:44px;
  width:calc(100% - 44px + 26px);height:2px;background:var(--sfl-line);z-index:0}
@media(max-width:900px){.sfl-step:nth-child(2)::after{display:none}}
@media(max-width:600px){.sfl-step::after{display:none !important}}
.sfl-step .elementor-widget-heading.sfl-step-title{counter-increment:none}
.sfl-step .elementor-widget-heading.sfl-step-title .elementor-heading-title{font-size:16px;font-weight:700;color:var(--sfl-navy);display:block}
.sfl-step .elementor-widget-heading.sfl-step-title .elementor-heading-title::before{content:none}
.sfl-step .elementor-widget-text-editor,.sfl-step .elementor-widget-text-editor .elementor-text-editor{color:var(--sfl-muted);font-size:13.5px;line-height:1.6}

/* ============================================================ QUOTE / CONTACT CARD */
.sfl-form-card{background:#fff;border:1px solid var(--sfl-line);border-radius:14px;box-shadow:var(--sfl-shadow);position:relative;overflow:hidden;padding:30px 28px}
.sfl-form-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--sfl-blue),var(--sfl-blue-2))}
.sfl-form-card .elementor-widget-heading .elementor-heading-title{font-size:20px}
.sfl-form-list .elementor-icon-list-item{padding:8px 0 !important}
.sfl-form-list .elementor-icon-list-text{font-size:14px;color:var(--sfl-ink)}
.sfl-form-list .elementor-icon-list-icon svg,.sfl-form-list .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:14px;height:14px}
.sfl-form-card .elementor-widget-button .elementor-button{width:100%;justify-content:center}

/* refined section headings site-wide (lighter, matches the minimal pagehead) */
.sfl-intro .elementor-widget-heading:not(.sfl-kicker) .elementor-heading-title{
  font-weight:700;font-size:clamp(23px,2.9vw,32px);letter-spacing:-.01em;line-height:1.18}

/* ============================================================ GALLERY (Image widgets in a grid) */
.sfl-gallery-img{width:100%;position:relative;overflow:hidden;border-radius:14px;box-shadow:0 1px 3px rgba(20,38,74,.08)}
.sfl-gallery-img .elementor-widget-container,.sfl-gallery-img figure,.sfl-gallery-img a{height:100%}
.sfl-gallery-img img{width:100%;aspect-ratio:4/3;object-fit:cover;border:0;border-radius:0;display:block;
  transition:transform .55s cubic-bezier(.2,.6,.2,1)}
.sfl-gallery-img:hover img{transform:scale(1.06)}
.sfl-gallery-img::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .3s;
  background:linear-gradient(180deg,transparent 55%,rgba(20,38,74,.24))}
.sfl-gallery-img:hover::after{opacity:1}

/* ============================================================ REVIEWS — editorial quote panels */
.sfl-review{background:var(--sfl-blue-50);border:0;border-radius:18px;box-shadow:none;
  position:relative;overflow:hidden;padding:30px 28px 26px !important;display:flex;flex-direction:column;gap:0;
  transition:transform .2s ease,box-shadow .2s ease}
.sfl-review:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(20,38,74,.3)}
.sfl-review::before{content:"\201C";position:absolute;top:10px;left:24px;
  font-family:Georgia,'Times New Roman',serif;font-size:58px;line-height:1;color:var(--sfl-blue);pointer-events:none}
.sfl-review > *{position:relative;z-index:1}
/* quote is the hero, sits under the big glyph */
.sfl-review .sfl-review-quote{order:-1;margin-top:36px}
.sfl-review .sfl-review-quote,
.sfl-review .sfl-review-quote p,
.sfl-review .sfl-review-quote .elementor-text-editor{font-family:var(--sfl-fd);font-weight:500;font-size:16px;
  line-height:1.62;color:var(--sfl-navy)}
.sfl-review .sfl-review-quote p{margin:0}
/* byline: stars, then name + city */
.sfl-review .elementor-widget-star-rating{margin-top:22px}
.sfl-review .elementor-star-rating__wrapper{justify-content:flex-start}
.sfl-review .elementor-star-rating i{color:var(--sfl-gold);font-size:13px;letter-spacing:1.5px}
.sfl-review .sfl-review-name{margin-top:12px}
.sfl-review .sfl-review-name .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;font-size:13.5px;color:var(--sfl-navy)}
.sfl-review .sfl-review-city,
.sfl-review .sfl-review-city p,
.sfl-review .sfl-review-city .elementor-text-editor{font-size:12px;color:var(--sfl-muted)}
.sfl-review .sfl-review-city p{margin:2px 0 0}

/* ============================================================ ACCORDION (FAQ) — segmented list */
.sfl-faq-wrap,.sfl-faq-wrap > .e-con-inner{max-width:840px;margin-inline:auto;width:100%}
.sfl-faq .elementor-accordion{border:1px solid var(--sfl-line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:0 1px 3px rgba(20,38,74,.05)}
.sfl-faq .elementor-accordion .elementor-accordion-item{border:0;border-top:1px solid var(--sfl-line-2);border-radius:0;margin:0;overflow:hidden;background:transparent;transition:background .15s}
.sfl-faq .elementor-accordion .elementor-accordion-item:first-child{border-top:0}
.sfl-faq .elementor-accordion .elementor-accordion-item:hover{background:#fafbfd}
.sfl-faq .elementor-accordion .elementor-accordion-item:has(.elementor-active){box-shadow:none}
.sfl-faq .elementor-tab-title{font-family:var(--sfl-fd);font-weight:600;font-size:15px;padding:18px 22px;color:var(--sfl-navy);transition:color .15s,background .15s}
.sfl-faq .elementor-tab-title a{color:inherit !important;text-decoration:none}
.sfl-faq .elementor-tab-title.elementor-active{background:var(--sfl-blue-50)}
.sfl-faq .elementor-accordion .elementor-tab-title.elementor-active,
.sfl-faq .elementor-accordion .elementor-tab-title.elementor-active a,
.sfl-faq .elementor-accordion .elementor-tab-title:hover,
.sfl-faq .elementor-accordion .elementor-tab-title:hover a{color:var(--sfl-blue) !important}
.sfl-faq .elementor-tab-content{font-size:14px;color:var(--sfl-muted);line-height:1.7;padding:2px 22px 20px}
.sfl-faq .elementor-accordion .elementor-accordion-icon,
.sfl-faq .elementor-accordion .elementor-accordion-icon svg{color:var(--sfl-blue);fill:var(--sfl-blue)}

/* ============================================================ SERVICE-AREA CHIPS */
.sfl-chips,.sfl-chips > .e-con-inner{display:flex;flex-wrap:wrap;gap:10px}
.elementor-widget-button.sfl-chip .elementor-button{padding:9px 17px;font-size:13.5px;border-radius:999px;
  background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:none}
.elementor-widget-button.sfl-chip .elementor-button:hover{background:var(--sfl-blue);border-color:var(--sfl-blue);color:#fff;transform:translateY(-1px)}
.elementor-widget-button.sfl-btn-white .elementor-button{background:#fff;color:var(--sfl-navy);border:0;box-shadow:0 8px 22px -12px rgba(0,0,0,.4)}
.elementor-widget-button.sfl-btn-white .elementor-button:hover{background:#f0f3f7}

/* ============================================================ CTA BAND */
.sfl-cta-in > .e-con-inner{display:flex !important;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:20px 40px;padding-block:clamp(36px,4vw,52px)}
.sfl-cta-in > .e-con-inner > .elementor-element{flex:0 1 auto;width:auto}
.sfl-cta-txt > .e-con-inner{max-width:56ch;gap:6px}
.sfl-cta .elementor-widget-heading.sfl-on-dark .elementor-heading-title{font-size:clamp(21px,2.6vw,27px)}
.sfl-cta .elementor-widget-text-editor.sfl-on-dark,.sfl-cta .elementor-widget-text-editor.sfl-on-dark .elementor-text-editor{color:var(--sfl-on-dark-muted);font-size:14.5px}
@media(max-width:760px){.sfl-cta-in > .e-con-inner{flex-direction:column;align-items:flex-start;gap:18px}}

/* ============================================================ PRICING TEASER — price list card (home) */
.sfl-price-card:not(.sfl-price-card--flat){background:#fff;border:1px solid var(--sfl-line);border-radius:14px;
  box-shadow:0 1px 2px rgba(20,38,74,.05);position:relative;overflow:hidden;padding:12px 26px 22px !important}
.sfl-price-card:not(.sfl-price-card--flat)::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--sfl-blue),var(--sfl-blue-2))}
.sfl-price-card:not(.sfl-price-card--flat) .elementor-widget-heading .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;
  font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sfl-muted);
  padding:12px 0 12px;border-bottom:1px solid var(--sfl-line-2)}
.sfl-price-rows .elementor-icon-list-items{gap:0 !important}
.sfl-price-rows .elementor-icon-list-item{padding:13px 0 !important;border-top:1px solid var(--sfl-line-2)}
.sfl-price-rows .elementor-icon-list-item:first-child{border-top:0}
.sfl-price-rows .elementor-icon-list-icon{align-self:center}
.sfl-price-rows .elementor-icon-list-icon svg,.sfl-price-rows .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:13px;height:13px}
.sfl-price-rows .elementor-icon-list-text{flex:1;display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.sfl-price-rows .sfl-pr-job{color:var(--sfl-muted);font-size:13.5px;line-height:1.4}
.sfl-price-rows .sfl-pr-val{flex:0 0 auto;font-family:var(--sfl-fd);font-weight:700;font-size:13.5px;color:var(--sfl-navy);white-space:nowrap}
.sfl-price-card .elementor-widget-text-editor.sfl-fineprint{margin-top:14px}
.elementor-widget-text-editor.sfl-fineprint,.elementor-widget-text-editor.sfl-fineprint .elementor-text-editor{font-size:12.5px;color:var(--sfl-muted)}

/* ============================================================ PAGE HEADER (inner pages) — minimal */
.sfl-pagehead{background:var(--sfl-navy);color:#fff}
.sfl-pagehead::before,.sfl-pagehead::after{display:none !important}   /* no key watermark, no glow */
.sfl-pagehead-in > .e-con-inner{max-width:1500px;margin-inline:auto;width:100%;
  padding:clamp(30px,3.6vw,46px) clamp(20px,4vw,60px);display:flex;flex-direction:column;gap:11px}
.sfl-crumb .elementor-text-editor,.sfl-crumb p{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0}
.sfl-crumb a{color:rgba(255,255,255,.45)} .sfl-crumb a:hover{color:rgba(255,255,255,.85)}
.sfl-crumb span{opacity:.4;margin:0 7px}
.elementor-widget-heading.sfl-pagehead-h1 .elementor-heading-title{font-size:clamp(25px,3.2vw,36px);font-weight:700;line-height:1.15;letter-spacing:-.01em}
.sfl-pagehead-in > .e-con-inner > .elementor-widget-heading.sfl-pagehead-h1{max-width:min(94%,720px)}
.elementor-widget-text-editor.sfl-lead,.elementor-widget-text-editor.sfl-lead .elementor-text-editor{font-size:15px;line-height:1.6}
.sfl-pagehead .elementor-widget-text-editor.sfl-lead,
.sfl-pagehead .elementor-widget-text-editor.sfl-lead .elementor-text-editor{color:rgba(255,255,255,.6)}
.sfl-pagehead-in > .e-con-inner > .elementor-widget-text-editor.sfl-lead{max-width:min(94%,600px)}
/* CTA row: keep one solid button, demote the second to a quiet text link */
.sfl-pagehead-in .elementor-widget-button:first-of-type{margin-top:9px}
.sfl-pagehead .elementor-widget-button.sfl-btn-primary .elementor-button{padding:11px 20px;font-size:14px;box-shadow:none}
.sfl-pagehead .elementor-widget-button.sfl-btn-ghost .elementor-button{background:transparent;border:0;
  color:rgba(255,255,255,.72);padding:11px 6px;font-weight:600;font-size:14px}
.sfl-pagehead .elementor-widget-button.sfl-btn-ghost .elementor-button:hover{background:transparent;color:#fff;
  transform:none;text-decoration:underline;text-underline-offset:3px}
/* trust pills → one thin muted middot-separated line, no icons */
.sfl-pagehead .sfl-pagehead-pills{margin-top:13px}
.sfl-pagehead .sfl-pagehead-pills .elementor-inline-items{gap:0}
.sfl-pagehead .sfl-pagehead-pills .elementor-icon-list-icon{display:none}
.sfl-pagehead .sfl-pagehead-pills .elementor-icon-list-item{margin:0 !important;padding:0 !important}
.sfl-pagehead .sfl-pagehead-pills .elementor-icon-list-item:not(:last-child)::after{content:"·";margin:0 9px;color:rgba(255,255,255,.28)}
.sfl-pagehead .sfl-pagehead-pills .elementor-icon-list-text{color:rgba(255,255,255,.5);font-size:12px;font-weight:500;padding:0}

/* ============================================================ SERVICES HUB — numbered dossier cards */
.sfl-grid-2{counter-reset:svc}
.sfl-svc2{position:relative;overflow:hidden;display:flex;flex-direction:column;
  background:#fff;border:1px solid var(--sfl-line);border-radius:16px;padding:34px 30px 0;gap:14px;
  counter-increment:svc;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.sfl-svc2::before{content:counter(svc,decimal-leading-zero);
  position:absolute;top:22px;right:26px;left:auto;width:auto;z-index:0;pointer-events:none;
  font-family:var(--sfl-fd);font-weight:800;font-size:46px;line-height:1;letter-spacing:-.03em;
  color:var(--sfl-navy);opacity:.08}
.sfl-svc2::after{content:"";position:absolute;right:-40px;bottom:-40px;width:158px;height:158px;z-index:0;
  pointer-events:none;opacity:.05;transform:rotate(-16deg);transition:opacity .2s;
  background:var(--sfl-key-ink) center/contain no-repeat}
.sfl-svc2 > *{position:relative;z-index:1}
.sfl-svc2:hover{transform:translateY(-5px);box-shadow:var(--sfl-shadow);border-color:var(--sfl-blue)}
.sfl-svc2:hover::after{opacity:.11}

.sfl-svc2-icwrap{width:auto}
.sfl-svc2 .elementor-widget-icon,
.sfl-svc2 .sfl-svc2-ic .elementor-icon{width:56px;height:56px;border-radius:15px;
  background:var(--sfl-navy);color:#fff;font-size:24px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 26px -14px rgba(20,38,74,.55);transition:background .2s}
.sfl-svc2 .elementor-widget-icon{text-align:left}
.sfl-svc2 .sfl-svc2-ic .elementor-icon svg,
.sfl-svc2 .sfl-svc2-ic .elementor-icon i{fill:#fff;color:#fff}
.sfl-svc2:hover .sfl-svc2-ic .elementor-icon{background:var(--sfl-blue)}

.elementor-widget-heading.sfl-svc2-h{margin-top:2px}
.elementor-widget-heading.sfl-svc2-h .elementor-heading-title{font-size:20px;font-weight:800;color:var(--sfl-navy);
  padding-bottom:13px;position:relative}
.elementor-widget-heading.sfl-svc2-h .elementor-heading-title::after{content:"";position:absolute;left:0;bottom:0;
  width:32px;height:3px;border-radius:3px;background:var(--sfl-blue)}

.sfl-svc2 .elementor-widget-text-editor{color:var(--sfl-muted);font-size:14px;line-height:1.6}

.sfl-svc2-list{margin-top:2px}
.sfl-svc2-list .elementor-icon-list-item{padding:10px 0 !important;border-top:1px solid var(--sfl-line-2)}
.sfl-svc2-list .elementor-icon-list-item:first-child{border-top:0}
.sfl-svc2-list .elementor-icon-list-text{font-size:13px;color:var(--sfl-ink);font-weight:500}
.sfl-svc2-list .elementor-icon-list-icon svg,
.sfl-svc2-list .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:12px;height:12px}

/* CTA — full-bleed bottom bar, inverts to navy on hover */
.sfl-svc2 .elementor-widget-button{margin:auto -30px 0 -30px;width:calc(100% + 60px) !important;max-width:none !important;align-self:stretch}
.sfl-svc2 .elementor-widget-button .elementor-button{display:flex;align-items:center;width:100%;
  border:0;border-top:1px solid var(--sfl-line);border-radius:0;background:#fff;color:var(--sfl-navy);
  padding:17px 30px;font-family:var(--sfl-fd);font-weight:700;font-size:13.5px;
  transition:background .18s,color .18s}
.sfl-svc2 .elementor-widget-button .elementor-button::after{content:"\2192";margin-left:auto;font-size:15px;
  transition:transform .18s}
.sfl-svc2 .elementor-widget-button .elementor-button:hover{transform:none}
.sfl-svc2:hover .elementor-widget-button .elementor-button{background:var(--sfl-navy);color:#fff}
.sfl-svc2:hover .elementor-widget-button .elementor-button::after{transform:translateX(4px)}

/* light chips (services hub common jobs) */
.elementor-widget-button.sfl-chip--light .elementor-button{background:var(--sfl-paper);color:var(--sfl-ink);border:1px solid var(--sfl-line)}
.elementor-widget-button.sfl-chip--light .elementor-button:hover{background:var(--sfl-blue-50);border-color:var(--sfl-blue);color:var(--sfl-blue)}

/* ============================================================ ARTICLE + SIDEBAR (service detail) */
.sfl-artl,.sfl-artl > .e-con-inner{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(28px,4vw,52px);align-items:start}
@media(max-width:960px){.sfl-artl,.sfl-artl > .e-con-inner{grid-template-columns:1fr}}
.sfl-prose > .e-con-inner{gap:16px}
.elementor-widget-heading.sfl-prose-h .elementor-heading-title{font-size:clamp(19px,2.4vw,25px);font-weight:800;margin-top:14px}
.sfl-prose > .e-con-inner > .elementor-widget-heading.sfl-prose-h:first-child .elementor-heading-title{margin-top:0}
.sfl-prose .elementor-widget-text-editor,.sfl-prose .elementor-widget-text-editor .elementor-text-editor{color:var(--sfl-muted);line-height:1.75}
.sfl-prose .elementor-widget-text-editor strong{color:var(--sfl-ink)}
/* handle mini-cards: plain, no "learn more" affordance */
.elementor-widget-icon-box.sfl-card--plain .elementor-icon-box-description::after{content:none}
.sfl-card--plain{background:#fff}
/* flat pricing card inside prose */
.sfl-price-card--flat{box-shadow:none;background:var(--sfl-paper)}
.sfl-price-card--flat > .e-con-inner{padding:22px 22px;gap:8px}
.sfl-price-card--flat::before{display:none}
.sfl-price-card--flat .sfl-price-rows .elementor-icon-list-item{border-top-color:var(--sfl-line)}
.sfl-price-card--flat .sfl-price-rows .elementor-icon-list-text{font-size:14px}
/* brands row */
.sfl-brands-row,.sfl-brands-row > .e-con-inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;border-top:1px solid var(--sfl-line);border-bottom:1px solid var(--sfl-line);padding-block:18px}
.sfl-brands-row .sfl-brand-name .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;font-size:15px;color:var(--sfl-muted);white-space:nowrap;letter-spacing:.01em}

/* ============================================================ ARTICLE PAGES — premium pass
   applies to everything wrapped in .sfl-prose: service-detail, city, county, faq, legal */
/* section headings carry the brand blue accent bar (all article-style pages incl. county hub) */
.elementor-widget-heading.sfl-prose-h .elementor-heading-title{position:relative;padding-left:17px}
.elementor-widget-heading.sfl-prose-h .elementor-heading-title::before{
  content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:3px;background:var(--sfl-blue)}

/* county hub: wrap the city directory in a card panel, service links on white */
.sfl-section > .e-con-inner > .sfl-citygrid{background:#fff;border:1px solid var(--sfl-line);border-radius:16px;
  padding:22px;box-shadow:0 1px 2px rgba(20,38,74,.05)}
.sfl-section > .e-con-inner > .sfl-chips .elementor-widget-button.sfl-btn-outline .elementor-button{background:#fff}

/* handle mini-cards → compact horizontal: navy chip left, text right */
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-wrapper{
  display:flex;flex-direction:row;align-items:flex-start;gap:14px;padding:20px;text-align:left}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-icon{margin:0 !important;flex:0 0 auto}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-content{margin:0 !important;text-align:left}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-title,
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-title a{
  font-size:15px;font-weight:700;line-height:1.3;margin:0 0 3px !important}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon-box-description{
  font-size:12.5px;line-height:1.55;margin:0 !important}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon{
  width:42px;height:42px;border-radius:11px;font-size:18px;
  background:var(--sfl-navy);color:#fff;box-shadow:0 12px 22px -14px rgba(20,38,74,.5);transition:background .2s}
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon svg,
.sfl-prose .elementor-widget-icon-box.sfl-card--sm .elementor-icon i{fill:#fff;color:#fff}
.sfl-prose .sfl-card--sm:hover .elementor-icon{background:var(--sfl-blue)}

/* flat pricing box → white card with a blue top accent */
.sfl-prose .sfl-price-card--flat{background:#fff;border:1px solid var(--sfl-line);border-radius:14px;
  box-shadow:0 1px 2px rgba(20,38,74,.05);position:relative;overflow:hidden;padding:24px 24px !important}
.sfl-prose .sfl-price-card--flat::before{content:"";display:block;position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--sfl-blue),var(--sfl-blue-2))}
.sfl-prose .sfl-price-card--flat .sfl-price-rows .elementor-icon-list-text{font-weight:500;color:var(--sfl-ink)}
.sfl-prose .sfl-price-card--flat .elementor-widget-text-editor.sfl-fineprint{
  margin-top:4px;padding-top:14px;border-top:1px solid var(--sfl-line-2)}
.sfl-prose .sfl-price-card--flat .elementor-widget-text-editor.sfl-fineprint .elementor-text-editor{
  font-size:12.5px;color:var(--sfl-muted);line-height:1.6}

/* two-column checklist ("jobs {city} calls us for") */
.sfl-checklist .elementor-icon-list-items{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
@media(max-width:600px){.sfl-checklist .elementor-icon-list-items{grid-template-columns:1fr}}
.sfl-checklist .elementor-icon-list-item{padding:7px 0 !important;align-items:flex-start}
.sfl-checklist .elementor-icon-list-text{font-size:13.5px;color:var(--sfl-ink);line-height:1.5}
.sfl-checklist .elementor-icon-list-icon{margin-top:4px}
.sfl-checklist .elementor-icon-list-icon svg,.sfl-checklist .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:12px;height:12px}

/* Google Maps embed */
.sfl-map{border:1px solid var(--sfl-line);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px rgba(20,38,74,.05)}
.sfl-map iframe{display:block;width:100%;border:0}

/* ============================================================ FLUENT FORMS embed — premium, matched to the site
   ( .frm-fluent-form adds a class so we out-specify Fluent's own stylesheet ) */
.sfl-form-card > .elementor-widget-shortcode{background:#fff;padding:22px 26px 26px}
.sfl-ff-embed .frm-fluent-form,.sfl-ff-embed .ff-el-form-top,.sfl-ff-embed .fluentform{margin:0 !important;padding:0 !important}
.sfl-ff-embed .frm-fluent-form .ff-el-group{margin-bottom:14px !important}
.sfl-ff-embed .frm-fluent-form .ff-el-group:last-of-type{margin-bottom:0 !important}
.sfl-ff-embed .frm-fluent-form .ff-el-input--label{margin-bottom:5px}
.sfl-ff-embed .frm-fluent-form .ff-el-input--label label{font-family:var(--sfl-fd);font-weight:600;font-size:12px;
  letter-spacing:.005em;color:var(--sfl-navy);margin:0;padding:0;line-height:1.3}
.sfl-ff-embed .frm-fluent-form .ff-el-input--label label .ff-el-is-required{color:var(--sfl-blue);margin-left:3px}
.sfl-ff-embed .frm-fluent-form input.ff-el-form-control,
.sfl-ff-embed .frm-fluent-form textarea.ff-el-form-control,
.sfl-ff-embed .frm-fluent-form select.ff-el-form-control{width:100%;height:auto;border:1px solid var(--sfl-line);
  border-radius:10px;padding:12px 14px;font-family:var(--sfl-fb);font-size:14px;color:var(--sfl-ink);
  background:#fff;line-height:1.4;box-shadow:none;transition:border-color .15s,box-shadow .15s}
.sfl-ff-embed .frm-fluent-form input.ff-el-form-control:focus,
.sfl-ff-embed .frm-fluent-form textarea.ff-el-form-control:focus,
.sfl-ff-embed .frm-fluent-form select.ff-el-form-control:focus{border-color:var(--sfl-blue);
  box-shadow:0 0 0 3px var(--sfl-blue-50);outline:0}
.sfl-ff-embed .frm-fluent-form textarea.ff-el-form-control{min-height:96px;resize:vertical}
.sfl-ff-embed .frm-fluent-form .ff-el-form-control::placeholder{color:var(--sfl-muted);opacity:.8}
.sfl-ff-embed .frm-fluent-form .ff-t-container{gap:14px}
.sfl-ff-embed .frm-fluent-form .ff-t-container .ff-t-cell{padding:0}
.sfl-ff-embed .frm-fluent-form .ff-el-is-error input.ff-el-form-control,
.sfl-ff-embed .frm-fluent-form .ff-el-is-error textarea.ff-el-form-control{border-color:#d64550}
.sfl-ff-embed .frm-fluent-form .error-text,
.sfl-ff-embed .frm-fluent-form .text-danger{color:#d64550;font-size:11.5px;margin-top:4px;font-family:var(--sfl-fb)}
.sfl-ff-embed .frm-fluent-form .ff_submit_btn_wrapper,
.sfl-ff-embed .frm-fluent-form .ff-el-group.ff_submit_btn_wrapper{margin-top:6px !important;margin-bottom:0 !important}
.sfl-ff-embed .frm-fluent-form button.ff-btn-submit{background:var(--sfl-blue) !important;color:#fff !important;
  border:0 !important;border-radius:10px !important;padding:14px 22px !important;font-family:var(--sfl-fd) !important;
  font-weight:700 !important;font-size:14.5px !important;width:100% !important;cursor:pointer;
  box-shadow:0 12px 26px -14px rgba(30,95,191,.65) !important;transition:background .15s,transform .12s}
.sfl-ff-embed .frm-fluent-form button.ff-btn-submit:hover{background:var(--sfl-blue-2) !important;transform:translateY(-1px)}
.sfl-ff-embed .frm-fluent-form .ff-message-success,
.sfl-ff-embed .ff_submit_success{background:var(--sfl-blue-50);border:1px solid var(--sfl-line);border-radius:12px;
  padding:18px 20px;font-family:var(--sfl-fb);font-size:14px;color:var(--sfl-navy);line-height:1.65}
/* trust line under the form */
.sfl-form-card > .sfl-fineprint{background:#fff;text-align:center}
.sfl-form-card > .sfl-fineprint .elementor-text-editor,
.sfl-form-card > .sfl-fineprint p{font-size:11.5px;color:var(--sfl-muted)}

/* aside mini-list link hover */
.sfl-minilist .elementor-icon-list-item:hover .elementor-icon-list-text{color:var(--sfl-blue)}

/* sidebar */
.sfl-aside{position:sticky;top:24px}
.sfl-aside > .e-con-inner{gap:16px;position:sticky;top:24px}
@media(max-width:960px){.sfl-aside,.sfl-aside > .e-con-inner{position:static}}
/* request / quote card — navy header zone + white body (home quote card + every aside reqcard) */
.sfl-form-card{padding:0 !important;gap:0 !important;overflow:hidden;
  box-shadow:0 18px 44px -26px rgba(20,38,74,.38)}
.sfl-form-card::before{display:none}
.sfl-form-card::after{content:"";position:absolute;top:-28px;right:-26px;width:130px;height:130px;z-index:2;
  background:var(--sfl-key) center/contain no-repeat;opacity:.11;transform:rotate(-14deg);pointer-events:none}
.sfl-form-card > .elementor-widget-heading{background:var(--sfl-navy);padding:24px 26px 0;position:relative;z-index:1}
.sfl-form-card > .elementor-widget-text-editor:not(.sfl-fineprint){background:var(--sfl-navy);padding:9px 26px 22px;position:relative;z-index:1}
.sfl-form-card > .elementor-widget-heading .elementor-heading-title{color:#fff;font-size:17px;font-weight:800;line-height:1.32;margin:0}
.sfl-form-card > .elementor-widget-text-editor:not(.sfl-fineprint),
.sfl-form-card > .elementor-widget-text-editor:not(.sfl-fineprint) .elementor-text-editor{
  color:var(--sfl-on-dark-muted);font-size:13px;line-height:1.6}
.sfl-form-card > .sfl-form-list{background:#fff;padding:20px 26px 4px}
.sfl-form-card .sfl-form-list .elementor-icon-list-item{padding:8px 0 !important}
.sfl-form-card .sfl-form-list .elementor-icon-list-text{font-size:13px;color:var(--sfl-ink);font-weight:500}
.sfl-form-card .sfl-form-list .elementor-icon-list-icon svg,
.sfl-form-card .sfl-form-list .elementor-icon-list-icon i{width:13px;height:13px}
.sfl-form-card > .sfl-btn-primary{background:#fff;padding:10px 26px 0}
.sfl-form-card > .sfl-btn-primary .elementor-button{width:100%;justify-content:center;padding:15px 18px;font-size:14.5px;border-radius:10px}
.sfl-form-card > .sfl-fineprint{background:#fff;padding:14px 26px 22px}
.sfl-form-card > .sfl-fineprint .elementor-text-editor{font-size:11.5px;color:var(--sfl-muted);line-height:1.55}

/* aside mini-lists — nav cards: accent-bar label + tappable rows */
.sfl-minilist-wrap{background:#fff;border:1px solid var(--sfl-line);border-radius:12px;padding:6px}
.sfl-minilist-h{padding:11px 10px 9px;margin-bottom:2px;border-bottom:1px solid var(--sfl-line-2)}
.sfl-minilist-h .elementor-heading-title{position:relative;padding-left:13px;
  font-family:var(--sfl-fd);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sfl-navy)}
.sfl-minilist-h .elementor-heading-title::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:3px;border-radius:3px;background:var(--sfl-blue)}
.sfl-minilist .elementor-icon-list-items{gap:0 !important}
.sfl-minilist .elementor-icon-list-item{padding:0 !important;border-top:0}
.sfl-minilist .elementor-icon-list-item a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:8px;transition:background .14s}
.sfl-minilist .elementor-icon-list-item a:hover{background:var(--sfl-blue-50)}
.sfl-minilist .elementor-icon-list-text{font-size:13px;color:var(--sfl-ink);font-weight:500;transition:color .14s}
.sfl-minilist .elementor-icon-list-item a:hover .elementor-icon-list-text{color:var(--sfl-blue)}
.sfl-minilist .elementor-icon-list-icon{transition:transform .14s}
.sfl-minilist .elementor-icon-list-icon svg,.sfl-minilist .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:11px;height:11px}
.sfl-minilist .elementor-icon-list-item a:hover .elementor-icon-list-icon{transform:translateX(2px)}

/* ============================================================ CONTACT / LEGAL / FAQ PAGE */
.sfl-contact-list .elementor-icon-list-item{padding:10px 0 !important;border-top:1px solid var(--sfl-line-2)}
.sfl-contact-list .elementor-icon-list-item:first-child{border-top:0}
.sfl-contact-list .elementor-icon-list-text{font-size:15px;color:var(--sfl-ink)}
.sfl-contact-list .elementor-icon-list-icon svg,.sfl-contact-list .elementor-icon-list-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:15px;height:15px}
.sfl-legal > .e-con-inner{max-width:760px;margin-inline:auto;width:100%;gap:6px}
.sfl-legal .elementor-widget-heading.sfl-prose-h .elementor-heading-title{font-size:19px;margin-top:18px}
.sfl-legal .elementor-widget-text-editor,.sfl-legal .elementor-widget-text-editor .elementor-text-editor{color:var(--sfl-muted);line-height:1.75}
.sfl-faqpage > .e-con-inner{gap:clamp(30px,4vw,44px)}

/* ============================================================ LOCATIONS */
/* each county = a card: name/intro column on the left, city tiles on the right */
.sfl-county-block{display:grid !important;grid-template-columns:230px minmax(0,1fr);gap:30px;align-items:start;
  background:#fff;border:1px solid var(--sfl-line);border-radius:16px;padding:26px 28px;
  box-shadow:0 1px 2px rgba(20,38,74,.05)}
@media(max-width:860px){.sfl-county-block{grid-template-columns:1fr;gap:14px;padding:22px 22px}}
.sfl-county-hd{align-self:start}
.elementor-widget-heading.sfl-county-h .elementor-heading-title{position:relative;padding-left:15px;
  font-size:19px;font-weight:800;line-height:1.25}
.elementor-widget-heading.sfl-county-h .elementor-heading-title::before{content:"";position:absolute;left:0;top:2px;bottom:2px;
  width:3px;border-radius:3px;background:var(--sfl-blue)}
.sfl-county-meta .elementor-text-editor,.sfl-county-meta p{font-size:12.5px;color:var(--sfl-muted);margin:0}
.sfl-county-meta a{font-family:var(--sfl-fd);font-weight:700;color:var(--sfl-blue)}
.sfl-county-hd > .elementor-widget-text-editor:last-child .elementor-text-editor{font-size:13px;color:var(--sfl-muted);line-height:1.6}
/* city links rendered as premium directory tiles */
.sfl-citygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(182px,1fr));gap:9px;margin-top:2px}
@media(max-width:460px){.sfl-citygrid{grid-template-columns:1fr}}
.sfl-citylink .elementor-text-editor,.sfl-citylink p{margin:0}
.sfl-citylink a{position:relative;display:flex;align-items:center;gap:9px;padding:11px 30px 11px 13px;
  border:1px solid var(--sfl-line);border-radius:9px;background:#fff;
  font-family:var(--sfl-fd);font-weight:600;font-size:14px;color:var(--sfl-navy);
  transition:border-color .15s,background .15s,transform .15s,box-shadow .15s}
.sfl-citylink a::before{content:"";width:15px;height:15px;flex:0 0 auto;background:var(--sfl-blue);
  -webkit-mask:var(--sfl-pin) center/contain no-repeat;mask:var(--sfl-pin) center/contain no-repeat}
.sfl-citylink a::after{content:"\2192";position:absolute;right:13px;top:50%;transform:translate(4px,-50%);
  font-family:var(--sfl-fd);font-weight:700;color:var(--sfl-blue);opacity:0;transition:opacity .15s,transform .15s}
.sfl-citylink a:hover{border-color:var(--sfl-blue);background:var(--sfl-blue-50);transform:translateY(-2px);box-shadow:0 10px 24px -16px rgba(20,38,74,.35)}
.sfl-citylink a:hover::after{opacity:1;transform:translate(0,-50%)}
/* on-dark variant (locations hub over paper is fine; if ever on navy) */
.sfl-navyband .sfl-citylink a{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.16);color:#fff}
.sfl-navyband .sfl-citylink a::before{background:#8FB4EA}
.sfl-navyband .sfl-citylink a:hover{background:var(--sfl-blue);border-color:var(--sfl-blue)}

/* ============================================================ IDENTITY / TEXTURE (locksmith vibe)
   A faint key line-art sits over the dark bands; every kicker carries the accent tick. */
:root{
  --sfl-pin:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2C8.1 2 5 5.1 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
  --sfl-key:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='5'/%3E%3Cpath d='M11.5 11.5 21 2m-4 4 3 3m-6 0 3 3'/%3E%3C/svg%3E");
  --sfl-key-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314264A' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='15' r='5'/%3E%3Cpath d='M11.5 11.5 21 2m-4 4 3 3m-6 0 3 3'/%3E%3C/svg%3E");
}
.sfl-pagehead,.sfl-cta,.sfl-navyband{position:relative;overflow:hidden}
.sfl-pagehead::before,.sfl-cta::before,.sfl-navyband::before{
  content:"";position:absolute;top:50%;right:-40px;width:min(420px,42vw);aspect-ratio:1;
  transform:translateY(-50%) rotate(-12deg);pointer-events:none;
  background:var(--sfl-key) center/contain no-repeat;opacity:.06}
.sfl-pagehead > *,.sfl-cta > *,.sfl-navyband > *{position:relative;z-index:1}
/* soft top-right highlight on page headers for depth */
.sfl-pagehead::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 120% at 88% -10%,rgba(46,114,210,.28),transparent 60%)}
.sfl-pagehead > *{position:relative;z-index:2}
@media(max-width:768px){.sfl-pagehead::before,.sfl-cta::before,.sfl-navyband::before{opacity:.05;right:-90px}}

/* ============================================================ SITE HEADER (HFE) — premium, sticky */
.sfl-header-outer{position:sticky;top:0;z-index:200;background:#fff;
  box-shadow:0 1px 0 var(--sfl-line),0 10px 30px -22px rgba(20,38,74,.55)}

/* topbar — slim */
.sfl-topbar{background:var(--sfl-navy);font-size:12px}
.sfl-topbar > .e-con-inner{display:flex;justify-content:space-between;align-items:center;gap:10px 24px;flex-wrap:wrap;padding-block:7px}
.sfl-topbar .elementor-widget-icon-list .elementor-icon-list-item{margin-right:0}
.sfl-topbar .elementor-widget-icon-list .elementor-icon-list-text{color:rgba(255,255,255,.6);font-size:12px;letter-spacing:.01em}
.sfl-topbar .elementor-widget-icon-list .elementor-icon-list-icon svg,
.sfl-topbar .elementor-widget-icon-list .elementor-icon-list-icon i{fill:#8FB4EA;color:#8FB4EA;width:12px;height:12px}
.sfl-topbar a{color:#fff;font-weight:600}
.sfl-topbar a:hover{color:#8FB4EA}
@media(max-width:600px){.sfl-topbar .sfl-topbar-addr{display:none}}

/* header bar */
.sfl-header-bar>.e-con-inner{display:flex !important;flex-direction:row !important;align-items:center;gap:20px;flex-wrap:nowrap;padding-block:14px}
.sfl-header-bar>.e-con-inner>.elementor-element{flex:0 0 auto;width:auto;min-width:0}
.sfl-header-bar>.e-con-inner>.sfl-nav{margin-left:auto;flex:0 1 auto}
.sfl-header-wordmark .elementor-heading-title{font-family:var(--sfl-fd);font-weight:800;font-size:19px;color:var(--sfl-navy);letter-spacing:-.015em}
.sfl-header-tagline .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;font-size:9px;letter-spacing:.2em;color:var(--sfl-blue)}

/* nav — animated underline */
.sfl-header-bar .hfe-nav-menu a.hfe-menu-item,.sfl-header-bar .hfe-nav-menu .menu-item>a{
  position:relative;font-family:var(--sfl-fd);font-weight:600;font-size:14.5px;color:var(--sfl-ink);padding-bottom:3px}
.sfl-header-bar .hfe-nav-menu a.hfe-menu-item::after{content:"" !important;position:absolute !important;
  left:0 !important;right:100% !important;top:auto !important;bottom:0 !important;width:auto !important;height:2px !important;
  background:var(--sfl-blue) !important;background-color:var(--sfl-blue) !important;border-radius:2px;
  transition:right .22s ease !important;opacity:1 !important}
.sfl-header-bar .hfe-nav-menu a.hfe-menu-item:hover::after,
.sfl-header-bar .hfe-nav-menu .current-menu-item>a::after,
.sfl-header-bar .hfe-nav-menu .current-menu-ancestor>a::after{right:0 !important}
.sfl-header-bar .hfe-nav-menu a.hfe-menu-item:hover,
.sfl-header-bar .hfe-nav-menu .menu-item>a:hover,
.sfl-header-bar .hfe-nav-menu .current-menu-item>a,
.sfl-header-bar .hfe-nav-menu .current-menu-ancestor>a,
.sfl-header-bar .hfe-nav-menu .current-menu-item>a:hover{color:var(--sfl-blue) !important}
.sfl-header-bar .hfe-nav-menu .sub-menu{border:1px solid var(--sfl-line);box-shadow:var(--sfl-shadow);border-radius:8px;padding:6px 0}
.sfl-header-bar .hfe-nav-menu .sub-menu .hfe-menu-item::after{display:none}
.sfl-header-bar .hfe-nav-menu__toggle{color:var(--sfl-navy)}

/* actions — phone with an icon chip + refined CTA */
.sfl-header-actions>.e-con-inner{display:flex;flex-direction:row;align-items:center;gap:16px}
.elementor-widget-button.sfl-header-tel .elementor-button{background:transparent;color:var(--sfl-navy);border:0;
  padding:6px 4px;font-family:var(--sfl-fd);font-weight:700;font-size:15px;box-shadow:none;display:flex;align-items:center;gap:9px}
.elementor-widget-button.sfl-header-tel .elementor-button:hover{color:var(--sfl-blue);transform:none}
.elementor-widget-button.sfl-header-tel .elementor-button-icon{width:28px;height:28px;border-radius:50%;
  background:var(--sfl-blue-50);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;transition:background .15s}
.elementor-widget-button.sfl-header-tel .elementor-button:hover .elementor-button-icon{background:#e0eafc}
.elementor-widget-button.sfl-header-tel .elementor-button-icon svg,
.elementor-widget-button.sfl-header-tel .elementor-button-icon i{fill:var(--sfl-blue);color:var(--sfl-blue);width:12px;height:12px}
.sfl-header-actions .elementor-widget-button.sfl-btn-primary .elementor-button{padding:11px 20px;font-size:14px;border-radius:9px}

/* ============================================================ SITE FOOTER (HFE) — premium */
.sfl-footer{background:var(--sfl-navy);position:relative;border-top:3px solid var(--sfl-blue)}
.sfl-footer a{color:var(--sfl-on-dark-muted);transition:color .15s}
.sfl-footer a:hover{color:#fff}
.sfl-footer .elementor-widget-heading .elementor-heading-title{color:#fff}
.sfl-footer .elementor-widget-text-editor,.sfl-footer .elementor-widget-text-editor p{color:var(--sfl-on-dark-muted);font-size:13.5px;line-height:1.7}
.sfl-footer .elementor-widget-icon-list .elementor-icon-list-text{color:var(--sfl-on-dark-muted);font-size:13.5px}
.sfl-footer .elementor-widget-icon-list .elementor-icon-list-icon svg,
.sfl-footer .elementor-widget-icon-list .elementor-icon-list-icon i{fill:#8FB4EA;color:#8FB4EA}

/* layout: real 3-column grid, aligned to the 1500 container */
.sfl-footer-grid{display:grid !important;grid-template-columns:1.8fr 1fr 1fr;gap:32px 56px;align-items:start;
  max-width:1500px;margin-inline:auto;width:100%;padding:clamp(48px,6vw,72px) clamp(20px,4vw,60px) 34px}

/* brand column */
.sfl-footer-about{max-width:36ch;display:flex;flex-direction:column;gap:10px}
.sfl-footer .sfl-footer-wm .elementor-heading-title{font-family:var(--sfl-fd);font-weight:800;font-size:20px;letter-spacing:-.01em}
.sfl-footer .sfl-footer-tag .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;font-size:10.5px;
  letter-spacing:.16em;text-transform:uppercase;color:#8FB4EA;margin-top:-4px}
.sfl-footer-about .sfl-footer-contact{margin-top:6px}
.sfl-footer-contact .elementor-icon-list-item{padding:6px 0 !important}
.sfl-footer-contact .elementor-icon-list-item:first-child .elementor-icon-list-text{
  font-family:var(--sfl-fd);font-weight:700;font-size:17px;color:#fff}
.sfl-footer-contact .elementor-icon-list-item:first-child a:hover .elementor-icon-list-text{color:#fff}

/* link columns */
.sfl-footer-col .elementor-widget-heading .elementor-heading-title{font-family:var(--sfl-fd);font-weight:700;font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;color:#8FB4EA;margin-bottom:10px}
.sfl-footer-col .elementor-widget-icon-list .elementor-icon-list-item{padding:0 !important}
.sfl-footer-col .elementor-icon-list-item a{display:flex;align-items:center;gap:8px;padding:6px 0}
.sfl-footer-col .elementor-icon-list-item .elementor-icon-list-icon{transition:transform .15s}
.sfl-footer-col .elementor-icon-list-item a:hover .elementor-icon-list-icon{transform:translateX(3px)}

/* legal bar */
.sfl-footer-legal{max-width:1500px;margin-inline:auto;width:100%;padding:16px clamp(20px,4vw,60px) 26px;
  border-top:1px solid rgba(255,255,255,.09)}
.sfl-footer .sfl-footer-legal .elementor-text-editor,
.sfl-footer .sfl-footer-legal .elementor-text-editor p{font-size:11.5px;color:var(--sfl-on-dark-muted);letter-spacing:.01em}

@media(max-width:900px){.sfl-footer-grid{grid-template-columns:1fr 1fr}.sfl-footer-about{grid-column:1/-1;max-width:52ch}}
@media(max-width:560px){.sfl-footer-grid{grid-template-columns:1fr}}
/* on-dark icon lists elsewhere (About band) */
.elementor-widget-icon-list.sfl-on-dark .elementor-icon-list-text{color:var(--sfl-on-dark)}
.elementor-widget-icon-list.sfl-on-dark .elementor-icon-list-icon svg,
.elementor-widget-icon-list.sfl-on-dark .elementor-icon-list-icon i{fill:#8FB4EA;color:#8FB4EA}

/* ============================================================ RESPONSIVE */
@media(max-width:1340px){ .sfl-header-bar .sfl-header-tel{display:none} }
@media(max-width:1200px){
  .sfl-header-bar{position:relative}
  .sfl-header-bar>.e-con-inner{gap:14px}
  /* hamburger moves to the left, panel opens under it */
  .sfl-header-bar>.e-con-inner>.sfl-nav{order:-1;margin-left:0 !important;flex:0 0 40px !important;width:40px !important}
  .sfl-header-bar>.e-con-inner>.sfl-nav .hfe-nav-menu__toggle{margin:0}
  .sfl-header-bar>.e-con-inner>.sfl-header-brand{margin-right:auto}
  /* anchor the drop panel to the header bar, not the tiny nav widget */
  .sfl-header-bar .sfl-nav{position:static !important}
  .sfl-header-bar .sfl-nav nav.hfe-nav-menu__layout-horizontal{
    position:absolute !important;top:100% !important;
    left:clamp(14px,4vw,24px) !important;right:auto !important;z-index:70;
    width:min(340px,calc(100vw - 28px)) !important;
    flex-direction:column;align-items:stretch;
    background:#fff;border:1px solid var(--sfl-line);border-radius:10px;box-shadow:var(--sfl-shadow);padding:8px;margin-top:12px}
  .sfl-header-bar .sfl-nav nav.hfe-nav-menu__layout-horizontal .menu-item{width:100%}
  .sfl-header-bar .sfl-nav nav.hfe-nav-menu__layout-horizontal .sub-menu{position:static !important;border:0;box-shadow:none;padding-left:12px;width:auto !important}
}
@media(max-width:1080px){
  .sfl-grid-4,.sfl-grid-4>.e-con-inner{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:960px){
  .sfl-split,.sfl-split>.e-con-inner{grid-template-columns:1fr}
}
@media(max-width:900px){
  .sfl-grid-3,.sfl-grid-3>.e-con-inner{grid-template-columns:repeat(2,1fr)}
  .sfl-stats,.sfl-stats>.e-con-inner{grid-template-columns:repeat(2,1fr)}
  .sfl-steps,.sfl-steps>.e-con-inner{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  /* mobile header: hamburger left, compact tap-to-call right */
  .sfl-header-bar>.e-con-inner{gap:8px}
  .sfl-header-wordmark .elementor-heading-title{font-size:14px}
  .sfl-header-tagline{display:none}
  .sfl-header-bar .sfl-header-actions .sfl-btn-primary{display:none}
  .sfl-header-bar .sfl-header-actions .sfl-header-tel{display:block}
  .elementor-widget-button.sfl-header-tel .elementor-button{
    background:var(--sfl-blue);color:#fff;border-radius:var(--sfl-r);
    padding:8px 12px;font-size:12.5px;gap:6px}
  .elementor-widget-button.sfl-header-tel .elementor-button:hover{background:var(--sfl-blue-2);color:#fff}
  .elementor-widget-button.sfl-header-tel .elementor-button-icon{
    width:auto !important;height:auto !important;background:transparent !important;color:#fff}
  .elementor-widget-button.sfl-header-tel .elementor-button-icon svg,
  .elementor-widget-button.sfl-header-tel .elementor-button-icon i{fill:#fff;color:#fff;width:11px;height:11px}
}
@media(max-width:560px){
  .sfl-grid-2,.sfl-grid-2>.e-con-inner,
  .sfl-grid-3,.sfl-grid-3>.e-con-inner,
  .sfl-grid-4,.sfl-grid-4>.e-con-inner,
  .sfl-stats,.sfl-stats>.e-con-inner,
  .sfl-steps,.sfl-steps>.e-con-inner{grid-template-columns:1fr}
}

/* ============================================================ BLOG — premium (custom home.php / single.php / archive.php) */
/* the <main> is `#content.site-main.sfl-blog` — Hello caps it at 1140px; go full-bleed and let each section's -in wrapper hold the measure */
main#content.sfl-blog,
main#content.sfl-blog.site-main{max-width:100% !important;width:100% !important;margin:0 !important;padding:0 !important}

/* navy head band */
.sfl-blog-head{background:var(--sfl-navy);color:#fff;position:relative;overflow:hidden}
.sfl-blog-head::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 120% at 88% -10%,rgba(46,114,210,.28),transparent 60%)}
.sfl-blog-head-in{max-width:1120px;margin-inline:auto;width:100%;position:relative;z-index:1;
  padding:clamp(40px,6vw,68px) clamp(20px,4vw,60px)}
.sfl-blog-head--post .sfl-blog-head-in{max-width:960px;padding-bottom:clamp(84px,10vw,120px)}
.sfl-blog-head--list .sfl-blog-head-in{max-width:1120px;padding-bottom:clamp(34px,4.5vw,52px)}
.sfl-blog-crumb{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-bottom:16px}
.sfl-blog-crumb a{color:rgba(255,255,255,.45);text-decoration:none}
.sfl-blog-crumb a:hover{color:rgba(255,255,255,.85)}
.sfl-blog-crumb span{opacity:.4;margin:0 7px}
.sfl-blog-kicker{font-family:var(--sfl-fd);font-weight:700;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:#8FB4EA;display:inline-flex;align-items:center;gap:12px;margin-bottom:14px}
.sfl-blog-kicker::before{content:"";width:22px;height:2px;background:var(--sfl-blue-2);border-radius:2px}
.sfl-blog-head .sfl-blog-h1{font-family:var(--sfl-fd);font-weight:800;font-size:clamp(26px,4vw,40px);line-height:1.14;
  letter-spacing:-.015em;color:#fff !important;margin:0;max-width:20ch}
.sfl-blog-head--post .sfl-blog-h1{max-width:24ch}
.sfl-blog-lead{color:rgba(255,255,255,.66);font-size:15.5px;line-height:1.6;margin:14px 0 0;max-width:58ch}

/* wrap */
.sfl-blog-wrap{max-width:1160px;margin-inline:auto;width:100%;padding:clamp(40px,5vw,64px) clamp(20px,4vw,56px) clamp(56px,7vw,90px)}

/* category filter chips */
.sfl-blog-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.sfl-chip-f{font-family:var(--sfl-fd);font-weight:600;font-size:13px;letter-spacing:.01em;color:var(--sfl-navy);
  background:#fff;border:1px solid var(--sfl-line);border-radius:999px;padding:8px 16px;text-decoration:none;
  transition:border-color .15s ease,color .15s ease,background .15s ease}
.sfl-chip-f:hover{border-color:var(--sfl-blue);color:var(--sfl-blue)}
.sfl-chip-f.is-active{background:var(--sfl-navy);border-color:var(--sfl-navy);color:#fff}
.sfl-chip-f:focus-visible{outline:2px solid var(--sfl-blue);outline-offset:2px}

/* result count / empty state */
.sfl-blog-count{font-family:var(--sfl-fd);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sfl-muted);margin:0 0 clamp(20px,3vw,30px);padding-bottom:14px;border-bottom:1px solid var(--sfl-line)}
.sfl-blog-empty{font-size:15px;color:var(--sfl-muted)}
.sfl-blog-empty a{color:var(--sfl-blue)}

/* post grid + cards */
.sfl-blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px)}
@media(max-width:960px){.sfl-blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.sfl-blog-grid{grid-template-columns:1fr}}
.sfl-post-card{background:#fff;border:1px solid var(--sfl-line);border-radius:16px;overflow:hidden;
  display:flex;flex-direction:column;position:relative;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.sfl-post-card:hover{transform:translateY(-4px);box-shadow:var(--sfl-shadow);border-color:var(--sfl-blue)}
.sfl-post-card-media{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--sfl-paper)}
.sfl-post-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.sfl-post-card:hover .sfl-post-card-media img{transform:scale(1.04)}
.sfl-post-card-media--ph{position:absolute;inset:0;
  background:linear-gradient(135deg,var(--sfl-navy),var(--sfl-blue))}
.sfl-post-card-accent{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--sfl-blue);
  transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.sfl-post-card:hover .sfl-post-card-accent{transform:scaleX(1)}
.sfl-post-card-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1}
.sfl-post-cat{align-self:flex-start;font-family:var(--sfl-fd);font-weight:700;font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sfl-blue);background:var(--sfl-blue-50);border-radius:999px;padding:5px 11px}
.sfl-post-card-meta{font-family:var(--sfl-fd);font-weight:600;font-size:11px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--sfl-muted);display:flex;align-items:center;gap:7px}
.sfl-post-card-title{font-family:var(--sfl-fd);font-weight:800;font-size:18px;line-height:1.3;margin:1px 0 0}
.sfl-post-card-title a{color:var(--sfl-navy);text-decoration:none;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sfl-post-card-title a::after{content:"";position:absolute;inset:0;z-index:2}
.sfl-post-card:hover .sfl-post-card-title a{color:var(--sfl-blue)}
.sfl-post-card:focus-within{border-color:var(--sfl-blue);box-shadow:var(--sfl-shadow)}
.sfl-post-card-title a:focus-visible{outline:2px solid var(--sfl-blue);outline-offset:3px;border-radius:3px}
.sfl-post-card-excerpt{font-size:13.5px;line-height:1.6;color:var(--sfl-muted);margin:0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sfl-post-card-more{margin-top:auto;padding-top:6px;font-family:var(--sfl-fd);font-weight:700;font-size:13px;color:var(--sfl-blue);
  display:inline-flex;align-items:center;gap:6px}
.sfl-post-card-more span{transition:transform .15s ease}
.sfl-post-card:hover .sfl-post-card-more span{transform:translateX(3px)}

/* pagination */
.sfl-blog-pagination{margin-top:32px}
.sfl-blog-pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:center}
.sfl-blog-pagination a,.sfl-blog-pagination .page-numbers{font-family:var(--sfl-fd);font-weight:600;font-size:13.5px;
  color:var(--sfl-navy);border:1px solid var(--sfl-line);border-radius:8px;padding:8px 13px;text-decoration:none;background:#fff}
.sfl-blog-pagination a:hover{border-color:var(--sfl-blue);color:var(--sfl-blue)}
.sfl-blog-pagination a:focus-visible{outline:2px solid var(--sfl-blue);outline-offset:2px}
.sfl-blog-pagination .page-numbers.current{background:var(--sfl-navy);color:#fff;border-color:var(--sfl-navy)}

/* --- single: reading progress --- */
.sfl-read-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:210;background:transparent;pointer-events:none}
.sfl-read-progress span{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;
  background:linear-gradient(90deg,var(--sfl-blue),var(--sfl-blue-2));transition:transform .08s linear}
@media(prefers-reduced-motion:reduce){.sfl-read-progress span{transition:none}}

/* --- single: featured-image hero --- */
.sfl-post-hero{background:var(--sfl-navy)}
.sfl-post-hero-in{max-width:960px;margin-inline:auto;width:100%;padding:0 clamp(20px,4vw,56px);
  transform:translateY(clamp(-64px,-7vw,-44px));margin-bottom:clamp(-52px,-5vw,-32px)}
.sfl-post-hero-in img{width:100%;height:auto;max-height:440px;object-fit:cover;display:block;border-radius:16px;
  aspect-ratio:16/9;box-shadow:0 30px 70px -30px rgba(14,38,74,.5);border:1px solid rgba(255,255,255,.08)}
@media(max-width:600px){
  .sfl-post-hero-in{transform:translateY(-28px);margin-bottom:-16px}
  .sfl-post-hero-in img{border-radius:12px;aspect-ratio:3/2;max-height:300px}
}

/* --- single: 2-column layout --- */
.sfl-article-layout{max-width:1080px;margin-inline:auto;width:100%;
  padding:clamp(34px,5vw,56px) clamp(20px,4vw,56px) clamp(16px,3vw,28px);
  display:grid;grid-template-columns:232px minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
@media(max-width:900px){.sfl-article-layout{grid-template-columns:1fr;gap:0}}
.sfl-article-side-sticky{position:sticky;top:96px;display:flex;flex-direction:column;gap:22px}
@media(max-width:900px){
  .sfl-article-side{order:-1}
  .sfl-article-side-sticky{position:static;top:auto;margin-bottom:28px}
}

/* table of contents */
.sfl-toc{border:1px solid var(--sfl-line);border-left:3px solid var(--sfl-blue);border-radius:4px 14px 14px 4px;
  padding:18px 18px 20px;background:#fff}
.sfl-toc-title{font-family:var(--sfl-fd);font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sfl-navy);margin-bottom:12px}
.sfl-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc}
.sfl-toc li{counter-increment:toc;margin:0}
.sfl-toc a{display:block;font-size:13px;line-height:1.45;color:var(--sfl-muted);text-decoration:none;
  padding:6px 0 6px 26px;position:relative;transition:color .15s ease}
.sfl-toc a::before{content:counter(toc,decimal-leading-zero);position:absolute;left:0;top:6px;
  font-family:var(--sfl-fd);font-weight:700;font-size:10.5px;color:var(--sfl-blue);opacity:.55}
.sfl-toc a:hover{color:var(--sfl-navy)}
.sfl-toc a.is-active{color:var(--sfl-blue);font-weight:600}
.sfl-toc a.is-active::before{opacity:1}
.sfl-toc a:focus-visible{outline:2px solid var(--sfl-blue);outline-offset:1px;border-radius:3px}

/* share buttons */
.sfl-share-title{font-family:var(--sfl-fd);font-weight:800;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sfl-navy);margin-bottom:11px}
.sfl-share-row{display:flex;flex-wrap:wrap;gap:9px}
.sfl-share-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--sfl-line);border-radius:10px;background:#fff;color:var(--sfl-navy);cursor:pointer;
  padding:0;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .12s ease}
.sfl-share-btn svg{width:16px;height:16px}
.sfl-share-btn:hover{border-color:var(--sfl-blue);color:var(--sfl-blue);transform:translateY(-1px)}
.sfl-share-btn:focus-visible{outline:2px solid var(--sfl-blue);outline-offset:2px}
.sfl-copy-link.is-copied{background:var(--sfl-navy);border-color:var(--sfl-navy);color:#fff}
.sfl-share--foot{margin-top:36px;padding-top:24px;border-top:1px solid var(--sfl-line)}
@media(min-width:901px){.sfl-share--foot{display:none}}

.sfl-article{max-width:none;margin:0;width:100%;padding:0}
.sfl-article-meta{font-family:var(--sfl-fd);font-weight:600;font-size:12.5px;letter-spacing:.03em;text-transform:uppercase;
  color:var(--sfl-muted);padding-bottom:20px;margin-bottom:26px;border-bottom:1px solid var(--sfl-line)}
.sfl-article-body > *:first-child{margin-top:0}
.sfl-article-body p{font-size:16.5px;line-height:1.78;color:var(--sfl-ink);margin:0 0 17px}
.sfl-article-body > p:first-of-type{font-size:18px;line-height:1.7;color:var(--sfl-navy);margin-bottom:22px}
.sfl-article-body h2{font-family:var(--sfl-fd);font-weight:700;font-size:clamp(20px,2.4vw,24px);color:var(--sfl-navy);
  margin:38px 0 12px;letter-spacing:-.005em;position:relative;padding-left:16px}
.sfl-article-body h2::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:3px;background:var(--sfl-blue)}
.sfl-article-body h3{font-family:var(--sfl-fd);font-weight:700;font-size:17.5px;color:var(--sfl-navy);margin:26px 0 8px}
.sfl-article-body ul,.sfl-article-body ol{font-size:16.5px;line-height:1.72;color:var(--sfl-ink);margin:0 0 18px;padding-left:24px}
.sfl-article-body li{margin-bottom:9px}
.sfl-article-body li::marker{color:var(--sfl-blue)}
.sfl-article-body a{color:var(--sfl-blue);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.sfl-article-body a:hover{color:var(--sfl-blue-2)}
.sfl-article-body strong{color:var(--sfl-navy);font-weight:700}
.sfl-article-body em{color:var(--sfl-ink)}
.sfl-article-body blockquote{border-left:3px solid var(--sfl-blue);padding:2px 0 2px 18px;margin:24px 0;color:var(--sfl-muted)}

/* CTA band */
.sfl-blog-cta{background:var(--sfl-navy);color:#fff;border-radius:16px;margin:clamp(32px,5vw,48px) auto 0;max-width:1072px;
  padding:clamp(26px,3.5vw,40px) clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:20px 40px;position:relative;overflow:hidden}
.sfl-single .sfl-blog-cta{max-width:1080px;margin-inline:auto}
.sfl-blog-cta::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 130% at 90% -20%,rgba(46,114,210,.3),transparent 60%)}
.sfl-blog-cta-txt{position:relative;z-index:1;max-width:52ch}
.sfl-blog-cta h3{font-family:var(--sfl-fd);font-weight:800;font-size:clamp(19px,2.4vw,24px);margin:0 0 6px;color:#fff}
.sfl-blog-cta p{color:var(--sfl-on-dark-muted);font-size:14px;line-height:1.55;margin:0}
.sfl-blog-cta-btn{position:relative;z-index:1;flex:0 0 auto;background:#fff;color:var(--sfl-navy);font-family:var(--sfl-fd);
  font-weight:700;font-size:14.5px;border-radius:10px;padding:14px 22px;text-decoration:none;
  box-shadow:0 10px 26px -14px rgba(0,0,0,.45);transition:transform .12s ease,background .15s ease}
.sfl-blog-cta-btn:hover{transform:translateY(-1px);background:#f0f3f7}

/* related */
.sfl-related{background:var(--sfl-paper);border-top:1px solid var(--sfl-line);margin-top:clamp(40px,6vw,64px)}
.sfl-related-in{max-width:1080px;margin-inline:auto;width:100%;padding:clamp(40px,6vw,64px) clamp(20px,4vw,56px)}
.sfl-related-title{font-family:var(--sfl-fd);font-weight:800;font-size:clamp(19px,2.4vw,24px);color:var(--sfl-navy);margin:0 0 22px}
.sfl-related .sfl-blog-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.sfl-related .sfl-blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.sfl-related .sfl-blog-grid{grid-template-columns:1fr}}

/* kill any residual Hello comment / default markup on blog views */
.sfl-blog #comments,.sfl-blog .comments-area,.sfl-blog .comment-respond,
.single-post #comments,.blog #comments,.archive #comments{display:none !important}
