:root { --brand:#01234e; --brand-dark:#00183a; --accent:#fd5e00; --accent-dark:#dc5200; --soft:#f3f6fb; }
body { font-family:"Segoe UI", Roboto, Arial, sans-serif; color:#1f2937; }
a { color:var(--brand); }
.text-accent { color:var(--accent); }
.bg-soft { background:var(--soft); }
.topbar { background:var(--brand-dark); color:#cbd5e1; font-size:13px; padding:6px 0; }
.topbar a { color:#e2e8f0; text-decoration:none; }
.brand-mark { width:40px; height:40px; border-radius:10px; background:var(--accent); color:#fff; display:grid; place-items:center; font-size:22px; }
.brand-text { font-weight:800; color:var(--brand); font-size:20px; }
.navbar .nav-link { font-weight:500; color:#334155; }
.navbar .nav-link.active, .navbar .nav-link:hover { color:var(--accent); }
.btn-accent { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
.btn-accent:hover, .btn-accent:focus { background:var(--accent-dark); border-color:var(--accent-dark); color:#fff; }
.hero { background:linear-gradient(120deg, rgba(7,42,82,.96), rgba(11,60,117,.88)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpath d='M0 40h80M40 0v80' stroke='%23ffffff' stroke-opacity='.05'/%3E%3C/svg%3E"); padding:64px 0; }
.hero-pill { display:inline-block; background:rgba(255,255,255,.12); color:#fff; padding:6px 14px; border-radius:30px; font-size:14px; }
.hero-list { list-style:none; padding:0; margin:20px 0 0; }
.hero-list li { margin-bottom:8px; } .hero-list i { color:var(--accent); margin-right:6px; }
.hero-card { border-radius:16px; }
.opacity-90 { opacity:.9; }
.eyebrow { color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:1px; font-size:13px; }
.section-title { font-weight:800; color:var(--brand); margin-top:6px; }
.service-card { display:block; padding:28px; border-radius:14px; background:#fff; border:1px solid #e5e7eb; text-decoration:none; color:inherit; transition:.2s; }
.service-card:hover { transform:translateY(-4px); box-shadow:0 12px 30px rgba(11,60,117,.12); border-color:transparent; color:inherit; }
.service-icon { width:56px; height:56px; border-radius:12px; background:rgba(242,107,29,.12); color:var(--accent); display:grid; place-items:center; font-size:26px; margin-bottom:16px; }
.step { position:relative; width:84px; height:84px; margin:0 auto; border-radius:50%; background:#fff; box-shadow:0 6px 20px rgba(0,0,0,.08); display:grid; place-items:center; font-size:32px; color:var(--brand); }
.step-no { position:absolute; top:-4px; right:-4px; width:28px; height:28px; border-radius:50%; background:var(--accent); color:#fff; font-size:14px; font-weight:700; display:grid; place-items:center; }
.feature { display:flex; gap:14px; padding:18px; border-radius:12px; background:var(--soft); height:100%; }
.feature > i { font-size:26px; color:var(--accent); }
.page-head { background:linear-gradient(120deg, var(--brand-dark), var(--brand)); color:#fff; padding:48px 0; }
.page-head h1 { font-weight:800; margin:0; } .page-head p { margin:6px 0 0; opacity:.85; }
.service-row { padding:32px 0; border-bottom:1px solid #eef2f7; scroll-margin-top:90px; }
.service-big-icon { width:160px; height:160px; margin:0 auto; border-radius:50%; background:var(--soft); color:var(--brand); display:grid; place-items:center; font-size:72px; }
.check-list { list-style:none; padding:0; } .check-list li { margin-bottom:8px; } .check-list i { color:var(--accent); margin-right:6px; }
.about-box { padding:24px; border-radius:12px; background:var(--soft); height:100%; } .about-box > i { font-size:30px; color:var(--accent); }
.contact-item { display:flex; gap:14px; margin-bottom:20px; } .contact-item > i { font-size:22px; width:44px; height:44px; border-radius:10px; background:var(--soft); color:var(--accent); display:grid; place-items:center; flex-shrink:0; }
.quote-form .form-control, .quote-form .form-select { padding:.65rem .8rem; }
.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.thanks-icon { font-size:72px; color:#16a34a; }
.cta-band { background:var(--accent); color:#fff; padding:36px 0; }
.site-footer { background:#0b1b33; color:#94a3b8; padding:48px 0 20px; }
.site-footer h5, .site-footer h6 { color:#fff; } .site-footer a { color:#cbd5e1; text-decoration:none; } .site-footer a:hover { color:#fff; }
.site-footer hr { border-color:#1e3a5f; }
.float-btns { position:fixed; right:16px; bottom:16px; display:flex; flex-direction:column; gap:10px; z-index:1050; }
.float-btns a { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:24px; box-shadow:0 6px 18px rgba(0,0,0,.25); text-decoration:none; }
.fb-wa { background:#25d366; } .fb-call { background:var(--brand); }
@media (max-width:575px) { .hero { padding:36px 0; } .display-5 { font-size:2rem; } }

.services-menu { min-width:250px; padding:8px; border-radius:10px; }
.services-menu .dropdown-item { border-radius:6px; padding:8px 12px; font-size:15px; }
.services-menu .dropdown-item i { color:var(--accent); width:22px; display:inline-block; }
.services-menu .dropdown-item:hover, .services-menu .dropdown-item:focus { background:var(--soft); color:var(--brand); }
@media (min-width:992px) { .navbar .dropdown:hover > .services-menu { display:block; margin-top:0; } }

/* ---- Brand logo ---- */
.site-logo { height:52px; width:auto; }
.footer-logo { height:50px; width:auto; }
@media (max-width:575px) { .site-logo { height:40px; } }
.btn-primary { --bs-btn-bg:var(--brand); --bs-btn-border-color:var(--brand); --bs-btn-hover-bg:var(--brand-dark); --bs-btn-hover-border-color:var(--brand-dark); --bs-btn-active-bg:var(--brand-dark); }

/* ---- Photo hero ---- */
.hero-photo { position:relative; overflow:hidden; background:var(--brand-dark); padding:96px 0; }
.hero-bg, .band-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(100deg, rgba(0,24,58,.94) 0%, rgba(0,24,58,.82) 45%, rgba(0,24,58,.45) 100%); }
.hero-lead { opacity:.92; font-size:1.15rem; }
.hero-chips { list-style:none; padding:0; margin:28px 0 0; display:flex; flex-wrap:wrap; gap:8px; }
.hero-chips li { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); color:#fff; padding:5px 12px; border-radius:30px; font-size:13.5px; }
@media (max-width:991px) { .hero-photo { padding:48px 0; } .hero-shade { background:rgba(0,24,58,.85); } }
@media (max-width:575px) { .display-4 { font-size:2.2rem; } }

/* ---- Photos ---- */
.photo-frame { border-radius:18px; overflow:hidden; box-shadow:0 20px 50px rgba(1,35,78,.18); aspect-ratio:4/3; }
.photo-frame img { width:100%; height:100%; object-fit:cover; display:block; }

/* ---- Service cards ---- */
.svc-card { background:#fff; border-radius:16px; overflow:hidden; border:1px solid #e5e7eb; display:flex; flex-direction:column; transition:.2s; }
.svc-card:hover { transform:translateY(-4px); box-shadow:0 16px 36px rgba(1,35,78,.14); }
.svc-img { position:relative; display:block; aspect-ratio:3/2; overflow:hidden; }
.svc-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.svc-card:hover .svc-img img { transform:scale(1.05); }
.svc-icon { position:relative; z-index:2; margin:-46px 0 14px; width:48px; height:48px; border-radius:12px; background:var(--accent); color:#fff; display:grid; place-items:center; font-size:22px; box-shadow:0 6px 16px rgba(253,94,0,.35); }
.svc-body { padding:0 22px 22px; display:flex; flex-direction:column; flex:1; }
.svc-body h3 a { color:var(--brand); text-decoration:none; font-weight:700; }
.svc-body p { font-size:14.5px; flex:1; }
.svc-cta { color:var(--accent); font-weight:600; text-decoration:none; }
.svc-cta:hover { color:var(--accent-dark); text-decoration:underline; }

/* ---- Steps ---- */
.steps-row { display:grid; grid-template-columns:repeat(5, 1fr); gap:24px; text-align:center; position:relative; }
.steps-row::before { content:""; position:absolute; top:42px; left:10%; right:10%; border-top:2px dashed #cbd5e1; z-index:0; }
.step-item { position:relative; z-index:1; }
@media (max-width:991px) { .steps-row { grid-template-columns:repeat(2, 1fr); } .steps-row::before { display:none; } .step-item:last-child { grid-column:1 / -1; max-width:340px; margin:0 auto; } }
@media (max-width:480px) { .steps-row { grid-template-columns:1fr; } }

/* ---- Cities band ---- */
.cities-band { position:relative; overflow:hidden; background:var(--brand-dark); }
.band-shade { position:absolute; inset:0; background:rgba(0,24,58,.84); }
.city-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:20px; }
.city-chips a { color:#fff; text-decoration:none; border:1px solid rgba(255,255,255,.3); padding:6px 14px; border-radius:30px; font-size:14px; background:rgba(255,255,255,.06); }
.city-chips a:hover { background:var(--accent); border-color:var(--accent); }

/* ---- FAQ ---- */
.faq .accordion-item { border:1px solid #e5e7eb; border-radius:12px !important; margin-bottom:10px; overflow:hidden; }
.faq .accordion-button { font-weight:600; color:var(--brand); }
.faq .accordion-button:not(.collapsed) { background:#fff; color:var(--accent); box-shadow:none; }
.faq .accordion-button:focus { box-shadow:none; }

/* =================== v2 home redesign =================== */
body { color:#1e293b; }
.bg-tint { background:#f2f6fc; }
.text-accent { color:var(--accent) !important; }
.eyebrow { display:inline-block; color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:2px; font-size:12.5px; margin-bottom:6px; }
.section-title { font-weight:800; color:var(--brand); letter-spacing:-.3px; }

/* Top bar */
.topbar { background:var(--brand); color:#dbe4f0; font-size:13px; padding:8px 0; }
.topbar a, .topbar span { color:#dbe4f0; text-decoration:none; }
.topbar a:hover { color:#fff; }
.tb-left { display:flex; gap:22px; } .tb-left i { color:var(--accent); margin-right:4px; }
.tb-right { display:flex; } .tb-right a { padding:0 12px; border-left:1px solid rgba(255,255,255,.25); } .tb-right a:first-child { border-left:0; }

/* Nav */
.navbar { padding:10px 0; }
.navbar .nav-link { font-weight:600; color:var(--brand); padding:8px 12px !important; position:relative; }
.navbar .nav-link.active, .navbar .nav-link:hover { color:var(--accent); }
@media (min-width:992px) { .navbar .nav-link.active::after { content:""; position:absolute; left:12px; right:12px; bottom:2px; height:2px; background:var(--accent); border-radius:2px; } }
.nav-cta { border-radius:8px; padding:9px 18px; }

/* Hero */
.hx { position:relative; overflow:hidden; background:#eaf1f8; padding:84px 0 96px; }
.hx-bg { position:absolute; right:0; top:-55%; width:64%; height:155%; object-fit:cover; transform:scaleX(-1); }
.hx { background:linear-gradient(180deg,#f4f8fc,#e9f0f8); }
.hx-fade { position:absolute; inset:0; background:linear-gradient(90deg, #f4f8fc 0%, rgba(244,248,252,.96) 36%, rgba(244,248,252,.55) 46%, rgba(244,248,252,0) 58%); }
.hx-title { font-size:clamp(2.2rem, 4.6vw, 3.6rem); font-weight:800; color:var(--brand); line-height:1.08; letter-spacing:-1px; margin:6px 0 18px; }
.hx-lead { font-size:1.08rem; color:#334155; max-width:520px; }
.hx-points { list-style:none; padding:0; margin:18px 0 26px; }
.hx-points li { font-weight:600; color:var(--brand); margin-bottom:9px; }
.hx-points i { color:var(--accent); margin-right:8px; }
.hx-form { background:#fff; border-radius:16px; padding:26px; box-shadow:0 24px 60px rgba(1,35,78,.22); margin-top:150px; }
.hx-form h2 { color:var(--brand); font-weight:800; }
.hx-form .form-control, .hx-form .form-select { font-size:14px; padding:.6rem .75rem; }
@media (max-width:991px) {
  .hx { padding:40px 0 48px; }
  .hx-bg { width:100%; top:0; height:100%; }
  .hx-fade { background:linear-gradient(180deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 60%, rgba(255,255,255,.7) 100%); }
  .hx-form { margin-top:28px; }
}

/* Stats */
.stats { background:#fff; border-bottom:1px solid #e8eef6; padding:30px 0; }
.stats-row { display:grid; grid-template-columns:repeat(4,1fr); }
.stat { display:flex; align-items:center; gap:14px; justify-content:center; padding:4px 10px; border-left:1px solid #e2e8f0; }
.stat:first-child { border-left:0; }
.stat-ic { width:52px; height:52px; object-fit:contain; }
.stat-val { font-size:1.75rem; font-weight:800; color:var(--brand); line-height:1; }
.stat-lab { font-size:13.5px; color:#475569; margin-top:4px; }
@media (max-width:767px) { .stats-row { grid-template-columns:repeat(2,1fr); row-gap:22px; } .stat { justify-content:flex-start; border-left:0; } }

/* About mini features */
.photo-frame { aspect-ratio:auto; }
.mini-feats { display:flex; flex-wrap:wrap; gap:14px 26px; margin:22px 0 28px; }
.mini-feats > div { display:flex; align-items:center; gap:10px; font-weight:700; color:var(--brand); font-size:14.5px; }
.mf-ic { width:46px; height:46px; padding:8px; border-radius:50%; background:#fff3eb; object-fit:contain; }

/* Service cards */
.sv { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 6px 22px rgba(1,35,78,.08); transition:.25s; display:flex; flex-direction:column; }
.sv:hover { transform:translateY(-5px); box-shadow:0 18px 40px rgba(1,35,78,.16); }
.sv-img { display:block; aspect-ratio:16/9; overflow:hidden; }
.sv-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.sv:hover .sv-img img { transform:scale(1.06); }
.sv-body { display:flex; gap:14px; padding:20px 20px 22px; align-items:flex-start; }
.sv-ic { flex-shrink:0; width:54px; height:54px; border-radius:50%; background:#fff3eb; display:grid; place-items:center; }
.sv-ic img { width:34px; height:34px; object-fit:contain; }
.sv-title { font-size:1.08rem; font-weight:800; margin:4px 0 6px; }
.sv-title a { color:var(--brand); text-decoration:none; }
.sv-body p { font-size:14px; color:#64748b; margin-bottom:8px; }
.sv-more { font-weight:700; font-size:14px; color:var(--brand); text-decoration:none; }
.sv-more:hover { color:var(--accent); }

/* How it works */
.hw { display:grid; grid-template-columns:repeat(5,1fr); gap:20px; text-align:center; position:relative; }
.hw::before { content:""; position:absolute; top:78px; left:10%; right:10%; border-top:2px dashed #cdd8e6; }
.hw-step { position:relative; }
.hw-no { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--accent); color:#fff; font-weight:800; font-size:14px; margin-bottom:10px; box-shadow:0 4px 10px rgba(253,94,0,.35); }
.hw-ic { width:80px; height:80px; margin:0 auto; border-radius:50%; background:#fff; border:1px solid #e2e8f0; box-shadow:0 8px 22px rgba(1,35,78,.1); display:grid; place-items:center; position:relative; z-index:1; }
.hw-ic img { width:44px; height:44px; object-fit:contain; }
.hw-step h3 { font-size:15px; font-weight:800; color:var(--brand); margin:16px 0 6px; }
.hw-step p { font-size:13.5px; color:#64748b; margin:0 auto; max-width:200px; }
@media (max-width:991px) { .hw { grid-template-columns:repeat(2,1fr); row-gap:32px; } .hw::before { display:none; } .hw-step:last-child { grid-column:1/-1; } }

/* Banner */
.banner { position:relative; overflow:hidden; background:var(--brand-dark); color:#fff; padding:90px 0; }
.banner-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.banner-fade { position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,24,58,.92) 0%, rgba(0,24,58,.7) 40%, rgba(0,24,58,.15) 75%); }
.banner-eyebrow { text-transform:uppercase; letter-spacing:3px; font-size:13px; font-weight:700; color:#fbd5bd; }
.banner-title { font-size:clamp(2rem, 4vw, 3.1rem); font-weight:800; line-height:1.1; margin:10px 0 12px; }
.banner-sub { font-size:1.1rem; opacity:.9; }
.banner-cities { max-width:560px; font-size:13.5px; opacity:.8; margin-top:18px; }
.banner-cities a { color:#fff; font-weight:700; }
@media (max-width:767px) { .banner { padding:60px 0; } .banner-fade { background:rgba(0,24,58,.75); } }

/* FAQ */
.faq .accordion-item { border:1px solid #e2e8f0; border-radius:10px !important; margin-bottom:10px; overflow:hidden; background:#fff; }
.faq .accordion-button { font-weight:600; color:var(--brand); font-size:15px; }
.faq .accordion-button::after { background-image:none; content:"+"; font-size:22px; font-weight:400; line-height:20px; text-align:center; transform:none; color:var(--brand); }
.faq .accordion-button:not(.collapsed)::after { content:"\2212"; }
.ask-card { background:#fff; border-radius:16px; padding:30px; box-shadow:0 10px 30px rgba(1,35,78,.1); }
.ask-ic { width:56px; height:56px; border-radius:50%; background:#fff3eb; color:var(--accent); display:grid; place-items:center; font-size:24px; }
.ask-card h3 { color:var(--brand); font-weight:800; }

/* CTA band */
.cta-band { position:relative; overflow:hidden; background:linear-gradient(90deg, var(--accent), #ff7a1f); padding:40px 0; }
.cta-band h3 { font-weight:800; }
.cta-chevrons { position:absolute; right:-40px; top:50%; width:320px; height:320px; transform:translateY(-50%); opacity:.18;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M20 5 L65 50 L20 95 H5 L50 50 L5 5Z M50 5 L95 50 L50 95 H35 L80 50 L35 5Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center/contain; }
.cta-btn { color:var(--brand); border-radius:8px; padding:12px 26px; }

/* Footer */
.site-footer { background:var(--brand-dark); color:#a9b8cc; padding:56px 0 22px; }
.site-footer h6 { color:#fff; font-weight:700; margin-bottom:14px; }
.site-footer li { margin-bottom:6px; }
.footer-social { display:flex; gap:10px; margin-top:12px; }
.footer-social a { width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; }
.footer-social a:hover { background:var(--accent); }
.footer-contact li { display:flex; gap:10px; } .footer-contact i { color:var(--accent); margin-top:2px; }
@media (max-width:767px) { .stat-val { font-size:1.4rem; } .stat-ic { width:40px; height:40px; } .stat { gap:10px; } .mini-feats > div { width:100%; } }
.dd-ic { width:24px; height:24px; object-fit:contain; margin-right:8px; vertical-align:middle; }

/* =================== Locations =================== */
.loc-menu { width:100%; left:0; right:0; padding:18px 0; border-radius:0 0 14px 14px; max-height:75vh; overflow-y:auto; }
.loc-menu-head { display:flex; justify-content:space-between; align-items:center; font-weight:700; color:var(--brand); padding:0 4px 10px; border-bottom:1px solid #eef2f7; margin-bottom:10px; }
.loc-menu-head a { font-size:14px; color:var(--accent); text-decoration:none; }
.loc-menu-grid { list-style:none; padding:0; margin:0; columns:6 150px; column-gap:16px; }
.loc-menu-grid li { break-inside:avoid; }
.loc-menu-grid a { display:block; padding:4px 6px; border-radius:6px; color:#334155; text-decoration:none; font-size:14px; }
.loc-menu-grid a:hover { background:#fff3eb; color:var(--accent); }
@media (min-width:992px) { .navbar .dropdown.position-static:hover > .loc-menu { display:block; margin-top:0; } }
@media (max-width:991px) { .loc-menu { max-height:50vh; } .loc-menu-grid { columns:2; } }

.footer-locs { border-top:1px solid rgba(255,255,255,.1); margin-top:32px; padding-top:24px; }
.footer-locs ul { list-style:none; padding:0; margin:0; columns:4 200px; column-gap:20px; font-size:13.5px; }
.footer-locs li { margin-bottom:5px; break-inside:avoid; }
.footer-locs a { color:#a9b8cc; text-decoration:none; } .footer-locs a:hover { color:#fff; }

.loc-hero { position:relative; overflow:hidden; background:var(--brand-dark); padding:56px 0 64px; }
.loc-crumbs { --bs-breadcrumb-divider-color:#cbd5e1; margin-bottom:14px; font-size:14px; }
.loc-crumbs a { color:#e2e8f0; text-decoration:none; } .loc-crumbs .active { color:#fbd5bd; }
.loc-title { font-size:clamp(2rem, 4vw, 3rem); font-weight:800; line-height:1.1; margin:8px 0 14px; }
.loc-points li { color:#fff; }
.loc-box { background:#fff; border:1px solid #e2e8f0; border-radius:16px; padding:24px; box-shadow:0 10px 30px rgba(1,35,78,.08); }
.loc-box h3 { color:var(--brand); font-weight:800; }
.loc-routes { list-style:none; padding:0; margin:14px 0; }
.loc-routes a { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; background:#f2f6fc; margin-bottom:8px; color:var(--brand); text-decoration:none; font-weight:600; }
.loc-routes a i { color:var(--accent); } .loc-routes a:hover { background:#fff3eb; }
.loc-svc { display:flex; gap:14px; align-items:center; background:#fff; border-radius:12px; padding:16px; text-decoration:none; height:100%; box-shadow:0 4px 16px rgba(1,35,78,.06); transition:.2s; }
.loc-svc:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(1,35,78,.12); }
.loc-svc b { display:block; color:var(--brand); } .loc-svc small { color:#64748b; }
.loc-chips { display:flex; flex-wrap:wrap; gap:8px; }
.loc-chips a { border:1px solid #dbe3ee; border-radius:30px; padding:7px 14px; color:var(--brand); text-decoration:none; font-size:14px; background:#fff; }
.loc-chips a:hover, .loc-chips a.all { background:var(--accent); border-color:var(--accent); color:#fff; }
.loc-search { position:relative; max-width:520px; } .loc-search i { position:absolute; left:16px; top:50%; transform:translateY(-50%); color:#94a3b8; } .loc-search input { padding-left:44px; }
.loc-state-card { background:#fff; border:1px solid #e2e8f0; border-radius:14px; padding:20px; }
.loc-state-card h2 { color:var(--brand); font-weight:800; margin-bottom:10px; }
.loc-state-card li { margin-bottom:5px; } .loc-state-card a { color:#334155; text-decoration:none; font-size:14.5px; } .loc-state-card a:hover { color:var(--accent); }
.banner-cities a { color:#fff; }

.svc-hero-ic { display:inline-grid; place-items:center; width:64px; height:64px; border-radius:16px; background:#fff; margin-bottom:12px; box-shadow:0 8px 20px rgba(0,0,0,.2); }
.svc-hero-ic img { width:42px; height:42px; object-fit:contain; }

/* City page article */
.loc-article { color:#334155; font-size:16px; line-height:1.75; }
.loc-article h2 { font-size:1.45rem; font-weight:800; color:var(--brand); margin:2rem 0 .8rem; letter-spacing:-.2px; }
.loc-article h2:first-child { margin-top:.4rem; font-size:1.8rem; }
.loc-article p { margin-bottom:1rem; }
.loc-article strong { color:var(--brand); }
.loc-article ul { padding-left:1.2rem; }
@media (min-width:992px) { .loc-aside { position:sticky; top:96px; } }

/* Policy pages */
.legal-toc { position:sticky; top:100px; background:#f2f6fc; border-radius:14px; padding:20px; font-size:14px; }
.legal-toc h2 { color:var(--brand); font-weight:800; }
.legal-toc ol { padding-left:1.1rem; margin:0; } .legal-toc li { margin-bottom:6px; }
.legal-toc a { color:#334155; text-decoration:none; display:block; } .legal-toc a:hover { color:var(--accent); }
.legal-toc > a { margin-bottom:6px; font-weight:600; }
.legal h2 { scroll-margin-top:100px; }
.footer-legal { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 18px; margin-bottom:8px; font-size:13.5px; }
.footer-legal a { color:#a9b8cc; text-decoration:none; } .footer-legal a:hover { color:#fff; }

/* ---------- Mobile refinements ---------- */
.footer-locs-toggle { display:none; }
@media (max-width:767.98px) {
  /* 16px inputs stop iPhone from zooming in when a field is tapped */
  input.form-control, select.form-select, textarea.form-control, .hx-form .form-control, .hx-form .form-select { font-size:16px; }
  .footer-locs ul { columns:1; font-size:14px; }
  .footer-locs li { margin-bottom:0; }
  .footer-locs a { display:block; padding:5px 0; }
  .footer-locs.is-collapsed li:nth-child(n+13) { display:none; }
  .footer-locs-toggle { display:inline-block; margin-top:10px; background:none; border:1px solid rgba(255,255,255,.25); color:#fff; border-radius:6px; padding:8px 14px; font-size:14px; }
  .footer-legal { gap:2px 14px; }
  .footer-legal a { display:inline-block; padding:8px 0; }
  .float-btns { right:12px; bottom:12px; gap:8px; }
  .float-btns a { width:46px; height:46px; font-size:21px; }
}
