
:root {
  --color-black: #141414;
  --color-charcoal: #1c1c1c;
  --color-orange: #ff7a00;
  --color-orange-dark: #d76900;
  --color-white: #ffffff;
  --color-offwhite: #f5f6f8;
  --color-gray-100: #eef0f3;
  --color-gray-300: #cfd3d9;
  --color-gray-600: #5b6270;
  --color-text: #22252b;
  --font-display: 'Oswald', 'Arial Narrow', sans-serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --radius: 10px;
  --container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: var(--font-body); color: var(--color-text); background: var(--color-white); line-height:1.55; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,h4,h5 { font-family: var(--font-display); font-weight:700; line-height:1.08; margin:0; letter-spacing:0.2px; }
.container { max-width: var(--container); margin:0 auto; padding:0 24px; }
.eyebrow { display:inline-block; width:34px; height:4px; background: var(--color-orange); margin-bottom:14px; border-radius:2px; }
.btn { display:inline-flex; align-items:center; gap:8px; font-family: var(--font-body); font-weight:700; font-size:15px; padding:14px 26px; border-radius:6px; border:2px solid transparent; cursor:pointer; transition: transform .15s ease, background .15s ease, color .15s ease; white-space:nowrap; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--color-orange); color:var(--color-white); }
.btn-primary:hover { background: var(--color-orange-dark); }
.btn-outline-dark { background:transparent; border-color: var(--color-black); color:var(--color-black); }
.btn-outline-dark:hover { background: var(--color-black); color:var(--color-white); }
.btn-outline-light { background:transparent; border-color: var(--color-white); color:var(--color-white); }
.btn-outline-light:hover { background: var(--color-white); color:var(--color-black); }

header.site-header { background: var(--color-black); position:sticky; top:0; z-index:100; }
.nav-wrap { display:flex; align-items:center; justify-content:space-between; padding:12px 24px; max-width: 1500px; margin:0 auto; }
.brand { display:flex; align-items:center; gap:10px; margin-right:32px; flex-shrink:0; }
.brand img.logo { height:156px; width:auto; display:block; }

/* Top-level nav row must stay horizontal — scoped to direct child only so it never leaks into nested dropdown lists */
nav.primary-nav { display:flex; align-items:center; gap:28px; }
nav.primary-nav > ul { display:flex; gap:26px; list-style:none; margin:0; padding:0; align-items:center; }
nav.primary-nav > ul > li { position:relative; flex-shrink:0; }
nav.primary-nav a.nav-link, nav.primary-nav span.nav-link { color: var(--color-white); font-size:15px; font-weight:500; display:flex; align-items:center; gap:4px; padding:10px 0; cursor:pointer; white-space:nowrap; }
nav.primary-nav a.nav-link:hover, nav.primary-nav span.nav-link:hover { color: var(--color-orange); }

/* Dropdown submenu — explicitly vertical, isolated from the horizontal top-level rule above */
.dropdown { position:relative; }
.dropdown-menu {
  position:absolute; top:100%; left:0;
  background: var(--color-charcoal);
  border-radius:8px; padding:10px; min-width:230px;
  box-shadow:0 12px 28px rgba(0,0,0,0.35);
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:all .15s ease;
  list-style:none; margin:0;
  display:flex;
  flex-direction:column;
}
.dropdown:hover .dropdown-menu { opacity:1; visibility:visible; transform:translateY(0); }
.dropdown-menu li { width:100%; }
.dropdown-menu li a { display:block; color: var(--color-gray-300); font-size:14px; padding:10px 14px; border-radius:6px; }
.dropdown-menu li a:hover { background: rgba(221,138,63,0.14); color: var(--color-orange); }

.header-right { display:flex; align-items:center; gap:26px; }
.header-phone { display:flex; align-items:center; gap:8px; color: var(--color-white); font-weight:600; font-size:15px; white-space:nowrap; flex-shrink:0; }
.nav-toggle { display:none; align-items:center; justify-content:center; background:none; border:none; color:var(--color-white); cursor:pointer; padding:6px; margin-left:4px; }
@media (max-width:1220px) { nav.primary-nav { display:none; } .header-right > .header-phone { display:none; } .header-right > .btn.btn-primary { display:none; } .nav-toggle { display:flex; } .nav-wrap { padding:10px 16px; } .brand img.logo { height:170px; } .brand { margin-right:auto; } .nav-toggle svg { width:34px; height:34px; } }

/* ---------- Mobile nav toggle + menu panel ---------- */
.nav-wrap { position:relative; }
.mobile-menu { display:none; position:absolute; top:100%; left:0; right:0; background:var(--color-black); border-top:1px solid rgba(255,255,255,0.08); max-height:calc(100vh - 64px); overflow-y:auto; }
.mobile-menu.open { display:block; }
.mobile-menu > ul { list-style:none; margin:0; padding:8px 0; }
.mobile-menu > ul > li { border-bottom:1px solid rgba(255,255,255,0.06); }
.mobile-menu > ul > li > a { display:block; color:var(--color-white); font-size:16px; font-weight:500; padding:14px 24px; }
.mobile-menu > ul > li > a:hover { color:var(--color-orange); }
.mobile-dropdown-toggle { display:flex; align-items:center; justify-content:space-between; width:100%; background:none; border:none; color:var(--color-white); font-size:16px; font-weight:500; padding:14px 24px; text-align:left; cursor:pointer; font-family:inherit; }
.mobile-dropdown-toggle .chev { transition:transform .2s ease; flex-shrink:0; }
.mobile-dropdown.open .mobile-dropdown-toggle .chev { transform:rotate(180deg); }
.mobile-dropdown.open .mobile-dropdown-toggle { color:var(--color-orange); }
.mobile-submenu { list-style:none; margin:0; padding:0 24px 10px 36px; display:none; }
.mobile-dropdown.open .mobile-submenu { display:block; }
.mobile-submenu li { padding:0; }
.mobile-submenu a { display:block; padding:9px 0; color:var(--color-gray-300); font-size:14.5px; }
.mobile-submenu a:hover { color:var(--color-orange); }
.mobile-menu-footer { display:flex; flex-direction:column; gap:12px; padding:18px 24px 24px; border-top:1px solid rgba(255,255,255,0.08); }
.mobile-phone { display:flex; align-items:center; gap:8px; color:var(--color-white); font-weight:600; font-size:15px; }
.mobile-menu-footer .btn { width:100%; text-align:center; justify-content:center; }

.hero { position:relative; min-height:640px; display:flex; align-items:center; background-size:cover; background-position:center; overflow:hidden; }
.hero::before { content:""; position:absolute; inset:0; background: linear-gradient(100deg, rgba(8,16,28,0.86) 0%, rgba(8,16,28,0.62) 45%, rgba(8,16,28,0.28) 100%); }
.hero-inner { position:relative; z-index:2; padding:90px 24px 60px; max-width: var(--container); margin:0 auto; width:100%; }
.hero h1 { color: var(--color-white); font-size: clamp(2.4rem, 5.4vw, 4.4rem); max-width:760px; margin-bottom:26px; }
.hero h1 .accent { color: var(--color-orange); }
.hero p.lead { color: var(--color-gray-100); font-size:18px; max-width:620px; margin-bottom:34px; }
.hero-ctas { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:30px; }
.hero-badges { display:flex; gap:14px; flex-wrap:wrap; }
.hero-badge { display:flex; align-items:center; gap:8px; background: rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.18); color: var(--color-white); font-size:13.5px; font-weight:600; padding:9px 16px; border-radius:30px; }
.hero-badge svg { color: var(--color-orange); flex-shrink:0; }

.page-hero { background: var(--color-black); padding:70px 24px 56px; text-align:left; }
.page-hero h1 { color: var(--color-white); font-size: clamp(2rem, 4vw, 3rem); }
.page-hero p { color: var(--color-gray-300); max-width:640px; margin-top:16px; font-size:17px; }

.value-section { padding:70px 0; }
.value-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:24px; margin-top:10px; }
.value-card { background: var(--color-gray-100); border-radius: var(--radius); padding:32px; }
.icon-badge { width:48px; height:48px; border-radius:10px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; }
.icon-badge.orange { background: var(--color-orange); color: var(--color-white); }
.icon-badge.dark { background: var(--color-black); color: var(--color-white); }
.value-card h3 { font-size:20px; margin-bottom:10px; }
.value-card p { color: var(--color-gray-600); font-size:15px; margin:0; }
@media (max-width:800px) { .value-grid { grid-template-columns:1fr; } }

.section { padding:88px 0; }
.section-title { font-size: clamp(1.8rem, 3vw, 2.4rem); margin-bottom:44px; }
.section-title.center { text-align:center; }
.feature-row { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-bottom:96px; }
.feature-row.reverse .feature-media { order:2; }
.feature-row.reverse .feature-text { order:1; }
.feature-media img { border-radius: var(--radius); width:100%; height:360px; object-fit:cover; }
.feature-text h2, .feature-text h3 { font-size:26px; margin-bottom:16px; }
.feature-text p { color: var(--color-gray-600); font-size:16px; margin-bottom:8px; }
.feature-text ul { margin:16px 0; padding:0; list-style:none; }
.feature-text ul li { display:flex; align-items:center; gap:8px; color: var(--color-gray-600); font-size:15px; margin-bottom:8px; }
.feature-text ul li svg { color: var(--color-orange); flex-shrink:0; }
.link-arrow { display:inline-flex; align-items:center; gap:6px; color: var(--color-orange); font-weight:700; font-size:15px; margin-top:6px; }
.link-arrow:hover { color: var(--color-orange-dark); }
@media (max-width:800px) { .feature-row, .feature-row.reverse { grid-template-columns:1fr; } .feature-row.reverse .feature-media, .feature-row.reverse .feature-text { order:unset; } .feature-media img { height:260px; } }

.plan-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.plan-card { background: var(--color-white); border:1px solid var(--color-gray-300); border-radius: var(--radius); padding:30px; }
.plan-card h3 { font-size:19px; margin-bottom:12px; }
.plan-card p { color: var(--color-gray-600); font-size:14.5px; margin-bottom:18px; }
.plan-card.dark { background: var(--color-black); border-color: var(--color-black); }
.plan-card.dark h3 { color: var(--color-white); }
.plan-card.dark p { color: var(--color-gray-300); }
@media (max-width:900px) { .plan-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:620px) { .plan-grid { grid-template-columns:1fr; } }

.testimonial-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.testimonial-card { background: var(--color-gray-100); border-radius: var(--radius); padding:28px; }
.stars { color: var(--color-orange); margin-bottom:14px; font-size:15px; letter-spacing:2px; }
.testimonial-card p.quote { font-size:15px; color: var(--color-text); font-style:italic; margin-bottom:18px; }
.testimonial-card .name { font-weight:700; font-size:14px; }
.testimonial-card .loc { color: var(--color-gray-600); font-size:13px; }
@media (max-width:900px) { .testimonial-grid { grid-template-columns:1fr; } }

.dark-band { background: var(--color-black); color: var(--color-white); text-align:center; padding:60px 24px; }
.dark-band.photo { background-size:cover; background-position:center; position:relative; }
.dark-band.photo::before { content:""; position:absolute; inset:0; background: rgba(10,10,10,0.72); }
.dark-band .inner { position:relative; z-index:2; }
.dark-band h2 { font-size: clamp(1.9rem, 4vw, 3rem); margin-bottom:20px; }
.dark-band p { color: var(--color-gray-300); font-size:17px; max-width:620px; margin:0 auto 30px; }
.dark-band .ctas { display:flex; justify-content:center; gap:16px; flex-wrap:wrap; }

.about-split { background: var(--color-black); color: var(--color-white); padding:80px 0; }
.about-split .feature-text h2 { color: var(--color-white); font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin-bottom:20px; }
.about-split .feature-text p { color: var(--color-gray-300); }
.about-split .since { color: var(--color-orange); font-weight:700; margin:18px 0 22px; }

.faq-item { border-bottom:1px solid var(--color-gray-300); padding:20px 0; }
.faq-item summary { font-weight:700; font-size:16px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; color: var(--color-orange); font-size:22px; }
.faq-item[open] summary::after { content:"\2212"; }
.faq-item p { color: var(--color-gray-600); margin-top:12px; font-size:15px; }

footer.site-footer { background: var(--color-black); color: var(--color-gray-300); padding:64px 0 0; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:46px; }
.footer-col h5 { color: var(--color-orange); font-size:13px; letter-spacing:1.5px; margin-bottom:18px; text-transform:uppercase; }
.footer-col a, .footer-col li { display:block; color: var(--color-gray-300); font-size:14.5px; margin-bottom:12px; }
.footer-col a:hover { color: var(--color-orange); }
.footer-col.brand-col p { font-size:14px; margin:14px 0 18px; color: var(--color-gray-300); }
.footer-col.brand-col img.logo { height:40px; width:auto; }
.footer-social { display:flex; gap:12px; }
.footer-social a { width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,0.25); display:flex; align-items:center; justify-content:center; }
.footer-social a:hover { border-color: var(--color-orange); color: var(--color-orange); }
.contact-line { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; font-size:14.5px; }
.contact-line svg { color: var(--color-orange); flex-shrink:0; margin-top:2px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding:22px 24px; text-align:center; font-size:12.5px; color: var(--color-gray-600); }
.footer-bottom p { max-width:900px; margin:0 auto; }
.footer-bottom p + p { margin-top:10px; }
@media (max-width:900px) { .footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:560px) { .footer-grid { grid-template-columns:1fr; } }

.contact-wrap { display:grid; grid-template-columns:1fr 1fr; gap:50px; }
.contact-form { background: var(--color-offwhite); border-radius: var(--radius); padding:36px; }
.form-row { margin-bottom:18px; }
.form-row label { display:block; font-size:14px; font-weight:600; margin-bottom:6px; }
.form-row input, .form-row select, .form-row textarea { width:100%; padding:12px 14px; border:1px solid var(--color-gray-300); border-radius:6px; font-family: var(--font-body); font-size:15px; }
.form-row textarea { resize:vertical; min-height:110px; }
.form-note { font-size:13px; color: var(--color-gray-600); margin-top:14px; }
@media (max-width:800px) { .contact-wrap { grid-template-columns:1fr; } }

.btn-large { font-size:18px; padding:20px 44px; }
.calc-cta { text-align:center; padding:56px 0; }
.calc-cta p.calc-note { color: var(--color-gray-600); font-size:14px; margin-top:14px; }

.header-right .btn-primary { margin-left:6px; }

.feature-row.single-col { grid-template-columns: 1fr; max-width: 760px; margin-left:auto; margin-right:auto; margin-top:8px; }

.plan-grid { margin-top: 12px; }

/* ---------- AEP urgency banner ---------- */
.aep-banner { background:var(--color-orange); padding:12px 24px; }
.aep-banner .container { text-align:center; }
.aep-banner p { margin:0; color:#fff; font-size:14.5px; line-height:1.5; }
.aep-banner strong { font-weight:700; }
.aep-banner a { color:#fff; text-decoration:underline; font-weight:700; white-space:nowrap; }
.aep-banner a:hover { opacity:0.85; }
@media (max-width:600px) { .aep-banner p { font-size:13.5px; } }

/* ---------- Sticky mobile call bar ---------- */
.sticky-call-bar { display:none; }
@media (max-width:1220px) {
  .sticky-call-bar {
    display:flex; align-items:center; justify-content:center; gap:8px;
    position:fixed; left:0; right:0; bottom:0; z-index:200;
    background:var(--color-orange); color:#fff; font-weight:700; font-size:15px;
    padding:14px 16px; padding-bottom:calc(14px + env(safe-area-inset-bottom));
    text-decoration:none; box-shadow:0 -2px 10px rgba(0,0,0,0.15);
  }
  body { padding-bottom:54px; }
}

/* ---------- Carrier trust strip ---------- */
.carrier-strip { background:var(--color-gray-100); padding:22px 24px; border-bottom:1px solid var(--color-gray-300); }
.carrier-strip-label { text-align:center; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--color-gray-600); margin:0 0 14px; }
.carrier-chips { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.carrier-chip { background:var(--color-white); border:1px solid var(--color-gray-300); border-radius:100px; padding:8px 18px; font-size:14px; font-weight:600; color:var(--color-black); }

/* ---------- Blog ---------- */
.blog-grid { display:grid; grid-template-columns:1fr; gap:20px; }
.blog-card { display:block; background:var(--color-gray-100); border:1px solid var(--color-gray-300); border-radius:var(--radius); padding:28px; text-decoration:none; color:inherit; transition:box-shadow .15s ease, transform .15s ease; }
.blog-card:hover { box-shadow:0 6px 20px rgba(0,0,0,0.08); transform:translateY(-2px); }
.blog-card-tag { display:inline-block; background:var(--color-orange); color:#fff; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; padding:4px 12px; border-radius:100px; margin-bottom:12px; }
.blog-card h2 { font-size:21px; margin:0 0 10px; }
.blog-card p { color:var(--color-gray-600); margin:0 0 14px; font-size:15px; line-height:1.55; }
.page-hero .blog-eyebrow { color:var(--color-orange); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.06em; margin:0 0 10px; }
