/*
Theme Name: 613 Locksmith
Theme URI: https://613locksmith.com.au
Author: 613 Locksmith
Author URI: https://613locksmith.com.au
Description: A fast, conversion focused WordPress theme built for 613 Locksmith, Sydney's 24/7 emergency locksmiths. Emergency first design with click to call everywhere, a callback form that saves every lead in WordPress and pushes it to your CRM webhook, a one click starter site with bundled photography, and a clean white and blue design system built for urgency and trust.
Version: 1.7.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: six13lk
Tags: business, custom-colors, custom-logo, custom-menu, featured-images, full-width-template, responsive-layout, theme-options, translation-ready
*/

/* =========================================================================
   613 LOCKSMITH DESIGN SYSTEM
   1. Tokens   2. Reset & base   3. Layout   4. Typography   5. Buttons
   6. Header / nav   7. Hero   8. Sections & components   9. Service cards
   10. Forms   11. Footer   12. WP core   13. Utilities   14. Responsive
   ========================================================================= */

/* ------------------------------ 1. TOKENS ------------------------------ */
:root{
  /* White + blue */
  --c-ink:        #0B1220;
  --c-charcoal:   #111A2E;
  --c-graphite:   #1A2440;
  --c-slate:      #334155;
  --c-line:       #2A3550;
  --c-muted:      #64748B;
  --c-soft:       #CBD5E1;
  --c-paper:      #FFFFFF;
  --c-mist:       #F5F8FC;
  --c-mist-2:     #E3EAF3;

  --c-brand:      #1D6FF2;
  --c-brand-600:  #155BD0;
  --c-brand-700:  #0F47A8;
  --c-brand-400:  #4C8DF6;
  --c-brand-200:  #BCD4FC;
  --c-brand-050:  #EEF4FF;
  --c-glow:       #5AA2FF;
  --c-success:    #17B26A;

  --f-head: 'Sora', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --f-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;

  --fs-xs: .75rem; --fs-sm: .875rem; --fs-base: 1rem; --fs-md: 1.0625rem;
  --fs-lg: 1.25rem; --fs-xl: 1.5rem; --fs-2xl: 2rem; --fs-3xl: 2.5rem;
  --fs-4xl: 3.25rem; --fs-5xl: 4rem;

  --sp-1: .25rem; --sp-2: .5rem; --sp-3: .75rem; --sp-4: 1rem;
  --sp-5: 1.5rem; --sp-6: 2rem; --sp-7: 3rem; --sp-8: 4rem; --sp-9: 6rem;

  --r-sm: 8px; --r-md: 14px; --r-lg: 22px; --r-xl: 32px; --r-pill: 999px;

  --sh-1: 0 1px 2px rgba(11,18,32,.06), 0 4px 12px rgba(11,18,32,.05);
  --sh-2: 0 2px 6px rgba(11,18,32,.07), 0 12px 32px rgba(11,18,32,.09);
  --sh-3: 0 8px 20px rgba(11,18,32,.10), 0 32px 64px rgba(11,18,32,.14);
  --sh-brand: 0 10px 30px rgba(29,111,242,.33);

  --wrap: 1240px; --wrap-narrow: 820px; --header-h: 96px; --ticker-h: 0px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* --------------------------- 2. RESET & BASE --------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{
  background:#fff;
  -webkit-text-size-adjust:100%; scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + var(--ticker-h) + 20px);
  overflow-x:hidden; overflow-x:clip;
}
body{
  margin:0; font-family:var(--f-body); font-size:var(--fs-md); line-height:1.65;
  color:var(--c-charcoal); background:var(--c-paper);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:var(--c-brand-600); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--c-brand); }
button{ font:inherit; }
ul,ol{ padding-left:1.15rem; }
figure{ margin:0; }
hr{ border:0; border-top:1px solid var(--c-mist-2); margin:var(--sp-7) 0; }
::selection{ background:var(--c-brand); color:#fff; }
:focus-visible{ outline:3px solid var(--c-brand-400); outline-offset:2px; border-radius:4px; }

.skip-link{ position:absolute; left:-9999px; top:0; z-index:9999; background:var(--c-brand); color:var(--c-ink); padding:.75rem 1.25rem; border-radius:0 0 var(--r-sm) 0; }
.skip-link:focus{ left:0; color:var(--c-ink); }
.screen-reader-text{ border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal!important; }

/* ------------------------ 3. LAYOUT PRIMITIVES ------------------------ */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2rem); }
.wrap--narrow{ max-width:var(--wrap-narrow); }
.section{ padding-block:clamp(3.5rem,7vw,6.5rem); position:relative; }
.section--tight{ padding-block:clamp(2.5rem,5vw,4rem); }
.section--line{ border-top:1px solid var(--c-mist-2); }

.grid{ display:grid; gap:var(--sp-5); }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
.g-auto{ grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); }
.flex{ display:flex; gap:var(--sp-4); }
.flex-wrap{ flex-wrap:wrap; }
.flex-center{ display:flex; align-items:center; gap:var(--sp-3); }

/* --------------------------- 4. TYPOGRAPHY --------------------------- */
h1,h2,h3,h4,h5,h6{
  font-family:var(--f-head); color:var(--c-ink); font-weight:700;
  line-height:1.12; letter-spacing:-.022em; margin:0 0 var(--sp-4); text-wrap:balance;
}
h1{ font-size:clamp(2.25rem,5.4vw,var(--fs-5xl)); }
h2{ font-size:clamp(1.85rem,3.9vw,var(--fs-3xl)); }
h3{ font-size:clamp(1.3rem,2.2vw,var(--fs-xl)); }
h4{ font-size:var(--fs-lg); }
p{ margin:0 0 var(--sp-4); }
p:last-child{ margin-bottom:0; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-head); font-size:var(--fs-xs); font-weight:600;
  letter-spacing:.16em; text-transform:uppercase; color:var(--c-brand-700);
  margin-bottom:var(--sp-3);
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--c-brand); border-radius:2px; }

.lead{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--c-slate); line-height:1.6; }
.muted{ color:var(--c-muted); }
.section-head{ max-width:720px; margin-bottom:clamp(2rem,4vw,3.25rem); }
.section-head--center{ margin-inline:auto; text-align:center; }

/* ------------------------ 5. BUTTONS & BADGES ------------------------ */
.btn{
  --btn-bg:var(--c-brand); --btn-fg:#fff; --btn-bd:var(--c-brand);
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  font-family:var(--f-head); font-weight:700; font-size:var(--fs-base); line-height:1;
  padding:1rem 1.6rem; border-radius:var(--r-pill);
  background:var(--btn-bg); color:var(--btn-fg); border:1.5px solid var(--btn-bd);
  cursor:pointer; text-align:center; white-space:nowrap;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
  box-shadow:var(--sh-brand);
}
.btn:hover{ color:#fff; transform:translateY(-2px); box-shadow:0 14px 38px rgba(29,111,242,.42); background:var(--c-brand-600); border-color:var(--c-brand-600); }
.btn:active{ transform:translateY(0); }
svg.icon{ width:1.15em; height:1.15em; flex:none; }
.btn svg{ width:18px; height:18px; flex:none; }

.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--c-ink); --btn-bd:var(--c-mist-2); box-shadow:none; }
.btn--ghost:hover{ background:var(--c-ink); border-color:var(--c-ink); color:#fff; box-shadow:var(--sh-2); }
.btn--outline-light{ --btn-bg:#fff; --btn-fg:var(--c-ink); --btn-bd:rgba(11,18,32,.22); box-shadow:none; }
.btn--outline-light:hover{ background:var(--c-ink); color:#fff; border-color:var(--c-ink); }
.btn--dark{ --btn-bg:var(--c-ink); --btn-fg:#fff; --btn-bd:var(--c-ink); box-shadow:var(--sh-2); }
.btn--dark:hover{ background:var(--c-charcoal); border-color:var(--c-charcoal); color:#fff; }
.btn--lg{ padding:1.15rem 2.1rem; font-size:var(--fs-md); }
.btn--sm{ padding:.7rem 1.15rem; font-size:var(--fs-sm); }
.btn--block{ width:100%; }

/* Pulsing call button for emergency CTAs */
.btn--call{ position:relative; }
.btn--call::after{
  content:""; position:absolute; inset:-5px; border-radius:var(--r-pill);
  border:2px solid var(--c-brand); opacity:0; pointer-events:none;
  animation:slk-pulse 2.2s var(--ease) infinite;
}
@keyframes slk-pulse{
  0%{ transform:scale(.96); opacity:.65; }
  70%{ transform:scale(1.12); opacity:0; }
  100%{ opacity:0; }
}
/* Wide buttons get a tighter ring so it never pokes past the screen edge */
@keyframes slk-pulse-wide{
  0%{ transform:scale(.99); opacity:.6; }
  70%{ transform:scale(1.03); opacity:0; }
  100%{ opacity:0; }
}
.btn--block.btn--call::after{ inset:-4px; animation-name:slk-pulse-wide; }
@media (max-width:640px){
  .hero__actions .btn--call::after,.cta-band .btn--call::after,.sticky-cta .btn--call::after{ inset:-4px; animation-name:slk-pulse-wide; }
}

.badge{
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:var(--fs-xs); font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  padding:.4rem .75rem; border-radius:var(--r-pill);
  background:var(--c-brand-050); color:var(--c-brand-600);
}
.arrow-link{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--f-head); font-weight:600; color:var(--c-brand-600); }
.arrow-link svg{ width:16px; height:16px; transition:transform .22s var(--ease); }
.arrow-link:hover svg{ transform:translateX(4px); }

/* ------------------------- 6. HEADER / NAV ------------------------- */

.site-header{
  position:sticky; top:0; z-index:900;
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--c-mist-2);
  transition:box-shadow .25s var(--ease), background .25s var(--ease);
}
.site-header.is-stuck{ box-shadow:var(--sh-2); background:rgba(255,255,255,.97); }
.site-header .wrap{ display:flex; align-items:center; gap:var(--sp-5); min-height:var(--header-h); max-width:1440px; }

.brand{ display:flex; align-items:center; gap:.65rem; flex:none; color:inherit; }
.brand img{ max-height:52px; width:auto; }
.brand__mark{ width:64px; height:64px; flex:none; }
.brand__text{ display:flex; flex-direction:column; line-height:1; gap:0; }
.brand__name{ display:flex; flex-direction:column; font-family:var(--f-head); font-weight:800; font-size:2.05rem; line-height:.9; letter-spacing:-.02em; color:var(--c-ink); }
.brand__name span{ font-size:.54em; line-height:1; letter-spacing:.07em; text-transform:uppercase; color:var(--c-brand); margin-top:.2rem; }
.brand__tag{ align-self:flex-start; margin-top:.32rem; padding-top:.28rem; border-top:1.5px solid var(--c-ink); font-size:.56rem; letter-spacing:.09em; text-transform:uppercase; color:var(--c-slate); font-weight:700; white-space:nowrap; }

.nav{ margin-left:auto; }
.nav ul{ list-style:none; display:flex; align-items:center; gap:.3rem; margin:0; padding:0; }
.nav li{ position:relative; }
.nav a{
  display:flex; align-items:center; gap:.3rem; white-space:nowrap;
  font-family:var(--f-head); font-weight:600; font-size:1.02rem; color:var(--c-charcoal);
  padding:.65rem .8rem; border-radius:var(--r-sm); transition:background .2s var(--ease), color .2s var(--ease);
}
.nav a:hover,.nav .current-menu-item>a,.nav .current_page_item>a,.nav .current-menu-ancestor>a{ color:var(--c-brand-600); background:var(--c-brand-050); }
.nav .menu-item-has-children>a::after{
  content:""; width:7px; height:7px; margin-left:.15rem;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px); opacity:.6;
}
.nav .sub-menu{
  position:absolute; top:calc(100% + 10px); left:0; min-width:262px;
  display:block;
  background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-md);
  box-shadow:var(--sh-3); padding:.5rem;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.nav li:hover>.sub-menu,.nav li:focus-within>.sub-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.nav .sub-menu li{ display:block; }
.nav .sub-menu a{ padding:.7rem .8rem; font-weight:500; font-size:.92rem; border-radius:var(--r-sm); }


.header-cta{ display:flex; align-items:center; gap:var(--sp-3); flex:none; margin-left:auto; }
.nav + .header-cta{ margin-left:var(--sp-4); }
.header-call{ font-size:1.3rem; padding:1rem 1.75rem; letter-spacing:.01em; }
.header-call svg{ width:24px; height:24px; }
@media (min-width:1241px) and (max-width:1440px){
  .nav a{ font-size:.95rem; padding:.55rem .6rem; }
  .header-call{ font-size:1.15rem; padding:.9rem 1.4rem; }
  .brand__mark{ width:54px; height:54px; }
  .brand__name{ font-size:1.85rem; }
}
@media (min-width:961px) and (max-width:1240px){
  .nav a{ font-size:.9rem; padding:.55rem .5rem; }
  .header-call{ font-size:1.1rem; padding:.85rem 1.3rem; }
  .brand__name{ font-size:1.7rem; }
  .brand__tag{ display:none; }
}
@media (min-width:961px) and (max-width:1100px){
  .site-header .wrap{ gap:var(--sp-3); }
  .nav a{ font-size:.84rem; padding:.5rem .38rem; }
  .brand__mark{ width:48px; height:48px; }
  .brand__name{ font-size:1.55rem; }
  .header-call{ font-size:1.02rem; padding:.8rem 1rem; }
  .header-call svg{ display:none; }
}

.nav-toggle{
  display:none; width:46px; height:46px; border:1px solid var(--c-mist-2); background:#fff;
  border-radius:var(--r-sm); cursor:pointer; align-items:center; justify-content:center; margin-left:auto;
}
.nav-toggle span{ display:block; width:20px; height:2px; background:var(--c-ink); border-radius:2px; position:relative; transition:all .25s var(--ease); }
.nav-toggle span::before,.nav-toggle span::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--c-ink); border-radius:2px; transition:all .25s var(--ease); }
.nav-toggle span::before{ top:-6px; } .nav-toggle span::after{ top:6px; }
.nav-toggle[aria-expanded="true"] span{ background:transparent; }
.nav-toggle[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }

/* ------------------------------ 7. HERO ------------------------------ */
.hero{ position:relative; background:#fff; padding-block:clamp(3rem,6.5vw,5.75rem); }
.hero__grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.hero h1{ color:var(--c-ink); margin-bottom:var(--sp-5); }
.hero h1 em{ font-style:normal; color:var(--c-brand-700); }
.hero__sub{ font-size:clamp(1.05rem,1.7vw,1.3rem); color:var(--c-slate); max-width:36em; margin-bottom:var(--sp-6); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center; }

.hero__panel{
  background:#fff; border:1px solid var(--c-mist-2); border-top:4px solid var(--c-brand);
  border-radius:var(--r-xl); padding:clamp(1.5rem,3vw,2.25rem); box-shadow:var(--sh-3);
}
.hero__panel h3{ font-size:1.35rem; margin-bottom:.4rem; }
.hero__panel p{ color:var(--c-slate); font-size:var(--fs-sm); margin-bottom:var(--sp-5); }

.page-hero{ background:#fff; padding-block:clamp(2.75rem,5.5vw,4.5rem); border-bottom:1px solid var(--c-mist-2); }
.page-hero h1{ color:var(--c-ink); max-width:17ch; }
.page-hero p{ color:var(--c-slate); max-width:60ch; font-size:1.1rem; }
.breadcrumbs{ font-size:var(--fs-sm); color:var(--c-muted); margin-bottom:var(--sp-4); }
.breadcrumbs a{ color:var(--c-slate); }
.breadcrumbs a:hover{ color:var(--c-brand-700); }
.breadcrumbs span{ opacity:.5; margin-inline:.45rem; }

/* Trust strip */
.trust-strip{ background:#fff; border-block:1px solid var(--c-mist-2); padding-block:var(--sp-5); }
.trust-strip .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-5); }
.trust-item{ text-align:center; }
.trust-item strong{ display:block; font-family:var(--f-head); font-size:clamp(1.5rem,3vw,2.1rem); color:var(--c-brand-700); letter-spacing:-.03em; }
.trust-item span{ font-size:var(--fs-sm); color:var(--c-slate); }

/* --------------------- 8. SECTIONS & COMPONENTS --------------------- */

.card{
  background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg);
  padding:clamp(1.4rem,2.4vw,1.9rem); height:100%;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); border-color:var(--c-brand-200); }
.card h3{ margin-bottom:var(--sp-2); }
.card p{ color:var(--c-slate); font-size:var(--fs-base); }
.card--accent{ border-top:4px solid var(--c-brand); box-shadow:var(--sh-2); }
.card--flat:hover{ transform:none; }

.icon-badge{
  width:54px; height:54px; border-radius:var(--r-md);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(140deg,var(--c-brand),var(--c-brand-700));
  color:#fff; margin-bottom:var(--sp-4); box-shadow:var(--sh-brand);
}
.icon-badge svg{ width:26px; height:26px; }
.icon-badge--soft{ background:var(--c-brand-050); color:var(--c-brand-600); box-shadow:none; }
.icon-badge--glow{ background:rgba(90,162,255,.12); color:var(--c-glow); box-shadow:none; border:1px solid rgba(90,162,255,.28); }

.step__num{ font-family:var(--f-head); font-size:.8rem; font-weight:700; letter-spacing:.1em; color:var(--c-brand-600); display:block; margin-bottom:.75rem; }

.feature-split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.feature-split--rev .feature-split__media{ order:2; }
.feature-split__media{ border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-3); background:var(--c-graphite); }
.feature-split__media img{ width:100%; display:block; }

.check-list{ list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.check-list li{ display:flex; gap:.75rem; align-items:flex-start; font-size:var(--fs-base); }
.check-list li::before{
  content:""; flex:none; width:22px; height:22px; margin-top:2px; border-radius:50%;
  background:var(--c-brand-050) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23155BD0' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/13px no-repeat;
}

.stat-tile{ background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg); padding:var(--sp-5); }
.stat-tile strong{ display:block; font-family:var(--f-head); font-size:2.4rem; color:var(--c-brand-700); letter-spacing:-.03em; line-height:1; margin-bottom:.4rem; }
.stat-tile span{ font-size:var(--fs-sm); color:var(--c-slate); }

.testimonial{
  background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg);
  padding:clamp(1.5rem,2.5vw,2rem); height:100%; display:flex; flex-direction:column;
}
.testimonial__stars{ display:flex; gap:2px; color:var(--c-brand); margin-bottom:var(--sp-3); }
.testimonial__stars svg{ width:18px; height:18px; }
.testimonial blockquote{ margin:0 0 var(--sp-4); font-size:1.05rem; color:var(--c-charcoal); line-height:1.6; }
.testimonial__who{ display:flex; align-items:center; gap:.75rem; margin-top:auto; }
.testimonial__avatar{
  width:44px; height:44px; border-radius:50%; flex:none;
  background:linear-gradient(140deg,var(--c-brand),var(--c-brand-700)); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:var(--f-head); font-weight:700;
}
.testimonial__name{ font-weight:600; font-size:var(--fs-sm); color:var(--c-ink); }
.testimonial__loc{ font-size:var(--fs-xs); color:var(--c-muted); }

.cta-band{
  background:#fff; color:var(--c-ink); border-radius:var(--r-xl); padding:clamp(2rem,4.5vw,3.25rem);
  border:2px solid var(--c-brand); box-shadow:var(--sh-2); position:relative; overflow:hidden;
}
.cta-band::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:8px; background:var(--c-brand); }
.cta-band h2,.cta-band h3{ color:var(--c-ink); }
.cta-band p{ color:var(--c-slate); max-width:52ch; }
.cta-band .wrap-inner{ position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-6); flex-wrap:wrap; }


.accordion{ border-top:1px solid var(--c-mist-2); }
.accordion__item{ border-bottom:1px solid var(--c-mist-2); }
.accordion__btn{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4);
  background:none; border:0; padding:1.35rem 0; cursor:pointer; text-align:left;
  font-family:var(--f-head); font-weight:600; font-size:1.08rem; color:var(--c-ink);
}
.accordion__btn:hover{ color:var(--c-brand-600); }
.accordion__icon{ flex:none; width:28px; height:28px; border-radius:50%; background:var(--c-brand-050); position:relative; }
.accordion__icon::before,.accordion__icon::after{ content:""; position:absolute; inset:50% 8px auto; height:2px; background:var(--c-brand-600); transform:translateY(-50%); border-radius:2px; transition:transform .25s var(--ease); }
.accordion__icon::after{ transform:translateY(-50%) rotate(90deg); }
.accordion__btn[aria-expanded="true"] .accordion__icon::after{ transform:translateY(-50%) rotate(0deg); }
.accordion__panel{ overflow:hidden; max-height:0; transition:max-height .3s var(--ease); }
.accordion__panel-inner{ padding-bottom:1.4rem; color:var(--c-slate); max-width:70ch; }


.area-list{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.5rem; }
.area-list li span,.area-list li a{
  display:inline-block; padding:.5rem .9rem; border-radius:var(--r-pill);
  background:#fff; border:1px solid var(--c-mist-2); font-size:var(--fs-sm); color:var(--c-slate);
}

.detail-card{
  margin:0; background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg);
  overflow:hidden; height:100%; display:flex; flex-direction:column;
  transition:transform .28s var(--ease), box-shadow .28s var(--ease);
}
.detail-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); }
.detail-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.detail-card figcaption{ padding:1.25rem 1.4rem 1.5rem; }
.detail-card figcaption strong{ display:block; font-family:var(--f-head); font-size:1.1rem; color:var(--c-ink); margin-bottom:.4rem; }
.detail-card figcaption span{ font-size:.95rem; color:var(--c-slate); line-height:1.55; }

.gallery-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:var(--sp-4); }
.gallery-grid figure{ border-radius:var(--r-md); overflow:hidden; background:var(--c-graphite); aspect-ratio:4/3; }
.gallery-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.gallery-grid figure:hover img{ transform:scale(1.06); }

/* --------------------- 9. SERVICE CARDS --------------------- */
.service-card{
  display:flex; flex-direction:column; height:100%; overflow:hidden;
  background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.service-card:hover{ transform:translateY(-5px); box-shadow:var(--sh-3); border-color:var(--c-brand-200); }
.service-card__media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:linear-gradient(150deg,var(--c-graphite),var(--c-charcoal)); }
.service-card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.service-card:hover .service-card__media img{ transform:scale(1.05); }
.service-card__flag{
  position:absolute; top:.9rem; left:.9rem; z-index:2;
  background:rgba(11,18,32,.78); color:#fff; backdrop-filter:blur(8px);
  border:1px solid rgba(90,162,255,.3);
  font-size:var(--fs-xs); font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  padding:.35rem .7rem; border-radius:var(--r-pill);
}
.service-card__body{ padding:clamp(1.25rem,2vw,1.6rem); display:flex; flex-direction:column; flex:1; }
.service-card__body h3{ font-size:1.22rem; margin-bottom:.5rem; }
.service-card__body h3 a{ color:inherit; }
.service-card__body h3 a:hover{ color:var(--c-brand-600); }
.service-card__body p{ color:var(--c-slate); font-size:.98rem; margin-bottom:var(--sp-4); }
.service-card__foot{ margin-top:auto; display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); }

.spec-table{ width:100%; border-collapse:collapse; font-size:var(--fs-base); }
.spec-table th,.spec-table td{ padding:.9rem 1rem; text-align:left; border-bottom:1px solid var(--c-mist-2); }
.spec-table th{ font-family:var(--f-head); font-weight:600; color:var(--c-ink); width:40%; background:var(--c-mist); }
.spec-table tr:last-child th,.spec-table tr:last-child td{ border-bottom:0; }

/* ---------------------- 10. FORMS ---------------------- */
.form-grid{ display:grid; gap:var(--sp-4); grid-template-columns:1fr 1fr; }
.field{ display:flex; flex-direction:column; gap:.4rem; }
.field--full{ grid-column:1 / -1; }
.field label{ font-family:var(--f-head); font-size:var(--fs-sm); font-weight:600; color:inherit; }
.field .req{ color:var(--c-brand-400); }
.field input,.field select,.field textarea{
  width:100%; font-family:var(--f-body); font-size:var(--fs-base);
  padding:.85rem 1rem; border-radius:var(--r-sm);
  border:1.5px solid var(--c-mist-2); background:#fff; color:var(--c-ink);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field textarea{ min-height:110px; resize:vertical; }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--c-brand); box-shadow:0 0 0 4px rgba(29,111,242,.16);
}
.field input::placeholder,.field textarea::placeholder{ color:#AEA594; }
.field select{ appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A9080' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center; background-size:17px; padding-right:2.6rem;
}
.hp-field{ position:absolute!important; left:-9999px!important; opacity:0; height:0; width:0; }

.form-panel--dark .field label{ color:#EDE4D2; }
.form-panel--dark .field input,.form-panel--dark .field select,.form-panel--dark .field textarea{
  background-color:rgba(255,255,255,.07); border-color:rgba(255,255,255,.17); color:#fff;
}
.form-panel--dark .field input::placeholder,.form-panel--dark .field textarea::placeholder{ color:#8E8470; }
.form-panel--dark .field input:focus,.form-panel--dark .field select:focus,.form-panel--dark .field textarea:focus{
  border-color:var(--c-glow); box-shadow:0 0 0 4px rgba(90,162,255,.18); background-color:rgba(255,255,255,.1);
}
.form-panel--dark .field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D8CFC0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .9rem center; background-size:17px;
}
.form-panel--dark .field select option{ color:var(--c-ink); }

.form-note{ font-size:var(--fs-xs); color:var(--c-muted); margin-top:var(--sp-3); }
.form-msg{ margin-top:var(--sp-4); padding:1rem 1.15rem; border-radius:var(--r-sm); font-size:var(--fs-sm); display:none; }
.form-msg.is-visible{ display:block; }
.form-msg.is-ok{ background:rgba(23,178,106,.12); border:1px solid rgba(23,178,106,.35); color:#0E8552; }
.form-msg.is-err{ background:rgba(240,68,56,.1); border:1px solid rgba(240,68,56,.32); color:#C0392B; }
.form-panel--dark .form-msg.is-ok{ color:#5FE3A6; }
.form-panel--dark .form-msg.is-err{ color:#FF8B80; }
.is-loading{ opacity:.65; pointer-events:none; }

.contact-tile{
  display:flex; flex-direction:column; gap:var(--sp-3); align-items:flex-start;
  padding:var(--sp-5); border:1px solid var(--c-mist-2); border-radius:var(--r-lg); background:#fff; height:100%;
}
.contact-tile .icon-badge{ margin-bottom:0; width:46px; height:46px; }
.contact-tile h4{ margin-bottom:.25rem; font-size:1.05rem; }
.contact-tile p,.contact-tile a{ font-size:var(--fs-base); color:var(--c-slate); margin:0; }

/* --------------------------- 11. BOTTOM MENU --------------------------- */
.bottom-nav{ background:#fff; border-top:1px solid var(--c-mist-2); padding-block:clamp(2.5rem,5vw,3.75rem); }
.bottom-nav__head{ margin-bottom:var(--sp-5); }
.bottom-nav__head h2{ font-size:clamp(1.4rem,2.6vw,1.9rem); margin:0; }
.bottom-nav ul{ list-style:none; margin:0; padding:0; }
.bottom-nav .menu{ display:flex; flex-wrap:wrap; gap:.6rem; }
.bottom-nav .menu>li>a{
  display:inline-flex; align-items:center; padding:.8rem 1.25rem; border-radius:var(--r-pill);
  border:1px solid var(--c-mist-2); background:#fff; font-family:var(--f-head); font-weight:600; color:var(--c-ink);
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.bottom-nav .menu>li>a:hover{ border-color:var(--c-brand); color:var(--c-brand-700); background:var(--c-brand-050); }
.bottom-nav .menu>li.menu-item-has-children{ flex-basis:100%; display:flex; flex-wrap:wrap; align-items:center; gap:.6rem; padding-bottom:.9rem; margin-bottom:.3rem; border-bottom:1px solid var(--c-mist-2); }
.bottom-nav .menu>li.menu-item-has-children>a{ background:var(--c-brand); border-color:var(--c-brand); color:#fff; }
.bottom-nav .sub-menu{ display:flex; flex-wrap:wrap; gap:.5rem; }
.bottom-nav .sub-menu a{ display:inline-block; padding:.55rem .95rem; border-radius:var(--r-pill); background:var(--c-mist); border:1px solid var(--c-mist-2); font-size:var(--fs-sm); color:var(--c-slate); }
.bottom-nav .sub-menu a:hover{ color:var(--c-brand-700); border-color:var(--c-brand-200); }

/* ----------------------------- 12. FOOTER ----------------------------- */
.site-footer{ background:#fff; color:var(--c-slate); border-top:1px solid var(--c-mist-2); padding-top:clamp(2.5rem,5vw,4rem); }
.site-footer h4{ color:var(--c-ink); font-size:1rem; letter-spacing:.02em; margin-bottom:var(--sp-4); }
.site-footer a{ color:var(--c-slate); }
.site-footer a:hover{ color:var(--c-brand-700); }
.footer-grid{ display:grid; grid-template-columns:1.5fr 1fr 1.3fr; gap:var(--sp-6); padding-bottom:var(--sp-6); }
.footer-grid--compact{ grid-template-columns:1.5fr 1.3fr; }
.footer-grid--full{ grid-template-columns:1.4fr 1fr 1fr 1.3fr; }
.footer-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; font-size:var(--fs-sm); }
.footer-brand .brand__name{ color:var(--c-ink); }
.footer-brand .brand{ margin-bottom:.2rem; }
.footer-brand .brand__tag{ display:block; }
.footer-brand p{ font-size:var(--fs-sm); max-width:36ch; margin-top:var(--sp-4); }
.footer-contact li{ display:flex; gap:.6rem; align-items:flex-start; }
.footer-contact svg{ width:17px; height:17px; color:var(--c-brand-600); flex:none; margin-top:3px; }
.social{ display:flex; gap:.6rem; margin-top:var(--sp-5); }
.social a{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--c-mist); border:1px solid var(--c-mist-2); transition:all .2s var(--ease); }
.social a:hover{ background:var(--c-brand); border-color:var(--c-brand); color:#fff; transform:translateY(-2px); }
.social svg{ width:17px; height:17px; }
.footer-bottom{
  border-top:1px solid var(--c-mist-2); padding-block:var(--sp-5);
  display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap;
  font-size:var(--fs-xs); color:var(--c-muted);
}
.footer-legal b{ font-weight:400; white-space:nowrap; }
.footer-legal__sep{ margin-inline:.2rem; opacity:.6; }
.footer-bottom ul{ list-style:none; display:flex; gap:var(--sp-5); margin:0; padding:0; }

.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:880; display:none;
  background:rgba(255,255,255,.97); backdrop-filter:blur(12px);
  border-top:1px solid var(--c-mist-2); box-shadow:0 -8px 24px rgba(11,18,32,.08); padding:.7rem 1rem;
}
.sticky-cta .inner{ display:flex; gap:.6rem; }
.sticky-cta .btn{ flex:1; padding:.95rem 1rem; font-size:.98rem; }

/* --------------------- 12. WP CORE --------------------- */
.entry-content{ max-width:var(--wrap-narrow); }
.entry-content h2{ margin-top:var(--sp-7); }
.entry-content h3{ margin-top:var(--sp-6); }
.entry-content ul,.entry-content ol{ margin-bottom:var(--sp-4); display:grid; gap:.5rem; }
.entry-content img{ border-radius:var(--r-md); }
.entry-content blockquote{ margin:var(--sp-6) 0; padding:1.25rem 1.5rem; border-left:4px solid var(--c-brand); background:var(--c-mist); border-radius:0 var(--r-md) var(--r-md) 0; font-size:1.1rem; }
.alignleft{ float:left; margin:.4rem 1.5rem 1rem 0; }
.alignright{ float:right; margin:.4rem 0 1rem 1.5rem; }
.aligncenter{ display:block; margin-inline:auto; }
.sticky,.gallery-caption,.bypostauthor,.wp-caption,.wp-caption-text{ display:block; }
.post-card{ background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg); overflow:hidden; height:100%; display:flex; flex-direction:column; transition:transform .28s var(--ease),box-shadow .28s var(--ease); }
.post-card:hover{ transform:translateY(-4px); box-shadow:var(--sh-2); }
.post-card__media{ aspect-ratio:16/10; background:var(--c-graphite); overflow:hidden; }
.post-card__media img{ width:100%; height:100%; object-fit:cover; }
.post-card__body{ padding:var(--sp-5); display:flex; flex-direction:column; flex:1; }
.post-card__meta{ font-size:var(--fs-xs); color:var(--c-muted); text-transform:uppercase; letter-spacing:.1em; margin-bottom:.5rem; }
.pagination{ display:flex; gap:.4rem; justify-content:center; margin-top:var(--sp-7); flex-wrap:wrap; }
.pagination .page-numbers{ display:flex; align-items:center; justify-content:center; min-width:42px; height:42px; padding:0 .75rem; border-radius:var(--r-sm); border:1px solid var(--c-mist-2); color:var(--c-charcoal); font-weight:600; }
.pagination .page-numbers.current,.pagination .page-numbers:hover{ background:var(--c-brand); border-color:var(--c-brand); color:var(--c-ink); }
.widget{ margin-bottom:var(--sp-6); }
.widget ul{ list-style:none; padding:0; display:grid; gap:.5rem; }

/* --------------------- 13. UTILITIES & MOTION --------------------- */
.t-center{ text-align:center; }
.mb-0{ margin-bottom:0; }
.mt-5{ margin-top:var(--sp-5); }
.mt-6{ margin-top:var(--sp-6); }
.mt-7{ margin-top:var(--sp-7); }
.maxw-60{ max-width:60ch; }

[data-anim]{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
[data-anim].is-in{ opacity:1; transform:none; }
[data-anim][data-delay="1"]{ transition-delay:.08s; }
[data-anim][data-delay="2"]{ transition-delay:.16s; }
[data-anim][data-delay="3"]{ transition-delay:.24s; }
[data-anim][data-delay="4"]{ transition-delay:.32s; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
  [data-anim]{ opacity:1; transform:none; }
  .btn--call::after{ animation:none; }
}

/* ---------------------------- 14. RESPONSIVE ---------------------------- */
@media (max-width:1080px){
  .footer-grid,.footer-grid--compact,.footer-grid--full{ grid-template-columns:1fr 1fr; }
  .g-4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:960px){
  :root{ --header-h:84px; }
  .nav-toggle{ display:flex; }
  .site-header .wrap{ gap:.55rem; }
  .nav-toggle{ order:-1; margin-left:0; flex:none; width:44px; height:44px; }
  .nav + .header-cta,.header-cta{ margin-left:auto; }
  .brand{ gap:.5rem; }
  .brand__mark{ width:42px; height:42px; }
  .brand__text{ gap:0; }
  .brand__name{ font-size:1.5rem; }
  .brand__name span{ font-size:.5em; letter-spacing:.08em; margin-top:.18rem; }
  .header-call{ font-size:1.02rem; padding:.8rem .95rem; gap:.4rem; }
  .header-call svg{ width:18px; height:18px; }
  /*
   * The mobile menu is anchored to the sticky header with position:absolute,
   * NOT position:fixed: the header's backdrop-filter creates a containing
   * block that traps fixed children inside it.
   */
  .nav{
    position:absolute; top:100%; left:0; right:0; margin:0; padding:1.25rem;
    height:calc(100vh - var(--header-h) - var(--ticker-h));
    height:calc(100dvh - var(--header-h) - var(--ticker-h));
    background:#fff; overflow-y:auto; z-index:899;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 24px 40px rgba(11,18,32,.18);
    opacity:0; visibility:hidden; transform:translateY(-10px);
    transition:opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
  }
  body.nav-open .nav{ opacity:1; visibility:visible; transform:none; }
  html:has(body.nav-open){ overflow:hidden; }
  body.nav-open{ overflow:hidden; }
  body.nav-open .site-header{ background:#fff; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .nav ul{ flex-direction:column; align-items:stretch; gap:0; }
  .nav a{ padding:.95rem .5rem; font-size:1.05rem; border-bottom:1px solid var(--c-mist-2); border-radius:0; white-space:normal; }
  .nav .sub-menu{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    border:0; border-left:2px solid var(--c-brand-050); border-radius:0; padding:0 0 0 .85rem; margin-bottom:.25rem;
    display:none;
  }
  .nav li.is-open>.sub-menu{ display:block; }
  .nav .menu-item-has-children>a::after{ margin-left:auto; }
  .hero__grid,.feature-split{ grid-template-columns:1fr; }
  .feature-split--rev .feature-split__media{ order:0; }
  .trust-strip .wrap{ grid-template-columns:repeat(2,1fr); }
  .g-3{ grid-template-columns:repeat(2,1fr); }
  .sticky-cta{ display:block; }
  .site-footer{ padding-bottom:76px; }
}
@media (max-width:640px){
  .g-2,.g-3,.g-4{ grid-template-columns:1fr; }
  .form-grid{ grid-template-columns:1fr; }
  .footer-grid,.footer-grid--compact,.footer-grid--full{ grid-template-columns:1fr; gap:var(--sp-5); }
  .cta-band .wrap-inner{ flex-direction:column; align-items:flex-start; }
  .cta-band .btn{ width:100%; }
  .hero__actions .btn{ width:100%; }
  .brand__tag{ display:none; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

/* Small phones: keep the phone number visible in the header */
@media (max-width:400px){
  .header-call svg{ display:none; }
  .header-call{ padding:.8rem .9rem; }
}
@media (max-width:370px){
  .header-call{ font-size:.94rem; padding:.75rem .78rem; }
}
@media (max-width:345px){
  .brand__name span{ display:none; }
}

/* Content + sidebar layouts (collapse to one column on tablets and phones) */
.split{ display:grid; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.split--main{ grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
.split--wide{ grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
.split--form{ grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); }
@media (max-width:960px){
  .split--main,.split--wide,.split--form{ grid-template-columns:minmax(0,1fr); }
  .split aside .card[style*="sticky"]{ position:static !important; }
}

/* ------------------------ 15. FIXED PHOTO BACKGROUND ------------------------ */
/* A faded photo that stays put while the page scrolls over it. Uses a fixed
   layer rather than background-attachment so it also works on iPhone. */
body.has-site-bg{ background:transparent; }
.site-bg{
  position:fixed; inset:0; z-index:-1; pointer-events:none;
  background-color:#fff; background-repeat:no-repeat; background-size:cover; background-position:45% 40%;
}
.site-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.84) 45%, rgba(255,255,255,.88) 100%);
}
body.has-site-bg .hero,
body.has-site-bg .page-hero,
body.has-site-bg .bottom-nav{ background:transparent; }
body.has-site-bg .trust-strip{ background:rgba(255,255,255,.72); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
body.has-site-bg .section--line,
body.has-site-bg .trust-strip,
body.has-site-bg .page-hero,
body.has-site-bg .bottom-nav{ border-color:rgba(11,18,32,.08); }
body.has-site-bg .accordion__item,
body.has-site-bg .accordion{ border-color:rgba(11,18,32,.12); }
body.has-site-bg .area-list li span{ background:rgba(255,255,255,.9); }
@media (max-width:960px){
  .site-bg{ background-position:42% 40%; }
}

/* ------------------------ 16. LONG FORM SERVICE COPY ------------------------ */
.service-lede{ font-size:clamp(1.45rem,2.6vw,1.9rem); margin:0 0 var(--sp-4); }
.service-lists{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-5); margin:var(--sp-6) 0; }
.service-lists__col{ background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-lg); padding:var(--sp-5); }
.service-lists__col h3{ margin:0 0 var(--sp-4); font-size:1.12rem; }
.steps-list{ list-style:none; counter-reset:step; margin:var(--sp-4) 0 var(--sp-6); padding:0; display:grid; gap:var(--sp-3); }
.steps-list li{
  counter-increment:step; position:relative; padding:var(--sp-4) var(--sp-4) var(--sp-4) 4.2rem;
  background:#fff; border:1px solid var(--c-mist-2); border-radius:var(--r-md);
}
.steps-list li::before{
  content:counter(step); position:absolute; left:1rem; top:1rem; width:2.2rem; height:2.2rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--c-brand); color:#fff;
  font-family:var(--f-head); font-weight:700;
}
.steps-list strong{ display:block; font-family:var(--f-head); color:var(--c-ink); margin-bottom:.2rem; }
.steps-list span{ color:var(--c-slate); font-size:var(--fs-base); }
.pro-tip{
  margin:var(--sp-6) 0; padding:var(--sp-5) var(--sp-5) var(--sp-5) var(--sp-6);
  background:var(--c-brand-050); border-left:5px solid var(--c-brand); border-radius:0 var(--r-lg) var(--r-lg) 0;
}
.pro-tip__label{ display:flex; align-items:center; gap:.5rem; font-family:var(--f-head); font-weight:700; font-size:var(--fs-sm); letter-spacing:.04em; text-transform:uppercase; color:var(--c-brand-700); margin-bottom:.6rem; }
.pro-tip p{ margin:0; color:var(--c-ink); }
.entry-content .accordion{ margin-top:var(--sp-3); }
.service-explainer{ margin-bottom:clamp(2.5rem,5vw,4.5rem); scroll-margin-top:calc(var(--header-h) + var(--ticker-h) + 24px); }
.service-explainer:last-child{ margin-bottom:0; }
.service-explainer__title{ font-size:clamp(1.35rem,2.4vw,1.75rem); margin:0 0 var(--sp-3); }

/* FAQ page */
.faq-jump{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:var(--sp-7); }
.faq-jump a{
  display:inline-block; padding:.55rem 1rem; border-radius:var(--r-pill); background:#fff;
  border:1px solid var(--c-mist-2); font-family:var(--f-head); font-weight:600; font-size:var(--fs-sm); color:var(--c-ink);
}
.faq-jump a:hover{ border-color:var(--c-brand); color:var(--c-brand-700); background:var(--c-brand-050); }
.faq-group{ margin-bottom:var(--sp-7); scroll-margin-top:calc(var(--header-h) + var(--ticker-h) + 24px); }
.faq-group__title{ font-size:clamp(1.3rem,2.4vw,1.6rem); margin:0 0 var(--sp-3); }

@media (max-width:640px){
  .service-lists{ grid-template-columns:1fr; }
  .steps-list li{ padding-left:3.6rem; }
  .steps-list li::before{ left:.8rem; width:2rem; height:2rem; }
}

/* ------------------------- 17. LIVE "OPEN NOW" TICKER ------------------------- */
body.has-ticker{ --ticker-h:42px; }
.ticker{
  display:block; position:relative; overflow:hidden; height:var(--ticker-h);
  background:linear-gradient(90deg,#0B1220 0%,#0F47A8 50%,#0B1220 100%);
  color:#fff; text-decoration:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
}
.ticker:hover{ color:#fff; }
.ticker__track{ display:flex; width:max-content; height:100%; align-items:center; animation:slk-ticker 38s linear infinite; }
.ticker:hover .ticker__track,.ticker:focus-visible .ticker__track{ animation-play-state:paused; }
.ticker__group{ display:flex; align-items:center; flex:none; }
.ticker__item{
  display:inline-flex; align-items:center; gap:.5rem; white-space:nowrap;
  padding:0 2.2rem; font-family:var(--f-head); font-weight:500; font-size:.92rem; letter-spacing:.01em;
  position:relative;
}
.ticker__item::after{ content:""; position:absolute; right:-3px; top:50%; width:6px; height:6px; margin-top:-3px; border-radius:50%; background:rgba(255,255,255,.35); }
.ticker__item b{ font-weight:800; color:#fff; letter-spacing:.02em; }
.ticker__item svg.icon{ width:16px; height:16px; color:#9CC3FF; }
.ticker__live{
  display:inline-flex; align-items:center; gap:.45rem; padding:.22rem .65rem .22rem .5rem; margin-right:.2rem;
  border-radius:var(--r-pill); background:#16A34A; color:#fff; font-weight:800; font-size:.74rem;
  letter-spacing:.12em; text-transform:uppercase; animation:slk-blink 1.6s ease-in-out infinite;
}
.live-dot{ position:relative; width:8px; height:8px; border-radius:50%; background:#fff; flex:none; }
.live-dot::after{ content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid #fff; animation:slk-ping 1.6s ease-out infinite; }
@keyframes slk-ticker{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes slk-blink{ 0%,100%{ box-shadow:0 0 0 0 rgba(34,197,94,.0); filter:brightness(1); } 50%{ box-shadow:0 0 14px 2px rgba(34,197,94,.75); filter:brightness(1.15); } }
@keyframes slk-ping{ 0%{ transform:scale(.6); opacity:.9; } 100%{ transform:scale(1.8); opacity:0; } }
@media (max-width:640px){
  body.has-ticker{ --ticker-h:36px; }
  .ticker__item{ font-size:.84rem; padding:0 1.5rem; }
  .ticker__track{ animation-duration:30s; }
}
@media (prefers-reduced-motion:reduce){
  .ticker__track{ animation:none; }
  .ticker__group[aria-hidden="true"]{ display:none; }
  .ticker__live,.live-dot::after{ animation:none; }
}

/* ---------------------------- 18. ABOUT + FAQ EXTRAS ---------------------------- */
.day-timeline{ list-style:none; margin:0; padding:0; position:relative; }
.day-timeline::before{ content:""; position:absolute; left:4.6rem; top:.4rem; bottom:.4rem; width:2px; background:var(--c-brand-200); }
.day-timeline li{ display:grid; grid-template-columns:4.2rem 1fr; gap:1.6rem; padding:0 0 var(--sp-6); position:relative; }
.day-timeline li::before{ content:""; position:absolute; left:calc(4.6rem - 6px); top:.35rem; width:14px; height:14px; border-radius:50%; background:#fff; border:3px solid var(--c-brand); }
.day-timeline__time{ font-family:var(--f-head); font-weight:800; font-size:.9rem; color:var(--c-brand-700); padding-top:.15rem; white-space:nowrap; }
.day-timeline strong{ display:block; font-family:var(--f-head); font-size:1.1rem; color:var(--c-ink); margin-bottom:.3rem; }
.day-timeline p{ margin:0; color:var(--c-slate); }
.about-quote{
  margin:0; padding:var(--sp-6); background:#fff; border:1px solid var(--c-mist-2); border-left:6px solid var(--c-brand);
  border-radius:0 var(--r-lg) var(--r-lg) 0; box-shadow:var(--sh-2);
}
.about-quote p{ font-family:var(--f-head); font-size:clamp(1.15rem,2.2vw,1.45rem); line-height:1.45; color:var(--c-ink); margin:0 0 var(--sp-3); }
.about-quote cite{ font-style:normal; font-weight:600; color:var(--c-brand-700); font-size:var(--fs-sm); }
.business-card{ display:flex; gap:var(--sp-4); align-items:center; }
.business-card .icon-badge{ margin:0; flex:none; }
.business-card h3{ margin:0 0 .2rem; }
.business-card p{ margin:0; font-size:var(--fs-sm); }
.faq-intro{ margin-bottom:var(--sp-6); }
.faq-intro h2{ font-size:clamp(1.3rem,2.4vw,1.6rem); margin:0 0 var(--sp-4); }
.faq-intro .card h3{ font-size:1.05rem; }
.faq-intro .card p{ font-size:var(--fs-sm); margin:0; }
.faq-intro__more{ margin:var(--sp-5) 0 var(--sp-3); }
@media (max-width:640px){
  .day-timeline::before{ left:.45rem; }
  .day-timeline li{ grid-template-columns:1fr; gap:.3rem; padding-left:2rem; }
  .day-timeline li::before{ left:0; }
  .business-card{ flex-direction:column; align-items:flex-start; }
}

/* Appointment fields */
.schedule-field[hidden]{ display:none !important; }
.field input[type="date"]{ min-height:3.05rem; }

