
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #1a1c24;
  --bg2:       #12141a;
  --bg3:       #22252f;
  --periwinkle:#8b9fd4;
  --pb:        #a8bce8;
  --pd:        #5a6fa0;
  --white:     #ffffff;
  --off-white: #e8eaf0;
  --muted:     #8890a4;
  --card-bg:   #1e2130;
  --card-border: rgba(139,159,212,0.18);
  --glow:      rgba(139,159,212,0.25);
}

html { scroll-behavior: smooth; }
html { overflow-x: hidden; }
body { overflow-x: hidden; font-family:'Inter',sans-serif; background:var(--bg); color:var(--off-white); overflow-x:hidden; }

/* ── HEADER ── */
header {
  background:var(--bg2);
  border-bottom:1px solid var(--card-border);
  padding:0 48px;
  height:72px;
  display:flex; align-items:center; justify-content:space-between;
}
.sticky-top-group {
  position:sticky; top:0; z-index:300;
  width:100%; max-width:100vw; overflow:hidden;
}
.header-logo { display:flex; align-items:center; gap:12px; }
.header-logo img { height:52px; width:52px; object-fit:contain; border-radius:8px; }
.hl-text strong { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; color:var(--white); letter-spacing:.06em; display:block; }
.hl-text span { font-size:.65rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--periwinkle); }
nav { display:flex; align-items:center; gap:6px; }
nav a { color:var(--muted); text-decoration:none; font-size:.88rem; font-weight:500; padding:8px 16px; border-radius:6px; transition:color .2s,background .2s; line-height:1; }
nav a:hover { color:var(--white); background:rgba(255,255,255,.05); }
.nav-cta { background:var(--periwinkle)!important; color:var(--bg2)!important; font-weight:700!important; margin-left:6px; border-radius:50px!important; padding:10px 22px!important; display:inline-flex!important; align-items:center!important; justify-content:center!important; line-height:1!important; }
.nav-cta:hover { opacity:.88; }
/* Contact tab button */
.nav-contact-btn {
  display:flex; align-items:center; gap:7px;
  background:rgba(139,159,212,.1);
  border:1.5px solid var(--card-border);
  color:var(--pb);
  font-size:.84rem; font-weight:600;
  padding:7px 16px; border-radius:8px;
  cursor:pointer; transition:all .2s;
  margin-left:6px;
}
.nav-contact-btn:hover { background:rgba(139,159,212,.18); border-color:var(--periwinkle); color:var(--white); }
.nav-contact-btn svg { width:15px; height:15px; flex-shrink:0; }

/* ── CONTACT DRAWER ── */
.contact-overlay {
  position:fixed; inset:0;
  background:rgba(12,14,20,.7);
  backdrop-filter:blur(4px);
  z-index:400;
  opacity:0; pointer-events:none;
  transition:opacity .25s;
}
.contact-overlay.open { opacity:1; pointer-events:all; }
.contact-drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:100%; max-width:420px;
  background:var(--card-bg);
  border-left:1.5px solid var(--card-border);
  z-index:401;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
  display:flex; flex-direction:column;
  overflow:hidden;
}
.contact-drawer.open { transform:translateX(0); }
.drawer-header {
  background:linear-gradient(135deg,rgba(139,159,212,.12) 0%,transparent 100%);
  border-bottom:1px solid var(--card-border);
  padding:24px 28px;
  display:flex; align-items:center; justify-content:space-between;
  flex-shrink:0;
}
.drawer-header h2 { font-family:'Bebas Neue',sans-serif; font-size:1.8rem; color:var(--white); letter-spacing:.04em; }
.drawer-header h2 span { color:var(--pb); }
.drawer-close { background:transparent; border:none; color:var(--muted); font-size:1.4rem; cursor:pointer; padding:4px 8px; border-radius:6px; transition:color .15s,background .15s; line-height:1; }
.drawer-close:hover { color:var(--white); background:rgba(255,255,255,.08); }
.drawer-body { padding:28px; overflow-y:auto; flex:1; }

/* Drawer tabs */
.drawer-tabs { display:flex; gap:8px; margin-bottom:28px; }
.drawer-tab {
  flex:1; padding:9px 12px; border-radius:8px; border:1.5px solid var(--card-border);
  background:transparent; color:var(--muted); font-size:.85rem; font-weight:600; cursor:pointer;
  transition:all .2s; text-align:center;
}
.drawer-tab.active { background:var(--periwinkle); border-color:var(--periwinkle); color:var(--bg2); }
.drawer-tab:not(.active):hover { border-color:var(--periwinkle); color:var(--pb); background:rgba(139,159,212,.07); }
.drawer-panel { display:none; color:var(--off-white); }
.drawer-panel.active { display:block; }

/* FAQ items */
.faq-item { margin-bottom:12px; border:1px solid var(--card-border); border-radius:10px; overflow:hidden; }
.faq-q {
  width:100%; background:transparent; border:none; color:var(--off-white);
  font-size:.9rem; font-weight:600; text-align:left;
  padding:14px 18px; cursor:pointer; display:flex; justify-content:space-between; align-items:center;
  transition:background .2s;
}
.faq-q:hover { background:rgba(255,255,255,.04); }
.faq-q .faq-arrow { color:var(--periwinkle); font-size:.9rem; transition:transform .2s; flex-shrink:0; margin-left:10px; }
.faq-item.open .faq-q .faq-arrow { transform:rotate(180deg); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-item.open .faq-a { max-height:200px; }
.faq-a p { padding:0 18px 16px; color:var(--off-white); font-size:.85rem; line-height:1.65; }

/* Contact form in drawer */
.contact-form .field { margin-bottom:18px; }
.contact-form .field label { display:block; font-size:.75rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--pb); margin-bottom:7px; }
.contact-form .field input,
.contact-form .field textarea,
.contact-form .field select {
  width:100%; background:var(--bg); border:1.5px solid var(--card-border); border-radius:8px;
  padding:11px 14px; color:var(--white); font-size:.95rem; font-family:'Inter',sans-serif;
  outline:none; transition:border-color .2s,box-shadow .2s; resize:none;
}
.contact-form .field input::placeholder,
.contact-form .field textarea::placeholder { color:#4a5068; }
.contact-form .field input:focus,
.contact-form .field textarea:focus { border-color:var(--periwinkle); box-shadow:0 0 0 3px rgba(139,159,212,.15); }
.contact-form .field select { color:var(--off-white); appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238b9fd4' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.contact-form .field select option { background:var(--card-bg); color:var(--white); }
.contact-info-block { background:var(--bg); border:1px solid var(--card-border); border-radius:10px; padding:18px; margin-bottom:20px; }
.contact-info-block h4 { color:var(--white); font-weight:700; font-size:.9rem; margin-bottom:12px; }
.contact-info-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.contact-info-row:last-child { margin-bottom:0; }
.ci-icon { font-size:1.1rem; width:28px; text-align:center; flex-shrink:0; }
.ci-text { font-size:.85rem; color:var(--off-white); }
.ci-text a { color:var(--pb); text-decoration:none; }
.ci-text a:hover { text-decoration:underline; }
.drawer-success { display:none; text-align:center; padding:20px 0; }
.drawer-success.active { display:block; }
.drawer-success .ds-icon { font-size:2.5rem; margin-bottom:12px; }
.drawer-success h3 { font-family:'Bebas Neue',sans-serif; font-size:1.6rem; color:var(--white); letter-spacing:.04em; margin-bottom:8px; }
.drawer-success p { color:var(--muted); font-size:.85rem; line-height:1.6; }

/* ── DISCOUNT BANNER ── */
.discount-banner {
  background:linear-gradient(90deg,var(--pd) 0%,var(--periwinkle) 50%,var(--pd) 100%);
  color:var(--bg2); text-align:center; padding:11px 20px;
  font-size:.95rem; font-weight:700; letter-spacing:.03em;
}
.discount-banner strong { font-size:1.1rem; }

/* ── HERO ── */
.hero {
  min-height:88vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:110px 40px 130px; position:relative; overflow:hidden;
  background:radial-gradient(ellipse 80% 60% at 50% 30%,rgba(139,159,212,.08) 0%,transparent 70%),var(--bg);
}
.hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle 350px at 15% 50%,rgba(139,159,212,.06) 0%,transparent 100%),
             radial-gradient(circle 280px at 85% 60%,rgba(139,159,212,.05) 0%,transparent 100%);
  pointer-events:none;
}
/* Floating bubbles in hero */
.hero-bubbles { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.hb {
  position:absolute; border-radius:50%;
  background:radial-gradient(circle at 35% 35%, rgba(168,188,232,.14) 0%, rgba(139,159,212,.04) 60%, transparent 100%);
  border:1px solid rgba(139,159,212,.1);
  animation:bubbleFloat linear infinite;
}
.hb:nth-child(1)  { width:80px;height:80px;  left:5%;  top:10%; animation-duration:7s;  animation-delay:0s;   }
.hb:nth-child(2)  { width:45px;height:45px;  left:12%; top:65%; animation-duration:9s;  animation-delay:1s;   }
.hb:nth-child(3)  { width:110px;height:110px;left:2%;  top:45%; animation-duration:11s; animation-delay:2s;   }
.hb:nth-child(4)  { width:60px;height:60px;  left:88%; top:15%; animation-duration:8s;  animation-delay:.5s;  }
.hb:nth-child(5)  { width:35px;height:35px;  left:92%; top:55%; animation-duration:10s; animation-delay:3s;   }
.hb:nth-child(6)  { width:90px;height:90px;  left:80%; top:75%; animation-duration:12s; animation-delay:1.5s; }
.hb:nth-child(7)  { width:25px;height:25px;  left:50%; top:10%; animation-duration:6s;  animation-delay:4s;   }
.hb:nth-child(8)  { width:55px;height:55px;  left:65%; top:80%; animation-duration:9s;  animation-delay:2.5s; }
.hb:nth-child(9)  { width:40px;height:40px;  left:30%; top:85%; animation-duration:8s;  animation-delay:3.5s; }
.hb:nth-child(10) { width:70px;height:70px;  left:75%; top:35%; animation-duration:13s; animation-delay:.8s;  }
.hb:nth-child(11) { width:30px;height:30px;  left:10%; top:30%; animation-duration:7s;  animation-delay:5s;   }
.hb:nth-child(12) { width:50px;height:50px;  left:45%; top:60%; animation-duration:10s; animation-delay:6s;   }
@keyframes bubbleFloat {
  0%   { transform:translateY(0) scale(1);   opacity:.7; }
  50%  { transform:translateY(-18px) scale(1.04); opacity:1; }
  100% { transform:translateY(0) scale(1);   opacity:.7; }
}
.hero-logo { width:200px; height:200px; object-fit:contain; margin-bottom:64px; filter:drop-shadow(0 0 30px rgba(139,159,212,.45)); animation:float 5s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }

/* Orbit words around logo */
.hero-orbit {
  position: relative;
  width: min(380px, 92vw);
  height: min(380px, 92vw);
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.hero-orbit .hero-logo {
  width: 200px;
  height: 200px;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
}
.orbit-word {
  position: absolute;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.25rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #ffffff;
  font-weight: 900;
  white-space: nowrap;
  pointer-events: none;
  text-shadow:
    0 0 6px #a8bce8,
    0 0 12px #8b9fd4,
    0 0 2px #000,
    1px 1px 0 #000,
    -1px -1px 0 #000,
    1px -1px 0 #000,
    -1px 1px 0 #000;
  animation: orbitFloat 4s ease-in-out infinite;
}
/* Positions around the circle */
.orbit-word:nth-child(1) { top: 8px;   left: 50%; transform: translateX(-50%); animation-delay: 0s; }
.orbit-word:nth-child(2) { top: 52px;  right: -10px; animation-delay: .4s; }
.orbit-word:nth-child(3) { bottom: 52px; right: -10px; animation-delay: .8s; }
.orbit-word:nth-child(4) { bottom: 8px; left: 50%; transform: translateX(-50%); animation-delay: 1.2s; }
.orbit-word:nth-child(5) { bottom: 52px; left: -10px; animation-delay: 1.6s; }
.orbit-word:nth-child(6) { top: 52px;  left: -10px; animation-delay: 2s; }
.orbit-word:nth-child(7) { top: 50%; left: -8px; transform: translateY(-50%); animation-delay: 2.4s; }
.orbit-word:nth-child(8) { top: 50%; right: -8px; transform: translateY(-50%); animation-delay: 2.8s; }
.side-word { font-size: 1.1rem !important; letter-spacing: .1em !important; }

@keyframes orbitFloat {
  0%,100% { opacity: 0.85; transform: translateX(var(--tx,0)) translateY(0); }
  50%      { opacity: 1;    transform: translateX(var(--tx,0)) translateY(-5px); }
}
.orbit-word:nth-child(1) { --tx: -50%; }
.orbit-word:nth-child(4) { --tx: -50%; }

.hero-eyebrow { font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--periwinkle); margin-bottom:28px; display:flex; align-items:center; gap:10px; }
.hero-eyebrow::before,.hero-eyebrow::after { content:''; width:32px; height:1px; background:var(--pd); }
.hero h1, .hero .hero-h { font-family:'Bebas Neue',sans-serif; font-size:clamp(3rem,8vw,6rem); color:var(--white); line-height:1.0; letter-spacing:.04em; margin-bottom:8px; }
.hero h1 .accent, .hero .hero-h .accent { color:#5a7fc4; }
.hero-sub { color:var(--muted); font-size:1.05rem; max-width:500px; margin:28px auto 52px; line-height:1.75; }
.hero-sub strong { color:var(--pb); }
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.btn-primary { background:var(--periwinkle); color:var(--bg2); padding:14px 32px; border-radius:8px; font-weight:700; font-size:1rem; text-decoration:none; border:none; cursor:pointer; transition:opacity .2s,transform .15s; box-shadow:0 0 24px var(--glow); display:inline-block; }
.btn-primary:hover { opacity:.88; transform:translateY(-2px); }
.btn-ghost { background:transparent; color:var(--off-white); padding:14px 32px; border-radius:8px; font-weight:600; font-size:1rem; text-decoration:none; border:1.5px solid var(--card-border); cursor:pointer; transition:border-color .2s,background .2s; display:inline-block; }
.btn-ghost:hover { border-color:var(--periwinkle); background:rgba(139,159,212,.07); }

/* ── THREAT STRIP ── */
.threat-strip { background:var(--bg2); border-top:1px solid var(--card-border); border-bottom:1px solid var(--card-border); padding:44px 40px; display:flex; justify-content:center; gap:0; flex-wrap:wrap; }
.threat-item { display:flex; align-items:center; gap:14px; padding:18px 40px; border-right:1px solid var(--card-border); flex-shrink:0; }
.threat-item:last-child { border-right:none; }
.threat-icon { font-size:1.4rem; }
.threat-text strong { color:var(--white); display:block; font-weight:700; font-size:.85rem; }
.threat-text span { color:var(--muted); font-size:.78rem; }

/* ── SERVICES ── */
.services-wrap { background:var(--bg3); }
.services-inner { max-width:min(1140px,100%); margin:0 auto; padding:110px 40px 120px; position:relative; }
.services-bubbles { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.sb { position:absolute; border-radius:50%; background:radial-gradient(circle at 35% 35%,rgba(139,159,212,.08) 0%,rgba(139,159,212,.02) 60%,transparent 100%); border:1px solid rgba(139,159,212,.07); }
.section-eyebrow { font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--periwinkle); margin-bottom:10px; }
.section-title { font-family:'Bebas Neue',sans-serif; font-size:clamp(2.2rem,5vw,3.4rem); color:var(--white); letter-spacing:.04em; margin-bottom:18px; line-height:1.1; }
.section-desc { color:var(--muted); max-width:520px; line-height:1.75; margin-bottom:64px; }
.services-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:28px; margin-bottom:56px; }
.service-card { background:var(--card-bg); border:1.5px solid var(--card-border); border-radius:14px; padding:36px 32px; cursor:pointer; position:relative; transition:border-color .2s,box-shadow .2s,transform .15s; user-select:none; }
.service-card:hover { border-color:var(--pd); transform:translateY(-2px); }
.service-card.selected { border-color:var(--periwinkle); box-shadow:0 0 0 1px var(--periwinkle),0 0 24px var(--glow); }
.service-card.selected .check-ring { background:var(--periwinkle); border-color:var(--periwinkle); }
.service-card.selected .check-ring::after { opacity:1; }
.check-ring { position:absolute; top:18px; right:18px; width:22px; height:22px; border-radius:50%; border:2px solid var(--card-border); background:transparent; transition:all .2s; display:flex; align-items:center; justify-content:center; }
.check-ring::after { content:'✓'; font-size:.7rem; color:var(--bg2); font-weight:800; opacity:0; transition:opacity .15s; }
.service-icon { font-size:2.2rem; margin-bottom:20px; }
.service-card h3 { font-size:1.05rem; font-weight:700; color:var(--white); margin-bottom:8px; padding-right:28px; }
.service-card p { color:var(--muted); font-size:.875rem; line-height:1.55; }
.discount-badge { display:inline-block; margin-top:22px; background:rgba(139,159,212,.12); border:1px solid rgba(139,159,212,.3); color:var(--pb); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:3px 10px; border-radius:20px; }

/* Other service card — has a textarea */
.service-card.other-card { cursor:default; background:var(--card-bg); }
.service-card.other-card:hover { transform:none; }
.other-textarea {
  width:100%; margin-top:14px;
  background:var(--card-bg); border:1.5px solid var(--card-border); border-radius:8px;
  padding:10px 13px; color:var(--white); font-size:.875rem; font-family:'Inter',sans-serif;
  outline:none; resize:none; height:80px;
  transition:border-color .2s,box-shadow .2s;
}
.other-textarea::placeholder { color:#4a5068; }
.other-textarea:focus { border-color:var(--periwinkle); box-shadow:0 0 0 3px rgba(139,159,212,.15); }
.other-add-btn {
  margin-top:10px; width:100%; padding:9px; border-radius:8px;
  background:rgba(139,159,212,.12); border:1.5px solid var(--card-border);
  color:var(--pb); font-size:.82rem; font-weight:600; cursor:pointer;
  transition:all .2s;
}
.other-add-btn:hover { background:rgba(139,159,212,.22); border-color:var(--periwinkle); }
.other-add-btn:disabled { opacity:.4; cursor:not-allowed; }

/* Size selector */
.size-selector {
  display: none;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--card-border);
  background: transparent;
}
.service-card.selected .size-selector { display: block; }
.size-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--pb);
  margin-bottom: 10px;
  display: block;
}
.size-btns { display: flex; gap: 8px; }
.size-btn {
  flex: 1;
  padding: 8px 6px;
  border-radius: 8px;
  border: 1.5px solid var(--card-border);
  background: transparent;
  color: var(--muted);
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .2s;
  text-align: center;
}
.size-btn:hover { border-color: var(--periwinkle); color: var(--pb); }
.size-btn.active { background: var(--periwinkle); border-color: var(--periwinkle); color: var(--bg2); }

/* Quote bar */
.quote-bar {
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:16px 20px;
  background:var(--card-bg); border-top:1px solid var(--card-border);
  width:100%; box-sizing:border-box; flex-wrap:wrap;
}
.quote-bar-left { flex:1 1 240px; }
.quote-bar-left strong { display:block; color:var(--white); font-size:1rem; margin-bottom:4px; }
.quote-bar-left span { color:var(--muted); font-size:.85rem; }
.selected-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; min-height:28px; }
.tag { background:rgba(139,159,212,.15); border:1px solid var(--pd); color:var(--pb); font-size:.72rem; font-weight:600; padding:4px 10px; border-radius:20px; }
.btn-quote { background:var(--periwinkle); color:var(--bg2); padding:13px 28px; border-radius:8px; font-weight:700; font-size:.95rem; border:none; cursor:pointer; transition:opacity .2s,transform .15s,box-shadow .2s; white-space:nowrap; box-shadow:0 0 20px var(--glow); }
.btn-quote:hover { opacity:.88; transform:translateY(-1px); }
.btn-quote:disabled { opacity:.35; cursor:not-allowed; transform:none; box-shadow:none; }

/* ── QUOTE MODAL ── */
.modal-overlay { position:fixed; inset:0; background:rgba(12,14,20,.88); backdrop-filter:blur(6px); z-index:500; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .25s; }
.modal-overlay.active { opacity:1; pointer-events:all; }
.modal { background:var(--card-bg); border:1.5px solid var(--card-border); border-radius:18px; width:100%; max-width:480px; max-height:90vh; overflow-y:auto; overflow-x:hidden; transform:translateY(20px) scale(.97); transition:transform .25s; box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 60px var(--glow); }
.modal-overlay.active .modal { transform:translateY(0) scale(1); }
.modal-header { background:linear-gradient(135deg,rgba(139,159,212,.12) 0%,transparent 100%); border-bottom:1px solid var(--card-border); padding:28px 32px 24px; position:relative; }
.modal-close { position:absolute; top:18px; right:20px; background:transparent; border:none; color:var(--muted); font-size:1.4rem; cursor:pointer; padding:4px 8px; border-radius:6px; line-height:1; transition:color .15s,background .15s; }
.modal-close:hover { color:var(--white); background:rgba(255,255,255,.08); }
.modal-header-logo { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.modal-header-logo img { width:38px; height:38px; object-fit:contain; border-radius:6px; }
.modal-header-logo span { font-family:'Bebas Neue',sans-serif; font-size:1.2rem; letter-spacing:.06em; color:var(--white); }
.modal h2 { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:var(--white); letter-spacing:.04em; line-height:1.05; }
.modal h2 span { color:var(--pb); }
.modal-sub { color:var(--muted); font-size:.85rem; margin-top:6px; }
.modal-services-summary { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.modal-body { padding:28px 32px 32px; }
.form-step { display:none; }
.form-step.active { display:block; }
.field { margin-bottom:20px; }
.field label { display:block; font-size:.8rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--pb); margin-bottom:8px; }
.field input { width:100%; background:var(--bg); border:1.5px solid var(--card-border); border-radius:8px; padding:12px 16px; color:var(--white); font-size:1rem; font-family:'Inter',sans-serif; outline:none; transition:border-color .2s,box-shadow .2s; }
.field input::placeholder { color:#4a5068; }
.field input:focus { border-color:var(--periwinkle); box-shadow:0 0 0 3px rgba(139,159,212,.15); }
.field-hint { font-size:.75rem; color:var(--muted); margin-top:5px; }
.field .field-error { display:none; font-size:.75rem; color:#ff8080; margin-top:5px; }
.field.error input { border-color:#ff6060; }
.field.error .field-error { display:block; }
.form-nav { display:flex; justify-content:space-between; align-items:center; margin-top:8px; }
.step-indicator { font-size:.75rem; color:var(--muted); }
.step-dots { display:flex; gap:6px; margin-top:4px; }
.dot { width:6px; height:6px; border-radius:50%; background:var(--card-border); transition:background .2s,width .2s; }
.dot.active { background:var(--periwinkle); width:18px; border-radius:3px; }
.modal-success { display:none; padding:40px 32px; text-align:center; }
.modal-success.active { display:block; }
.success-icon { font-size:3rem; margin-bottom:16px; }
.modal-success h3 { font-family:'Bebas Neue',sans-serif; font-size:2rem; color:var(--white); letter-spacing:.04em; margin-bottom:10px; }
.modal-success p { color:var(--muted); font-size:.9rem; line-height:1.6; }
.modal-success .highlight { color:var(--pb); font-weight:600; }

/* ── LEARN MORE SECTION ── */
.learn-card {
  background: var(--card-bg);
  border: 1.5px solid var(--card-border);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
}
.learn-card:hover { border-color: var(--pd); box-shadow: 0 4px 20px rgba(0,0,0,.2); }
.learn-card.open { border-color: var(--periwinkle); box-shadow: 0 0 0 1px var(--periwinkle), 0 0 20px var(--glow); }
.learn-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 24px 24px;
}
.learn-icon { font-size: 1.4rem; flex-shrink: 0; }
.learn-title { font-weight: 700; font-size: 1rem; color: var(--white); flex: 1; }
.learn-arrow { color: var(--periwinkle); font-size: .9rem; transition: transform .25s; flex-shrink: 0; }
.learn-card.open .learn-arrow { transform: rotate(180deg); }
.learn-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease, padding .35s ease;
  padding: 0 20px;
  color: var(--muted);
  font-size: .875rem;
  line-height: 1.7;
  border-top: 0px solid var(--card-border);
}
.learn-card.open .learn-body {
  max-height: 500px;
  padding: 22px 24px 28px;
  border-top: 1px solid var(--card-border);
}

/* ── FOOTER ── */
footer { background:var(--bg2); border-top:1px solid var(--card-border); padding:72px 40px 56px; text-align:center; }
.footer-logo { display:flex; align-items:center; justify-content:center; gap:12px; margin-bottom:14px; }
.footer-logo img { height:48px; object-fit:contain; border-radius:8px; }
.footer-logo span { font-family:'Bebas Neue',sans-serif; font-size:1.5rem; letter-spacing:.06em; color:var(--white); }
footer p { color:var(--muted); font-size:.85rem; margin-top:6px; line-height:1.7; }
footer a { color:var(--pb); text-decoration:none; }
footer a:hover { text-decoration:underline; }
.footer-copy { margin-top:24px; padding-top:20px; border-top:1px solid var(--card-border); font-size:.78rem; color:#4a5068; }

/* ── FLOATING QUOTE BUBBLE ── */
.float-quote-btn {
  position: fixed;
  bottom: 28px;
  left: 0;
  right: 0;
  width: fit-content;
  max-width: 90vw;
  margin: 0 auto;
  background: var(--periwinkle);
  color: var(--bg2);
  font-family: 'Inter', sans-serif;
  font-size: .92rem;
  font-weight: 800;
  padding: 14px 32px;
  border-radius: 50px;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 28px rgba(139,159,212,.45), 0 2px 8px rgba(0,0,0,.3);
  z-index: 250;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
  animation: floatBubble 2.5s ease-in-out infinite;
  letter-spacing: .02em;
  display: block;
  text-align: center;
}
.float-quote-btn.visible {
  opacity: 1;
  pointer-events: all;
}
@keyframes floatBubble {
  0%,100% { transform: translateY(0px); box-shadow: 0 8px 28px rgba(139,159,212,.45), 0 2px 8px rgba(0,0,0,.3); }
  50%      { transform: translateY(-6px); box-shadow: 0 14px 36px rgba(139,159,212,.5), 0 4px 12px rgba(0,0,0,.25); }
}


/* ── PAGE TABS ── */




.page-section {
  display:none;
}
.page-section.active {
  display:block;
}

/* ── IN-APP BROWSER FIXES ── */
html, body {
  overflow-x: hidden !important;
  width: 100% !important;
  max-width: 100vw !important;
}
* { box-sizing: border-box; }

/* ── RESPONSIVE ── */
@media (max-width:720px) {
  header { padding:0 16px; height:64px; }
  nav a:not(.nav-cta):not(.nav-contact-btn) { display:none; }
  .nav-contact-btn { padding:7px 12px; font-size:.78rem; }
  .services-inner,.before-after-inner { padding-left:20px; padding-right:20px; }
  .threat-item { padding:10px 16px; }
  .hero { padding:60px 20px 80px; min-height:auto; }
  .modal { max-width:100%; }
  .modal-header,.modal-body,.modal-success { padding-left:22px; padding-right:22px; }
  .quote-bar { flex-direction:column; align-items:flex-start; }
  .contact-drawer { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-logo { animation:none; }
  * { transition:none!important; }
}

/* ===== NAME BANNER (directly under header) ===== */
.name-band{background:linear-gradient(180deg,var(--bg2),var(--bg));border-bottom:1px solid var(--card-border);padding:26px 24px 22px;text-align:center;}
.name-band-h1{margin:0;font:inherit;}
.name-band-name,.name-band-sub{display:block;}
.name-band-name{font-family:'Bebas Neue',sans-serif;font-size:2.6rem;line-height:1;letter-spacing:.07em;color:var(--white);margin:0;}
.name-band-name em{color:var(--periwinkle);font-style:normal;}
.name-band-sub{font-size:.72rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:#d4a843;margin-top:9px;}
.name-band-loc{font-size:.82rem;color:var(--muted);margin-top:8px;}
.name-band-loc a{color:var(--pb);text-decoration:none;font-weight:600;}
@media(max-width:640px){
  .name-band{padding:20px 18px 18px;}
  .name-band-name{font-size:2rem;}
  .name-band-sub{font-size:.62rem;letter-spacing:.2em;margin-top:7px;}
  .name-band-loc{font-size:.76rem;}
}

/* ===== MENU BUTTON (top right) ===== */
.menu-btn{display:flex;align-items:center;gap:9px;background:transparent;border:1.5px solid var(--card-border);color:var(--off-white);
  border-radius:9px;padding:9px 14px;font-family:'Inter',sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;}
.menu-btn:hover{border-color:var(--periwinkle);background:rgba(139,159,212,.1);}
.menu-btn .bars{display:flex;flex-direction:column;gap:4px;}
.menu-btn .bars i{display:block;width:19px;height:2px;background:var(--periwinkle);border-radius:2px;transition:transform .25s,opacity .25s;}
.menu-btn.open .bars i:nth-child(1){transform:translateY(6px) rotate(45deg);}
.menu-btn.open .bars i:nth-child(2){opacity:0;}
.menu-btn.open .bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ===== SLIDE-IN MENU ===== */
.menu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .28s;z-index:900;}
.menu-overlay.open{opacity:1;pointer-events:auto;}
.menu-panel{position:fixed;top:0;right:0;bottom:0;width:min(320px,86vw);background:var(--bg2);border-left:1px solid var(--card-border);
  transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:901;display:flex;flex-direction:column;overflow-y:auto;}
.menu-panel.open{transform:translateX(0);}
.menu-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px 16px;border-bottom:1px solid var(--card-border);}
.menu-head-title{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;letter-spacing:.12em;color:var(--white);}
.menu-close{background:transparent;border:none;color:var(--muted);font-size:1.7rem;line-height:1;cursor:pointer;padding:0 4px;transition:color .2s;}
.menu-close:hover{color:var(--white);}
.menu-links{padding:10px 0;flex:1;}
.menu-link{display:flex;align-items:center;justify-content:space-between;width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.05);
  color:var(--off-white);font-family:'Inter',sans-serif;font-size:1rem;font-weight:500;text-align:left;padding:17px 22px;cursor:pointer;transition:background .2s,color .2s;}
.menu-link:hover{background:rgba(139,159,212,.08);color:var(--white);}
.menu-link.active{color:var(--periwinkle);font-weight:700;background:rgba(139,159,212,.07);}
.menu-link .chev{color:var(--pd);font-size:1.2rem;}
.menu-link.active .chev{color:var(--periwinkle);}
.menu-foot{padding:20px 22px 30px;border-top:1px solid var(--card-border);}
.menu-cta{display:block;background:var(--periwinkle);color:var(--bg2);font-weight:700;text-align:center;padding:14px;border-radius:9px;
  font-size:.95rem;border:none;width:100%;cursor:pointer;font-family:'Inter',sans-serif;margin-bottom:10px;}
.menu-call{display:block;text-align:center;background:#d4a843;color:#12141a;font-weight:700;padding:14px;border-radius:9px;font-size:.95rem;text-decoration:none;}
.menu-foot-info{margin-top:16px;text-align:center;font-size:.78rem;color:var(--muted);line-height:1.8;}
body.menu-open{overflow:hidden;}
@media(max-width:420px){.menu-btn-label{display:none;}.menu-btn{padding:9px 11px;}}

.pg-head{background:#0d0f14;padding:44px 22px 30px;text-align:center;border-bottom:1px solid var(--card-border)}
.pg-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--periwinkle);margin-bottom:8px}
.pg-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(1.9rem,5vw,2.7rem);color:var(--white);letter-spacing:.04em;margin-bottom:8px;line-height:1.05}
.pg-lede{color:var(--muted);max-width:520px;margin:0 auto;font-size:.92rem;line-height:1.7}
.ba-wrap{max-width:720px;margin:34px auto 0;padding:0 18px}
.ba{position:relative;aspect-ratio:3/4;max-height:620px;margin:0 auto;border-radius:14px;overflow:hidden;border:1.5px solid var(--card-border);user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-top{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}
.ba-line{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#d4a843;transform:translateX(-50%);pointer-events:none}
.ba-line span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#d4a843;color:#12141a;font-weight:800;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.ba b{position:absolute;top:12px;font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;background:rgba(0,0,0,.78);color:#fff;padding:6px 13px;border-radius:5px;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.ba-l{left:12px}.ba-r{right:12px}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ggrid{max-width:1000px;margin:34px auto 0;padding:0 18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gcard{margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--card-border);background:var(--card-bg);cursor:zoom-in;transition:transform .2s,border-color .2s}
.gcard:hover{transform:translateY(-3px);border-color:var(--periwinkle)}
.gcard img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.gcard figcaption{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;font-size:.82rem;color:var(--off-white);font-weight:600;gap:8px}
.gcard em{font-style:normal;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:#d4a843;white-space:nowrap}
.pg-cta{text-align:center;padding:40px 18px 70px}
.pg-cta p{color:var(--off-white);font-weight:700;margin-bottom:14px}
.pg-cta button,.rwbtn{background:var(--periwinkle);color:#12141a;border:none;font-weight:800;padding:14px 26px;border-radius:9px;font-size:.92rem;cursor:pointer;margin:4px}
.pg-cta a{display:inline-block;color:#12141a;background:#d4a843;font-weight:800;padding:14px 26px;border-radius:9px;font-size:.92rem;text-decoration:none;margin:4px}
.cgrid{max-width:820px;margin:30px auto 0;padding:0 18px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ccard{display:block;text-decoration:none;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:18px 20px;transition:border-color .2s}
a.ccard:hover{border-color:var(--periwinkle)}
.ck{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#d4a843;font-weight:800;margin-bottom:5px}
.cv{color:var(--white);font-weight:700;font-size:1rem;word-break:break-word}
.carea{max-width:820px;margin:26px auto 0;padding:0 18px;text-align:center}
.carea p{color:var(--muted);font-size:.9rem;line-height:1.9}
.cmap{max-width:820px;margin:22px auto 0;padding:0 18px}
.cmap iframe{width:100%;height:300px;border:0;border-radius:12px;filter:grayscale(.3)}
.soc{display:inline-flex;gap:10px}
.soc a{width:42px;height:42px;border-radius:50%;background:#1e2130;border:1px solid var(--card-border);display:flex;align-items:center;justify-content:center;color:#a8bce8;transition:all .2s}
.soc a:hover{background:var(--periwinkle);color:#12141a}
.soc svg{width:19px;height:19px;fill:currentColor}
.rw{padding:60px 18px 50px;background:var(--bg2);border-top:1px solid var(--card-border)}
.rwrow{max-width:1000px;margin:22px auto 22px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rwrow img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;border:1px solid var(--card-border);cursor:pointer}
.rwsub{text-align:center;color:var(--muted);font-size:.85rem;margin-top:8px}
.rwc{overflow:hidden;margin:24px -18px 26px;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.rwc::-webkit-scrollbar{display:none}
.rwc.drag{cursor:grabbing;user-select:none}
.rwt{display:flex;width:max-content;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden}
.rws{flex:0 0 auto;width:260px;margin:0 14px 0 0;position:relative;cursor:zoom-in;border-radius:12px;overflow:hidden;border:1px solid var(--card-border);background:var(--card-bg)}
.rws img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;pointer-events:none;-webkit-user-drag:none}
.rws figcaption{position:absolute;left:10px;bottom:10px;right:10px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;pointer-events:none}
.rws figcaption span{background:rgba(0,0,0,.78);color:#fff;font-size:.74rem;font-weight:700;padding:5px 10px;border-radius:5px;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.rws figcaption em{font-style:normal;background:rgba(0,0,0,.78);color:#fff;border:1.5px solid #d4a843;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:5px;text-shadow:0 1px 2px rgba(0,0,0,.6)}
@media(max-width:700px){.rws{width:200px;margin-right:10px}}
.hc-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;font-family:'Inter',sans-serif;font-size:1rem;font-weight:700;letter-spacing:.01em;padding:15px 22px;border-radius:8px;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.hc-call{background:#7a99e0;color:#0f1117;border:2px solid #7a99e0;margin-bottom:12px}
.hc-call:hover{background:#8ea9e8;border-color:#8ea9e8}
.hc-est{background:transparent;color:#d4a843;border:2px solid #d4a843;margin-bottom:28px}
.hc-est:hover{background:#d4a843;color:#0f1117}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.96);z-index:1000;display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:78vh;border-radius:10px;touch-action:none;user-select:none;-webkit-user-drag:none;will-change:transform}
.lb{touch-action:none}
.lbn,.lbp{transform:translateY(-50%)}
.lbct{position:absolute;top:28px;left:0;right:0;text-align:center;color:rgba(255,255,255,.75);font-size:.8rem;font-weight:700;letter-spacing:.08em;pointer-events:none}
.lbh{display:block;font-size:.72rem;color:rgba(255,255,255,.55);font-weight:500;margin-top:6px}
@media(hover:hover){.lbh{display:none}}
.lb button{position:absolute;background:rgba(255,255,255,.1);color:#fff;border:none;font-size:2rem;width:48px;height:48px;border-radius:50%;cursor:pointer}
.lbx{top:18px;right:18px}.lbp{left:14px;top:50%}.lbn{right:14px;top:50%}
.lbc{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#fff;font-size:.9rem;font-weight:600}
@media(max-width:700px){.ggrid{grid-template-columns:repeat(2,1fr);gap:10px}.cgrid{grid-template-columns:1fr}.rwrow{grid-template-columns:repeat(3,1fr);gap:7px}.gcard figcaption{flex-direction:column;align-items:flex-start;gap:3px;font-size:.75rem}}

/* ===== multi-page additions ===== */
/* links that used to be buttons */
a.menu-link{text-decoration:none;box-sizing:border-box}
.menu-link.menu-sub{padding:12px 22px 12px 40px;font-size:.92rem;color:var(--muted)}
.menu-link.menu-sub.active{color:var(--periwinkle)}
a.menu-cta{display:block;text-align:center;text-decoration:none;box-sizing:border-box}
a.rwbtn{display:inline-block;text-decoration:none}
.header-logo a{display:flex}
.name-band-h1{margin:0;font:inherit}
/* hero: slogan stays big, keyword line is the real heading */
.hero .hero-kw{font-family:'Inter',sans-serif;font-size:.95rem;font-weight:700;letter-spacing:.06em;color:var(--pb);margin:14px 0 0;line-height:1.4}
.hero p.hero-h{margin:0 0 8px}
/* page header for new pages */
.ph{background:#0d0f14;padding:40px 22px 30px;text-align:center;border-bottom:1px solid var(--card-border)}
.ph-h1{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.9rem,5vw,2.7rem);color:var(--white);letter-spacing:.04em;line-height:1.05;margin:0 0 10px}
.ph-btns{display:flex;gap:10px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.ph-btn{display:inline-flex;align-items:center;gap:8px;background:#1e2130;color:#a8bce8;text-decoration:none;padding:10px 18px;border-radius:8px;font-size:.85rem;font-weight:700;border:1.5px solid var(--card-border)}
.ph-btn-gold{background:transparent;color:#d4a843;border-color:#d4a843}
/* service page body */
.sp{max-width:780px;margin:0 auto;padding:30px 20px 10px}
.sp h2{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:1.9rem;color:var(--white);letter-spacing:.04em;line-height:1.1;margin:34px 0 10px}
.sp p,.sp li{color:var(--off-white);font-size:.98rem;line-height:1.75}
.sp p{margin:0 0 12px}
.sp ul{margin:0 0 12px;padding-left:20px}
.sp li{margin:4px 0}
.sp a{color:var(--periwinkle);font-weight:600}
.sp-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6px 0 4px}
.sp-fig{margin:0;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--card-border)}
.sp-fig img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.sp-fig figcaption{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.78);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:5px}
.sp-faq details{border:1px solid var(--card-border);background:var(--card-bg);border-radius:10px;margin:8px 0;padding:0 16px}
.sp-faq summary{cursor:pointer;color:var(--white);font-weight:700;padding:14px 0;font-size:.95rem}
.sp-faq details p{margin:0 0 14px;color:var(--muted)}
.sp-towns{columns:2;padding-left:20px}
.sp-cta{max-width:520px;margin:34px auto 50px;padding:26px 20px;text-align:center;border:1px solid var(--card-border);border-radius:14px;background:var(--card-bg)}
.sp-cta-h{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;color:var(--white);letter-spacing:.04em;margin:0 0 6px}
.sp-cta-p{color:var(--muted);font-size:.9rem;line-height:1.6;margin:0 0 18px}
.sp-cta .hc-est{margin-bottom:0}
a.hc-est{text-decoration:none}
/* service cards (home + services page) */
.svc-home{max-width:1000px;margin:0 auto;padding:54px 18px 30px}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.svc-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:18px;transition:border-color .2s}
.svc-card:hover{border-color:var(--periwinkle)}
.svc-name{color:var(--white);font-weight:800;font-size:1.02rem}
.svc-desc{color:var(--muted);font-size:.86rem;line-height:1.55}
.svc-more{color:var(--periwinkle);font-size:.8rem;font-weight:700;margin-top:auto;padding-top:6px}
.svc-note{color:var(--muted);text-align:center;font-size:.9rem;margin-top:20px;line-height:1.6}
.svc-note a{color:var(--periwinkle);font-weight:700}
.com-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.com-item{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:16px}
.com-item h3{color:var(--white);font-size:1rem;margin:0 0 6px}
.com-item p{color:var(--muted);font-size:.88rem;line-height:1.6;margin:0}
/* about photo */
.about-photo{margin:6px auto 18px;max-width:420px;border-radius:14px;overflow:hidden;border:1px solid var(--card-border)}
.about-photo img{display:block;width:100%;height:auto}
/* contact area heading */
.carea h2.pg-eyebrow{font-size:.7rem;margin:0 0 8px}
.carea a{color:var(--periwinkle);font-weight:600}
/* footer nav */
.foot-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;max-width:620px;margin:14px auto 0;font-size:.82rem}
.foot-nav a{text-decoration:none}
/* bottom call bar (plain) */
#sticky-cta-bar{position:fixed;bottom:0;left:0;right:0;z-index:260;display:flex}
#sticky-cta-bar a{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 10px;font-family:'Inter',sans-serif;font-size:.9rem;font-weight:700;text-decoration:none}
#sticky-cta-bar .cta-call{flex:1;background:#1e2130;color:#a8bce8;border-top:1px solid var(--card-border);border-right:1px solid var(--card-border)}
#sticky-cta-bar .cta-est{flex:2;background:#7a99e0;color:#0f1117}
body{padding-bottom:52px}
/* phones: allow zoom but stop iPhone auto-zooming into form boxes */
@media(max-width:700px){input,select,textarea{font-size:16px!important}.svc-grid{grid-template-columns:1fr 1fr}.com-grid{grid-template-columns:1fr}.sp-photos{gap:8px}}
@media(max-width:420px){.svc-grid{gap:8px}.svc-card{padding:13px}.svc-name{font-size:.92rem}.svc-desc{font-size:.78rem}}
.rws img,.gcard img{height:auto}

/* About Us: smaller photo, bigger words */
.about-photo{max-width:250px;margin:4px auto 16px}
.about-lede{color:var(--off-white);max-width:560px;margin:0 auto;font-size:1.12rem;line-height:1.75;font-weight:500}
.about-book{display:inline-flex;align-items:center;background:#7a99e0;color:#0f1117;text-decoration:none;padding:10px 26px;border-radius:8px;font-size:.9rem;font-weight:800}
/* header About Us button */
.nav-cta.nav-about{background:transparent!important;color:var(--off-white)!important;border:1.5px solid var(--card-border);padding:9px 16px!important}
@media(max-width:400px){.nav-cta{padding:9px 13px!important;font-size:.8rem}.nav-cta.nav-about{padding:8px 11px!important}}

.about-story{max-width:640px;margin:0 auto;padding:46px 22px 40px;text-align:center}
.about-h2{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.9rem,5vw,2.5rem);color:var(--white);letter-spacing:.04em;margin:0 0 16px;line-height:1.05}
.about-story p{color:var(--off-white);font-size:1.08rem;line-height:1.8;margin:0 0 16px}
.sp-cap{color:var(--muted);font-size:.85rem;text-align:center;margin-top:8px}

/* ===== service area bar with town search ===== */
.area-bar{background:var(--bg);border-bottom:1px solid rgba(139,159,212,.15);padding:8px 16px 9px;text-align:center;font-family:'Inter',sans-serif}
.area-txt{margin:0 0 7px;font-size:.78rem;font-weight:600;color:#e8eaf0;letter-spacing:.02em;line-height:1.4}
.area-txt b{color:var(--periwinkle);font-weight:700}
.area-search{position:relative;max-width:420px;margin:0 auto}
.area-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--periwinkle);pointer-events:none}
#areaQ{width:100%;box-sizing:border-box;height:36px;padding:0 12px 0 34px;border-radius:9px;border:1.5px solid var(--card-border);background:#1a1d27;color:#fff;font-family:'Inter',sans-serif;font-size:.85rem;outline:none;-webkit-appearance:none;appearance:none}
#areaQ::placeholder{color:#8890a4}
#areaQ:focus{border-color:var(--periwinkle);box-shadow:0 0 0 3px rgba(139,159,212,.15)}
.area-res{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:400;background:#1a1d27;border:1px solid var(--card-border);border-radius:10px;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.5);text-align:left}
.area-res[hidden]{display:none}
.area-opt{display:flex;align-items:center;gap:8px;padding:11px 13px;color:#e8eaf0;text-decoration:none;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.05)}
.area-opt:last-child{border-bottom:none}
.area-opt:hover,.area-opt:focus{background:rgba(139,159,212,.1)}
.area-ok{color:#6fbf73;font-weight:800}
.area-go{margin-left:auto;color:var(--periwinkle);font-weight:700;font-size:.78rem;white-space:nowrap}
.area-none{padding:12px 13px;color:var(--muted);font-size:.84rem;line-height:1.5}
.area-none a{color:var(--periwinkle);font-weight:700}
/* keep the logo bar pinned: "clip" stops side-scrolling without breaking sticky */
@supports (overflow-x:clip){html,body{overflow-x:clip!important}}

/* town pages */
.town-yes{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;background:rgba(111,191,115,.1);border:1px solid rgba(111,191,115,.35);border-radius:12px;padding:14px 16px;margin:4px 0 6px}
.town-yes span{color:#cfe9d0;font-weight:800}
.town-yes a{color:#0f1117;background:#7a99e0;text-decoration:none;font-weight:800;font-size:.86rem;padding:9px 14px;border-radius:8px}
.town-chips{display:flex;flex-wrap:wrap;gap:8px}
.town-chip{display:inline-block;background:var(--card-bg);border:1px solid var(--card-border);color:#e8eaf0!important;text-decoration:none;font-weight:600!important;font-size:.88rem;padding:8px 13px;border-radius:999px}
.town-chip:hover{border-color:var(--periwinkle)}
.sp ol{margin:0 0 12px;padding-left:20px}
/* "& surrounding areas" link + map page */
.area-more{color:var(--periwinkle);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.map-wrap{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--card-border);background:#1a1d27;aspect-ratio:4/5;max-height:70vh;width:100%;scroll-margin-top:80px}
@media(min-width:700px){.map-wrap{aspect-ratio:16/10}}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-now{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 8px;padding:12px 14px;border-radius:10px;background:rgba(111,191,115,.1);border:1px solid rgba(111,191,115,.35)}
.map-now span{color:#cfe9d0;font-weight:800;font-size:.92rem}
.map-now a{color:#0f1117!important;background:#7a99e0;text-decoration:none;font-weight:800!important;font-size:.84rem;padding:8px 12px;border-radius:8px}
.map-reset{background:transparent;border:1.5px solid var(--card-border);color:var(--off-white);font-weight:700;font-size:.85rem;padding:9px 14px;border-radius:8px;cursor:pointer;margin:2px 0 6px}
.map-county{color:var(--white);font-size:1rem;margin:20px 0 8px}
button.town-chip{cursor:pointer;font-family:inherit}
.map-btn.on{background:#7a99e0;border-color:#7a99e0;color:#0f1117!important}

/* hero: name big and bold, slogan smaller than the name */
.hero-name{font-family:'Bebas Neue',sans-serif;font-size:clamp(3.2rem,11vw,5.25rem);line-height:.95;letter-spacing:.03em;color:#fff;
  text-shadow:0 0 1px #fff,0 0 22px rgba(139,159,212,.55),0 2px 0 rgba(0,0,0,.35);-webkit-text-stroke:1.2px #fff;margin:0 0 26px;text-align:center}
.hero .hero-h{font-size:clamp(1.9rem,6.2vw,3.4rem)!important;line-height:1.05}

/* name band + free estimates strip are links */
.name-band-link{color:inherit;text-decoration:none;display:inline-block}
.name-band-link:hover{opacity:.9}
.free-est-link{text-decoration:none;color:inherit;display:inline-block}
.free-est-link:hover span{text-decoration:underline}
