/* ==========================================================================
   Emergency Locksmith NY - Design System
   Award-tier, premium, urgency-driven locksmith website
   Palette: Near-black base + red primary + electric blue secondary + chrome metallic
   Typography: Inter (body) + Playfair Display (editorial headings)
   ========================================================================== */

/* ---------- Reset & Base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:hidden;-webkit-text-size-adjust:100%;overflow-x:clip}
@supports(overflow:clip){html{overflow-x:clip}}
body{overflow-x:hidden;font-family:'Inter',system-ui,-apple-system,sans-serif;
  color:var(--text-primary);background:var(--bg-primary);
  line-height:1.6;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font:inherit}

/* ---------- CSS Custom Properties ---------- */
:root{
  /* Dark base palette (near-black navy from logo) */
  --navy-950:#04080f;
  --navy-900:#0a0f1a;
  --navy-800:#0f1a2e;
  --navy-700:#142640;
  --navy-600:#1a3358;
  --navy-500:#244a78;
  --navy-400:#3d6bb5;
  --navy-300:#6b93d4;
  --navy-200:#a3bde6;
  --navy-100:#d1ddf3;
  --navy-50:#edf2fa;

  /* Red primary accent (from logo flame streaks) */
  --crimson-900:#7f1d1d;
  --crimson-800:#991b1b;
  --crimson-700:#b91c1c;
  --crimson-600:#E4342F;
  --crimson-500:#FF2A25;
  --crimson-400:#f87171;
  --crimson-300:#fca5a5;

  /* Electric blue secondary accent (from logo) */
  --blue-700:#1a4fc4;
  --blue-600:#2A6BF2;
  --blue-500:#3B82F6;
  --blue-400:#60A5FA;
  --blue-300:#93C5FD;
  --blue-200:#BFDBFE;
  --blue-100:#DBEAFE;

  /* Chrome / silver metallic (from logo wordmark) */
  --chrome-600:#8a8a92;
  --chrome-500:#b8b8c0;
  --chrome-400:#D0D0D4;
  --chrome-300:#e0e0e4;
  --chrome-200:#f0f0f3;
  --chrome-100:#f5f5f7;
  --chrome-gradient:linear-gradient(180deg,#f5f5f7,#b8b8c0 50%,#d0d0d4);

  /* Semantic colors */
  --bg-primary:#04080f;
  --bg-secondary:#0a0f1a;
  --bg-card:rgba(10,15,26,0.65);
  --bg-card-hover:rgba(15,26,46,0.85);
  --bg-glass:rgba(10,15,26,0.75);
  --text-primary:#edf2fa;
  --text-secondary:#a3bde6;
  --text-muted:#6b93d4;
  --text-accent:var(--blue-400);
  --border-subtle:rgba(107,147,212,0.12);
  --border-hover:rgba(107,147,212,0.25);

  /* CTA colors */
  --cta-primary:var(--crimson-600);
  --cta-primary-hover:var(--crimson-500);
  --cta-secondary:var(--blue-600);
  --cta-secondary-hover:var(--blue-500);
  --cta-text:#fff;

  /* Typography scale (fluid) */
  --fs-hero:clamp(2.5rem,5vw + 1rem,4.5rem);
  --fs-h1:clamp(2rem,3.5vw + 0.5rem,3.25rem);
  --fs-h2:clamp(1.625rem,2.5vw + 0.5rem,2.5rem);
  --fs-h3:clamp(1.25rem,1.5vw + 0.5rem,1.5rem);
  --fs-h4:clamp(1.05rem,1vw + 0.4rem,1.2rem);
  --fs-body:1rem;
  --fs-small:0.875rem;
  --fs-xs:0.75rem;

  /* Font weights */
  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;
  --fw-bold:700;
  --fw-extrabold:800;

  /* Spacing scale */
  --sp-xs:0.25rem;
  --sp-sm:0.5rem;
  --sp-md:1rem;
  --sp-lg:1.5rem;
  --sp-xl:2rem;
  --sp-2xl:3rem;
  --sp-3xl:4rem;
  --sp-4xl:6rem;
  --sp-section:clamp(4rem,8vw,7rem);

  /* Shadows */
  --shadow-sm:0 1px 3px rgba(0,0,0,0.3);
  --shadow-md:0 4px 12px rgba(0,0,0,0.4);
  --shadow-lg:0 8px 32px rgba(0,0,0,0.5);
  --shadow-xl:0 16px 48px rgba(0,0,0,0.6);
  --shadow-glow-crimson:0 0 40px rgba(228,52,47,0.3);
  --shadow-glow-blue:0 0 40px rgba(42,107,242,0.2);

  /* Radii */
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:16px;
  --radius-xl:24px;
  --radius-full:9999px;

  /* Transitions */
  --transition-fast:150ms ease;
  --transition-base:250ms ease;
  --transition-slow:400ms cubic-bezier(0.4,0,0.2,1);

  /* Layout */
  --max-width:1200px;
  --nav-height:118px;
  --mobile-cta-height:72px;
}

/* ---------- Typography ---------- */
h1,h2,h3,h4,h5,h6{
  font-family:'Playfair Display','Georgia',serif;
  font-weight:var(--fw-bold);
  line-height:1.15;
  color:var(--text-primary);
}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
h4{font-size:var(--fs-h4)}
p{margin-bottom:var(--sp-md)}

.section-label{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-xs);
  font-weight:var(--fw-bold);
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--blue-400);
  display:flex;align-items:center;gap:0.5rem;
  margin-bottom:var(--sp-md);
}
.section-label::before{
  content:'';display:block;width:32px;height:2px;
  background:linear-gradient(90deg,var(--blue-400),transparent);
}

/* ---------- Layout ---------- */
.container{
  width:100%;max-width:var(--max-width);
  margin:0 auto;padding:0 var(--sp-lg);
}
.section{padding:var(--sp-section) 0}
.section--alt{background:var(--bg-secondary)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  font-family:'Inter',sans-serif;font-weight:var(--fw-semibold);
  font-size:var(--fs-body);line-height:1;
  padding:0.875rem 2rem;border-radius:var(--radius-full);
  transition:all var(--transition-base);
  white-space:nowrap;position:relative;overflow:hidden;
}
.btn--primary{
  background:var(--cta-primary);color:var(--cta-text);
  box-shadow:var(--shadow-glow-crimson);
}
.btn--primary:hover,.btn--primary:focus-visible{
  background:var(--cta-primary-hover);
  box-shadow:0 0 60px rgba(220,38,38,0.45);
  transform:translateY(-2px);
}
.btn--secondary{
  background:transparent;color:var(--text-primary);
  border:1.5px solid var(--border-hover);
}
.btn--secondary:hover,.btn--secondary:focus-visible{
  background:rgba(255,255,255,0.06);
  border-color:var(--blue-400);color:var(--blue-400);
  transform:translateY(-2px);
}
.btn--blue{
  background:linear-gradient(135deg,var(--blue-600),var(--blue-500));
  color:#fff;font-weight:var(--fw-bold);
}
.btn--blue:hover,.btn--blue:focus-visible{
  background:linear-gradient(135deg,var(--blue-500),var(--blue-400));
  box-shadow:var(--shadow-glow-blue);
  transform:translateY(-2px);
}
.btn--large{
  padding:1.125rem 2.5rem;font-size:1.0625rem;
}
.btn--call{
  background:var(--cta-primary);color:#fff;
  font-weight:var(--fw-bold);
  box-shadow:var(--shadow-glow-crimson);
  animation:pulse-glow 2s ease-in-out infinite;
}
.btn--call:hover{
  background:var(--cta-primary-hover);
  box-shadow:0 0 60px rgba(220,38,38,0.5);
  transform:translateY(-2px);
}
@keyframes pulse-glow{
  0%,100%{box-shadow:0 0 20px rgba(228,52,47,0.3)}
  50%{box-shadow:0 0 40px rgba(228,52,47,0.5)}
}
.btn svg{width:20px;height:20px;flex-shrink:0}

/* ---------- Navigation ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--nav-height);
  background:rgba(4,8,15,0.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border-subtle);
  transition:background var(--transition-base),box-shadow var(--transition-base);
}
.nav.scrolled{
  background:rgba(4,8,15,0.95);
  box-shadow:0 4px 24px rgba(0,0,0,0.5);
}
.nav__inner{
  display:flex;align-items:center;justify-content:space-between;
  height:100%;max-width:var(--max-width);
  margin:0 auto;padding:0 var(--sp-lg);
}
.nav__logo{
  display:flex;align-items:center;
}
.nav__logo-img{
  height:100px;width:auto;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.4));
  transition:filter var(--transition-base),transform var(--transition-base);
}
.nav__logo:hover .nav__logo-img{
  filter:drop-shadow(0 3px 10px rgba(0,0,0,0.5));
  transform:scale(1.02);
}
/* Footer logo: larger -- owner wants prominent logos */
.footer__brand .nav__logo-img{
  height:100px;width:auto;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,0.35));
}
.nav__links{display:flex;align-items:center;gap:var(--sp-xl)}
.nav__links a{
  font-family:'Inter',sans-serif;font-size:var(--fs-small);
  font-weight:var(--fw-medium);color:var(--text-secondary);
  transition:color var(--transition-fast);position:relative;
}
.nav__links a:hover,.nav__links a.active{color:var(--text-primary)}
.nav__links a::after{
  content:'';position:absolute;bottom:-4px;left:0;
  width:0;height:2px;background:var(--blue-400);
  transition:width var(--transition-base);
}
.nav__links a:hover::after,.nav__links a.active::after{width:100%}
.nav__cta{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-small);font-weight:var(--fw-semibold);
  padding:0.625rem 1.25rem;border-radius:var(--radius-full);
  background:var(--cta-primary);color:#fff;
  display:flex;align-items:center;gap:0.375rem;
  transition:all var(--transition-base);
}
.nav__cta:hover{background:var(--cta-primary-hover);transform:translateY(-1px)}
.nav__cta svg{width:16px;height:16px}

/* Hamburger */
.nav__hamburger{
  display:none;width:40px;height:40px;
  align-items:center;justify-content:center;
  flex-direction:column;gap:5px;z-index:110;
}
.nav__hamburger span{
  display:block;width:22px;height:2px;
  background:var(--text-primary);
  transition:all var(--transition-base);
}
.nav__hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.nav__hamburger.open span:nth-child(2){opacity:0}
.nav__hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* Mobile nav overlay */
.nav__mobile{
  display:none;position:fixed;inset:0;z-index:105;
  background:rgba(4,8,15,0.97);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-xl);
  opacity:0;pointer-events:none;
  transition:opacity var(--transition-slow);
}
.nav__mobile.open{opacity:1;pointer-events:auto}
.nav__mobile a{
  font-family:'Playfair Display',serif;
  font-size:1.5rem;color:var(--text-primary);
  transition:color var(--transition-fast);
}
.nav__mobile a:hover{color:var(--blue-400)}

@media(max-width:1024px){
  .nav__links{display:none}
  .nav__hamburger{display:flex}
  .nav__mobile{display:flex}
}


/* Hide header phone on mobile - sticky bottom CTA handles it */
@media(max-width:768px){
  :root{--nav-height:90px}
  .nav__cta{display:none}
  .nav__logo-img{height:68px;max-width:78vw}
  .footer__brand .nav__logo-img{height:68px;max-width:80vw}
}
@media(max-width:390px){
  :root{--nav-height:86px}
  .nav__logo-img{height:60px;max-width:78vw}
  .footer__brand .nav__logo-img{height:60px;max-width:78vw}
}
/* ---------- Glass Cards ---------- */
.glass-card{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--sp-xl);
  transition:all var(--transition-base);
  position:relative;overflow:hidden;
}
.glass-card::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.08),transparent);
}
.glass-card:hover{
  background:var(--bg-card-hover);
  border-color:var(--border-hover);
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
}

/* Card with inline icon (HOUSE RULE: icon beside heading, never centered above) */
.card-header{display:flex;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md)}
.card-icon{
  width:44px;height:44px;min-width:44px;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg,rgba(220,38,38,0.15),rgba(220,38,38,0.05));
  border:1px solid rgba(220,38,38,0.2);
}
.card-icon svg{width:22px;height:22px;color:var(--crimson-500)}
.card-icon--blue{
  background:linear-gradient(135deg,rgba(42,107,242,0.15),rgba(42,107,242,0.05));
  border:1px solid rgba(42,107,242,0.2);
}
.card-icon--blue svg{color:var(--blue-400)}

/* ---------- Trust Badges ---------- */
.trust-badges{
  display:flex;flex-wrap:wrap;gap:var(--sp-md);
  margin-top:var(--sp-xl);
}
.trust-badge{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.5rem 1rem;
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-full);
  font-size:var(--fs-small);
  color:var(--text-secondary);
}
.trust-badge svg{width:16px;height:16px;color:var(--blue-400)}

/* ---------- Grid Layouts ---------- */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-xl)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-xl)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-xl)}
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .grid-4{grid-template-columns:1fr}
}

/* ---------- Hero Section ---------- */
.hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;
  padding-top:var(--nav-height);
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:0;z-index:0;
}
.hero__bg img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(0.25) saturate(0.7);
}
.hero__overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(228,52,47,0.12) 0%,transparent 50%),
    linear-gradient(225deg,rgba(42,107,242,0.10) 0%,transparent 50%),
    linear-gradient(180deg,
      rgba(4,8,15,0.75) 0%,
      rgba(4,8,15,0.45) 40%,
      rgba(4,8,15,0.88) 100%
    );
}
/* Ambient glow orbs -- red + blue energy echoing logo */
.hero__glow{
  position:absolute;border-radius:50%;
  filter:blur(90px);pointer-events:none;
}
.hero__glow--crimson{
  width:550px;height:550px;
  background:var(--crimson-600);
  top:-120px;right:-120px;opacity:0.18;
}
.hero__glow--blue{
  width:450px;height:450px;
  background:var(--blue-600);
  bottom:-80px;left:-120px;opacity:0.12;
}

/* Diagonal speed-streak motif (CSS only, red+blue angled bars) */
.hero__streaks{
  position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;
}
.hero__streak{
  position:absolute;width:2px;height:180px;
  border-radius:2px;opacity:0;
  animation:hero-streak 4s ease-in-out infinite;
}
.hero__streak--red{
  background:linear-gradient(180deg,transparent,rgba(228,52,47,0.7),transparent);
  top:10%;right:18%;transform:rotate(-25deg);
  animation-delay:0s;
}
.hero__streak--blue{
  background:linear-gradient(180deg,transparent,rgba(42,107,242,0.5),transparent);
  top:25%;right:12%;transform:rotate(-25deg);
  animation-delay:1.5s;
}
.hero__streak--red2{
  background:linear-gradient(180deg,transparent,rgba(228,52,47,0.4),transparent);
  bottom:20%;right:28%;transform:rotate(-25deg);
  animation-delay:2.5s;height:120px;
}
@keyframes hero-streak{
  0%{opacity:0;transform:rotate(-25deg) translateY(40px)}
  15%{opacity:1}
  50%{opacity:0.6}
  85%{opacity:1}
  100%{opacity:0;transform:rotate(-25deg) translateY(-40px)}
}

/* Chrome gradient shimmer accent line */
.hero__chrome-line{
  position:absolute;bottom:0;left:0;right:0;height:1px;z-index:3;
  background:linear-gradient(90deg,transparent,#f5f5f7 20%,#b8b8c0 50%,#d0d0d4 80%,transparent);
  opacity:0.4;
}

.hero__content{
  position:relative;z-index:2;
  max-width:740px;
  /* GENEROUS PADDING: breathing room for hero text */
  padding:clamp(3rem,6vw,5rem) clamp(1rem,3vw,2rem);
}
.hero__label{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-xs);
  font-weight:var(--fw-bold);
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--blue-400);
  display:inline-flex;align-items:center;gap:0.5rem;
  margin-bottom:var(--sp-lg);
  padding:0.375rem 0.875rem;
  background:rgba(42,107,242,0.08);
  border:1px solid rgba(42,107,242,0.2);
  border-radius:var(--radius-full);
}
.hero__label svg{width:14px;height:14px;color:var(--crimson-500)}
.hero__title{
  font-size:var(--fs-hero);
  font-weight:var(--fw-extrabold);
  margin-bottom:clamp(1rem,2.5vw,1.5rem);
  line-height:1.08;
  letter-spacing:-0.01em;
}
.hero__title .highlight{
  background:linear-gradient(135deg,var(--crimson-500),var(--crimson-600));
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero__title .chrome{
  background:var(--chrome-gradient);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero__sub{
  font-size:clamp(1.0625rem,1.5vw,1.25rem);
  color:var(--text-secondary);
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
  max-width:580px;line-height:1.75;
}
.hero__actions{
  display:flex;flex-wrap:wrap;gap:var(--sp-md);
  margin-bottom:clamp(1.5rem,3vw,2.5rem);
}
/* Blue outline CTA for hero secondary button */
.btn--outline-blue{
  background:transparent;color:var(--blue-400);
  border:1.5px solid var(--blue-500);
}
.btn--outline-blue:hover,.btn--outline-blue:focus-visible{
  background:rgba(42,107,242,0.1);
  border-color:var(--blue-400);color:var(--blue-300);
  box-shadow:var(--shadow-glow-blue);
  transform:translateY(-2px);
}
/* Hero trust strip: compact inline badges */
.hero__trust{
  display:flex;flex-wrap:wrap;gap:0.75rem 1.25rem;
  padding-top:0.5rem;
}
.hero__trust-item{
  display:flex;align-items:center;gap:0.4rem;
  font-family:'Inter',sans-serif;
  font-size:var(--fs-small);
  color:var(--chrome-400);
  white-space:nowrap;
}
.hero__trust-item svg{width:15px;height:15px;color:var(--blue-400);flex-shrink:0}
.hero__trust-item--star svg{color:var(--crimson-500)}

/* ---------- Stats Bar ---------- */
.stats-bar{
  background:var(--bg-secondary);
  border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle);
  padding:var(--sp-2xl) 0;
}
.stats-bar__inner{
  display:flex;justify-content:center;gap:var(--sp-3xl);
  flex-wrap:wrap;
}
.stat{text-align:center}
.stat__number{
  font-family:'Playfair Display',serif;
  font-size:clamp(1.75rem,3vw,2.5rem);
  font-weight:var(--fw-bold);
  color:var(--blue-400);
}
.stat__label{
  font-size:var(--fs-small);
  color:var(--text-muted);
  margin-top:var(--sp-xs);
}

/* ---------- How It Works ---------- */
.process{
  display:flex;align-items:flex-start;gap:var(--sp-2xl);
  counter-reset:step;
}
.process__step{
  flex:1;text-align:center;position:relative;
  counter-increment:step;
}
.process__step::before{
  content:counter(step);
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;margin:0 auto var(--sp-md);
  font-family:'Inter',sans-serif;font-size:1.25rem;font-weight:var(--fw-bold);
  color:#fff;
  background:linear-gradient(135deg,var(--blue-600),var(--blue-500));
  border-radius:50%;
}
.process__step:not(:last-child)::after{
  content:'';position:absolute;
  top:28px;left:calc(50% + 36px);
  width:calc(100% - 72px);height:2px;
  background:linear-gradient(90deg,var(--blue-500),var(--border-subtle));
}
.process__step h3{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-h4);margin-bottom:var(--sp-sm);
}
.process__step p{
  font-size:var(--fs-small);color:var(--text-secondary);
}
@media(max-width:768px){
  .process{flex-direction:column;gap:var(--sp-xl)}
  .process__step:not(:last-child)::after{display:none}
}

/* ---------- Testimonials ---------- */
.testimonial{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--sp-xl);
  position:relative;
}
.testimonial__stars{
  display:flex;gap:2px;margin-bottom:var(--sp-md);
}
.testimonial__stars svg{width:18px;height:18px;color:var(--crimson-500)}
.testimonial__text{
  font-size:var(--fs-body);
  color:var(--text-secondary);
  line-height:1.7;
  margin-bottom:var(--sp-md);
  font-style:italic;
}
.testimonial__author{
  font-weight:var(--fw-semibold);
  font-size:var(--fs-small);
  color:var(--text-primary);
}
.testimonial__location{
  font-size:var(--fs-xs);
  color:var(--text-muted);
}

/* ---------- FAQ ---------- */
.faq-item{
  border-bottom:1px solid var(--border-subtle);
  padding:var(--sp-lg) 0;
}
.faq-item__q{
  display:flex;align-items:center;justify-content:space-between;
  cursor:pointer;gap:var(--sp-md);
  font-family:'Inter',sans-serif;
  font-size:var(--fs-body);
  font-weight:var(--fw-semibold);
  color:var(--text-primary);
  transition:color var(--transition-fast);
}
.faq-item__q:hover{color:var(--blue-400)}
.faq-item__q svg{
  width:20px;height:20px;min-width:20px;
  color:var(--text-muted);
  transition:transform var(--transition-base);
}
.faq-item.open .faq-item__q svg{transform:rotate(180deg)}
.faq-item__a{
  max-height:0;overflow:hidden;
  transition:max-height var(--transition-slow),padding var(--transition-slow);
}
.faq-item.open .faq-item__a{max-height:500px;padding-top:var(--sp-md)}
.faq-item__a p{
  font-size:var(--fs-small);color:var(--text-secondary);line-height:1.7;
}

/* ---------- Footer ---------- */
.footer{
  background:var(--navy-950);
  border-top:1px solid var(--border-subtle);
  padding:var(--sp-3xl) 0 var(--sp-xl);
}
.footer__grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--sp-2xl);
  margin-bottom:var(--sp-2xl);
}
.footer__brand{max-width:300px}
.footer__brand p{font-size:var(--fs-small);color:var(--text-muted);margin-top:var(--sp-md)}
.footer__col h4{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-small);font-weight:var(--fw-bold);
  text-transform:uppercase;letter-spacing:0.1em;
  color:var(--text-primary);margin-bottom:var(--sp-md);
}
.footer__col a{
  display:block;font-size:var(--fs-small);
  color:var(--text-muted);
  padding:0.25rem 0;
  transition:color var(--transition-fast);
}
.footer__col a:hover{color:var(--blue-400)}
.footer__bottom{
  border-top:1px solid var(--border-subtle);
  padding-top:var(--sp-lg);
  display:flex;align-items:center;justify-content:space-between;
  font-size:var(--fs-xs);color:var(--text-muted);
}
@media(max-width:768px){
  .footer__grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-lg)}
  .footer__brand{grid-column:1/-1}
  .footer__bottom{flex-direction:column;gap:var(--sp-sm);text-align:center}
}

/* ---------- Breadcrumbs ---------- */
.breadcrumbs{
  padding:var(--sp-md) 0;
  font-size:var(--fs-xs);
  color:var(--text-muted);
}
.breadcrumbs a{color:var(--text-muted);transition:color var(--transition-fast)}
.breadcrumbs a:hover{color:var(--blue-400)}
.breadcrumbs span{color:var(--text-secondary)}

/* ---------- CTA Banner ---------- */
.cta-banner{
  background:var(--navy-900);
  border:1px solid rgba(228,52,47,0.18);
  border-radius:var(--radius-xl);
  padding:clamp(2rem,4vw,3rem) clamp(1.5rem,3vw,2.5rem);
  text-align:center;
  position:relative;overflow:hidden;
  max-width:800px;margin-left:auto;margin-right:auto;
}
/* Layered background: dark base + subtle red/blue diagonal energy */
.cta-banner::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(228,52,47,0.10) 0%,transparent 50%),
    linear-gradient(225deg,rgba(42,107,242,0.07) 0%,transparent 50%),
    radial-gradient(ellipse at 30% 50%,rgba(228,52,47,0.08),transparent 60%);
  pointer-events:none;
}
/* Chrome hairline accent at top */
.cta-banner::after{
  content:'';position:absolute;top:0;left:10%;right:10%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(208,208,212,0.25),rgba(245,245,247,0.35),rgba(208,208,212,0.25),transparent);
  pointer-events:none;
}
/* Red glow orb (subtle) */
.cta-banner__glow{
  position:absolute;width:300px;height:300px;border-radius:50%;
  background:var(--crimson-600);filter:blur(100px);
  opacity:0.08;pointer-events:none;
  top:-80px;right:-60px;
}
.cta-banner__glow--blue{
  background:var(--blue-600);
  top:auto;bottom:-80px;left:-60px;right:auto;
  width:250px;height:250px;opacity:0.06;
}
.cta-banner h2{
  margin-bottom:0.75rem;position:relative;
  font-size:clamp(1.5rem,2.5vw,2rem);
}
.cta-banner p{
  color:var(--text-secondary);margin-bottom:1.5rem;
  max-width:460px;margin-left:auto;margin-right:auto;
  position:relative;font-size:var(--fs-body);line-height:1.65;
}
.cta-banner__actions{
  display:flex;justify-content:center;flex-wrap:wrap;gap:0.75rem;
  position:relative;margin-bottom:1rem;
}
.cta-banner__trust{
  display:flex;justify-content:center;flex-wrap:wrap;gap:0.625rem 1rem;
  position:relative;
  font-size:var(--fs-xs);color:var(--chrome-400);
}
.cta-banner__trust span{display:flex;align-items:center;gap:0.3rem;white-space:nowrap}
.cta-banner__trust svg{width:13px;height:13px;color:var(--blue-400);flex-shrink:0}
.cta-banner .btn{position:relative}

/* ---------- Service/Location Page Header ---------- */
.page-header{
  padding:calc(var(--nav-height) + var(--sp-3xl)) 0 var(--sp-2xl);
  position:relative;overflow:hidden;
}
.page-header__bg{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--navy-900),var(--navy-950));
}
.page-header__glow{
  position:absolute;width:400px;height:400px;
  border-radius:50%;filter:blur(100px);
  opacity:0.08;pointer-events:none;
}
.page-header__glow--1{
  background:var(--crimson-600);top:-150px;right:-50px;
}
.page-header__glow--2{
  background:var(--blue-600);bottom:-200px;left:-100px;
}
.page-header .container{position:relative;z-index:2}

/* ---------- Sticky Mobile CTA Bar ---------- */
.mobile-cta{
  display:none;position:fixed;bottom:0;left:0;right:0;
  z-index:200;
  background:rgba(4,8,15,0.95);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--border-subtle);
  padding:0.625rem var(--sp-md);
  padding-bottom:calc(0.625rem + env(safe-area-inset-bottom,0px));
}
.mobile-cta__inner{
  display:flex;gap:0.5rem;
  max-width:var(--max-width);margin:0 auto;
}
.mobile-cta__btn{
  flex:1;display:flex;align-items:center;justify-content:center;
  gap:0.375rem;
  font-family:'Inter',sans-serif;font-size:var(--fs-small);
  font-weight:var(--fw-bold);
  padding:0.75rem 0.5rem;
  border-radius:var(--radius-md);
  min-height:48px;
  transition:all var(--transition-fast);
}
.mobile-cta__btn--call{
  background:var(--cta-primary);color:#fff;flex:1.5;
  box-shadow:var(--shadow-glow-crimson);
}
.mobile-cta__btn--call:hover{background:var(--cta-primary-hover)}
.mobile-cta__btn--text{
  background:rgba(255,255,255,0.08);color:var(--text-primary);
  border:1px solid var(--border-subtle);
}
.mobile-cta__btn--book{
  background:linear-gradient(135deg,var(--blue-600),var(--blue-500));
  color:#fff;
}
.mobile-cta__btn svg{width:18px;height:18px}
@media(max-width:768px){
  .mobile-cta{display:block}
  body{padding-bottom:calc(var(--mobile-cta-height) + env(safe-area-inset-bottom,0px))}
}

/* ---------- Scroll Reveal Animations ---------- */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease,transform 0.6s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ---------- Service Page Content ---------- */
.service-content{
  display:grid;grid-template-columns:2fr 1fr;gap:var(--sp-3xl);
  align-items:start;
}
.service-content__main h2{margin-bottom:var(--sp-md)}
.service-content__main p{color:var(--text-secondary);line-height:1.8}
.service-content__main ul{margin:var(--sp-md) 0 var(--sp-xl)}
.service-content__main li{
  display:flex;align-items:flex-start;gap:var(--sp-sm);
  padding:var(--sp-sm) 0;color:var(--text-secondary);
  font-size:var(--fs-body);
}
.service-content__main li svg{
  width:18px;height:18px;min-width:18px;margin-top:3px;
  color:var(--blue-400);
}
.service-sidebar{position:sticky;top:calc(var(--nav-height) + var(--sp-xl))}
.sidebar-card{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--sp-xl);
  margin-bottom:var(--sp-lg);
}
.sidebar-card h3{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-h4);margin-bottom:var(--sp-md);
}
.sidebar-card a{
  display:block;padding:var(--sp-sm) 0;
  font-size:var(--fs-small);color:var(--text-muted);
  transition:color var(--transition-fast);
}
.sidebar-card a:hover{color:var(--blue-400)}
@media(max-width:768px){
  .service-content{grid-template-columns:1fr}
  .service-sidebar{position:static}
}

/* ---------- Borough/Location Grid ---------- */
.borough-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-md);
}
.borough-card{
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:var(--sp-lg);text-align:center;
  transition:all var(--transition-base);
}
.borough-card:hover{
  border-color:var(--blue-400);
  transform:translateY(-4px);
  box-shadow:var(--shadow-md);
}
.borough-card h3{
  font-family:'Inter',sans-serif;
  font-size:var(--fs-body);margin-bottom:var(--sp-xs);
}
.borough-card p{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:var(--sp-sm)}
@media(max-width:768px){
  .borough-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .borough-grid{grid-template-columns:1fr}
}

/* ---------- Noise Texture Overlay ---------- */
.noise{
  position:fixed;inset:0;z-index:9999;pointer-events:none;
  opacity:0.025;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
}

/* ---------- prefers-reduced-motion ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
  .reveal{opacity:1;transform:none}
  .btn--call{animation:none}
  .hero__streak{display:none}
}

/* ---------- Focus visible ---------- */
:focus-visible{
  outline:2px solid var(--blue-400);
  outline-offset:2px;
}

/* ---------- Contact Form ---------- */
.form-group{margin-bottom:var(--sp-md)}
.form-group label{
  display:block;font-size:var(--fs-small);
  font-weight:var(--fw-medium);
  color:var(--text-secondary);
  margin-bottom:var(--sp-xs);
}
.form-group input,.form-group select,.form-group textarea{
  width:100%;padding:0.75rem 1rem;
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  color:var(--text-primary);
  font-family:'Inter',sans-serif;
  font-size:var(--fs-body);
  transition:border-color var(--transition-fast);
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--blue-400);outline:none;
}
.form-group textarea{resize:vertical;min-height:120px}

/* ---------- Related Services ---------- */
.related-services{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-lg);
}
@media(max-width:768px){
  .related-services{grid-template-columns:1fr}
}

/* ---------- Page Header with Hero Image ---------- */
.page-header--hero{
  min-height:340px;display:flex;align-items:flex-end;
}
.page-header--hero .page-header__bg{
  background:none;
}
.page-header--hero .page-header__img{
  position:absolute;inset:0;z-index:0;
}
.page-header--hero .page-header__img img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(0.35) saturate(0.85);
}
.page-header--hero .page-header__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,
    rgba(4,8,15,0.6) 0%,
    rgba(4,8,15,0.45) 40%,
    rgba(4,8,15,0.9) 100%
  );
}
@media(max-width:768px){
  .page-header--hero{min-height:260px}
}

/* ---------- Supporting Section Image ---------- */
.section-image{
  border-radius:var(--radius-lg);overflow:hidden;
  margin:var(--sp-xl) 0;
  max-height:400px;
}
.section-image img{
  width:100%;height:100%;object-fit:cover;
  display:block;max-height:400px;
}
@media(max-width:768px){
  .section-image{max-height:240px}
  .section-image img{max-height:240px}
}

/* ---------- Mobile CTA 2-button layout ---------- */
.mobile-cta__inner--two{
  display:flex;gap:0.5rem;
}
.mobile-cta__inner--two .mobile-cta__btn{
  flex:1;
}
