/* Fox Insurance Brokerage — foxinsco.com */
:root { --ink:#24282d; --text:#3c4248; --slate:#5b6770; --slate-dk:#46525a; --mist:#eceef0; --line:#d9dde0; --white:#ffffff; }
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:'Archivo',system-ui,sans-serif; font-weight:400; color:var(--text); background:var(--white); font-size:18px; line-height:1.6; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:var(--ink); text-underline-offset:4px; }
:focus-visible { outline:2px solid var(--slate); outline-offset:3px; }
.wrap { max-width:1240px; margin:0 auto; padding:0 32px; }
.narrow { max-width:820px; }
h1, h2 { font-family:'Archivo',sans-serif; font-weight:700; letter-spacing:-.02em; }
h2 { font-size:clamp(34px,4.4vw,56px); line-height:1.04; color:var(--slate); margin-bottom:26px; }
p + p { margin-top:16px; }

/* Header: phone left, wordmark center, button right */
header { position:fixed; top:0; left:0; right:0; z-index:20; background:var(--mist); border-bottom:1px solid var(--line); }
header .wrap { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; height:62px; max-width:none; }
.phone { justify-self:start; font-size:13px; font-weight:600; letter-spacing:.08em; text-decoration:none; color:var(--slate-dk); }
.logo { justify-self:center; font-family:'Archivo',sans-serif; font-stretch:125%; font-weight:700; font-size:24px; letter-spacing:.04em; color:var(--slate); text-decoration:none; }
.head-btn { justify-self:end; background:var(--slate); color:#fff; font-size:13px; font-weight:600; letter-spacing:.08em; text-decoration:none; padding:11px 18px; }
.head-btn:hover { background:var(--slate-dk); }

/* Hero */
.hero { position:relative; min-height:100vh; display:flex; align-items:flex-end; color:#fff;
  background:linear-gradient(90deg, rgba(20,24,28,.72) 0%, rgba(20,24,28,.25) 60%, rgba(20,24,28,.05) 100%), var(--hero, url('https://images.unsplash.com/photo-1648441095877-90406e6ba04d?auto=format&fit=crop&w=2200&q=72')) center/cover no-repeat; }
.hero .wrap { width:100%; max-width:none; padding:140px 48px 90px; }
.crumbs { font-size:13px; letter-spacing:.06em; opacity:.8; margin-bottom:22px; }
.crumbs a { color:#fff; text-decoration:none; }
h1 { font-size:clamp(46px,7.2vw,104px); line-height:.98; max-width:880px; margin-bottom:26px; color:#fff; }
.lede { font-size:20px; font-weight:500; max-width:560px; margin-bottom:34px; }
.btn { display:inline-block; background:var(--mist); color:var(--slate-dk); font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; padding:15px 24px; border:0; transition:background .2s, color .2s; }
.btn:hover { background:var(--slate); color:#fff; }
.alt { margin-left:20px; color:#fff; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }

.real-agent { background:var(--slate); color:#fff; padding:26px 0; text-align:center; font-size:18px; }
.real-agent strong { font-weight:700; }

/* Split: image flush to the edge, text on the other side */
section { padding:110px 0; }
.wrap.split { max-width:none; padding:0; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
section:has(> .wrap.split) { padding:0; }
.split > div:not(.photo) { padding:110px 8vw 110px 64px; align-self:center; max-width:720px; }
.split.flip > div:not(.photo) { padding:110px 64px 110px 8vw; justify-self:end; }
.split > .photo img { width:100%; height:100%; min-height:620px; object-fit:cover; }
.split:not(.flip) > .photo:last-child { order:-1; }
ul.plain { list-style:none; margin-top:8px; }
ul.plain li { padding:16px 0; border-bottom:1px solid var(--line); }
ul.plain li:last-child { border-bottom:0; }
ul.plain strong { font-weight:700; color:var(--ink); }
.note { font-size:15px; color:var(--slate); margin-top:20px; }

.band { height:70vh; min-height:360px; background:var(--band, url('https://images.unsplash.com/photo-1586279512860-da6eb255e023?auto=format&fit=crop&w=2200&q=72')) center/cover no-repeat; }

/* Minimum coverage: big numbers */
section:has(.mins-row) .plain { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:30px; border-top:1px solid var(--ink); }
section:has(.mins-row) .plain li { border-bottom:0; padding:22px 20px 0 0; font-size:16px; }
section:has(.mins-row) .plain strong { display:block; font-size:clamp(34px,4vw,54px); letter-spacing:-.02em; color:var(--slate); line-height:1; margin-bottom:8px; }

/* Grace */
.grace { background:var(--mist); }
.grace .wrap.split { grid-template-columns:5fr 7fr; }
.grace .photo img { min-height:640px; object-position:center 25%; }
.sig { font-size:15px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--slate); margin-top:24px; }

/* Reviews: heading left, square arrows right, like an episode row */
.reviews .wrap { display:grid; grid-template-columns:1fr auto; grid-template-areas:"title nav" "rating nav" "track track" "links links"; align-items:end; }
.reviews h2 { grid-area:title; margin-bottom:6px; }
.reviews-rating { grid-area:rating; color:var(--slate); font-size:15px; margin-bottom:40px; }
.reviews .stars { color:var(--slate); letter-spacing:2px; }
.rv-nav { grid-area:nav; display:flex; gap:8px; align-self:center; margin-bottom:40px; }
.rv-btn { width:48px; height:48px; border:0; background:var(--mist); color:var(--slate-dk); font-size:22px; cursor:pointer; }
.rv-btn:hover { background:var(--slate); color:#fff; }
.rv-track { grid-area:track; display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; }
.rv-track::-webkit-scrollbar { display:none; }
.rv-card { flex:0 0 calc((100% - 48px)/3); scroll-snap-align:start; margin:0; padding:34px 30px; background:var(--mist); display:flex; flex-direction:column; gap:16px; }
.rv-card .stars { font-size:16px; }
.rv-card blockquote { font-size:21px; font-weight:600; line-height:1.35; color:var(--ink); letter-spacing:-.01em; flex:1; }
.rv-card figcaption { font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); }
.rv-links { grid-area:links; margin-top:30px; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.rv-links a { color:var(--slate-dk); }

.coverage-help { background:var(--mist); }

/* Carriers */
.carriers { text-align:center; }
.carriers h2 { max-width:760px; margin-left:auto; margin-right:auto; }
.logos { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:30px 50px; margin:44px auto 26px; max-width:1000px; }
.logos li { height:48px; display:flex; align-items:center; }
.logos img { max-height:36px; max-width:150px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .25s, opacity .25s; }
.logos img:hover { filter:none; opacity:1; }
.logos span { font-size:15px; font-weight:600; color:var(--slate); white-space:nowrap; }

/* FAQ */
details { border-bottom:1px solid var(--line); padding:22px 0; }
details:first-of-type { border-top:1px solid var(--ink); }
summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:20px; font-size:20px; font-weight:600; color:var(--ink); }
summary::-webkit-details-marker { display:none; }
summary::after { content:"+"; color:var(--slate); font-size:26px; line-height:1; transition:transform .2s; }
details[open] summary::after { transform:rotate(45deg); }
details p { margin-top:12px; max-width:700px; }

/* Closing */
.closing { text-align:left; color:#fff; padding:150px 0;
  background:linear-gradient(90deg, rgba(20,24,28,.75), rgba(20,24,28,.3)), var(--closing, url('https://images.unsplash.com/photo-1616474366444-db80d3807000?auto=format&fit=crop&w=2200&q=72')) center/cover no-repeat; }
.closing .wrap.narrow { max-width:1240px; }
.closing h2 { color:#fff; font-size:clamp(44px,6vw,84px); }
.closing p { font-size:20px; font-weight:500; margin-bottom:30px; }
.closing .small { font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; margin-top:30px; margin-bottom:0; }
.closing .small a { color:#fff; }

footer { background:var(--mist); padding:44px 0; font-size:14px; color:var(--slate-dk); }
footer a { color:var(--slate-dk); }
footer p + p { margin-top:8px; }

@media (max-width:900px) {
  header .wrap { grid-template-columns:auto 1fr auto; gap:12px; padding:0 16px; }
  .logo { font-size:18px; }
  .phone { display:none; }
  header .wrap { grid-template-columns:1fr auto; }
  .logo { justify-self:start; }
  .hero .wrap { padding:120px 22px 60px; }
  .wrap.split, .grace .wrap.split { grid-template-columns:1fr; }
  .split > div:not(.photo), .split.flip > div:not(.photo) { padding:64px 22px; max-width:none; justify-self:stretch; }
  .split > .photo img, .grace .photo img { min-height:0; height:auto; aspect-ratio:4/3; }
  .split.flip > .photo { order:-1; }
  .grace .photo img { aspect-ratio:1/1; }
  section { padding:72px 0; }
  .wrap { padding:0 22px; }
  .rv-card { flex-basis:calc((100% - 24px)/2); }
  .band { height:40vh; }
}
@media (max-width:600px) {
  .rv-card { flex-basis:88%; }
  section:has(.mins-row) .plain { grid-template-columns:1fr; }
  .alt { display:block; margin:18px 0 0; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { transition:none !important; scroll-behavior:auto !important; } }

.avail { font-size:15px; font-weight:600; letter-spacing:.04em; margin:-14px 0 30px; opacity:.92; }
.reach { background:var(--white); }
.reach h2 { max-width:820px; }
.reach-row { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); margin-top:10px; }
.reach-row li { padding:24px 22px 0 0; font-size:15px; color:var(--text); }
.reach-row li + li { padding-left:22px; border-left:1px solid var(--line); }
.reach-row strong { display:block; font-size:clamp(34px,4vw,52px); font-weight:700; letter-spacing:-.02em; color:var(--slate); line-height:1; margin-bottom:10px; }
.across { background:var(--mist); }
.across-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; border-top:1px solid var(--ink); padding-top:30px; }
.across h3 { font-size:22px; font-weight:700; color:var(--ink); margin-bottom:10px; letter-spacing:-.01em; }
@media (max-width:900px) {
  .reach-row { grid-template-columns:1fr 1fr; }
  .reach-row li:nth-child(3) { border-left:0; padding-left:0; }
  .reach-row li { padding-bottom:20px; }
  .across-grid { grid-template-columns:1fr; gap:36px; }
}
@media (max-width:520px) { .reach-row { grid-template-columns:1fr; } .reach-row li + li { border-left:0; padding-left:0; border-top:1px solid var(--line); } }

.grace .photo { display:flex; align-items:center; justify-content:center; padding:64px 40px; }
.grace .photo img { width:min(440px,80%); height:auto; min-height:0; aspect-ratio:1/1; border-radius:50%; object-fit:cover; object-position:center 30%; outline:1px solid var(--slate); outline-offset:12px; }
.social { list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0 0 22px; }
.social a { display:inline-block; background:var(--white); color:var(--slate-dk); font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; padding:11px 18px; border:1px solid var(--line); }
.social a:hover { background:var(--slate); color:#fff; border-color:var(--slate); }
@media (max-width:900px) { .grace .photo { padding:48px 22px 8px; } .grace .photo img { aspect-ratio:1/1; width:min(320px,80%); } }

/* ================= Added for the multi-page site ================= */

/* Header right side: Text Grace + corner Menu button */
.head-right { justify-self:end; display:flex; align-items:center; gap:10px; }
.menu-btn { display:flex; align-items:center; gap:10px; background:var(--white); color:var(--slate-dk); border:1px solid var(--line); font-family:'Archivo',sans-serif; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:10px 14px; cursor:pointer; }
.menu-btn:hover { background:var(--slate); color:#fff; border-color:var(--slate); }
.burger { width:18px; height:10px; position:relative; }
.burger::before, .burger::after { content:""; position:absolute; left:0; right:0; height:2px; background:currentColor; transition:transform .25s, top .25s; }
.burger::before { top:0; } .burger::after { top:8px; }
body.menu-open .burger::before { top:4px; transform:rotate(45deg); }
body.menu-open .burger::after { top:4px; transform:rotate(-45deg); }
header { transition:box-shadow .25s; }
header.scrolled { box-shadow:0 6px 24px rgba(20,24,28,.08); }

/* Desktop tab row under the header */
.tabs { background:var(--white); border-top:1px solid var(--line); }
.tabs ul { list-style:none; display:flex; justify-content:center; gap:4px; margin:0; padding:0 16px; overflow-x:auto; scrollbar-width:none; }
.tabs ul::-webkit-scrollbar { display:none; }
.tabs a { display:block; padding:12px 14px; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; text-decoration:none; color:var(--slate-dk); white-space:nowrap; border-bottom:2px solid transparent; }
.tabs a:hover, .tabs a[aria-current="page"] { border-bottom-color:var(--slate); color:var(--ink); }

/* Full-screen menu */
.menu { position:fixed; inset:0; z-index:19; background:var(--mist); padding:140px 32px 60px; overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; }
body.menu-open { overflow:hidden; }
body.menu-open .menu { opacity:1; visibility:visible; }
.menu-grid { max-width:1240px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:44px; }
.menu h3 { font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--ink); }
.menu ul { list-style:none; }
.menu li { margin-bottom:8px; }
.menu a { font-size:clamp(20px,2vw,26px); font-weight:700; letter-spacing:-.02em; text-decoration:none; color:var(--ink); line-height:1.25; }
.menu a:hover, .menu a[aria-current="page"] { color:var(--slate); text-decoration:underline; }
.menu-cta { max-width:1240px; margin:56px auto 0; padding-top:28px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:12px; }
.menu-cta .btn { background:var(--slate); color:#fff; }
.menu-cta .btn:hover { background:var(--slate-dk); }
.menu-cta .btn.ghost { background:var(--white); color:var(--slate-dk); border:1px solid var(--line); }

/* Home hero headline: two weights */
.hero h1 .line2 { display:block; font-weight:400; font-stretch:100%; opacity:.95; }
.hero.short { min-height:78vh; }

/* Coverage cards */
.cards { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }
.cards li { border-bottom:1px solid var(--line); }
.cards li:not(:nth-child(3n+1)) { border-left:1px solid var(--line); }
.cards a { display:flex; flex-direction:column; height:100%; padding:32px 26px 30px; text-decoration:none; color:var(--text); transition:background .2s; }
.cards a:hover { background:var(--mist); }
.cards h3 { font-size:24px; font-weight:700; letter-spacing:-.02em; color:var(--ink); margin-bottom:10px; }
.cards p { font-size:16px; flex:1; }
.cards .go { margin-top:18px; font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-dk); }
.cards .tag { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:22px; }

/* Body copy pages */
.prose h2 { margin-top:56px; }
.prose h2:first-child { margin-top:0; }
.prose h3 { font-size:22px; font-weight:700; color:var(--ink); margin:30px 0 8px; letter-spacing:-.01em; }
.prose ul.dots { margin:14px 0 0 1.1em; }
.prose ul.dots li { margin-bottom:8px; }
.prose ul.dots li::marker { color:var(--slate); }
.prose a { color:var(--slate-dk); }
.pullout { border-left:3px solid var(--slate); padding:4px 0 4px 22px; margin:32px 0; font-size:22px; font-weight:600; color:var(--ink); line-height:1.35; letter-spacing:-.01em; }

.related { background:var(--mist); padding:60px 0; }
.related h2 { font-size:clamp(26px,3vw,36px); margin-bottom:18px; }
.chips { list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
.chips a { display:inline-block; background:var(--white); border:1px solid var(--line); padding:11px 16px; font-size:14px; font-weight:600; text-decoration:none; color:var(--slate-dk); }
.chips a:hover { background:var(--slate); color:#fff; border-color:var(--slate); }

/* FAQ page groups */
.faq-nav { margin-bottom:56px; }
.faq-group { margin-bottom:70px; scroll-margin-top:120px; }
.faq-group h2 { font-size:clamp(30px,3.4vw,44px); }

/* Contact page */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:72px; align-items:start; }
.contact-list { list-style:none; border-top:1px solid var(--ink); }
.contact-list li { padding:18px 0; border-bottom:1px solid var(--line); }
.contact-list span { display:block; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-bottom:4px; }
.contact-list a, .contact-list b { font-size:21px; font-weight:700; color:var(--ink); text-decoration:none; letter-spacing:-.01em; }
.contact-list a:hover { text-decoration:underline; }
.form { display:grid; grid-template-columns:1fr 1fr; gap:18px; background:var(--mist); padding:36px; }
.form .full { grid-column:1/-1; }
.form label { display:block; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-dk); margin-bottom:6px; }
.form input, .form select, .form textarea { width:100%; font:inherit; font-size:17px; color:var(--ink); background:var(--white); border:1px solid var(--line); border-radius:0; padding:13px 14px; -webkit-appearance:none; appearance:none; }
.form select { background-image:linear-gradient(45deg,transparent 50%,var(--slate) 50%),linear-gradient(135deg,var(--slate) 50%,transparent 50%); background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px; background-size:6px 6px; background-repeat:no-repeat; }
.form textarea { min-height:120px; resize:vertical; }
.form input:focus, .form select:focus, .form textarea:focus { outline:2px solid var(--slate); outline-offset:0; }
.form button { justify-self:start; background:var(--slate); color:#fff; cursor:pointer; }
.form button:hover { background:var(--slate-dk); }
.form .fine { font-size:13px; color:var(--slate); }
.hp { position:absolute; left:-9999px; }

/* Claims */
.claim-grid { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }
.claim-grid li { padding:30px 26px 30px 0; border-bottom:1px solid var(--line); }
.claim-grid li + li { padding-left:26px; border-left:1px solid var(--line); }
.claim-grid h3 { font-size:26px; font-weight:700; color:var(--ink); margin-bottom:12px; letter-spacing:-.02em; }
.claim-grid p { font-size:16px; margin-top:6px; }
.claim-grid .lbl { display:block; font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--slate); margin-top:14px; }
.steps-6 { list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0 36px; border-top:1px solid var(--ink); }
.steps-6 li { padding:22px 0; border-bottom:1px solid var(--line); }
.steps-6 strong { display:block; color:var(--ink); font-size:19px; }

/* Sticky call/text bar on phones */
.mobile-bar { display:none; }

@media (max-width:900px) {
  .tabs { display:none; }
  .menu-grid { grid-template-columns:1fr 1fr; gap:34px; }
  .menu { padding:100px 22px 110px; }
  .cards { grid-template-columns:1fr 1fr; }
  .cards li { border-left:0 !important; }
  .cards li:nth-child(2n) { border-left:1px solid var(--line) !important; }
  .contact-grid { grid-template-columns:1fr; gap:44px; }
  .claim-grid, .steps-6 { grid-template-columns:1fr; }
  .claim-grid li + li { padding-left:0; border-left:0; }
  .head-btn { display:none; }
  .hero.short { min-height:70vh; }
  body { padding-bottom:58px; }
  .mobile-bar { display:grid; grid-template-columns:1fr 1fr; position:fixed; left:0; right:0; bottom:0; z-index:25; }
  .mobile-bar a { display:flex; align-items:center; justify-content:center; height:58px; font-size:14px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; }
  .mobile-bar a:first-child { background:var(--slate); color:#fff; }
  .mobile-bar a:last-child { background:var(--ink); color:#fff; }
}
@media (max-width:600px) {
  .cards { grid-template-columns:1fr; }
  .cards li:nth-child(2n) { border-left:0 !important; }
  .menu-grid { grid-template-columns:1fr; }
  .form { grid-template-columns:1fr; padding:24px 18px; }
  .hero .btn { display:block; text-align:center; }
}

.wrap.split > * { min-width:0; }
