/* ── Olive Cover — Main Stylesheet ───────────────────────────────────────── */
/* Colors matched exactly to olivecover.com brand                             */

/* Variables */
:root {
  /* ── Brand palette ── */
  --oc-navy:        #1b3a5c;    /* primary: hero, nav, headings */
  --oc-navy-deep:   #0f2236;    /* darkest: main nav bg */
  --oc-navy-mid:    #2a4f74;    /* mid navy for hover states */
  --oc-gold:        #c7a24b;    /* accent: CTA buttons, highlights — matched to olivev2 Webflow */
  --oc-gold-light:  #d8b86a;    /* gold hover / lighter variant */
  --oc-gold-pale:   #f0e0b8;    /* very light gold tint */
  --oc-cream:       #f5edd8;    /* warm section backgrounds */
  --oc-cream-dark:  #e8d9b8;    /* darker cream / dividers */
  --oc-text:        #1a1a2e;    /* primary body text */
  --oc-text-mid:    #3d4a5c;    /* secondary text */
  --oc-text-muted:  #6b7a8d;    /* captions, meta */
  --oc-bg:          #f5f7fa;    /* light section background */
  --oc-white:       #ffffff;
  --oc-gray-300:    #c8d0da;

  /* ── Typography ── */
  --oc-font:        'Inter', Arial, sans-serif;
  --oc-font-serif:  'Playfair Display', Georgia, 'Times New Roman', serif;

  /* ── Layout ── */
  --oc-max-w:        1200px;
  --oc-max-w-narrow: 760px;
  --oc-radius:       6px;
  --oc-radius-lg:    12px;
  --oc-shadow:       0 2px 8px rgba(15,34,54,0.10);
  --oc-shadow-lg:    0 4px 20px rgba(15,34,54,0.16);
  --oc-transition:   0.2s ease;
}

/* Reset & base */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { font-family: var(--oc-font); color: var(--oc-text); background: var(--oc-white); line-height: 1.65; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--oc-navy); text-decoration: underline; text-underline-offset: 2px; }
a:hover { color: var(--oc-navy-deep); }
h1,h2,h3,h4,h5,h6 { font-family: var(--oc-font-serif); font-weight: 700; line-height: 1.25; color: var(--oc-navy-deep); }
h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); }
h2 { font-size: clamp(1.35rem, 2.5vw, 1.875rem); }
h3 { font-size: 1.25rem; }
p + p { margin-top: 1rem; }
ul,ol { padding-left: 1.5rem; }
li { margin-top: 0.35rem; }
button { font-family: inherit; cursor: pointer; }

/* Skip link */
.oc-skip-link { position: absolute; top: -100%; left: 1rem; background: var(--oc-navy); color: var(--oc-white); padding: 0.5rem 1rem; border-radius: var(--oc-radius); z-index: 9999; text-decoration: none; }
.oc-skip-link:focus { top: 1rem; }

/* Container */
.oc-container { max-width: var(--oc-max-w); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }
.oc-container-narrow { max-width: var(--oc-max-w-narrow); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }

/* ── Header ──────────────────────────────────────────────────────────────── */
.oc-site-header { background: var(--oc-navy-deep); position: sticky; top: 0; z-index: 100; }
.oc-site-header.is-scrolled { box-shadow: var(--oc-shadow-lg); }
.oc-header-inner { display: flex; align-items: center; gap: 1.5rem; height: 64px; }
.oc-header-logo a, .oc-logo-text { text-decoration: none; font-family: var(--oc-font-serif); font-weight: 700; font-size: 1.25rem; color: var(--oc-white); letter-spacing: -0.01em; }
.oc-header-logo img { height: 52px; width: auto; filter: brightness(0) invert(1); }
.oc-nav-primary { flex: 1; }
.oc-menu { display: flex; list-style: none; padding: 0; gap: 0.25rem; }
.oc-menu a { text-decoration: none; padding: 0.4rem 0.75rem; border-radius: var(--oc-radius); color: rgba(255,255,255,0.82); font-size: 0.9rem; font-weight: 500; transition: background var(--oc-transition), color var(--oc-transition); white-space: nowrap; }
.oc-menu a:hover, .oc-menu .current-menu-item a { background: rgba(255,255,255,0.12); color: var(--oc-white); }

/* ── Nav dropdown submenus ───────────────────────────────────────────────── */
.oc-menu .menu-item-has-children { position: relative; }
.oc-menu .menu-item-has-children > a::after { content: ''; display: inline-block; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; margin-left: 5px; vertical-align: middle; opacity: 0.7; }
.oc-menu .sub-menu { display: block; visibility: hidden; opacity: 0; pointer-events: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 220px; background: var(--oc-navy-deep); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--oc-radius-lg); box-shadow: var(--oc-shadow-lg); padding: 0.5rem; list-style: none; transition: opacity 0.15s ease, visibility 0.15s ease; z-index: 200; }
.oc-menu .menu-item-has-children:hover > .sub-menu,
.oc-menu .menu-item-has-children:focus-within > .sub-menu { visibility: visible; opacity: 1; pointer-events: auto; }
.oc-menu .sub-menu a { display: block; padding: 0.45rem 0.875rem; border-radius: var(--oc-radius); color: rgba(255,255,255,0.8); font-size: 0.875rem; background: none; }
.oc-menu .sub-menu a:hover { background: rgba(255,255,255,0.1); color: var(--oc-white); }
.oc-menu .sub-menu li { margin: 0; }

.oc-header-actions { display: flex; align-items: center; gap: 0.75rem; flex-shrink: 0; margin-left: auto; }
.oc-header-phone { text-decoration: none; color: rgba(255,255,255,0.8); font-size: 0.875rem; display: flex; align-items: center; gap: 0.35rem; }
.oc-header-phone:hover { color: var(--oc-gold-light); }
.oc-nav-toggle { display: none; background: none; border: 1px solid rgba(255,255,255,0.3); border-radius: var(--oc-radius); padding: 0.4rem; }
.oc-hamburger, .oc-hamburger::before, .oc-hamburger::after { display: block; width: 18px; height: 2px; background: var(--oc-white); transition: var(--oc-transition); }
.oc-hamburger { position: relative; }
.oc-hamburger::before, .oc-hamburger::after { content: ''; position: absolute; left: 0; }
.oc-hamburger::before { top: -5px; }
.oc-hamburger::after  { top: 5px; }

/* ── Buttons ─────────────────────────────────────────────────────────────── */
.oc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.35rem; padding: 0.7rem 1.5rem; border-radius: var(--oc-radius); font-size: 0.95rem; font-weight: 600; text-decoration: none; transition: background var(--oc-transition), color var(--oc-transition), border-color var(--oc-transition), filter var(--oc-transition); cursor: pointer; border: 2px solid transparent; white-space: nowrap; }
.oc-btn-primary { background: var(--oc-gold); color: var(--oc-navy-deep); border-color: var(--oc-gold); }
.oc-btn-primary:hover { background: var(--oc-gold-light); border-color: var(--oc-gold-light); color: var(--oc-navy-deep); }
.oc-btn-secondary { background: transparent; color: var(--oc-white); border-color: rgba(255,255,255,0.5); }
.oc-btn-secondary:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.8); color: var(--oc-white); }
.oc-btn-outline { background: transparent; color: var(--oc-navy); border-color: var(--oc-navy); }
.oc-btn-outline:hover { background: var(--oc-navy); color: var(--oc-white); }
.oc-btn-sm { padding: 0.45rem 1rem; font-size: 0.875rem; }

/* ── Sections ────────────────────────────────────────────────────────────── */
.oc-section { padding-block: clamp(3rem, 6vw, 5rem); }
.oc-section-alt { background: var(--oc-cream); }
.oc-section-title { font-family: var(--oc-font-serif); text-align: center; margin-bottom: 0.75rem; color: var(--oc-navy-deep); }
.oc-section-subtitle { text-align: center; color: var(--oc-text-muted); margin-bottom: 2.5rem; font-size: 1.05rem; max-width: 600px; margin-inline: auto; }
.oc-section-cta { text-align: center; margin-top: 2.5rem; }
.oc-main { min-height: 60vh; }

/* ── Hero ────────────────────────────────────────────────────────────────── */
.oc-hero { position: relative; background: var(--oc-navy); color: var(--oc-white); padding-block: clamp(4rem, 8vw, 7rem); overflow: hidden; }
.oc-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0; }
.oc-hero-overlay { position: absolute; inset: 0; background: linear-gradient(105deg, rgba(27,58,92,0.9) 0%, rgba(27,58,92,0.65) 55%, rgba(27,58,92,0.3) 100%); z-index: 1; }
.oc-hero .oc-container { position: relative; z-index: 2; }
.oc-hero-grid { display: grid; grid-template-columns: 1fr 400px; gap: 3rem; align-items: center; }
.oc-hero-content { max-width: 620px; }
.oc-hero-title { font-family: var(--oc-font-serif); color: var(--oc-white); font-size: clamp(2.25rem, 5vw, 3.5rem); margin-bottom: 1rem; line-height: 1.15; }
.oc-hero-subtitle { font-size: 1.1rem; color: rgba(255,255,255,0.88); margin-bottom: 2rem; line-height: 1.65; }
.oc-hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.oc-hero-skip { margin-top: 0.875rem; font-size: 0.875rem; }
.oc-hero-skip a { color: var(--oc-gold-light); text-decoration: none; }
.oc-hero-skip a:hover { text-decoration: underline; }

/* Hero right panel */
.oc-hero-panel { background: rgba(255,255,255,0.1); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--oc-radius-lg); padding: 1.5rem; display: flex; flex-direction: column; gap: 0.25rem; }
.oc-hero-panel-eyebrow { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--oc-gold-light); margin-bottom: 0.15rem; }
.oc-hero-panel-sub { font-size: 0.8rem; color: rgba(255,255,255,0.65); margin-bottom: 0.75rem; }
.oc-hero-panel-item { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.875rem 1rem; border-radius: var(--oc-radius); background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); text-decoration: none; color: var(--oc-white); transition: background var(--oc-transition), border-color var(--oc-transition); margin-bottom: 0.5rem; }
.oc-hero-panel-item:hover { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); color: var(--oc-white); }
.oc-hero-panel-item div { display: flex; flex-direction: column; gap: 0.2rem; }
.oc-hero-panel-item strong { font-size: 0.95rem; font-weight: 600; }
.oc-hero-panel-item span:first-child { font-size: 0.78rem; color: rgba(255,255,255,0.65); line-height: 1.4; }
.oc-hero-panel-item > span:last-child { font-size: 1.1rem; flex-shrink: 0; color: var(--oc-gold-light); }
.oc-hero-panel-footer { margin-top: 0.5rem; font-size: 0.78rem; }
.oc-hero-panel-footer a { color: var(--oc-gold-light); text-decoration: none; }
.oc-hero-panel-footer a:hover { text-decoration: underline; }

/* ── Trust bar ───────────────────────────────────────────────────────────── */
.oc-trust-bar { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; padding: 1.25rem; background: var(--oc-cream); border-radius: var(--oc-radius-lg); }
.oc-section-trust { padding-block: 1.5rem; background: var(--oc-cream); }
.oc-trust-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; font-weight: 600; color: var(--oc-navy-deep); }
.oc-trust-item svg { flex-shrink: 0; color: var(--oc-gold); }

/* ── Cards ───────────────────────────────────────────────────────────────── */
.oc-card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
.oc-card-grid-2 { grid-template-columns: repeat(2, 1fr); }
.oc-card-grid-3 { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.oc-card-grid-4 { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.oc-card { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); overflow: hidden; box-shadow: var(--oc-shadow); transition: box-shadow var(--oc-transition), transform var(--oc-transition); }
.oc-card:hover { box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-card img { width: 100%; height: 200px; object-fit: cover; }
.oc-card-body { padding: 1.25rem; }
.oc-card-title { font-family: var(--oc-font-serif); font-size: 1.05rem; margin-bottom: 0.5rem; }
.oc-card-title a { text-decoration: none; color: var(--oc-navy-deep); }
.oc-card-title a:hover { color: var(--oc-navy); }
.oc-card-meta { font-size: 0.8rem; color: var(--oc-text-muted); margin-bottom: 0.75rem; display: flex; gap: 0.75rem; flex-wrap: wrap; }
.oc-card-excerpt { font-size: 0.9rem; color: var(--oc-text-mid); margin-bottom: 1rem; line-height: 1.6; }
.oc-card-tags { font-size: 0.75rem; font-weight: 700; color: var(--oc-gold); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.4rem; }

/* ── Tags & badges ───────────────────────────────────────────────────────── */
.oc-tag { display: inline-flex; align-items: center; padding: 0.25rem 0.65rem; border-radius: 999px; font-size: 0.8rem; font-weight: 500; background: var(--oc-cream); color: var(--oc-navy); text-decoration: none; transition: background var(--oc-transition); border: 1px solid var(--oc-cream-dark); }
.oc-tag:hover { background: var(--oc-cream-dark); color: var(--oc-navy-deep); }
.oc-tag-active { background: var(--oc-navy); color: var(--oc-white); border-color: var(--oc-navy); }
.oc-tag-sm { font-size: 0.75rem; padding: 0.15rem 0.5rem; }
.oc-badge { display: inline-flex; align-items: center; padding: 0.2rem 0.6rem; border-radius: var(--oc-radius); font-size: 0.78rem; font-weight: 600; background: var(--oc-bg); color: var(--oc-text-mid); }
.oc-badge-am-best { background: var(--oc-gold-pale); color: #7a5c00; border: 1px solid var(--oc-gold); }

/* ── Coverage cards ──────────────────────────────────────────────────────── */
.oc-coverage-card { display: flex; flex-direction: column; background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); overflow: hidden; text-decoration: none; color: var(--oc-text); transition: box-shadow var(--oc-transition), transform var(--oc-transition); }
.oc-coverage-card:hover { box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-coverage-card-img { width: 100%; height: 160px; object-fit: cover; }
.oc-coverage-card-title { padding: 0.75rem 1rem; font-family: var(--oc-font-serif); font-size: 0.95rem; font-weight: 700; display: flex; justify-content: space-between; align-items: center; color: var(--oc-navy-deep); }
.oc-coverage-card-full .oc-coverage-card-body { padding: 1rem; }
.oc-coverage-card-excerpt { font-size: 0.88rem; color: var(--oc-text-muted); margin-top: 0.35rem; }

/* ── Carrier section ─────────────────────────────────────────────────────── */
.oc-carrier-logos { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; justify-content: center; }
.oc-carrier-logo-item img { height: 48px; width: auto; filter: grayscale(0.3); transition: filter var(--oc-transition); }
.oc-carrier-logo-item:hover img { filter: grayscale(0); }
.oc-carrier-name-text { font-size: 0.95rem; font-weight: 600; color: var(--oc-navy-deep); }
.oc-carrier-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1.5rem; }
.oc-carrier-card { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.25rem; box-shadow: var(--oc-shadow); }
.oc-carrier-card-logo { display: block; margin-bottom: 0.75rem; }
.oc-carrier-card-logo img { height: 40px; width: auto; }
.oc-carrier-card-name { font-family: var(--oc-font-serif); font-size: 1rem; margin-bottom: 0.5rem; }
.oc-carrier-card-name a { text-decoration: none; color: var(--oc-navy-deep); }
.oc-carrier-card-name a:hover { color: var(--oc-navy); }
.oc-coverage-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.75rem; }
.oc-carrier-header { display: flex; gap: 2rem; align-items: flex-start; margin-bottom: 2rem; }
.oc-carrier-header-logo img { height: 72px; width: auto; }
.oc-carrier-name { font-family: var(--oc-font-serif); font-size: clamp(1.5rem, 3vw, 2rem); margin-bottom: 0.5rem; }
.oc-carrier-meta-row { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.oc-carrier-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.75rem; background: var(--oc-cream); border-radius: var(--oc-radius-lg); padding: 1.25rem; margin-bottom: 2rem; }
.oc-fact-item { display: flex; flex-direction: column; gap: 0.2rem; }
.oc-fact-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--oc-text-muted); font-weight: 700; }

/* ── Testimonials ────────────────────────────────────────────────────────── */
.oc-testimonial-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
.oc-section-testimonials { background: var(--oc-navy-deep); }
.oc-section-testimonials .oc-section-title { color: var(--oc-white); }
.oc-testimonial-card { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--oc-radius-lg); padding: 1.5rem; }
.oc-stars { color: var(--oc-gold); font-size: 1.1rem; letter-spacing: 0.05em; margin-bottom: 0.75rem; }
.oc-testimonial-card blockquote { font-size: 0.95rem; color: rgba(255,255,255,0.85); font-style: italic; line-height: 1.7; margin-bottom: 1rem; }
.oc-testimonial-card figcaption { font-size: 0.875rem; color: rgba(255,255,255,0.6); }
.oc-reviewer-city { margin-left: 0.5rem; }
.oc-testimonial-single blockquote { font-family: var(--oc-font-serif); font-size: 1.15rem; font-style: italic; line-height: 1.8; border-left: 4px solid var(--oc-gold); padding-left: 1.5rem; margin: 1.5rem 0; color: var(--oc-text-mid); }

/* ── Stats bar ───────────────────────────────────────────────────────────── */
.oc-stats-bar { background: var(--oc-navy-deep); color: var(--oc-white); padding-block: 2rem; }
.oc-stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1.5rem; }
.oc-stat { text-align: center; }
.oc-stat-value { display: block; font-family: var(--oc-font-serif); font-size: 1.75rem; font-weight: 700; color: var(--oc-gold); line-height: 1; margin-bottom: 0.35rem; }
.oc-stat-label { font-size: 0.8rem; color: rgba(255,255,255,0.7); }

/* ── CTA banners ─────────────────────────────────────────────────────────── */
.oc-cta-banner { background: var(--oc-navy); color: var(--oc-white); }
.oc-cta-banner h2 { font-family: var(--oc-font-serif); color: var(--oc-white); }
.oc-cta-banner p { color: rgba(255,255,255,0.85); }
/* Prose rendered inside the navy CTA banner must be light, not the default dark
   body color (otherwise the CTA body text is navy-on-navy and unreadable). */
.oc-cta-banner .oc-prose p,
.oc-cta-banner .oc-prose li { color: rgba(255,255,255,0.88); }
.oc-cta-banner .oc-prose h2,
.oc-cta-banner .oc-prose h3 { color: var(--oc-white); }
.oc-cta-banner .oc-prose a { color: var(--oc-gold-light); }
.oc-cta-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.oc-cta-section { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--oc-cream-dark); }
.oc-cta-section-center { text-align: center; }
.oc-intext-cta { background: var(--oc-cream); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.5rem 2rem; margin: 2.5rem 0; }
.oc-intext-cta-inner { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.oc-intext-cta-text { flex: 1; font-size: 0.95rem; color: var(--oc-navy-deep); }

/* ── Article ─────────────────────────────────────────────────────────────── */
.oc-content-layout { display: grid; grid-template-columns: 1fr; gap: 2rem; padding-block: 2.5rem; }
.oc-article-header { margin-bottom: 2rem; }
.oc-article-title { font-family: var(--oc-font-serif); color: var(--oc-navy-deep); margin-bottom: 0.75rem; }
.oc-article-subtitle { font-size: 1.1rem; color: var(--oc-text-muted); margin-top: 0.5rem; }
.oc-article-meta { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.875rem; color: var(--oc-text-muted); margin-top: 0.75rem; }
.oc-article-tags { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.oc-article-hero { margin-bottom: 2rem; border-radius: var(--oc-radius-lg); overflow: hidden; }
.oc-article-hero img { width: 100%; max-height: 480px; object-fit: cover; }
.oc-article-body { font-size: 1.05rem; line-height: 1.8; color: var(--oc-text); }
.oc-article-body h2 { font-family: var(--oc-font-serif); color: var(--oc-navy-deep); margin-top: 2.5rem; margin-bottom: 0.75rem; }
.oc-article-body h3 { font-family: var(--oc-font-serif); color: var(--oc-navy); margin-top: 2rem; margin-bottom: 0.5rem; }
.oc-article-body ul, .oc-article-body ol { margin: 1rem 0 1rem 1.5rem; }
.oc-article-body li { margin-top: 0.4rem; }
.oc-article-body blockquote { border-left: 4px solid var(--oc-gold); padding-left: 1.25rem; color: var(--oc-text-mid); font-style: italic; font-family: var(--oc-font-serif); margin: 1.5rem 0; }
.oc-article-body a { color: var(--oc-navy); }
.oc-article-body a:hover { color: var(--oc-navy-deep); }
.oc-read-time { color: var(--oc-text-muted); }
.oc-related { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--oc-cream-dark); }
.oc-related h2 { font-family: var(--oc-font-serif); margin-bottom: 1.25rem; }
.oc-card-link { display: flex; justify-content: space-between; align-items: center; padding: 1rem 1.25rem; text-decoration: none; color: var(--oc-navy-deep); }
.oc-card-link:hover { color: var(--oc-navy); }
.oc-card-arrow { color: var(--oc-gold); }

/* ── FAQ / accordion ─────────────────────────────────────────────────────── */
.oc-accordion { list-style: none; }
.oc-accordion dt + dd { margin-bottom: 0; }
.oc-accordion-toggle { width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--oc-cream-dark); padding: 1rem 0; font-size: 1rem; font-weight: 600; color: var(--oc-navy-deep); cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.oc-accordion-toggle::after { content: '+'; font-size: 1.25rem; font-weight: 400; color: var(--oc-gold); transition: transform var(--oc-transition); }
.oc-accordion-toggle[aria-expanded="true"]::after { transform: rotate(45deg); }
.oc-accordion-panel { padding: 0 0 1.25rem; font-size: 0.95rem; color: var(--oc-text-mid); line-height: 1.7; }
.oc-faq-single h1 { font-family: var(--oc-font-serif); font-size: clamp(1.35rem, 2.5vw, 1.875rem); }
.oc-faq-short-answer { background: var(--oc-cream); border-left: 4px solid var(--oc-gold); border-radius: 0 var(--oc-radius) var(--oc-radius) 0; padding: 1rem 1.25rem; margin: 1.5rem 0; font-size: 0.95rem; color: var(--oc-navy-deep); }
.oc-faq-answer { margin: 1.5rem 0; }
.oc-faq-cta { margin-top: 2.5rem; border-top: 1px solid var(--oc-cream-dark); padding-top: 2rem; }
.oc-related-faqs { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--oc-cream-dark); }
.oc-faq-list { list-style: none; padding: 0; }
.oc-faq-list li + li { margin-top: 0.5rem; border-top: 1px solid var(--oc-cream-dark); padding-top: 0.5rem; }
.oc-faq-full-link { font-size: 0.875rem; font-weight: 600; color: var(--oc-navy); }
.oc-inline-faq { margin-top: 3rem; }
.oc-inline-faq h2 { font-family: var(--oc-font-serif); margin-bottom: 1rem; }

/* ── Glossary ────────────────────────────────────────────────────────────── */
.oc-glossary-alpha-nav { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 1.5rem 0; }
.oc-alpha-link { display: inline-block; width: 2rem; height: 2rem; line-height: 2rem; text-align: center; border-radius: var(--oc-radius); background: var(--oc-cream); color: var(--oc-navy); text-decoration: none; font-size: 0.875rem; font-weight: 700; border: 1px solid var(--oc-cream-dark); }
.oc-alpha-link:hover, .oc-alpha-active { background: var(--oc-navy); color: var(--oc-white); border-color: var(--oc-navy); }
.oc-glossary-letter { font-family: var(--oc-font-serif); font-size: 1.5rem; margin: 2rem 0 0.75rem; color: var(--oc-navy-deep); border-bottom: 2px solid var(--oc-gold); padding-bottom: 0.25rem; }
.oc-glossary-entries { list-style: none; padding: 0; }
.oc-glossary-entry { padding: 0.75rem 0; border-top: 1px solid var(--oc-cream-dark); display: grid; grid-template-columns: 200px 1fr; gap: 1.5rem; align-items: start; }
.oc-glossary-entry dt { font-weight: 700; font-size: 0.95rem; }
.oc-glossary-entry dt a { text-decoration: none; color: var(--oc-navy); }
.oc-glossary-entry dt a:hover { color: var(--oc-navy-deep); }
.oc-glossary-entry dd { font-size: 0.9rem; color: var(--oc-text-muted); line-height: 1.6; }
.oc-term-header { margin-bottom: 2rem; }
.oc-term-alias { font-size: 0.9rem; color: var(--oc-text-muted); margin-top: 0.5rem; }
.oc-term-definition { font-size: 1.05rem; line-height: 1.8; }
.oc-term-example { background: var(--oc-cream); border-left: 4px solid var(--oc-gold); border-radius: 0 var(--oc-radius) var(--oc-radius) 0; padding: 1rem 1.25rem; margin: 1.5rem 0; }
.oc-term-example h2 { font-family: var(--oc-font-serif); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--oc-navy); margin-bottom: 0.4rem; }
.oc-term-coverage-links { margin-top: 2rem; }
.oc-term-coverage-links h2 { font-family: var(--oc-font-serif); font-size: 1rem; margin-bottom: 0.75rem; }

/* ── Filter nav ──────────────────────────────────────────────────────────── */
.oc-topic-filter { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }

/* ── Insurance type page ─────────────────────────────────────────────────── */
.oc-insurance-hero { background: var(--oc-cream); padding-block: clamp(2rem, 5vw, 4rem); border-bottom: 1px solid var(--oc-cream-dark); }
.oc-insurance-hero-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; }
.oc-insurance-subtitle { font-size: 1.1rem; color: var(--oc-text-mid); margin: 0.75rem 0 1.5rem; }
.oc-insurance-hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.oc-insurance-hero .oc-btn-outline { border-color: var(--oc-navy); color: var(--oc-navy); }
.oc-insurance-hero-img { border-radius: var(--oc-radius-lg); overflow: hidden; }
.oc-insurance-hero-img img { width: 100%; height: 300px; object-fit: cover; }
.oc-state-stats, .oc-state-note { margin: 2rem 0; }
.oc-insurance-carriers { margin-top: 3rem; }
.oc-insurance-carriers h2 { font-family: var(--oc-font-serif); margin-bottom: 1.25rem; }
.oc-zip-codes { font-size: 0.875rem; color: var(--oc-text-muted); margin-top: 1.5rem; }
.oc-state-dept-link { margin-top: 1.5rem; }
.oc-avg-premium { font-size: 0.875rem; color: var(--oc-text-muted); }

/* ── Archive headers ─────────────────────────────────────────────────────── */
.oc-archive-header { padding-block: 2.5rem 1.5rem; }
.oc-archive-title { font-family: var(--oc-font-serif); color: var(--oc-navy-deep); margin-bottom: 0.5rem; }
.oc-archive-description { color: var(--oc-text-muted); font-size: 1.05rem; }

/* ── Search ──────────────────────────────────────────────────────────────── */
.oc-search-count { color: var(--oc-text-muted); font-size: 0.9rem; margin-bottom: 1.5rem; }
.oc-search-result { padding: 1.25rem 0; border-top: 1px solid var(--oc-cream-dark); }
.oc-search-result-title { font-family: var(--oc-font-serif); font-size: 1.1rem; margin-bottom: 0.25rem; }
.oc-search-result-type { font-size: 0.8rem; color: var(--oc-gold); text-transform: uppercase; font-weight: 700; letter-spacing: 0.04em; margin-bottom: 0.4rem; }
.oc-search-result-excerpt { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.6; }
.oc-search-suggestions { position: absolute; top: 100%; left: 0; right: 0; background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius); box-shadow: var(--oc-shadow-lg); list-style: none; padding: 0.5rem 0; z-index: 50; }
.oc-search-suggestions li a { display: block; padding: 0.5rem 1rem; text-decoration: none; color: var(--oc-text); font-size: 0.9rem; }
.oc-search-suggestions li a:hover { background: var(--oc-cream); }
.oc-search-suggestions small { color: var(--oc-gold); font-size: 0.75rem; margin-left: 0.5rem; font-weight: 600; text-transform: uppercase; }

/* ── 404 ─────────────────────────────────────────────────────────────────── */
.oc-404 { padding-block: 4rem; max-width: 600px; }
.oc-404-title { font-family: var(--oc-font-serif); font-size: 2.5rem; margin-bottom: 1rem; color: var(--oc-navy-deep); }
.oc-404-subtitle { color: var(--oc-text-muted); margin-bottom: 1.5rem; }
.oc-404-links { margin: 2rem 0; }
.oc-404-links h2 { font-family: var(--oc-font-serif); margin-bottom: 0.75rem; }
.oc-404-links ul { padding-left: 1.25rem; }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.oc-site-footer { background: var(--oc-navy-deep); color: rgba(255,255,255,0.8); }
.oc-footer-main { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 3rem; padding-block: 3rem; }
.oc-footer-brand .oc-logo-text { font-family: var(--oc-font-serif); color: var(--oc-white); font-size: 1.35rem; display: inline-block; margin-bottom: 0.75rem; text-decoration: none; }
.oc-footer-brand .custom-logo { height: 40px; width: auto; filter: brightness(0) invert(1) opacity(0.9); margin-bottom: 0.75rem; }
.oc-footer-tagline { font-size: 0.9rem; color: rgba(255,255,255,0.65); margin-bottom: 1rem; }
.oc-footer-brand a { color: rgba(255,255,255,0.8); text-decoration: none; }
.oc-footer-brand a:hover { color: var(--oc-gold-light); }
.oc-trust-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1rem; }
.oc-trust-badges .oc-badge { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.75); border: 1px solid rgba(255,255,255,0.12); }
.oc-footer-nav h3 { font-family: var(--oc-font-serif); color: var(--oc-gold-light); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 1rem; }
.oc-menu-footer { list-style: none; padding: 0; }
.oc-menu-footer li + li { margin-top: 0.5rem; }
.oc-menu-footer a { color: rgba(255,255,255,0.65); text-decoration: none; font-size: 0.9rem; transition: color var(--oc-transition); }
.oc-menu-footer a:hover { color: var(--oc-gold-light); }
.oc-footer-legal { background: rgba(0,0,0,0.3); padding-block: 1.25rem; border-top: 1px solid rgba(255,255,255,0.06); }
.oc-menu-legal { display: flex; list-style: none; padding: 0; gap: 1.25rem; flex-wrap: wrap; margin-bottom: 0.75rem; }
.oc-menu-legal a { color: rgba(255,255,255,0.5); font-size: 0.8rem; text-decoration: none; }
.oc-menu-legal a:hover { color: var(--oc-gold-light); }
.oc-legal-text { font-size: 0.8rem; color: rgba(255,255,255,0.45); line-height: 1.6; }
.oc-legal-disclaimer { margin-top: 0.35rem; }

/* ── Breadcrumbs ─────────────────────────────────────────────────────────── */
.oc-breadcrumbs { margin-bottom: 1.5rem; }
.oc-breadcrumbs ol { display: flex; list-style: none; padding: 0; flex-wrap: wrap; gap: 0.25rem; align-items: center; font-size: 0.8rem; color: var(--oc-text-muted); }
.oc-breadcrumbs li + li::before { content: '/'; margin-right: 0.25rem; }
.oc-breadcrumbs a { text-decoration: none; color: var(--oc-text-muted); }
.oc-breadcrumbs a:hover { color: var(--oc-navy); }
.oc-breadcrumbs [aria-current="page"] { color: var(--oc-navy-deep); font-weight: 500; }

/* ── Pagination ──────────────────────────────────────────────────────────── */
.nav-links { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 2.5rem; }
.page-numbers { display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: var(--oc-radius); border: 1px solid var(--oc-gray-300); font-size: 0.875rem; text-decoration: none; color: var(--oc-navy); }
.page-numbers.current { background: var(--oc-navy); border-color: var(--oc-navy); color: var(--oc-white); }
.page-numbers:hover:not(.current) { border-color: var(--oc-navy); color: var(--oc-navy); }
.prev.page-numbers, .next.page-numbers { width: auto; padding: 0 0.75rem; }

/* ── Search form ─────────────────────────────────────────────────────────── */
.search-form { display: flex; gap: 0.5rem; max-width: 500px; margin-bottom: 1.5rem; }
.search-form input[type="search"] { flex: 1; padding: 0.55rem 0.9rem; border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius); font-size: 0.95rem; font-family: inherit; background: var(--oc-white); color: var(--oc-text); }
.search-form input[type="search"]:focus { outline: 2px solid var(--oc-navy); outline-offset: 2px; border-color: transparent; }
.search-submit { padding: 0.55rem 1rem; background: var(--oc-gold); color: var(--oc-navy-deep); border: none; border-radius: var(--oc-radius); font-size: 0.875rem; font-weight: 700; cursor: pointer; }
.search-submit:hover { background: var(--oc-gold-light); }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .oc-footer-main { grid-template-columns: 1fr 1fr; }
  .oc-insurance-hero-inner { grid-template-columns: 1fr; }
  .oc-insurance-hero-img { display: none; }
}

@media (max-width: 680px) {
  .oc-nav-primary { display: none; position: absolute; top: 64px; left: 0; right: 0; background: var(--oc-navy-deep); border-bottom: 1px solid rgba(255,255,255,0.08); padding: 1rem; z-index: 99; box-shadow: var(--oc-shadow-lg); }
  .oc-nav-primary.is-open { display: block; }
  .oc-menu { flex-direction: column; }
  .oc-nav-toggle { display: flex; align-items: center; justify-content: center; }
  .oc-footer-main { grid-template-columns: 1fr; gap: 2rem; }
  .oc-cta-banner-inner { flex-direction: column; }
  .oc-carrier-header { flex-direction: column; }
  .oc-glossary-entry { grid-template-columns: 1fr; gap: 0.25rem; }
  .oc-header-phone { display: none; }
  .oc-stats-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* ── Accessibility ───────────────────────────────────────────────────────── */
:focus-visible { outline: 2px solid var(--oc-gold); outline-offset: 3px; border-radius: 2px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

/* ── Page hero (inner page hero, smaller than home hero) ─────────────────── */
.oc-page-hero { background: var(--oc-navy); color: var(--oc-white); padding-block: clamp(2.5rem, 5vw, 4rem); }
.oc-page-hero-navy { background: var(--oc-navy-deep); }
.oc-page-hero-cream { background: var(--oc-cream); color: var(--oc-text); }
.oc-page-hero-title { font-family: var(--oc-font-serif); color: var(--oc-white); font-size: clamp(1.6rem, 3.5vw, 2.25rem); margin-bottom: 0.75rem; }
.oc-page-hero-cream .oc-page-hero-title { color: var(--oc-navy-deep); }
.oc-page-hero-subtitle { font-size: 1.05rem; color: rgba(255,255,255,0.85); max-width: 680px; line-height: 1.6; }
.oc-page-hero-cream .oc-page-hero-subtitle { color: var(--oc-text-mid); }

/* ── Content layout: main + sidebar ─────────────────────────────────────── */
.oc-content-layout { padding-block: 2.5rem; }
.oc-content-layout:has(.oc-claims-nav) { display: grid; grid-template-columns: 1fr 240px; gap: 3rem; align-items: start; }

/* ── Prose ───────────────────────────────────────────────────────────────── */
.oc-prose h2 { font-family: var(--oc-font-serif); color: var(--oc-navy-deep); margin-top: 2rem; margin-bottom: 0.75rem; font-size: 1.35rem; }
.oc-prose h2:first-child { margin-top: 0; }
.oc-prose h3 { font-family: var(--oc-font-serif); color: var(--oc-navy); margin-top: 1.5rem; margin-bottom: 0.5rem; font-size: 1.1rem; }
.oc-prose p { margin-bottom: 1rem; line-height: 1.75; font-size: 1.05rem; color: var(--oc-text); }
.oc-prose ul, .oc-prose ol { margin: 1rem 0 1.25rem 1.5rem; }
.oc-prose li { margin-top: 0.4rem; font-size: 1.02rem; }
.oc-prose a { color: var(--oc-navy); }
.oc-prose a:hover { color: var(--oc-navy-deep); }
.oc-prose table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.9rem; }
.oc-notice { background: var(--oc-cream); border-left: 4px solid var(--oc-gold); border-radius: 0 var(--oc-radius) var(--oc-radius) 0; padding: 0.9rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.95rem; color: var(--oc-navy-deep); font-weight: 500; }

/* ── Steps (numbered process list) ──────────────────────────────────────── */
.oc-steps { list-style: none; padding: 0; margin: 1.5rem 0; }
.oc-step { display: flex; gap: 1rem; align-items: flex-start; padding: 1.25rem 0; border-top: 1px solid var(--oc-cream-dark); }
.oc-step:first-child { border-top: none; padding-top: 0; }
.oc-step-number { flex-shrink: 0; width: 2rem; height: 2rem; background: var(--oc-navy); color: var(--oc-white); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.875rem; }
.oc-step-content { flex: 1; }
.oc-step-content strong { display: block; font-size: 1rem; color: var(--oc-navy-deep); margin-bottom: 0.35rem; }
.oc-step-content p { margin: 0; font-size: 0.95rem; color: var(--oc-text-mid); line-height: 1.65; }

/* ── Check list ──────────────────────────────────────────────────────────── */
.oc-check-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
.oc-check-list li { padding: 0.45rem 0 0.45rem 1.75rem; position: relative; font-size: 1rem; border-top: 1px solid var(--oc-cream-dark); }
.oc-check-list li:first-child { border-top: none; }
.oc-check-list li::before { content: '✓'; position: absolute; left: 0; color: var(--oc-gold); font-weight: 700; }

/* ── Icon list ───────────────────────────────────────────────────────────── */
.oc-icon-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; }
.oc-icon-list-item { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.6rem 0; border-top: 1px solid var(--oc-cream-dark); font-size: 0.97rem; }
.oc-icon-list-item:first-child { border-top: none; }
.oc-icon-list-item > span:first-child { flex-shrink: 0; color: var(--oc-gold); font-weight: 700; width: 1.25rem; text-align: center; }

/* ── Claims sidebar nav ──────────────────────────────────────────────────── */
.oc-claims-nav { background: var(--oc-cream); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.25rem; position: sticky; top: 80px; }
.oc-claims-nav h3 { font-family: var(--oc-font-serif); font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--oc-navy-deep); margin-bottom: 0.75rem; }
.oc-claims-nav ul { list-style: none; padding: 0; }
.oc-claims-nav li { border-top: 1px solid var(--oc-cream-dark); }
.oc-claims-nav li:first-child { border-top: none; }
.oc-claims-nav a { display: block; padding: 0.55rem 0; font-size: 0.9rem; color: var(--oc-navy); text-decoration: none; transition: color var(--oc-transition); }
.oc-claims-nav a:hover { color: var(--oc-navy-deep); text-decoration: underline; }

/* ── Carrier numbers table ───────────────────────────────────────────────── */
.oc-carrier-numbers-table { width: 100%; border-collapse: collapse; margin: 1rem 0 2rem; font-size: 0.9rem; }
.oc-carrier-numbers-table th { background: var(--oc-navy); color: var(--oc-white); text-align: left; padding: 0.6rem 0.85rem; font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.05em; }
.oc-carrier-numbers-table td { padding: 0.65rem 0.85rem; border-bottom: 1px solid var(--oc-cream-dark); color: var(--oc-text); }
.oc-carrier-numbers-table tr:hover td { background: var(--oc-cream); }

/* ── Two column layout ───────────────────────────────────────────────────── */
.oc-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; margin-block: 2rem; }
.oc-two-col-text h2 { font-family: var(--oc-font-serif); color: var(--oc-navy-deep); margin-bottom: 1rem; }
.oc-two-col-media img { border-radius: var(--oc-radius-lg); width: 100%; }

/* ── Forms ───────────────────────────────────────────────────────────────── */
.oc-form { max-width: 600px; }
.oc-form-group { margin-bottom: 1.25rem; }
.oc-form-label { display: block; font-size: 0.9rem; font-weight: 600; color: var(--oc-navy-deep); margin-bottom: 0.35rem; }
.oc-form-input, .oc-form-select, .oc-form-textarea { width: 100%; padding: 0.65rem 0.9rem; border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius); font-size: 0.95rem; font-family: inherit; background: var(--oc-white); color: var(--oc-text); transition: border-color var(--oc-transition); }
.oc-form-input:focus, .oc-form-select:focus, .oc-form-textarea:focus { outline: 2px solid var(--oc-navy); outline-offset: 2px; border-color: transparent; }
.oc-form-textarea { min-height: 120px; resize: vertical; }
.oc-form-btn { margin-top: 0.5rem; }
.oc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.oc-trust-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--oc-cream-dark); font-size: 0.85rem; color: var(--oc-text-muted); }
.oc-trust-item-sm { display: flex; align-items: center; gap: 0.35rem; }

/* ── Coverage gap calculator ─────────────────────────────────────────────── */
.oc-gap-question { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.25rem 1.5rem; margin-bottom: 1rem; transition: border-color var(--oc-transition); }
.oc-gap-question:has(input:checked) { border-color: var(--oc-navy); background: var(--oc-cream); }
.oc-gap-question p { font-weight: 600; font-size: 1rem; color: var(--oc-navy-deep); margin-bottom: 0.75rem; }
.oc-gap-options { display: flex; gap: 1rem; flex-wrap: wrap; }
.oc-gap-options label { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; font-size: 0.95rem; }
.oc-gap-hint { font-size: 0.85rem; color: var(--oc-text-muted); margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px dashed var(--oc-cream-dark); }

/* ── Map placeholder ─────────────────────────────────────────────────────── */
.oc-map-placeholder { background: var(--oc-cream); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); height: 300px; display: flex; align-items: center; justify-content: center; color: var(--oc-text-muted); font-size: 0.9rem; }

/* ── City grid ───────────────────────────────────────────────────────────── */
.oc-city-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 0.5rem; margin: 1.5rem 0; }
.oc-city-grid a { padding: 0.5rem 0.75rem; background: var(--oc-cream); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius); font-size: 0.875rem; color: var(--oc-navy); text-decoration: none; transition: background var(--oc-transition); }
.oc-city-grid a:hover { background: var(--oc-navy); color: var(--oc-white); }

/* ── Hero intent buttons ─────────────────────────────────────────────────── */
.oc-hero-location { font-size: 0.875rem; color: rgba(255,255,255,0.7); letter-spacing: 0.04em; margin-bottom: 0.75rem; }
.oc-hero-intent { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.5rem; }
.oc-intent-btn { display: inline-flex; align-items: center; gap: 0.5rem; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.25); border-radius: 2rem; padding: 0.5rem 1rem; color: var(--oc-white); font-size: 0.875rem; text-decoration: none; transition: background var(--oc-transition); }
.oc-intent-btn:hover { background: rgba(255,255,255,0.2); color: var(--oc-white); }
.oc-intent-btn svg { flex-shrink: 0; }
.oc-btn-outline-light { background: transparent; border: 2px solid rgba(255,255,255,0.6); color: var(--oc-white); }
.oc-btn-outline-light:hover { background: rgba(255,255,255,0.15); border-color: var(--oc-white); color: var(--oc-white); }

/* ── Section eyebrow labels ──────────────────────────────────────────────── */
.oc-section-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-gold); margin-bottom: 0.5rem; }
.oc-eyebrow-light { color: var(--oc-gold-light); }
.oc-section-title-light { color: var(--oc-white); }

/* Carrier single pages left-align their section headers and copy to match the
   Webflow carrier-review layout (the global .oc-section-title is centered). */
.single-oc_carrier .oc-section-title,
.single-oc_carrier .oc-section-eyebrow,
.single-oc_carrier .oc-section-subtitle { text-align: left; margin-left: 0; margin-right: 0; }

/* ── Nav search (magnifier popover) ──────────────────────────────────────── */
.oc-nav-search { position: relative; }
.oc-nav-search-toggle { list-style: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px; color: #fff; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); }
.oc-nav-search-toggle::-webkit-details-marker { display: none; }
.oc-nav-search-toggle::marker { content: ""; }
.oc-nav-search-toggle:hover, .oc-nav-search[open] .oc-nav-search-toggle { border-color: var(--oc-gold); color: var(--oc-gold); }
.oc-nav-search-form { position: absolute; right: 0; top: calc(100% + 0.4rem); z-index: 60; display: flex; gap: 0.4rem; padding: 0.6rem; min-width: 320px; background: #fff; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 10px; box-shadow: 0 14px 40px rgba(15,34,54,0.18); }
.oc-nav-search-form input[type="search"] { flex: 1 1 auto; min-width: 0; padding: 0.55rem 0.75rem; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 7px; font-size: 16px; }
.oc-nav-search-form .oc-btn { white-space: nowrap; flex: 0 0 auto; }
/* On phones/tablets/foldables the search drops as a clean fixed bar under the
   header (avoids the absolute popover overflowing or being clipped). 16px input
   font also stops iOS from zooming on focus. */
@media (max-width: 1024px) {
  .oc-nav-search-form { position: fixed; top: 60px; left: 0.75rem; right: 0.75rem; min-width: 0; max-width: none; width: auto; }
}
body.oc-nav-collapsed .oc-nav-search-form { position: fixed; top: 60px; left: 0.75rem; right: 0.75rem; min-width: 0; max-width: none; width: auto; }
/* Never let the absolute dropdowns exceed the viewport on small phones. */
@media (max-width: 600px) {
  .oc-state-panel, .oc-nav-search-form { min-width: 0; max-width: calc(100vw - 1.25rem); }
}

/* ── State rule: nav pill + form banner + body[data-state] show/hide ─────── */
.oc-state-pill { position: relative; }
.oc-state-pill-anchor { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.4rem 0.85rem; border-radius: 999px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); color: #fff; font-size: 0.85rem; font-weight: 600; white-space: nowrap; }
.oc-state-pill-anchor::-webkit-details-marker { display: none; }
.oc-state-pill-anchor::marker { content: ""; }
.oc-state-pill-anchor:hover, .oc-state-pill[open] .oc-state-pill-anchor { border-color: var(--oc-gold); }
.oc-state-glyph { font-size: 0.95rem; line-height: 1; }
.oc-state-glyph:empty { display: none; }  /* states with no glyph (no pushpin emoji) */
.oc-state-pill-caret { font-size: 0.65rem; opacity: 0.8; }
.oc-state-panel { position: absolute; right: 0; top: calc(100% + 0.4rem); z-index: 60; min-width: 250px; max-height: 360px; overflow-y: auto; background: #fff; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 10px; box-shadow: 0 14px 40px rgba(15,34,54,0.18); padding: 0.4rem; }
.oc-state-option { display: flex; align-items: center; gap: 0.6rem; padding: 0.55rem 0.7rem; border-radius: 7px; text-decoration: none; color: var(--oc-navy-deep); }
.oc-state-option:hover { background: var(--oc-cream, #f5edd8); }
.oc-state-option.is-active { background: rgba(199,162,75,0.14); }
.oc-state-option-text { display: flex; flex-direction: column; line-height: 1.2; flex: 1 1 auto; }
.oc-state-option-text strong { font-size: 0.9rem; }
.oc-state-option-text span { font-size: 0.75rem; color: var(--oc-text-mid); }
.oc-state-served { color: var(--oc-gold) !important; font-weight: 600; font-size: 0.68rem !important; text-transform: uppercase; letter-spacing: 0.04em; }

/* In-form state chooser variant (sits on the cream form banner, dark text). */
.oc-form-state-pill { position: relative; }
.oc-form-state-pill .oc-state-pill-anchor { color: var(--oc-navy-deep); background: #fff; border-color: var(--oc-border, #e5e0d3); font-family: var(--oc-font-serif); font-size: 1.05rem; padding: 0.3rem 0.7rem; }
.oc-form-state-pill .oc-state-panel { left: 0; right: auto; }

.oc-form-state { border-radius: 10px; padding: 1rem 1.15rem; margin: 0 0 1.5rem; border: 1px solid var(--oc-border, #e5e0d3); background: var(--oc-cream, #f5edd8); }
.oc-form-state--wait { background: rgba(181,115,46,0.08); border-color: rgba(181,115,46,0.35); }
.oc-form-state-top { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem 0.9rem; }
.oc-form-state-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--oc-text-mid); }
.oc-form-state-name { display: inline-flex; align-items: center; gap: 0.35rem; font-family: var(--oc-font-serif); font-size: 1.15rem; color: var(--oc-navy-deep); }
.oc-form-state-change { margin-left: auto; font-size: 0.8rem; font-weight: 600; color: var(--oc-gold); text-decoration: none; }
.oc-form-state-change:hover { text-decoration: underline; }
.oc-form-state-status { margin: 0.5rem 0 0; font-size: 0.9rem; line-height: 1.5; color: var(--oc-text-mid); }
.oc-form-state-top { cursor: pointer; }
.oc-form-state-select { flex: 0 1 300px; width: auto; max-width: 100%; margin: 0; }
@media (max-width: 600px) { .oc-form-state-select { flex-basis: 100%; } }

/* Show/hide state-specific content by body[data-state] (server-rendered, no JS).
   Wrap variants in [data-when-state~="GA"] / "national" / "all". Only the
   non-matching variants are hidden, so matching ones keep their natural display. */
body[data-state="GA"] [data-when-state]:not([data-when-state~="GA"]):not([data-when-state~="all"]),
body[data-state="national"] [data-when-state]:not([data-when-state~="national"]):not([data-when-state~="all"]) { display: none !important; }

/* ── Insurance carrier panel ("Carriers in Our Review Set") ──────────────── */
/* Full-bleed navy section matching the Webflow carrier panel, with a card grid
   rendered from the synced featured-carriers HTML (.oc-ins-cc-*). */
.oc-carrier-panel { background: var(--oc-navy); color: var(--oc-white); }
.oc-carrier-panel .oc-section-title-light { margin-bottom: 0.75rem; }
.oc-carrier-panel-sub { max-width: 60ch; margin: 0 0 2rem; color: rgba(255,255,255,0.82); font-size: 1.05rem; line-height: 1.6; }
.oc-ins-cc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.oc-ins-cc {
    display: flex; flex-direction: column; height: 100%;
    padding: 1.5rem; border-radius: var(--oc-radius, 8px);
    background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12);
    text-decoration: none; transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.oc-ins-cc:hover, .oc-ins-cc:focus-visible { background: rgba(255,255,255,0.09); border-color: var(--oc-gold); transform: translateY(-2px); }
.oc-ins-cc-name { margin: 0 0 0.5rem; font-family: var(--oc-font-serif); font-size: 1.15rem; color: var(--oc-white); }
.oc-ins-cc-tag { margin: 0 0 1rem; font-size: 0.9rem; line-height: 1.5; color: rgba(255,255,255,0.78); flex-grow: 1; }
.oc-ins-cc-lnk { font-size: 0.85rem; font-weight: 600; color: var(--oc-gold-light); }
.oc-ins-cc-lnk::after { content: " \2192"; }
@media (max-width: 1024px) { .oc-ins-cc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .oc-ins-cc-grid { grid-template-columns: 1fr; } }

/* ── How it works ─────────────────────────────────────────────────────────── */
.oc-how-it-works { background: var(--oc-white); }
.oc-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; margin-top: 2rem; }
.oc-step { display: flex; gap: 1.25rem; align-items: flex-start; }
.oc-step-number { flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--oc-navy); color: var(--oc-white); font-family: var(--oc-font-serif); font-size: 1.1rem; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.oc-step-body h3 { font-size: 1rem; margin-bottom: 0.5rem; }
.oc-step-body p { font-size: 0.9rem; color: var(--oc-text-mid); }
.oc-step-time { display: inline-block; margin-top: 0.5rem; font-size: 0.8rem; color: var(--oc-gold); font-weight: 600; }

/* ── Pain points ─────────────────────────────────────────────────────────── */
.oc-section-cream { background: var(--oc-cream); }
.oc-pain-card { background: var(--oc-white); border-radius: var(--oc-radius-lg); padding: 1.75rem; box-shadow: var(--oc-shadow); }
.oc-pain-card h3 { font-size: 1.05rem; margin-bottom: 0.75rem; color: var(--oc-navy); }
.oc-pain-card p { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.7; }

/* ── Statistics ──────────────────────────────────────────────────────────── */
.oc-stats-section { background: var(--oc-navy); }
.oc-stats-section .oc-section-title { color: var(--oc-white); }
.oc-stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 2rem; }
.oc-stat-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: var(--oc-radius-lg); padding: 1.75rem; }
.oc-stat-number { font-family: var(--oc-font-serif); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; color: var(--oc-gold); line-height: 1; margin-bottom: 0.5rem; }
.oc-stat-question { font-style: italic; color: var(--oc-gold-light); font-size: 0.95rem; line-height: 1.55; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,0.08); }
.oc-stat-citation { font-size: 0.75rem; color: rgba(255,255,255,0.35); margin-top: 0.5rem; }
.oc-stat-disclaimer { font-size: 0.78rem; color: rgba(255,255,255,0.4); text-align: center; margin-top: 2rem; line-height: 1.6; max-width: 780px; margin-left: auto; margin-right: auto; }
.oc-stat-label { font-weight: 600; color: var(--oc-white); font-size: 0.9rem; margin-bottom: 0.5rem; }
.oc-stat-body { font-size: 0.825rem; color: rgba(255,255,255,0.65); line-height: 1.6; }

/* ── Real outcomes ───────────────────────────────────────────────────────── */
.oc-outcome-card { background: var(--oc-white); border-radius: var(--oc-radius-lg); padding: 1.75rem; box-shadow: var(--oc-shadow); display: flex; flex-direction: column; gap: 0.75rem; }
.oc-outcome-savings { font-family: var(--oc-font-serif); font-size: 1.4rem; font-weight: 700; color: var(--oc-gold); }
.oc-outcome-card blockquote { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.7; font-style: normal; }
.oc-outcome-card figcaption { font-size: 0.8rem; font-weight: 600; color: var(--oc-text-muted); }

/* ── Agent comparison ────────────────────────────────────────────────────── */
.oc-compare-grid { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: 0; border-radius: var(--oc-radius-lg); overflow: hidden; box-shadow: var(--oc-shadow-lg); margin-top: 2rem; }
.oc-compare-col { padding: 2rem; display: flex; flex-direction: column; gap: 1rem; }
.oc-compare-col-dim { background: var(--oc-bg); }
.oc-compare-col-highlight { background: var(--oc-navy); color: var(--oc-white); position: relative; }
.oc-compare-col-highlight h3 { color: var(--oc-white); }
/* Higher specificity than `.oc-compare-col li` below so the white text wins on the navy column. */
.oc-compare-col.oc-compare-col-highlight li { color: var(--oc-white); }
.oc-compare-badge { display: inline-block; background: var(--oc-gold); color: var(--oc-navy-deep); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.2rem 0.65rem; border-radius: 2rem; }
.oc-compare-col h3 { font-size: 1.05rem; }
.oc-compare-eg { font-size: 0.8rem; color: var(--oc-text-muted); }
.oc-compare-col-highlight .oc-compare-eg { color: rgba(255,255,255,0.55); }
.oc-compare-col ul { padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.oc-compare-col li { font-size: 0.875rem; padding-left: 1.1rem; position: relative; color: var(--oc-text-mid); }
.oc-compare-col li::before { content: '✓'; position: absolute; left: 0; color: var(--oc-gold); font-weight: 700; }
.oc-compare-col-dim li::before { content: '✗'; color: var(--oc-text-muted); }
.oc-compare-col .oc-btn { margin-top: 1rem; text-align: center; }

/* ── Carrier pills ───────────────────────────────────────────────────────── */
.oc-carrier-pills-section { text-align: center; }
.oc-pills-title { max-width: 720px; margin-inline: auto; }
.oc-carrier-pills { list-style: none; padding: 0; margin: 1.75rem 0 1.25rem; display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; }
.oc-carrier-pill { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: 2rem; padding: 0.5rem 1.1rem; font-size: 0.9rem; font-weight: 600; color: var(--oc-navy); box-shadow: var(--oc-shadow); margin: 0; }
.oc-pills-footer { font-size: 0.9rem; color: var(--oc-text-mid); font-style: italic; }

/* ── Coverage gaps (dark) ────────────────────────────────────────────────── */
.oc-coverage-gaps { background: var(--oc-navy-deep); }
.oc-gaps-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 3rem; align-items: start; }
.oc-gaps-intro { position: sticky; top: 88px; }
.oc-gaps-intro .oc-section-title { margin-bottom: 1rem; }
.oc-gaps-sub { color: rgba(255,255,255,0.65); font-size: 0.95rem; line-height: 1.7; margin-bottom: 1.5rem; }
.oc-gaps-list { display: flex; flex-direction: column; gap: 1.25rem; }
.oc-gap-item { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-left: 3px solid var(--oc-gold); border-radius: var(--oc-radius-lg); padding: 1.5rem 1.75rem; }
.oc-gap-title { color: var(--oc-white); font-size: 1.1rem; margin-bottom: 0.6rem; }
.oc-gap-body { color: rgba(255,255,255,0.7); font-size: 0.9rem; line-height: 1.7; }

/* ── Georgia update ──────────────────────────────────────────────────────── */
.oc-georgia-update { background: var(--oc-bg); }
.oc-georgia-card { background: var(--oc-white); border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius-lg); padding: 1.75rem; display: flex; flex-direction: column; box-shadow: var(--oc-shadow); }
.oc-georgia-label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-gold); margin-bottom: 0.75rem; }
.oc-georgia-title { font-size: 1.05rem; color: var(--oc-navy-deep); margin-bottom: 0.75rem; line-height: 1.35; }
.oc-georgia-body { font-size: 0.875rem; color: var(--oc-text-mid); line-height: 1.65; flex: 1; }
.oc-georgia-link { display: inline-block; margin-top: 1rem; font-size: 0.875rem; font-weight: 600; color: var(--oc-navy); text-decoration: none; }
.oc-georgia-link:hover { color: var(--oc-gold); }

/* ── Before you call us ──────────────────────────────────────────────────── */
.oc-before-list { list-style: none; padding: 0; margin: 2rem 0 0; display: flex; flex-direction: column; gap: 1.5rem; }
.oc-before-item { display: flex; gap: 1.25rem; align-items: flex-start; margin: 0; }
.oc-before-num { flex-shrink: 0; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--oc-navy); color: var(--oc-white); font-family: var(--oc-font-serif); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.oc-before-text h3 { font-size: 1.05rem; color: var(--oc-navy-deep); margin-bottom: 0.35rem; }
.oc-before-text p { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.7; }
.oc-before-cta { background: var(--oc-navy-deep); border-radius: var(--oc-radius-lg); padding: 2rem; margin-top: 2.5rem; text-align: center; }
.oc-before-cta p { color: rgba(255,255,255,0.8); font-size: 0.95rem; line-height: 1.7; margin-bottom: 1.25rem; }

/* ── Ask Olive ───────────────────────────────────────────────────────────── */
.oc-ask-olive { background: var(--oc-navy); text-align: center; }
.oc-ask-olive-brand { font-family: var(--oc-font-serif); font-size: 1.1rem; font-weight: 700; color: var(--oc-gold); margin-bottom: 0.5rem; }
.oc-ask-olive-sub { color: rgba(255,255,255,0.7); font-size: 0.95rem; line-height: 1.7; max-width: 560px; margin: 0.75rem auto 1.75rem; }
.oc-ask-olive-form { max-width: 560px; margin-inline: auto; text-align: left; }
.oc-ask-olive-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem; }
.oc-ask-olive-form .oc-form-textarea { margin-bottom: 0.75rem; width: 100%; }
.oc-ask-olive-form .oc-form-btn { width: 100%; }
.oc-ask-olive-disclaimer { font-size: 0.78rem; color: rgba(255,255,255,0.5); text-align: center; margin-top: 0.875rem; }
.oc-ask-olive-disclaimer a { color: var(--oc-gold-light); }

/* ── Agent compare lead ──────────────────────────────────────────────────── */
.oc-agent-compare-lead { font-family: var(--oc-font-serif); font-size: 1.25rem; font-weight: 700; color: var(--oc-navy-deep); margin-top: 0.25rem; margin-bottom: 0.25rem; }

/* ── Section head row (title + view-all link) ────────────────────────────── */
.oc-section-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.oc-section-head-link { font-size: 0.875rem; font-weight: 600; color: var(--oc-navy); text-decoration: none; white-space: nowrap; }
.oc-section-head-link:hover { color: var(--oc-gold); }

/* ── Home insights cards ─────────────────────────────────────────────────── */
.oc-home-insights { background: var(--oc-bg); }
.oc-insight-card { background: var(--oc-white); border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius-lg); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--oc-shadow); transition: box-shadow var(--oc-transition), transform var(--oc-transition); }
.oc-insight-card:hover { box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-insight-card-media { display: block; aspect-ratio: 16 / 10; background: var(--oc-cream); overflow: hidden; }
.oc-insight-card-media img { width: 100%; height: 100%; object-fit: cover; }
.oc-insight-card-body { padding: 1.1rem 1.25rem 1.35rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.oc-insight-card-cat { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--oc-gold); }
.oc-insight-card-title { font-size: 1rem; line-height: 1.35; flex: 1; }
.oc-insight-card-title a { color: var(--oc-navy-deep); text-decoration: none; }
.oc-insight-card-title a:hover { color: var(--oc-gold); }
.oc-insight-card-link { font-size: 0.8rem; font-weight: 600; color: var(--oc-navy); }

/* ── Home news cards ─────────────────────────────────────────────────────── */
.oc-news-card { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); overflow: hidden; box-shadow: var(--oc-shadow); transition: box-shadow var(--oc-transition), transform var(--oc-transition); }
.oc-news-card:hover { box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-news-card-inner { display: block; padding: 1.5rem 1.6rem; text-decoration: none; height: 100%; }
.oc-news-card-cat { display: inline-block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--oc-gold); margin-bottom: 0.6rem; }
.oc-news-card-title { font-size: 1.1rem; line-height: 1.35; color: var(--oc-navy-deep); margin-bottom: 0.6rem; }
.oc-news-card-excerpt { font-size: 0.875rem; color: var(--oc-text-mid); line-height: 1.65; margin-bottom: 1rem; }
.oc-news-card-meta { display: flex; gap: 1rem; font-size: 0.78rem; color: var(--oc-text-muted); }

/* ── Footer address / hours / social ─────────────────────────────────────── */
.oc-footer-address { font-size: 0.8rem; color: rgba(255,255,255,0.55); line-height: 1.6; margin-top: 0.75rem; }
.oc-footer-address em { font-style: italic; }
.oc-footer-hours { font-size: 0.8rem; color: rgba(255,255,255,0.55); margin-top: 0.25rem; }
.oc-footer-social { display: flex; gap: 0.75rem; margin-top: 1rem; }
.oc-footer-social a { color: rgba(255,255,255,0.6); transition: color var(--oc-transition); display: inline-flex; }
.oc-footer-social a:hover { color: var(--oc-gold-light); }
.oc-footer-social svg { display: block; }

/* ── Booking widget placeholder ──────────────────────────────────────────── */
#oc-booking-widget { min-height: 600px; background: var(--oc-cream); border-radius: var(--oc-radius-lg); display: flex; align-items: center; justify-content: center; color: var(--oc-text-muted); }

/* ── News source label ───────────────────────────────────────────────────── */
.oc-news-source-label { background: var(--oc-cream); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius); padding: 0.1rem 0.5rem; font-size: 0.75rem; font-weight: 600; color: var(--oc-text-muted); }

/* ── Responsive additions ────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .oc-content-layout:has(.oc-claims-nav) { grid-template-columns: 1fr; }
  .oc-claims-nav { position: static; }
  .oc-two-col { grid-template-columns: 1fr; }
  .oc-form-row { grid-template-columns: 1fr; }
  .oc-gaps-grid { grid-template-columns: 1fr; gap: 1.75rem; }
  .oc-gaps-intro { position: static; }
  .oc-ask-olive-row { grid-template-columns: 1fr; }
  .oc-section-head-row { align-items: flex-start; }
}

/* ── Mega menu panels ─────────────────────────────────────────────────────── */
.oc-has-mega { position: relative; }
.oc-has-mega > a { display: inline-flex; align-items: center; gap: 4px; }
.oc-has-mega > a::after { content: ''; display: inline-block; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 5px solid currentColor; opacity: 0.7; flex-shrink: 0; transition: transform 0.15s ease; }
.oc-has-mega:hover > a::after, .oc-has-mega:focus-within > a::after { transform: rotate(180deg); }
.oc-mega-panel { display: none; position: absolute; top: calc(100% + 4px); left: 0; background: var(--oc-navy-deep); border: 1px solid rgba(255,255,255,0.1); border-radius: var(--oc-radius-lg); box-shadow: 0 8px 40px rgba(15,34,54,0.5); z-index: 300; width: 680px; }
.oc-has-mega:hover > .oc-mega-panel,
.oc-has-mega:focus-within > .oc-mega-panel { display: block; }
.oc-mega-inner { display: grid; grid-template-columns: 1fr 1fr; padding: 1.5rem; }
.oc-mega-col { padding: 0 1.25rem; min-width: 0; }
/* Grid items default to min-width:auto, so wide link content overflowed the
   panel and pushed the second (MY BUSINESS) column off-screen. min-width:0
   lets the 1fr tracks hold and the link text wrap instead. */
.oc-mega-link, .oc-mega-links-grid, .oc-mega-link-text { min-width: 0; }
.oc-mega-link-text span { overflow-wrap: anywhere; }
.oc-mega-col:first-child { padding-left: 0; border-right: 1px solid rgba(255,255,255,0.08); }
.oc-mega-col:last-child { padding-right: 0; }
.oc-mega-col-label { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--oc-gold); margin-bottom: 0.75rem; padding-bottom: 0.5rem; border-bottom: 1px solid rgba(255,255,255,0.08); }
.oc-mega-link { display: flex; align-items: flex-start; gap: 0.625rem; padding: 0.5rem 0.625rem; border-radius: var(--oc-radius); text-decoration: none; color: rgba(255,255,255,0.85); transition: background var(--oc-transition); margin-bottom: 0.2rem; }
.oc-mega-link:hover { background: rgba(255,255,255,0.07); color: var(--oc-white); }
.oc-mega-link-text { display: flex; flex-direction: column; gap: 0.1rem; flex: 1; min-width: 0; white-space: normal; }
/* Nav sets white-space:nowrap on links; the mega-menu descriptions MUST wrap
   inside their column or they overflow into the adjacent column (overlap). */
.oc-mega-link-text strong { font-size: 0.875rem; font-weight: 600; color: var(--oc-white); font-family: var(--oc-font); line-height: 1.3; white-space: normal; }
.oc-mega-link-text span { font-size: 0.76rem; color: rgba(255,255,255,0.5); line-height: 1.4; white-space: normal; overflow-wrap: anywhere; }
.oc-mega-chevron { flex-shrink: 0; color: rgba(255,255,255,0.25); transition: color var(--oc-transition); }
.oc-mega-link:hover .oc-mega-chevron { color: var(--oc-gold-light); }
.oc-mega-carrier-link { display: block; padding: 0.4rem 0.625rem; border-radius: var(--oc-radius); text-decoration: none; color: rgba(255,255,255,0.82); font-size: 0.9rem; font-weight: 500; transition: background var(--oc-transition), color var(--oc-transition); margin-bottom: 0.1rem; }
.oc-mega-carrier-link:hover { background: rgba(255,255,255,0.07); color: var(--oc-white); }
.oc-mega-footer-link { display: block; margin-top: 0.75rem; padding: 0.35rem 0.625rem; font-size: 0.8rem; font-weight: 600; color: var(--oc-gold-light); text-decoration: none; transition: color var(--oc-transition); }
.oc-mega-footer-link:hover { color: var(--oc-gold); text-decoration: underline; }
.oc-mega-carriers-footer { padding: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.08); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.oc-mega-carriers-footer p { font-size: 0.8rem; color: rgba(255,255,255,0.6); line-height: 1.5; }

/* Per-panel widths + right-alignment for the rightmost panels */
.oc-mega-panel-coverage  { width: 760px; }
.oc-mega-panel-carriers  { width: 600px; }
.oc-mega-panel-claims    { width: 880px; }
.oc-mega-panel-resources { width: 420px; left: auto; right: 0; }
.oc-mega-panel-about     { width: 320px; left: auto; right: 0; }

/* Coverage: 2-col sub-grid of links inside each column */
.oc-mega-links-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 0.5rem; align-items: start; }
.oc-mega-link-full { grid-column: 1 / -1; }

/* Carriers: header block + name/spec rows */
.oc-mega-carriers-header { padding: 1.25rem 1.5rem 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.08); }
.oc-mega-carriers-title { font-family: var(--oc-font-serif); font-size: 1.05rem; color: var(--oc-white); margin-bottom: 0.25rem; line-height: 1.3; }
.oc-mega-carriers-subtitle { font-size: 0.8rem; color: rgba(255,255,255,0.55); line-height: 1.45; }
.oc-mega-carrier-link { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; }
.oc-mega-carrier-name { font-weight: 600; color: var(--oc-white); }
.oc-mega-carrier-spec { font-size: 0.74rem; color: rgba(255,255,255,0.45); text-align: right; white-space: nowrap; }
.oc-mega-carriers-view-all { color: var(--oc-gold-light); font-weight: 600; text-decoration: none; }
.oc-mega-carriers-view-all:hover { color: var(--oc-gold); text-decoration: underline; }

/* Claims: 4-column layout */
.oc-mega-inner-claims { grid-template-columns: 1.1fr 1fr 1fr 1.1fr; gap: 0; }
.oc-mega-col-claims { padding: 0 1rem; border-right: 1px solid rgba(255,255,255,0.08); }
.oc-mega-inner-claims .oc-mega-col:first-child { padding-left: 0; }
.oc-mega-claims-link { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.4rem 0.5rem; border-radius: var(--oc-radius); text-decoration: none; margin-bottom: 0.2rem; transition: background var(--oc-transition); }
.oc-mega-claims-link strong { font-size: 0.85rem; font-weight: 600; color: var(--oc-white); font-family: var(--oc-font); line-height: 1.3; }
.oc-mega-claims-link span { font-size: 0.74rem; color: rgba(255,255,255,0.5); line-height: 1.4; }
.oc-mega-claims-link:hover { background: rgba(255,255,255,0.07); }
.oc-mega-plain-link { display: block; padding: 0.4rem 0.5rem; border-radius: var(--oc-radius); text-decoration: none; color: rgba(255,255,255,0.82); font-size: 0.85rem; transition: background var(--oc-transition), color var(--oc-transition); margin-bottom: 0.1rem; }
.oc-mega-plain-link:hover { background: rgba(255,255,255,0.07); color: var(--oc-white); }
.oc-mega-plain-link-gold { color: var(--oc-gold-light); font-weight: 600; margin-top: 0.5rem; }
.oc-mega-plain-link-gold:hover { color: var(--oc-gold); }

/* Claims: callout column (rightmost) */
.oc-mega-col-callout { padding: 0 0 0 1.25rem; border-right: none; display: flex; flex-direction: column; }
.oc-mega-callout-q { font-family: var(--oc-font-serif); font-size: 0.95rem; color: var(--oc-gold-light); line-height: 1.35; margin-bottom: 0.5rem; }
.oc-mega-callout-body { font-size: 0.78rem; color: rgba(255,255,255,0.6); line-height: 1.5; margin-bottom: 0.875rem; }
.oc-mega-callout-cta { display: inline-block; align-self: flex-start; background: var(--oc-gold); color: var(--oc-navy-deep); font-size: 0.8rem; font-weight: 600; padding: 0.5rem 1rem; border-radius: var(--oc-radius); text-decoration: none; transition: background var(--oc-transition); }
.oc-mega-callout-cta:hover { background: var(--oc-gold-light); color: var(--oc-navy-deep); }

/* Resources + About: single-column icon list */
.oc-mega-resources-inner { padding: 1.25rem 1rem; }
.oc-mega-resources-inner .oc-mega-col-label { padding: 0 0.625rem 0.5rem; }
.oc-mega-resource-link { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.6rem 0.625rem; border-radius: var(--oc-radius); text-decoration: none; transition: background var(--oc-transition); }
.oc-mega-resource-link:hover { background: rgba(255,255,255,0.07); }
.oc-mega-resource-icon { flex-shrink: 0; color: var(--oc-gold); margin-top: 0.15rem; }
.oc-mega-resource-text { display: flex; flex-direction: column; gap: 0.15rem; }
.oc-mega-resource-text strong { font-size: 0.875rem; font-weight: 600; color: var(--oc-white); font-family: var(--oc-font); line-height: 1.3; }
.oc-mega-resource-text span { font-size: 0.76rem; color: rgba(255,255,255,0.5); line-height: 1.4; }

/* ── Homepage section responsive ─────────────────────────────────────────── */
@media (max-width: 1024px) {
  .oc-hero-grid { grid-template-columns: 1fr 340px; gap: 2rem; }
}
@media (max-width: 900px) {
  .oc-steps { grid-template-columns: 1fr; gap: 1.5rem; }
  .oc-compare-grid { grid-template-columns: 1fr; border-radius: var(--oc-radius-lg); }
  .oc-compare-col { padding: 1.5rem; }
  .oc-hero-grid { grid-template-columns: 1fr; }
  .oc-hero-panel { display: none; }
}
@media (max-width: 640px) {
  .oc-stat-grid { grid-template-columns: 1fr; }
  .oc-hero-intent { flex-direction: column; align-items: flex-start; }
  .oc-section-eyebrow { font-size: 0.7rem; }
}

/* ── Mobile / tablet / foldable nav ───────────────────────────────────────── */
/* Collapse to the hamburger up to 1024px: the full nav (5 mega-menus + search +
   state pill + CTA) needs ~1100px to fit, and foldables (e.g. Galaxy Z Fold,
   ~884px unfolded) were landing in a dead zone where neither showed properly. */
@media (max-width: 1024px) {
  .oc-site-header { position: relative; }
  .oc-nav-toggle { display: flex; align-items: center; justify-content: center; }
  .oc-nav-primary { display: none; position: absolute; top: 64px; left: 0; right: 0; background: var(--oc-navy-deep); border-top: 1px solid rgba(255,255,255,0.1); padding: 0.5rem 0 1rem; z-index: 200; }
  .oc-nav-primary.is-open { display: block; }
  .oc-menu { flex-direction: column; gap: 0; }
  .oc-menu > li > a { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1.5rem; border-radius: 0; }
  .oc-has-mega > a::after { margin-left: auto; }
  .oc-mega-panel { position: static; width: 100%; border: none; border-radius: 0; box-shadow: none; background: rgba(255,255,255,0.03); border-top: 1px solid rgba(255,255,255,0.05); }
  .oc-has-mega.is-open > .oc-mega-panel { display: block; }
  .oc-mega-panel-coverage, .oc-mega-panel-carriers, .oc-mega-panel-claims,
  .oc-mega-panel-resources, .oc-mega-panel-about { width: 100%; left: 0; right: auto; }
  .oc-mega-inner { grid-template-columns: 1fr; padding: 1rem 1.5rem; gap: 0; }
  .oc-mega-inner-claims { grid-template-columns: 1fr; }
  .oc-mega-links-grid { grid-template-columns: 1fr; }
  .oc-mega-col { padding: 0.75rem 0; }
  .oc-mega-col:first-child { border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }
  .oc-mega-col-claims { padding: 0.75rem 0; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.06); }
  .oc-mega-col-callout { padding: 0.75rem 0; }
  .oc-mega-resources-inner { padding: 0.75rem 1.5rem; }
  .oc-mega-carriers-header { padding: 0.875rem 1.5rem 0.5rem; }
  .oc-mega-carriers-footer { flex-direction: column; align-items: flex-start; padding: 0.75rem 1.5rem; }
  .oc-header-phone { display: none; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAGE REBUILDS (coverage / personal / commercial / claims / about / contact /
   where-we-do-business / coverage-review) — added 2026-06-07
   ═══════════════════════════════════════════════════════════════════════════ */

/* Aliases so any --oc-* names used by the page markup resolve to brand colors */
:root {
  --oc-primary:     var(--oc-navy);
  --oc-on-primary:  var(--oc-white);
  --oc-olive:       var(--oc-navy);
  --oc-border:      var(--oc-cream-dark);
  --oc-hero-body:   rgba(255,255,255,0.85);
}

/* Shared helpers (declared once) */
.oc-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.oc-page-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.oc-page-hero-lede { font-family: var(--oc-font-serif); font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--oc-white); line-height: 1.3; margin: 0.75rem 0 1rem; max-width: 760px; }
.oc-page-hero-body { max-width: 60ch; margin: 0.75rem 0 0; color: rgba(255,255,255,0.85); font-size: 1.05rem; line-height: 1.6; }
.oc-page-hero-note { margin-top: 0.75rem; font-size: 0.9rem; color: rgba(255,255,255,0.72); max-width: 60ch; }
.oc-page-hero-cta { margin-top: 1.5rem; }
.oc-step-title { font-size: 1.05rem; color: var(--oc-navy-deep); margin-bottom: 0.4rem; }

/* ── Coverage Guide (/coverage) ── */
.oc-brought { text-align: center; }
.oc-brought-list { list-style: none; padding: 0; margin: 1.75rem 0 1.25rem; display: flex; flex-direction: column; gap: 0.85rem; }
.oc-brought-list li { font-family: var(--oc-font-serif); font-size: clamp(1.15rem, 2.4vw, 1.5rem); color: var(--oc-navy-deep); }
.oc-brought-leadout { font-size: 0.95rem; color: var(--oc-text-muted); font-style: italic; margin: 0; }
.oc-path-card { text-decoration: none; display: block; }
.oc-path-card .oc-card-body { display: flex; flex-direction: column; gap: 0.6rem; }
.oc-path-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--oc-gold); }
.oc-path-cta { margin-top: auto; padding-top: 0.5rem; font-weight: 600; color: var(--oc-navy); font-size: 0.95rem; }
.oc-path-card:hover .oc-path-cta { color: var(--oc-gold); }
.oc-situation-card .oc-card-body { padding: 1.75rem; }
.oc-situation-list { list-style: none; padding: 0; margin: 1rem 0 1.5rem; display: flex; flex-direction: column; gap: 0.65rem; }
.oc-situation-list li { position: relative; padding-left: 1.4rem; font-size: 0.95rem; color: var(--oc-text-mid); line-height: 1.5; }
.oc-situation-list li::before { content: "→"; position: absolute; left: 0; color: var(--oc-gold); font-weight: 700; }
.oc-bigpath-card .oc-card-body { padding: 2rem; position: relative; }
.oc-bigpath-num { font-family: var(--oc-font-serif); font-size: 2.25rem; font-weight: 700; color: var(--oc-gold); line-height: 1; display: block; margin-bottom: 0.75rem; }
.oc-bigpath-label { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--oc-navy-deep); margin: 1.25rem 0 0.6rem; }
.oc-bigpath-list { list-style: none; padding: 0; margin: 0 0 1.5rem; display: flex; flex-direction: column; gap: 0.55rem; }
.oc-bigpath-list li { position: relative; padding-left: 1.4rem; font-size: 0.92rem; color: var(--oc-text-mid); line-height: 1.5; }
.oc-bigpath-list li::before { content: "✓"; position: absolute; left: 0; color: var(--oc-gold); font-weight: 700; }
.oc-featured-card { text-decoration: none; display: block; }
.oc-featured-card .oc-card-body { display: flex; flex-direction: column; gap: 0.6rem; }
.oc-featured-card .oc-path-cta { margin-top: auto; padding-top: 0.5rem; font-weight: 600; color: var(--oc-navy); font-size: 0.95rem; }
.oc-featured-card:hover .oc-path-cta { color: var(--oc-gold); }
.oc-specialty-grid { margin-top: 1.5rem; }
.oc-specialty-colhead { font-family: var(--oc-font-serif); font-size: 1.1rem; color: var(--oc-navy-deep); margin: 0 0 0.85rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--oc-cream-dark); }
.oc-specialty-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.oc-specialty-list a { text-decoration: none; color: var(--oc-text-mid); font-size: 0.95rem; transition: color var(--oc-transition); }
.oc-specialty-list a:hover { color: var(--oc-navy); }
.oc-final-cta { text-align: center; }
.oc-final-cta-body { color: rgba(255,255,255,0.85); line-height: 1.7; max-width: 640px; margin: 1rem auto 0; }
.oc-final-cta .oc-section-cta { margin-top: 1.75rem; }
.oc-final-cta-note { font-size: 0.85rem; color: rgba(255,255,255,0.7); margin: 1rem 0 0; }
.oc-glossary-ref { text-align: center; }
.oc-glossary-ref p { color: var(--oc-text-mid); line-height: 1.7; max-width: 620px; margin: 0 auto; }

/* ── Personal Insurance guide (/personal-insurance) ── */
.oc-pi-hero-title { max-width: 760px; }
.oc-pi-hero-stat { display: inline-flex; align-items: center; gap: 1rem; margin-top: 1.75rem; padding: 1rem 1.5rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--oc-radius-lg); }
.oc-pi-hero-stat-number { font-family: var(--oc-font-serif); font-size: clamp(2rem, 4vw, 2.75rem); font-weight: 700; color: var(--oc-gold-light); line-height: 1; }
.oc-pi-hero-stat-text { display: flex; flex-direction: column; font-weight: 600; color: var(--oc-white); font-size: 0.95rem; }
.oc-pi-hero-stat-text small { font-weight: 400; color: rgba(255,255,255,0.6); font-size: 0.78rem; margin-top: 0.2rem; }
.oc-pi-hero-meta { margin-top: 1rem; font-size: 0.85rem; font-weight: 600; color: var(--oc-gold-light); }
.oc-pi-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.oc-pi-questions { list-style: none; padding: 0; margin: 0 auto; max-width: 640px; display: flex; flex-direction: column; gap: 0.85rem; }
.oc-pi-questions li { background: var(--oc-cream); border-left: 3px solid var(--oc-gold); border-radius: var(--oc-radius-lg); padding: 1rem 1.25rem; font-size: 1.02rem; font-weight: 600; color: var(--oc-navy-deep); }
/* "What brought you here?" questions as a 1x3 card row. */
.oc-pi-questions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 1.75rem; }
.oc-pi-question-card { text-align: center; border-top: 3px solid var(--oc-gold); height: 100%; }
.oc-pi-question-card .oc-card-body { padding: 1.85rem 1.5rem; display: flex; align-items: center; justify-content: center; height: 100%; }
.oc-pi-question-text { margin: 0; font-family: var(--oc-font-serif); font-size: 1.1rem; line-height: 1.4; color: var(--oc-navy-deep); }
@media (max-width: 768px) { .oc-pi-questions-grid { grid-template-columns: 1fr; } }
.oc-pi-situation { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.75rem; box-shadow: var(--oc-shadow); }
.oc-pi-situation-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--oc-gold); margin-bottom: 0.75rem; }
.oc-pi-situation-lead { font-size: 1.05rem; font-weight: 600; color: var(--oc-navy-deep); line-height: 1.45; margin-bottom: 0.75rem; }
.oc-pi-situation-body { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.7; margin: 0; }
.oc-pi-situation-note { margin-top: 2rem; text-align: center; font-size: 0.9rem; color: var(--oc-text-mid); }
.oc-pi-situation-note a { font-weight: 600; }
.oc-pi-system-intro { max-width: 640px; margin: 0 auto 2rem; }
.oc-pi-system-intro p { font-size: 1rem; color: var(--oc-text-mid); line-height: 1.75; margin-bottom: 1rem; }
.oc-pi-system-list { list-style: none; padding: 0; margin: 0 auto 2rem; max-width: 640px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.85rem; }
.oc-pi-system-list li { background: var(--oc-cream); border-radius: var(--oc-radius-lg); }
.oc-pi-system-link { display: flex; align-items: center; gap: 0.6rem; width: 100%; height: 100%; padding: 0.85rem 1rem; border-radius: var(--oc-radius-lg); font-weight: 600; color: var(--oc-navy-deep); font-size: 0.92rem; text-decoration: none; border: 1px solid transparent; transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease; }
.oc-pi-system-link:hover, .oc-pi-system-link:focus-visible { background: rgba(199,162,75,0.12); border-color: var(--oc-gold); transform: translateY(-1px); }
.oc-pi-system-title { flex: 1 1 auto; }
.oc-pi-system-arrow { color: var(--oc-gold); font-weight: 700; }
.oc-pi-system-num { font-family: var(--oc-font-serif); font-weight: 700; color: var(--oc-gold); font-size: 0.95rem; }
.oc-pi-type { scroll-margin-top: 140px; }
.oc-pi-system-close { max-width: 640px; margin: 0 auto; text-align: center; font-size: 0.95rem; color: var(--oc-text-mid); line-height: 1.7; font-style: italic; }
.oc-pi-types { display: flex; flex-direction: column; gap: 2rem; max-width: 820px; margin: 0 auto; }
.oc-pi-type { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 2rem; box-shadow: var(--oc-shadow); }
.oc-pi-type-head { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--oc-cream-dark); }
.oc-pi-type-num { font-family: var(--oc-font-serif); font-size: 1.6rem; font-weight: 700; color: var(--oc-gold); line-height: 1; }
.oc-pi-type-title { font-size: 1.3rem; color: var(--oc-navy-deep); margin: 0 0 0.2rem; }
.oc-pi-type-who { font-size: 0.85rem; color: var(--oc-text-muted); margin: 0; }
.oc-pi-type-block { margin-bottom: 1.25rem; }
.oc-pi-type-block p:last-child, .oc-pi-type-ask p:last-child { font-size: 0.92rem; color: var(--oc-text-mid); line-height: 1.7; margin: 0; }
.oc-pi-type-label { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; color: var(--oc-navy); margin: 0 0 0.4rem; }
.oc-pi-type-label-neg { color: #9a4b3b; }
.oc-pi-type-label-gap { color: var(--oc-gold); }
.oc-pi-type-label-ask { color: var(--oc-white); }
.oc-pi-type-ask { background: var(--oc-navy-deep); border-radius: var(--oc-radius-lg); padding: 1.25rem 1.5rem; margin-bottom: 1.5rem; }
.oc-pi-type-ask p:last-child { color: rgba(255,255,255,0.85); font-style: italic; }
.oc-pi-type-cta { margin: 0; }
.oc-pi-final-cta { background: var(--oc-navy); }
.oc-pi-final-body { color: rgba(255,255,255,0.8); font-size: 1rem; line-height: 1.75; max-width: 620px; margin: 0 auto 1.75rem; }
.oc-pi-final-sub { color: rgba(255,255,255,0.5); font-size: 0.82rem; line-height: 1.6; max-width: 560px; margin: 1.25rem auto 0; }

/* ── Commercial Insurance guide (/commercial-insurance) ── */
.oc-ci-hero .oc-section-title-light { max-width: 60rem; margin-bottom: 2.5rem; }
.oc-stat-grid-3 { grid-template-columns: repeat(3, 1fr); }
.oc-ci-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.5rem; }
.oc-ci-hero-subtitle { max-width: 42rem; margin: 0 0 2.5rem; font-size: 1.0625rem; line-height: 1.6; color: rgba(255,255,255,0.85); }
.oc-ci-hero--image { position: relative; background-size: cover; background-position: center; }
.oc-ci-hero--image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(15,34,54,0.86), rgba(15,34,54,0.9)); z-index: 0; }
.oc-ci-hero--image > * { position: relative; z-index: 1; }
.oc-ci-jump { background: var(--oc-navy-deep); border-top: 1px solid rgba(255,255,255,0.08); position: sticky; top: 64px; z-index: 20; }
.oc-ci-jump .oc-container { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.25rem; padding-top: 0.9rem; padding-bottom: 0.9rem; }
.oc-ci-jump-label { color: rgba(255,255,255,0.55); font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.oc-ci-jump-link { color: rgba(255,255,255,0.85); font-size: 0.875rem; font-weight: 500; text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 1px; }
.oc-ci-jump-link:hover { color: var(--oc-gold); border-bottom-color: var(--oc-gold); }
.oc-ci-coverage { scroll-margin-top: 140px; }
.oc-ci-audience-card { border-top: 3px solid var(--oc-gold); }
.oc-ci-audience-eyebrow { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--oc-navy); margin-bottom: 0.75rem; }
.oc-ci-cross-link { color: var(--oc-navy); font-weight: 600; text-decoration: none; }
.oc-ci-cross-link:hover { color: var(--oc-gold); }
.oc-ci-prose { margin-top: 1.75rem; }
.oc-ci-prose p { color: var(--oc-text-mid); line-height: 1.8; margin-bottom: 1.25rem; }
.oc-ci-prose p:last-child { margin-bottom: 0; font-weight: 600; color: var(--oc-navy-deep); }
.oc-ci-scenario .oc-card-title { margin-bottom: 0.5rem; }
.oc-ci-scenario-event { font-size: 0.95rem; color: var(--oc-text-mid); line-height: 1.6; margin-bottom: 1.25rem; }
.oc-ci-scenario-row { border-radius: var(--oc-radius); padding: 0.85rem 1rem; margin-top: 0.75rem; }
.oc-ci-scenario-deny { background: rgba(180,40,40,0.06); border-left: 3px solid #b42828; }
.oc-ci-scenario-cover { background: rgba(34,120,60,0.07); border-left: 3px solid #22783c; }
.oc-ci-scenario-policy { display: block; font-weight: 700; font-size: 0.85rem; color: var(--oc-navy-deep); margin-bottom: 0.3rem; }
.oc-ci-scenario-result { display: block; font-size: 0.85rem; line-height: 1.55; color: var(--oc-text-mid); }
.oc-ci-coverage { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: clamp(1.5rem, 3vw, 2.5rem); margin-top: 1.75rem; }
.oc-ci-coverage:first-of-type { margin-top: 2.25rem; }
.oc-ci-coverage-head { display: flex; align-items: baseline; gap: 1rem; margin-bottom: 1.5rem; }
.oc-ci-coverage-num { font-family: var(--oc-font-serif); font-size: 1.75rem; font-weight: 700; color: var(--oc-gold); line-height: 1; }
.oc-ci-coverage-title { font-size: clamp(1.25rem, 2.5vw, 1.6rem); color: var(--oc-navy-deep); margin: 0; }
.oc-ci-coverage-tagline { color: var(--oc-text-mid); font-size: 0.95rem; margin: 0.2rem 0 0; }
.oc-ci-coverage-block { margin-bottom: 1.5rem; }
.oc-ci-coverage-label { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 0.5rem; }
.oc-ci-label-covers { color: #22783c; }
.oc-ci-label-not { color: #b42828; }
.oc-ci-label-gap { color: var(--oc-gold); }
.oc-ci-coverage-text { color: var(--oc-text-mid); line-height: 1.75; font-size: 0.95rem; margin: 0; }
.oc-ci-coverage-question { background: var(--oc-cream); border-radius: var(--oc-radius); padding: 1.1rem 1.25rem; font-style: italic; color: var(--oc-navy-deep); line-height: 1.6; margin: 0 0 1.25rem; }
.oc-ci-coverage-cta { margin: 0; }
.oc-ci-final { text-align: center; }
.oc-ci-final-actions { margin: 1.75rem 0 1rem; }
.oc-ci-final-support { font-size: 0.85rem; color: rgba(255,255,255,0.6); margin-bottom: 1.5rem; }
.oc-ci-final-alt { font-size: 0.95rem; color: rgba(255,255,255,0.85); margin-bottom: 1.25rem; }
.oc-ci-final-alt a, .oc-ci-final-glossary a { color: var(--oc-gold); text-decoration: underline; }
.oc-ci-final-glossary { font-size: 0.85rem; color: rgba(255,255,255,0.55); line-height: 1.7; max-width: 46rem; margin-inline: auto; }

/* ── Claims hub (/claims) ── */
.oc-hub-card { display: flex; flex-direction: column; height: 100%; padding: 1.5rem; background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); text-decoration: none; color: inherit; transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease; }
.oc-hub-card:hover, .oc-hub-card:focus-visible { border-color: var(--oc-gold); box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-hub-card-title { margin: 0 0 0.5rem; font-size: 1.15rem; line-height: 1.3; color: var(--oc-navy-deep); }
.oc-hub-card-sub { margin: 0 0 1rem; color: var(--oc-text-mid); font-size: 0.95rem; line-height: 1.5; }
.oc-hub-card-link { margin-top: auto; font-weight: 600; font-size: 0.9rem; color: var(--oc-navy); }
.oc-rights-block { padding: 1.75rem; margin-top: 1.5rem; background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); }
.oc-rights-block:first-of-type { margin-top: 2rem; }
.oc-rights-title { margin: 0 0 0.75rem; font-size: 1.2rem; line-height: 1.3; color: var(--oc-navy-deep); }
.oc-rights-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
.oc-rights-links { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--oc-cream-dark); font-size: 0.9rem; }
.oc-rights-links a { color: var(--oc-navy); text-decoration: none; font-weight: 600; }
.oc-rights-links a:hover { text-decoration: underline; color: var(--oc-gold); }

/* ── About (/about) ── */
.oc-feature-card .oc-card-body { padding: 1.25rem 1.25rem 1rem; }
.oc-feature-card .oc-card-excerpt { margin-bottom: 0; }
.oc-lines-col .oc-card-title { font-size: 1.2rem; margin-bottom: 0.875rem; }
.oc-lines-list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 1.5rem; }
.oc-lines-list li { margin: 0 0 0.5rem; break-inside: avoid; font-size: 0.92rem; }
.oc-lines-list a { text-decoration: none; color: var(--oc-text-mid); }
.oc-lines-list a:hover { color: var(--oc-navy); text-decoration: underline; }
.oc-carrier-card { text-align: center; }
.oc-carrier-card .oc-card-body { padding: 1.1rem 0.75rem; }
.oc-carrier-card .oc-card-title { margin-bottom: 0; font-size: 1.05rem; }
.oc-faq { margin-top: 1.5rem; }
.oc-faq-item { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); margin-bottom: 0.875rem; overflow: hidden; box-shadow: var(--oc-shadow); }
.oc-faq-q { cursor: pointer; list-style: none; padding: 1rem 1.25rem; font-family: var(--oc-font-serif); font-weight: 700; font-size: 1.05rem; color: var(--oc-navy-deep); display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.oc-faq-q::-webkit-details-marker { display: none; }
.oc-faq-q::after { content: "+"; font-size: 1.4rem; line-height: 1; color: var(--oc-gold); flex: 0 0 auto; transition: transform var(--oc-transition); }
.oc-faq-item[open] .oc-faq-q::after { content: "\2212"; }
.oc-faq-a { padding: 0 1.25rem 1.125rem; }
.oc-faq-a p { margin: 0; color: var(--oc-text-mid); line-height: 1.65; }
.oc-faq-a a { color: var(--oc-navy); }

/* ── Contact (/contact) ── */
.oc-address-note { display: inline-block; margin-top: 0.25rem; font-size: 0.875rem; color: var(--oc-text-muted); }
.oc-form-reassurance { margin: 0.5rem 0 1.5rem; font-size: 0.9375rem; color: var(--oc-text-muted); }
.oc-form-select { appearance: none; -webkit-appearance: none; -moz-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 fill='%23555' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; cursor: pointer; }

/* ── Where We Do Business (/where-we-do-business) ── */
.oc-ga-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.75rem; margin: 1.75rem 0 0; padding: 0; }
.oc-ga-fact { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-left: 3px solid var(--oc-gold); border-radius: var(--oc-radius-lg); padding: 1rem 1.25rem; box-shadow: var(--oc-shadow); }
.oc-ga-fact-label { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--oc-text-mid); margin: 0 0 0.35rem; }
.oc-ga-fact-value { font-size: 1rem; font-weight: 600; color: var(--oc-navy); margin: 0; }
.oc-ga-coverage-heading { margin: 2.25rem 0 0; font-size: 1.15rem; color: var(--oc-navy); }
.oc-ga-coverage-pills { justify-content: flex-start; margin: 1rem 0 0; }
.oc-ga-reg-cta { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ── Coverage Review form (/coverage-review) ── */
.oc-review-hero-points { list-style: none; padding: 0; margin: 1.25rem 0 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
.oc-review-hero-points li { position: relative; padding-left: 1.5rem; color: rgba(255,255,255,0.85); font-size: 0.95rem; }
.oc-review-hero-points li::before { content: '✓'; position: absolute; left: 0; color: var(--oc-gold-light); font-weight: 700; }
.oc-review-hero-stats { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }
.oc-review-hero-stat { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.18); border-radius: var(--oc-radius-lg); padding: 1rem 1.5rem; }
.oc-review-hero-stat-num { display: block; font-family: var(--oc-font-serif); font-size: 1.75rem; font-weight: 700; color: var(--oc-gold-light); line-height: 1; }
.oc-review-hero-stat-label { display: block; font-size: 0.85rem; color: rgba(255,255,255,0.7); margin-top: 0.35rem; }
.oc-check-card { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.5rem; box-shadow: var(--oc-shadow); }
.oc-check-card h3 { font-size: 1.05rem; color: var(--oc-navy-deep); margin-bottom: 0.5rem; }
.oc-check-card p { font-size: 0.9rem; color: var(--oc-text-mid); line-height: 1.65; }
.oc-review-form { margin-top: 1.5rem; }
.oc-review-form .oc-form-group { margin-bottom: 1rem; }
.oc-form-step { border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); padding: 1.5rem; margin-bottom: 1.25rem; }
.oc-form-step legend { font-family: var(--oc-font-serif); font-weight: 700; font-size: 1.1rem; color: var(--oc-navy-deep); display: flex; align-items: center; gap: 0.6rem; padding: 0 0.5rem; }
.oc-form-step-num { display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--oc-navy); color: var(--oc-white); font-size: 0.9rem; flex-shrink: 0; }
.oc-form-step-hint { font-size: 0.85rem; color: var(--oc-text-muted); margin: 0 0 1rem; }
.oc-form-group-label { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--oc-gold); margin: 1.25rem 0 0.6rem; }
.oc-form-radio-row, .oc-form-check-row { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; }
.oc-form-radio, .oc-form-check { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.92rem; color: var(--oc-text-mid); cursor: pointer; }
.oc-form-check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.5rem 1rem; }
.oc-form-file { width: 100%; font-size: 0.9rem; padding: 0.5rem 0; color: var(--oc-text-mid); }
.oc-form-footnote { font-size: 0.8rem; color: var(--oc-text-muted); margin-top: 1rem; }
.oc-review-trust { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--oc-cream-dark); }
.oc-review-talk { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin-top: 1.25rem; }

/* Responsive for page rebuilds */
@media (max-width: 768px) {
  .oc-situation-grid, .oc-bigpath-grid, .oc-specialty-grid { grid-template-columns: 1fr; }
  .oc-stat-grid-3 { grid-template-columns: 1fr; }
  .oc-ci-jump { position: static; }
  .oc-pi-system-list { grid-template-columns: repeat(2, 1fr); }
  .oc-pi-type, .oc-ci-coverage { padding: 1.5rem; }
  .oc-pi-hero-stat { flex-direction: column; align-items: flex-start; }
  .oc-lines-list { columns: 1; }
}

/* ═══ Wave 2 rebuilds: carriers landing / carrier lists / CPT singles ═══ */

/* Carriers landing (archive-oc_carrier.php) */
.oc-hero-stats { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; max-width: 880px; }
.oc-hero-stat { padding-left: 1rem; border-left: 2px solid var(--oc-gold); }
.oc-hero-stat-label { display: block; font-family: var(--oc-font-serif); font-weight: 600; color: var(--oc-white); font-size: 1.05rem; margin-bottom: 0.25rem; }
.oc-hero-stat-line { display: block; color: rgba(255,255,255,0.82); font-size: 0.92rem; line-height: 1.45; }
.oc-carrier-split-card .oc-carrier-pills { margin: 1rem 0 1.5rem; }
.oc-carrier-pill-more { font-style: italic; opacity: 0.85; }
.oc-carrier-split-cta { margin: 0; }

/* Personal carriers (page-personal-carriers.php) */
.oc-pc-ga-band { background: var(--oc-cream); border-top: 1px solid var(--oc-cream-dark); border-bottom: 1px solid var(--oc-cream-dark); padding: 1rem 0; }
.oc-pc-ga-note { margin: 0; font-size: 0.9rem; line-height: 1.6; color: var(--oc-text-mid); }
.oc-pc-ga-note strong { color: var(--oc-navy); }
.oc-pc-carrier-list { justify-content: flex-start; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.oc-pc-carrier-pill { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0.15rem; padding: 0.65rem 1.15rem; border-radius: var(--oc-radius-lg); text-align: left; font-weight: 600; }
.oc-pc-carrier-name { font-size: 0.95rem; color: var(--oc-navy); line-height: 1.2; }
.oc-pc-carrier-note { font-size: 0.78rem; font-weight: 500; color: var(--oc-text-mid); line-height: 1.2; }
.oc-pc-alert { display: flex; gap: 0.6rem; align-items: flex-start; margin-top: 1.5rem; padding: 1rem 1.25rem; background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-left: 3px solid var(--oc-gold); border-radius: var(--oc-radius-lg); font-size: 0.9rem; line-height: 1.6; color: var(--oc-text-mid); }
.oc-pc-alert-icon { flex: 0 0 auto; font-size: 1rem; line-height: 1.5; }

/* Commercial carriers (page-commercial-carriers.php) */
.oc-coverage-segment { background: var(--oc-white); border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); box-shadow: var(--oc-shadow); padding: 1.5rem 1.75rem; margin-top: 1.5rem; }
.oc-coverage-segment-title { font-size: 1.25rem; color: var(--oc-navy); margin: 0 0 0.5rem; }
.oc-coverage-segment-intro { color: var(--oc-text-mid); margin: 0 0 1.25rem; max-width: 65ch; }
.oc-carrier-appetite-list { list-style: none; padding: 0; margin: 0; }
.oc-carrier-appetite-item { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem 1rem; padding: 0.7rem 0; border-top: 1px solid var(--oc-cream-dark); }
.oc-carrier-appetite-item:first-child { border-top: 0; }
.oc-carrier-appetite-name { font-weight: 700; color: var(--oc-navy); }
.oc-carrier-appetite-flag { display: inline-block; margin-left: 0.5rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--oc-gold); background: var(--oc-cream); border-radius: 1rem; padding: 0.15rem 0.6rem; vertical-align: middle; }
.oc-carrier-appetite-meta { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; align-items: baseline; }
.oc-carrier-appetite-rating { font-size: 0.8rem; font-weight: 600; color: var(--oc-navy); background: var(--oc-cream); border-radius: 1rem; padding: 0.2rem 0.7rem; }
.oc-carrier-appetite-revenue { font-size: 0.85rem; color: var(--oc-text-mid); }

/* Insight + term single enhancements */
.oc-article-author { font-weight: 600; color: var(--oc-text); }
.oc-article-author::after { content: "·"; margin: 0 0.5rem; color: var(--oc-text-muted); font-weight: 400; }
.oc-insight-stat { margin: 1.5rem 0 2rem; padding: 1.5rem 1.75rem; border-left: 4px solid var(--oc-gold); background: var(--oc-bg); border-radius: var(--oc-radius-lg); }
.oc-insight-stat-figure { margin: 0; font-size: clamp(1.35rem, 2.5vw, 1.85rem); line-height: 1.25; font-weight: 700; color: var(--oc-navy-deep); }
.oc-insight-stat-source { margin: 0.5rem 0 0; font-size: 0.85rem; color: var(--oc-text-muted); }
.oc-toc { margin: 0 0 2rem; padding: 1.25rem 1.5rem; border: 1px solid var(--oc-cream-dark); border-radius: var(--oc-radius-lg); background: var(--oc-white); }
.oc-toc-heading { margin: 0 0 0.75rem; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--oc-text-muted); }
.oc-toc-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.4rem; }
.oc-toc-item { margin: 0; }
.oc-toc-link { display: inline-block; color: var(--oc-navy); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.15s ease; }
.oc-toc-link:hover, .oc-toc-link:focus-visible { border-bottom-color: currentColor; }
.oc-related-terms { margin: 2rem 0; }
.oc-related-terms h2 { margin: 0 0 0.75rem; }
.oc-related-terms-list { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.oc-related-term { text-decoration: none; }
.oc-cta-intro { margin: 0 0 0.75rem; font-size: 1.05rem; font-weight: 600; color: var(--oc-text); }

/* ═══ Wave 3: archive rebuilds (insights / news / faq / terms) ═══ */
/* Aliases so archive markup using alt token names resolves to brand colors */
:root {
  --oc-green: var(--oc-navy);
  --oc-color-primary: var(--oc-navy);
  --oc-color-on-primary: var(--oc-white);
  --oc-color-border: var(--oc-cream-dark);
  --oc-color-text: var(--oc-text);
  --oc-color-text-muted: var(--oc-text-muted);
  --oc-color-heading: var(--oc-navy-deep);
  --oc-radius-pill: 999px;
  --oc-space-1: 0.25rem; --oc-space-2: 0.5rem; --oc-space-3: 0.75rem; --oc-space-4: 1rem;
  --oc-space-8: 2.5rem; --oc-space-10: 3rem; --oc-space-12: 4rem;
  --oc-font-size-sm: 0.875rem; --oc-font-size-lg: 1.125rem;
}

/* Insights archive */
.oc-insights-filter { display: flex; flex-wrap: wrap; gap: 0.5rem 0.6rem; margin-bottom: 2rem; }
.oc-insights-filter-tab { display: inline-block; padding: 0.45rem 1rem; font-size: 0.85rem; font-weight: 600; line-height: 1; color: var(--oc-navy); background: var(--oc-white); border: 1px solid var(--oc-gray-300); border-radius: 999px; text-decoration: none; transition: background var(--oc-transition), color var(--oc-transition), border-color var(--oc-transition); }
.oc-insights-filter-tab:hover { color: var(--oc-navy-deep); border-color: var(--oc-gold); }
.oc-insights-filter-tab.is-active { color: var(--oc-white); background: var(--oc-navy); border-color: var(--oc-navy); }
.oc-insight-featured { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: stretch; margin-bottom: 2.5rem; background: var(--oc-white); border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius-lg); overflow: hidden; box-shadow: var(--oc-shadow); transition: box-shadow var(--oc-transition), transform var(--oc-transition); }
.oc-insight-featured:hover { box-shadow: var(--oc-shadow-lg); transform: translateY(-2px); }
.oc-insight-featured-media { display: block; aspect-ratio: 16 / 10; background: var(--oc-cream); overflow: hidden; }
.oc-insight-featured-media img { width: 100%; height: 100%; object-fit: cover; }
.oc-insight-featured-body { display: flex; flex-direction: column; gap: 0.65rem; padding: clamp(1.25rem, 3vw, 2.25rem); padding-left: 0; }
.oc-insight-featured-title { font-family: var(--oc-font-serif); font-size: clamp(1.3rem, 2.6vw, 1.85rem); line-height: 1.25; margin: 0; }
.oc-insight-featured-title a { color: var(--oc-navy-deep); text-decoration: none; }
.oc-insight-featured-title a:hover { color: var(--oc-gold); }
.oc-insight-featured-excerpt { color: var(--oc-text-mid); font-size: 1rem; line-height: 1.6; margin: 0; }
.oc-insight-card-meta { display: flex; flex-wrap: wrap; gap: 0.4rem 0.85rem; font-size: 0.78rem; color: var(--oc-text-muted); }
.oc-insight-card-readtime { position: relative; padding-left: 0.95rem; }
.oc-insight-card-readtime::before { content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: currentColor; transform: translateY(-50%); }
.oc-insight-card-excerpt { color: var(--oc-text-mid); font-size: 0.9rem; line-height: 1.55; margin: 0; }
.oc-insights-pagination { margin-top: 2.5rem; }
.oc-insights-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; }
.oc-insights-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.4rem; padding: 0.45rem 0.75rem; font-size: 0.85rem; font-weight: 600; color: var(--oc-navy); background: var(--oc-white); border: 1px solid var(--oc-gray-300); border-radius: var(--oc-radius); text-decoration: none; }
.oc-insights-pagination .page-numbers:hover { border-color: var(--oc-gold); color: var(--oc-navy-deep); }
.oc-insights-pagination .page-numbers.current { color: var(--oc-white); background: var(--oc-navy); border-color: var(--oc-navy); }

/* News archive */
.oc-news-filters { border-bottom: 1px solid var(--oc-cream-dark); }
.oc-news-filter-list { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 1rem 0; list-style: none; }
.oc-news-filter { display: inline-block; padding: 0.45rem 1rem; border: 1px solid var(--oc-cream-dark); border-radius: 999px; font-size: 0.9rem; line-height: 1.2; color: var(--oc-text); text-decoration: none; white-space: nowrap; transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
.oc-news-filter:hover, .oc-news-filter:focus-visible { border-color: var(--oc-gold); color: var(--oc-navy); }
.oc-news-filter.is-active { background: var(--oc-navy); border-color: var(--oc-navy); color: var(--oc-white); }
.oc-news-featured { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.oc-news-featured-media { display: block; overflow: hidden; border-radius: var(--oc-radius-lg); }
.oc-news-featured-media img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 16 / 10; }
.oc-news-featured-body { min-width: 0; }
.oc-news-featured-title { margin: 0.5rem 0 0.75rem; font-family: var(--oc-font-serif); font-size: clamp(1.6rem, 3vw, 2.25rem); line-height: 1.15; }
.oc-news-featured-title a { color: var(--oc-navy-deep); text-decoration: none; }
.oc-news-featured-title a:hover { color: var(--oc-gold); }
.oc-news-featured-excerpt { margin: 0 0 1.25rem; font-size: 1.05rem; line-height: 1.6; color: var(--oc-text-mid); }
.oc-news-featured-cta { margin: 1.25rem 0 0; }

/* FAQ archive */
.oc-faq-jump { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2.5rem; }
.oc-faq-jump-link { text-decoration: none; transition: background-color 0.15s ease, color 0.15s ease; }
.oc-faq-jump-link:hover, .oc-faq-jump-link:focus-visible { background-color: var(--oc-navy); color: var(--oc-white); }
.oc-faq-category { margin-bottom: 3rem; scroll-margin-top: 4rem; }
.oc-faq-category:last-child { margin-bottom: 0; }
.oc-faq-category-title { padding-bottom: 0.75rem; border-bottom: 1px solid var(--oc-cream-dark); margin-bottom: 1rem; }
.oc-faq-list { list-style: none; margin: 0; padding: 0; }
.oc-faq-list-item { border-bottom: 1px solid var(--oc-cream-dark); }
.oc-faq-list-item:last-child { border-bottom: 0; }
.oc-faq-list-link { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 1rem 0.25rem; text-decoration: none; color: var(--oc-text); font-weight: 500; transition: color 0.15s ease, padding-left 0.15s ease; }
.oc-faq-list-link:hover, .oc-faq-list-link:focus-visible { color: var(--oc-navy); padding-left: 0.75rem; }
.oc-faq-list-arrow { flex: 0 0 auto; opacity: 0.5; transition: opacity 0.15s ease, transform 0.15s ease; color: var(--oc-gold); }
.oc-faq-list-link:hover .oc-faq-list-arrow, .oc-faq-list-link:focus-visible .oc-faq-list-arrow { opacity: 1; transform: translateX(2px); }
.oc-faq-cta { text-align: center; }
.oc-faq-cta .oc-section-subtitle { margin-bottom: 1rem; }

/* Insurance-terms archive (flat card grid) */
.oc-term-grid { margin-bottom: 2.5rem; }
.oc-term-card { scroll-margin-top: 4rem; height: 100%; }
.oc-term-card-title { margin: 0 0 0.5rem; font-size: 1.125rem; }
.oc-term-card-title a { text-decoration: none; color: var(--oc-navy-deep); transition: color 0.15s ease; }
.oc-term-card-title a:hover, .oc-term-card-title a:focus-visible { color: var(--oc-gold); }
.oc-term-card-def { margin: 0; font-size: 0.875rem; line-height: 1.5; color: var(--oc-text-mid); }

/* Glossary category filter tabs (mirror Webflow terms hub) */
.oc-term-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 2rem; }
.oc-term-tab {
	display: inline-block; padding: 0.5rem 1.1rem; border-radius: 999px;
	font-size: 0.875rem; font-weight: 600; line-height: 1; text-decoration: none;
	color: var(--oc-navy-deep); background: var(--oc-cream, #f5edd8);
	border: 1px solid transparent; transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.oc-term-tab:hover, .oc-term-tab:focus-visible { border-color: var(--oc-gold); color: var(--oc-gold); }
.oc-term-tab.is-active { background: var(--oc-navy-deep); color: #fff; }
.oc-term-card-cat {
	display: inline-block; margin: 0 0 0.5rem; padding: 0.2rem 0.6rem; border-radius: 4px;
	font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
	color: var(--oc-gold); background: rgba(199, 162, 75, 0.12);
}
.oc-term-empty { font-size: 1rem; color: var(--oc-text-mid); }
.oc-term-empty a { color: var(--oc-gold); font-weight: 600; }

@media (max-width: 768px) {
  .oc-insight-featured, .oc-news-featured { grid-template-columns: 1fr; }
  .oc-insight-featured-body { padding: clamp(1.1rem, 5vw, 1.75rem); padding-top: 0; }
}

/* Booking page — "Choose a Time" scheduler CTA */
.oc-booking-cta { background: var(--oc-cream, #f5edd8); border: 1px solid var(--oc-border, #e5e0d3); border-radius: 12px; padding: clamp(2rem, 6vw, 3.25rem); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1rem; }
.oc-booking-cta-lead { font-size: 1.1rem; color: var(--oc-navy-deep, #1b3a5c); max-width: 34rem; margin: 0; line-height: 1.55; }
.oc-booking-cta-alt { font-size: 0.9rem; color: var(--oc-text-mid); margin: 0; }
.oc-btn-lg { font-size: 1.05rem; padding: 0.95rem 2rem; }

/* Site-wide roadside cross-sell band (pre-footer, matches Webflow) */
.oc-roadside-cta { background: var(--oc-navy-deep, #1b3a5c); color: var(--oc-cream, #f5edd8); padding: clamp(1.75rem, 5vw, 2.75rem) 0; }
.oc-roadside-cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.1rem 2rem; flex-wrap: wrap; }
.oc-roadside-cta-text { max-width: 42rem; }
.oc-roadside-cta h2 { font-family: var(--oc-font-serif); color: #fff; font-size: clamp(1.3rem, 3vw, 1.7rem); margin: 0 0 0.4rem; }
.oc-roadside-cta p { margin: 0; color: rgba(245,237,216,0.85); font-size: 0.98rem; line-height: 1.5; }
.oc-roadside-cta .oc-btn { flex: 0 0 auto; }
@media (max-width: 600px) { .oc-roadside-cta-inner { flex-direction: column; align-items: flex-start; } }

/* Carrier single hero line + ratings disclaimer (compliant, no agency names) */
.oc-carrier-hero-line { color: var(--oc-gold-light); font-size: 0.92rem; font-weight: 600; letter-spacing: 0.02em; margin-top: 0.5rem; }
.oc-ratings-disclaimer { font-size: 0.78rem; color: var(--oc-text-muted); margin-top: 1.25rem; line-height: 1.55; max-width: 72ch; }

/* Hero background image + navy overlay (global; used by page + CPT heroes) */
.oc-page-hero--image { position: relative; background-size: cover; background-position: center; }
.oc-page-hero--image::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(15,34,54,0.82), rgba(15,34,54,0.88)); z-index: 0; }
.oc-page-hero--image > * { position: relative; z-index: 1; }

/* State-specific regulatory notes (oc_state_ins_note on product pages). */
.oc-state-notes { background: var(--oc-cream, #f5edd8); }
.oc-state-notes .oc-state-facts { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .5rem; }
.oc-state-notes .oc-state-facts li { position: relative; padding-left: 1.4rem; }
.oc-state-notes .oc-state-facts li::before { content: "✓"; position: absolute; left: 0; color: var(--oc-gold, #c7a24b); font-weight: 700; }
.oc-state-notes .oc-state-claims { margin-top: 1.5rem; padding: 1.25rem 1.5rem; background: #fff; border-left: 4px solid var(--oc-gold, #c7a24b); border-radius: 6px; }
.oc-state-notes .oc-state-claims h3 { margin: 0 0 .5rem; font-family: "Playfair Display", serif; color: var(--oc-navy, #1b3a5c); }
.oc-state-notes .oc-state-doi { margin-top: .75rem; font-size: .95rem; }
.oc-state-notes .oc-state-doi a { color: var(--oc-gold-dark, #b8934a); font-weight: 600; }

/* Detailed carrier comparison tables (personal/commercial carriers). */
.oc-compare-section .oc-ct-wrap { overflow-x: auto; margin-top: 1.5rem; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 10px; -webkit-overflow-scrolling: touch; }
.oc-compare-table--wide { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 860px; }
.oc-compare-table--wide thead th { background: var(--oc-navy, #1b3a5c); color: #fff; font-weight: 600; text-align: left; padding: .7rem .8rem; font-size: .82rem; white-space: nowrap; position: sticky; top: 0; }
.oc-compare-table--wide tbody th, .oc-compare-table--wide tbody td { padding: .7rem .8rem; border-top: 1px solid var(--oc-border, #e5e0d3); vertical-align: top; }
.oc-compare-table--wide tbody tr:nth-child(even) { background: #faf7ef; }
.oc-ct-carrier { text-align: left; min-width: 150px; }
.oc-ct-carrier a { text-decoration: none; color: var(--oc-navy, #1b3a5c); }
.oc-ct-carrier a:hover strong { text-decoration: underline; }
.oc-ct-carrier strong { display: block; font-size: .95rem; }
.oc-ct-sub { display: block; font-size: .75rem; color: #6b7280; font-weight: 400; margin-top: .1rem; }
.oc-ct-yes { color: #15803d; font-weight: 700; }
.oc-ct-na { color: #b8b3a6; }
.oc-ct-profile { text-align: center; }
.oc-ct-profile a { color: var(--oc-gold, #c7a24b); font-weight: 700; text-decoration: none; font-size: 1.1rem; white-space: nowrap; }
.oc-compare-table--wide td:last-child, .oc-compare-table--wide th:last-child { white-space: nowrap; }
.oc-ct-legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin: 0.9rem 0 0; font-size: 0.82rem; color: var(--oc-text-mid); }
.oc-ct-legend-item { display: inline-flex; align-items: center; gap: 0.4rem; }
.oc-ct-footnote { margin: 0.65rem 0 0; font-size: 0.8rem; color: var(--oc-text-mid); font-style: italic; line-height: 1.5; }

/* Mobile: turn the wide comparison table into stacked cards (uses each cell's
   data-label). Prevents horizontal-scroll overflow on phones. */
@media (max-width: 760px) {
  .oc-compare-section .oc-ct-wrap { overflow: visible; border: none; }
  .oc-compare-table--wide { min-width: 0; }
  .oc-compare-table--wide thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .oc-compare-table--wide tbody tr { display: block; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 10px; margin-bottom: 1rem; background: #fff; overflow: hidden; }
  .oc-compare-table--wide tbody tr:nth-child(even) { background: #fff; }
  .oc-compare-table--wide .oc-ct-carrier { display: block; background: var(--oc-navy, #1b3a5c); color: #fff; padding: .7rem .9rem; min-width: 0; }
  .oc-compare-table--wide .oc-ct-carrier a, .oc-compare-table--wide .oc-ct-carrier strong { color: #fff; }
  .oc-compare-table--wide td { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem .9rem; border-top: 1px solid var(--oc-border, #e5e0d3); text-align: right; }
  .oc-compare-table--wide td::before { content: attr(data-label); font-weight: 600; color: var(--oc-navy, #1b3a5c); text-align: left; flex: 0 0 48%; }
  .oc-compare-table--wide td.oc-ct-profile { justify-content: flex-end; }
  .oc-compare-table--wide td.oc-ct-profile::before { content: ""; flex: 0; }
}

/* Complete carrier directory on the /carriers/ archive. */
.oc-carrier-directory { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .4rem .75rem; }
.oc-carrier-directory a { display: block; padding: .55rem .75rem; border: 1px solid var(--oc-border, #e5e0d3); border-radius: 8px; text-decoration: none; color: var(--oc-navy, #1b3a5c); font-size: .92rem; background: #fff; transition: border-color .15s, background .15s; }
.oc-carrier-directory a:hover { border-color: var(--oc-gold, #c7a24b); background: #faf7ef; }
.oc-carrier-directory a span { color: var(--oc-gold, #c7a24b); float: right; }

/* ── Mobile hardening ─────────────────────────────────────────────────────── */
/* Site-wide guard against horizontal scroll from any stray wide element.
   `clip` (not `hidden`) so it does NOT create a scroll container that would
   break the sticky header and other position:sticky elements. */
html { overflow-x: clip; }
body { max-width: 100%; overflow-x: clip; }
@media (max-width: 600px) {
  /* Long CTA labels wrap instead of overflowing the screen. */
  .oc-btn { white-space: normal; max-width: 100%; }
  /* Primary form + hero CTAs go full-width (easier tap target on phones). */
  .oc-form-btn, .oc-page-hero-actions .oc-btn, .oc-cta-banner-actions .oc-btn { width: 100%; }
  .oc-page-hero-actions { display: flex; flex-direction: column; gap: .6rem; }
  /* Tables that aren't the comparison cards: allow horizontal scroll vs overflow. */
  .oc-prose table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* Section padding tightened so content isn't cramped against edges. */
  .oc-container, .oc-container-narrow { padding-left: 1rem; padding-right: 1rem; }
}

/* ── JS-forced mobile nav (overflow / foldable fallback) ───────────────────── */
/* Applied by main.js (.oc-nav-collapsed on <body>) when the desktop nav won't
   fit on one row — independent of the reported viewport width. Mirrors the
   ≤1024px mobile-nav rules. */
body.oc-nav-collapsed .oc-site-header { position: relative; }
body.oc-nav-collapsed .oc-nav-toggle { display: flex; align-items: center; justify-content: center; }
body.oc-nav-collapsed .oc-nav-primary { display: none; position: absolute; top: 64px; left: 0; right: 0; background: var(--oc-navy-deep); border-top: 1px solid rgba(255,255,255,0.1); padding: 0.5rem 0 1rem; z-index: 200; }
body.oc-nav-collapsed .oc-nav-primary.is-open { display: block; }
body.oc-nav-collapsed .oc-menu { flex-direction: column; gap: 0; }
body.oc-nav-collapsed .oc-menu > li > a { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1.5rem; border-radius: 0; }
body.oc-nav-collapsed .oc-has-mega > a::after { margin-left: auto; }
body.oc-nav-collapsed .oc-mega-panel { position: static; width: 100%; border: none; border-radius: 0; box-shadow: none; background: rgba(255,255,255,0.03); border-top: 1px solid rgba(255,255,255,0.05); }
body.oc-nav-collapsed .oc-has-mega.is-open > .oc-mega-panel { display: block; }
body.oc-nav-collapsed .oc-mega-panel-coverage,
body.oc-nav-collapsed .oc-mega-panel-carriers,
body.oc-nav-collapsed .oc-mega-panel-claims,
body.oc-nav-collapsed .oc-mega-panel-resources,
body.oc-nav-collapsed .oc-mega-panel-about { width: 100%; left: 0; right: auto; }
body.oc-nav-collapsed .oc-mega-inner,
body.oc-nav-collapsed .oc-mega-inner-claims,
body.oc-nav-collapsed .oc-mega-links-grid { grid-template-columns: 1fr; padding: 0.5rem 1.5rem; gap: 0; }
body.oc-nav-collapsed .oc-mega-col { padding: 0.75rem 0; }

/* ── Compact mobile header: short state pill + CTA moved into the menu ─────── */
.oc-state-pill-abbr { display: none; font-weight: 600; }
.oc-menu-cta { display: none; }  /* shown only inside the mobile menu */
@media (max-width: 1024px) {
  .oc-state-pill-label { display: none; }            /* "Georgia" → */
  .oc-state-pill-abbr  { display: inline; }          /* "GA" */
  .oc-header-cta       { display: none; }             /* CTA leaves the header */
  .oc-menu-cta { display: flex; justify-content: center; margin: 0.25rem 1.5rem 0.75rem; }
}
body.oc-nav-collapsed .oc-state-pill-label { display: none; }
body.oc-nav-collapsed .oc-state-pill-abbr  { display: inline; }
body.oc-nav-collapsed .oc-header-cta       { display: none; }
body.oc-nav-collapsed .oc-menu-cta { display: flex; justify-content: center; margin: 0.25rem 1.5rem 0.75rem; }

/* Coverage mega-menu CTA buttons (match Webflow: Book a call + Free Coverage Review). */
.oc-mega-cta-row { display: flex; flex-wrap: wrap; gap: .5rem; margin: .9rem 0 .4rem; }
.oc-mega-cta { display: inline-flex; align-items: center; padding: .45rem .9rem; border-radius: 7px; font-size: .82rem; font-weight: 600; text-decoration: none; border: 1px solid rgba(255,255,255,0.3); color: #fff; transition: background .15s, border-color .15s; }
.oc-mega-cta:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.55); }
.oc-mega-cta-primary { background: var(--oc-gold, #c7a24b); border-color: var(--oc-gold, #c7a24b); color: #1b2237; }
.oc-mega-cta-primary:hover { background: var(--oc-gold-dark, #b8934a); border-color: var(--oc-gold-dark, #b8934a); }
