/* ── 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:        #b8934a;    /* accent: CTA buttons, highlights */
  --oc-gold-light:  #d4a95c;    /* 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; }
.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-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); }
.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); }

/* ── 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(4, 1fr); gap: 2rem; margin-top: 2rem; }
.oc-stat-card { border-left: 3px solid var(--oc-gold); padding-left: 1.25rem; }
.oc-stat-number { font-family: var(--oc-font-serif); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 700; color: var(--oc-gold); line-height: 1; margin-bottom: 0.5rem; }
.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, .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; }

/* ── 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; }
}

/* ── Homepage section responsive ─────────────────────────────────────────── */
@media (max-width: 1024px) {
  .oc-stat-grid { grid-template-columns: repeat(2, 1fr); }
  .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; }
}
