/*
Theme Name:  The Owner Perspective
Theme URI:   https://theownerperspective.com/
Author:      The Owner Perspective
Description: A professional, editorial review theme.
Version:     2.7.0
Requires at least: 6.0
Requires PHP: 8.0
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: owner-perspective
Tags: blog, custom-logo, custom-menu, featured-images, full-width-template
*/

/* ── Google Fonts — @import guarantees load before any other CSS ── */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800;900&family=Open+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap');

/* ─────────────────────────────────────────────────────────
   DESIGN TOKENS
   Clean, editorial review publication
   Palette: deep navy, clean white, warm accent
   ───────────────────────────────────────────────────────── */
:root {
  /* Core palette */
  --navy:       #0A2342;   /* deep trustworthy navy — primary brand */
  --navy-mid:   #1A3D6B;   /* mid navy for hover states */
  --navy-lt:    #E8EEF5;   /* very light navy tint — section backgrounds */
  --teal:       #1B7B9E;   /* secondary accent — links, highlights */
  --teal-lt:    #E5F3F8;   /* teal tint */
  --accent:     #C0392B;   /* warm red from logo — used sparingly */
  --accent-lt:  #FAF0EF;

  /* Neutrals */
  --white:      #FFFFFF;
  --bg:         #F4F6F9;   /* very light blue-tinted white */
  --surface:    #FFFFFF;
  --border:     #DDE3EC;
  --border-lt:  #EEF1F6;

  /* Text */
  --ink:        #0A2342;   /* headlines in navy */
  --body:       #2D3748;   /* body copy */
  --muted:      #637085;   /* meta, captions */
  --faint:      #9BACCB;   /* placeholders, divider labels */

  /* Semantic */
  --buy:  #1A6B3C; --buy-bg:  #EAF5EE;
  --hold: #7A5000; --hold-bg: #FDF5E6;
  --skip: #C0392B; --skip-bg: #FAF0EF;

  /* Type */
  --f-sans:    'Open Sans', system-ui, -apple-system, sans-serif;
  --f-display: 'Playfair Display', Georgia, serif;
  --f-ui:      'Montserrat', system-ui, sans-serif;
  --f-mono:    'DM Mono', 'Courier New', monospace;

  /* Spacing */
  --s1: 0.5rem;
  --s2: 1rem;
  --s3: 1.5rem;
  --s4: 2rem;
  --s5: 3rem;
  --s6: 4.5rem;
  --s7: 6rem;
  --s8: 8rem;

  /* Layout */
  --max:    1300px;
  --prose:  720px;
  --g:      clamp(1rem, 3vw, 2rem);

  /* Effects */
  --radius:    4px;
  --radius-lg: 8px;
  --shadow-sm: 0 1px 4px rgba(10,35,66,.08);
  --shadow:    0 4px 16px rgba(10,35,66,.1);
  --shadow-lg: 0 12px 40px rgba(10,35,66,.14);
}

/* ─────────────────────────────────────────────────────────
   RESET
   ───────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.65;
  color: #2D3748;
  background: #ffffff;
  -webkit-font-smoothing: antialiased;
}
img  { display: block; max-width: 100%; height: auto; }
a    { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button, input, textarea, select { font: inherit; color: inherit; }
h1,h2,h3,h4,h5,h6 { font-family: 'Montserrat', system-ui, sans-serif; color: var(--ink); line-height: 1.15; font-weight: 700; }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link { position: absolute; top: -9999px; left: 1rem; z-index: 9999; background: var(--navy); color: var(--white); padding: .5em 1em; }
.skip-link:focus { top: 1rem; }
*:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 2px; }

/* ─────────────────────────────────────────────────────────
   LAYOUT
   ───────────────────────────────────────────────────────── */
.w      { max-width: var(--max);   margin: 0 auto; padding: 0 var(--g); }
.w-sm   { max-width: 1000px;       margin: 0 auto; padding: 0 var(--g); }
.w-prose{ max-width: var(--prose); margin: 0 auto; padding: 0 var(--g); }
.w-post { max-width: 1180px; margin: 0 auto; padding: 0 var(--g); }
/* ─────────────────────────────────────────────────────────
   HEADER — single dark bar
   Logo left | Nav tabs | Search right
   ───────────────────────────────────────────────────────── */
.site-header {
  background: #0A2342 !important;
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 4px 24px rgba(0,0,0,.45);
}

.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) { .admin-bar .site-header { top: 46px; } }

.header-inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem);
  display: flex;
  align-items: stretch;
  height: 76px;
}

/* Logo */
.site-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  padding-right: 32px;
  margin-right: 0;
}

.site-logo img {
  display: block;
  height: 44px !important;
  width: auto !important;
}

/* Primary nav */
.site-nav {
  flex: 1;
  display: flex;
  align-items: stretch;
  min-width: 0;
}

.site-nav > ul,
.site-nav > .site-nav-list {
  display: flex;
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
}

.site-nav > ul > li,
.site-nav > .site-nav-list > li {
  position: relative;
  display: flex;
  align-items: stretch;
}

/* ══════════════════════════════════════════════════════════
   NAV BUTTONS — equal-width, geometric, Montserrat
   ══════════════════════════════════════════════════════════ */

/* Each <li> is a fixed-width geometric button cell */
.site-nav > ul > li,
.site-nav > .site-nav-list > li {
  position: relative;
  display: flex;
  align-items: stretch;
  /* Equal width for all items — feels structured, not random */
  min-width: 120px;
  /* 2px gap between each */
  margin-right: 2px;
}

/* The actual button surface lives on the <a> directly —
   no pseudo-element tricks that can get out of sync */
.site-nav > ul > li > a,
.site-nav > .site-nav-list > li > a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0 16px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.8);
  text-decoration: none;
  white-space: nowrap;
  text-align: center;
  /* The button shape */
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-bottom: none;           /* open bottom — merges with header bottom border */
  border-radius: 4px 4px 0 0;   /* tabs rounded on top only */
  margin-top: 10px;              /* gap above so they sit inside the header bar */
  /* Accent line on top — hidden until hover/active */
  box-shadow: inset 0 2px 0 transparent;
  transition:
    background 0.18s ease,
    color 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    transform 0.12s ease;
}

/* Hover — lift + teal accent bar on top */
.site-nav > ul > li > a:hover,
.site-nav > .site-nav-list > li > a:hover {
  color: #ffffff;
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.2);
  box-shadow: inset 0 3px 0 #1B7B9E;
  transform: translateY(-1px);
}

/* Active/current — solid teal top bar, brighter */
.site-nav > ul > li.current-menu-item > a,
.site-nav > ul > li.current-menu-ancestor > a,
.site-nav > .site-nav-list > li.current-menu-item > a,
.site-nav > .site-nav-list > li.current-menu-ancestor > a {
  color: #ffffff;
  background: rgba(27,123,158,.2);
  border-color: rgba(27,123,158,.35);
  box-shadow: inset 0 3px 0 #1B7B9E;
}

/* Pressed state */
.site-nav > ul > li > a:active,
.site-nav > .site-nav-list > li > a:active {
  transform: translateY(0);
  background: rgba(27,123,158,.3);
}

/* ── DROPDOWN ──────────────────────────────────────────────
   Full-width panel below, each item its own button row
   ───────────────────────────────────────────────────────── */
.site-nav .sub-menu {
  display: none;
  position: absolute;
  top: calc(100% + 1px);
  left: 0;
  min-width: 220px;
  width: max-content;
  background: #0c2847;
  border: 1px solid rgba(255,255,255,.12);
  border-top: 3px solid #1B7B9E;
  box-shadow:
    0 20px 50px rgba(0,0,0,.6),
    0 4px 12px rgba(0,0,0,.4);
  z-index: 500;
  list-style: none;
  padding: 8px 0;
  /* Slide in */
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

.site-nav li:hover > .sub-menu,
.site-nav li:focus-within > .sub-menu {
  display: block;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.site-nav .sub-menu li {
  display: block;
}

/* Dropdown items — clean text links, no boxes */
.site-nav .sub-menu a {
  display: block;
  padding: 9px 20px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  text-decoration: none;
  background: transparent;
  border: none;
  border-left: 2px solid transparent;
  transition: color .15s, border-color .15s, background .15s;
  line-height: 1;
  width: 100%;
}

.site-nav .sub-menu a:hover {
  color: #ffffff;
  border-left-color: #1B7B9E;
  background: rgba(255,255,255,.05);
}

.site-nav .sub-menu a:active {
  color: #1B7B9E;
}

/* Header right: search + toggle */
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  padding-left: 20px;
  margin-left: auto;
}

.header-search {
  display: flex;
  align-items: center;
  height: 36px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.07);
  overflow: hidden;
  transition: border-color .15s, background .15s;
}

.header-search:focus-within {
  border-color: #1B7B9E;
  background: rgba(255,255,255,.11);
}

/* `all: unset` defeats WP's input[type=search] default styles */
.header-search input[type="search"],
.header-search input[type="text"],
.header-search input {
  all: unset;
  display: block;
  padding: 0 12px;
  width: 140px;
  font-size: 13px;
  color: #ffffff;
  font-family: inherit;
  transition: width .2s ease;
  cursor: text;
}

.header-search input:focus { width: 200px; }
.header-search input::placeholder { color: rgba(255,255,255,.32); }

.header-search button {
  background: transparent;
  border: none;
  padding: 0 10px 0 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  color: rgba(255,255,255,.45);
  flex-shrink: 0;
  transition: color .15s;
}
.header-search button:hover { color: #ffffff; }
.header-search button svg { display: block; }

.nav-toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 4px;
  cursor: pointer;
  padding: 7px 8px;
  color: rgba(255,255,255,.7);
  line-height: 0;
  transition: all .15s;
}
.nav-toggle:hover { border-color: rgba(255,255,255,.5); color: #ffffff; }

   BUTTONS
   ───────────────────────────────────────────────────────── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .7em 1.6em;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .9375rem;
  font-weight: 600;
  letter-spacing: .02em;
  border-radius: var(--radius);
  border: 2px solid transparent;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: all .15s;
  line-height: 1;
}

.btn-navy {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}
.btn-navy:hover { background: var(--navy-mid); border-color: var(--navy-mid); color: var(--white); }

.btn-teal {
  background: var(--teal);
  color: var(--white);
  border-color: var(--teal);
}
.btn-teal:hover { background: #15678A; border-color: #15678A; color: var(--white); }

.btn-outline-white {
  background: transparent;
  color: var(--white);
  border-color: rgba(255,255,255,.5);
}
.btn-outline-white:hover { border-color: var(--white); background: rgba(255,255,255,.08); }

.btn-outline-navy {
  background: transparent;
  color: var(--navy);
  border-color: var(--navy);
}
.btn-outline-navy:hover { background: var(--navy); color: var(--white); }

.btn-ghost {
  background: transparent;
  color: var(--teal);
  border-color: transparent;
  padding-left: 0;
  padding-right: 0;
  font-weight: 600;
}
.btn-ghost:hover { color: var(--navy); }

/* ─────────────────────────────────────────────────────────
   HERO — structured, geometric background, editorial
   Two columns above; full-width stats bar below.
   ───────────────────────────────────────────────────────── */
.hero {
  background: #0A2342;
  position: relative;
  overflow: hidden;
  padding: 80px 0 0;
  isolation: isolate;
}

/* ── Hero background: full-width pattern ────────────────
   Repeating diamond grid across the entire banner.
   Teal glow overlay adds depth without circles.
   ─────────────────────────────────────────────────────── */

/* Full-width diagonal line pattern — 45°, 20px pitch */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='20' x2='20' y2='0' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 20px 20px;
  pointer-events: none;
  z-index: 0;
}

/* Teal fade — washes in from the right, fades the grid softly */
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 80% 40%,
      rgba(27,123,158,.18) 0%,
      transparent 70%
    ),
    linear-gradient(to right,
      rgba(10,35,66,.6) 0%,
      transparent 55%
    );
  pointer-events: none;
  z-index: 0;
}

/* Bottom fade to next section */
.hero-fade {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 80px;
  background: linear-gradient(to bottom, transparent, #0A2342);
  pointer-events: none;
  z-index: 0;
}

/* hero-lines div no longer used — clear it */
.hero-lines { display: none; }

/* ── Two-column layout ── */
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 60px;
  align-items: center;
  position: relative;
  z-index: 1;
  padding-bottom: 60px;
}

/* ── Left copy ── */
.hero-copy {}

.hero-headline {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(2.75rem, 5vw, 4rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.05;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.hero-tagline {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 1.625rem);
  font-style: italic;
  color: #1B7B9E;
  line-height: 1.3;
  margin-bottom: 20px;
}

.hero-subhead {
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: 1.0625rem;
  color: rgba(255,255,255,.82);
  line-height: 1.72;
  margin-bottom: 36px;
  max-width: 480px;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* Hero-specific button styles */
.btn-hero-primary {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .75em 1.75em;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  color: #ffffff;
  background: #1B7B9E;
  border: 2px solid #1B7B9E;
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  line-height: 1;
  transition: background .18s, border-color .18s, transform .12s, box-shadow .18s;
  box-shadow: 0 4px 16px rgba(27,123,158,.35);
}
.btn-hero-primary:hover {
  background: #15678A;
  border-color: #15678A;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(27,123,158,.45);
  color: #ffffff;
}
.btn-hero-primary:active { transform: translateY(0); }

.btn-hero-ghost {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: .75em 1.5em;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .9375rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  color: rgba(255,255,255,.85);
  background: transparent;
  border: 2px solid rgba(255,255,255,.3);
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  line-height: 1;
  transition: border-color .18s, color .18s, background .18s;
}
.btn-hero-ghost:hover {
  border-color: rgba(255,255,255,.7);
  color: #ffffff;
  background: rgba(255,255,255,.06);
}

/* ── Right feature card ── */
.hero-card-wrap { position: relative; z-index: 1; }

.hero-card {
  background: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(255,255,255,.1),
    0 24px 60px rgba(0,0,0,.5),
    0 6px 16px rgba(0,0,0,.3);
}

.hero-card-img {
  height: 220px;
  overflow: hidden;
  background: #1a3d6b;
  position: relative;
}
.hero-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.hero-card:hover .hero-card-img img { transform: scale(1.04); }

.hero-card-noimg {
  height: 220px;
  background: linear-gradient(140deg, #0d2d52 0%, #1a4a7a 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero-card-noimg span {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.125rem;
  font-style: italic;
  color: rgba(255,255,255,.3);
  text-align: center;
  padding: 1rem;
}

.hero-card-badge {
  position: absolute; top: .75rem; left: .75rem;
  background: #1B7B9E; color: #fff;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .625rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  padding: .3em .8em; border-radius: 999px;
}

.hero-card-body { padding: 20px 24px 24px; }

.hero-card-cat {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .6875rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: #1B7B9E;
  display: block; margin-bottom: .5em;
}

.hero-card-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.25rem; font-weight: 700;
  color: #0A2342; line-height: 1.2;
  margin-bottom: .5em;
}
.hero-card-title a:hover { color: #1B7B9E; }

.hero-card-excerpt {
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: .875rem; color: #637085;
  line-height: 1.6; margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.hero-card-meta {
  display: flex; align-items: center; gap: .4em;
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: .75rem; color: #9BACCB;
  padding-top: 14px;
  border-top: 1px solid #EEF1F6;
}
.hero-card-meta-dot::before { content: '·'; }

.hero-more { border-top: 1px solid #EEF1F6; }
.hero-more-item {
  display: flex; align-items: baseline; gap: 14px;
  padding: 12px 24px;
  border-bottom: 1px solid #EEF1F6;
}
.hero-more-item:last-child { border-bottom: none; }
.hero-more-num {
  font-family: 'DM Mono', monospace;
  font-size: .6875rem; font-weight: 700;
  color: #1B7B9E; flex-shrink: 0;
}
.hero-more-title {
  font-family: 'Open Sans', system-ui, sans-serif;
  font-size: .9375rem; font-weight: 600;
  line-height: 1.3; color: #0A2342;
}
.hero-more-title a:hover { color: #1B7B9E; }

/* ── Stats bar — full-width strip at the bottom of the hero ── */
.hero-stats-bar {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  padding: 32px 0 40px;
  border-top: 1px solid rgba(255,255,255,.1);
  gap: 0;
}

.hero-stat {
  flex: 1;
  text-align: center;
  padding: 0 24px;
}

.hero-stat-div {
  width: 1px;
  height: 48px;
  background: rgba(255,255,255,.12);
  flex-shrink: 0;
}

.hero-stat-num {
  display: block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -.02em;
}

.hero-stat-num sup {
  font-size: .55em;
  vertical-align: super;
  color: #1B7B9E;
}

.hero-stat-label {
  display: block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .6875rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
  margin-top: .5em;
  line-height: 1.45;
}

/* ─────────────────────────────────────────────────────────
   SECTION HEADINGS
   ───────────────────────────────────────────────────────── */
.section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--s3);
  margin-bottom: var(--s5);
  padding-bottom: var(--s3);
  border-bottom: 2px solid var(--border);
}

.section-head-left {}

.section-head-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--teal);
  display: block;
  margin-bottom: .4em;
}

.section-head-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -.01em;
  line-height: 1.1;
}

.section-head-link {
  font-size: .875rem;
  font-weight: 600;
  color: var(--teal);
  white-space: nowrap;
  flex-shrink: 0;
  padding-bottom: .2em;
}

.section-head-link:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

/* ─────────────────────────────────────────────────────────
   ARTICLE CARDS
   ───────────────────────────────────────────────────────── */
.card-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s4);
}

.card-grid--2 { grid-template-columns: 1fr 1fr; }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}

.card:hover {
  box-shadow: var(--shadow);
  transform: translateY(-3px);
}

.card-thumb {
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  background: var(--navy-lt);
}

.card-thumb img {
  width: 100%;
  height: 210px;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}

.card:hover .card-thumb img { transform: scale(1.04); }

.card-noimg {
  height: 210px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(160deg, var(--navy-lt) 0%, var(--teal-lt) 100%);
}

.card-noimg span {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.125rem;
  font-style: italic;
  color: var(--faint);
  padding: var(--s2);
  text-align: center;
}

.card-cat-pill {
  position: absolute;
  top: .75rem;
  left: .75rem;
  background: var(--teal);
  color: var(--white);
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .3em .8em;
  border-radius: 999px;
}

.card-body {
  padding: var(--s3);
  flex: 1;
  display: flex;
  flex-direction: column;
}

.card-category {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--teal);
  display: block;
  margin-bottom: .5em;
}

.card-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
  margin-bottom: .5em;
  flex: 1;
}

.card-title a:hover { color: var(--teal); }

.card-excerpt {
  font-size: .875rem;
  color: #637085;
  line-height: 1.6;
  margin-bottom: var(--s2);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.card-score-row {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding-top: var(--s2);
  border-top: 1px solid var(--border-lt);
  margin-top: auto;
}

.card-score-num {
  font-family: 'Courier New', monospace;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--navy);
  line-height: 1;
  min-width: 2rem;
}

.card-score-track {
  flex: 1;
  min-width: 0;
}

.card-score-label {
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #637085;
  margin-bottom: .25em;
}

.card-score-bar  { height: 3px; background: var(--border); border-radius: 999px; }
.card-score-fill { height: 100%; background: var(--teal); border-radius: 999px; transition: width .7s ease; }

.card-verdict {
  font-size: .625rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .3em .7em;
  border-radius: 999px;
  flex-shrink: 0;
}

.verdict-buy  { background: var(--buy-bg);  color: var(--buy);  }
.verdict-hold { background: var(--hold-bg); color: var(--hold); }
.verdict-skip { background: var(--skip-bg); color: var(--skip); }

.card-meta {
  display: flex;
  align-items: center;
  gap: .35em;
  font-size: .75rem;
  color: var(--faint);
  margin-top: .5em;
}

.card-meta-dot::before { content: '·'; }

/* ─────────────────────────────────────────────────────────
   FEATURED EDITORIAL STRIP
   Image left, text right — editorial feature strip
   ───────────────────────────────────────────────────────── */
.feature-strip {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: grid;
  grid-template-columns: 480px 1fr;
}

.feature-strip-img {
  position: relative;
  overflow: hidden;
  background: var(--navy-lt);
  min-height: 340px;
}

.feature-strip-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-strip-noimg {
  min-height: 340px;
  background: linear-gradient(160deg, var(--navy) 0%, var(--navy-mid) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.feature-strip-noimg span {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.5rem;
  font-style: italic;
  color: rgba(255,255,255,.25);
}

.feature-strip-body {
  padding: var(--s6) var(--s6);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.feature-strip-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--teal);
  display: block;
  margin-bottom: var(--s2);
}

.feature-strip-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.375rem, 2.5vw, 1.875rem);
  font-weight: 700;
  color: #0A2342;
  line-height: 1.15;
  margin-bottom: var(--s2);
}

.feature-strip-title a:hover { color: var(--teal); }

.feature-strip-excerpt {
  font-size: 1rem;
  color: #637085;
  line-height: 1.7;
  margin-bottom: var(--s4);
}

.feature-strip-meta {
  font-size: .75rem;
  color: var(--faint);
}

/* ─────────────────────────────────────────────────────────
   PROOF / STATS SECTION
   Navy background, large white numbers
   ───────────────────────────────────────────────────────── */
.proof-section {
  background: #0A2342;
  padding: var(--s6) 0;
}

.proof-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.proof-cell {
  padding: var(--s5) var(--s4);
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.1);
  position: relative;
}

.proof-cell:last-child { border-right: none; }

.proof-num {
  display: block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 700;
  color: var(--white);
  line-height: 1;
  letter-spacing: -.03em;
}

.proof-num em {
  color: rgba(27,123,158,.9);
  font-style: normal;
}

.proof-divider {
  width: 32px;
  height: 2px;
  background: var(--teal);
  margin: var(--s2) auto;
  border-radius: 999px;
}

.proof-label {
  font-size: .8125rem;
  font-weight: 500;
  letter-spacing: .06em;
  color: rgba(255,255,255,.8);
  line-height: 1.5;
  text-transform: uppercase;
}

/* ─────────────────────────────────────────────────────────
   WHY WE'RE DIFFERENT — light navy-tint section
   ───────────────────────────────────────────────────────── */
.why-section {
  background: #F4F6F9;
  padding: var(--s7) 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--s4);
}

.why-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: var(--s4) var(--s4) var(--s5);
  border-top: 3px solid var(--teal);
}

.why-icon {
  width: 44px;
  height: 44px;
  background: var(--teal-lt);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--s3);
  color: var(--teal);
}

.why-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 1.1875rem;
  font-weight: 700;
  color: #0A2342;
  margin-bottom: .6em;
}

.why-desc {
  font-size: .9375rem;
  color: #637085;
  line-height: 1.65;
}

/* ─────────────────────────────────────────────────────────
   NEWSLETTER — navy band
   ───────────────────────────────────────────────────────── */
.newsletter-section {
  background: #F4F6F9;
  padding: var(--s6) 0;
  border-top: 1px solid var(--border);
}

.newsletter-inner {
  display: flex;
  align-items: center;
  gap: var(--s7);
}

.newsletter-copy { flex: 1; }

.newsletter-copy h2 {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #0A2342;
  letter-spacing: -.01em;
  margin-bottom: .4em;
}

.newsletter-copy p {
  font-size: .9375rem;
  color: #637085;
  line-height: 1.6;
}

.newsletter-form {
  display: flex;
  flex-shrink: 0;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
  border-radius: var(--radius);
  overflow: hidden;
}

.newsletter-input {
  border: none;
  outline: none;
  padding: .85em 1.25em;
  font-size: .9375rem;
  background: #ffffff;
  color: #0A2342;
  width: 280px;
  border: 1.5px solid #DDE3EC;
  border-right: none;
}

.newsletter-input::placeholder { color: #9BACCB; }
.newsletter-input:focus { background: #ffffff; border-color: #1B7B9E; outline: none; }

.newsletter-btn {
  background: var(--teal);
  color: var(--white);
  border: none;
  padding: .85em 1.75em;
  font-size: .9375rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition: background .15s;
}

.newsletter-btn:hover { background: #15678A; }

/* ─────────────────────────────────────────────────────────
   PAGE / ARCHIVE BANNER
   ───────────────────────────────────────────────────────── */
.page-banner {
  background: #0A2342;
  padding: var(--s6) 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.page-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='20' x2='20' y2='0' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 20px 20px;
  pointer-events: none;
  z-index: 0;
}

/* Teal glow — right side */
.page-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 50% 140% at 90% 50%,
    rgba(27,123,158,.2) 0%,
    transparent 65%
  );
  pointer-events: none;
  z-index: 0;
}

.page-banner > * { position: relative; z-index: 1; }
.page-banner .w  { position: relative; z-index: 1; }

.page-banner-inner {}

.page-banner-label {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(27,123,158,.9);
  display: block;
  margin-bottom: .6em;
}

.page-banner-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.875rem, 5vw, 3.5rem);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: .04em;
  text-transform: uppercase;
  line-height: 1.1;
  margin-bottom: .5em;
}

.page-banner-sub {
  font-size: 1.0625rem;
  color: rgba(255,255,255,.75);
  max-width: 560px;
  line-height: 1.65;
}

/* ─────────────────────────────────────────────────────────
   SINGLE ARTICLE
   ───────────────────────────────────────────────────────── */
.article-banner {
  background: #0A2342;
  padding: var(--s6) 0 var(--s5);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.article-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cline x1='0' y1='20' x2='20' y2='0' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 20px 20px;
  pointer-events: none;
  z-index: 0;
}

.article-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 45% 130% at 85% 50%,
    rgba(27,123,158,.2) 0%,
    transparent 65%
  );
  pointer-events: none;
  z-index: 0;
}

.article-banner .w { position: relative; z-index: 1; }

.article-labels {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: var(--s3);
}

.article-cat {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(27,123,158,.9);
  background: rgba(27,123,158,.18);
  padding: .3em .9em;
  border-radius: 999px;
  border: 1px solid rgba(27,123,158,.3);
  transition: background .15s;
}

.article-cat:hover { background: rgba(27,123,158,.35); }

.article-verdict-badge {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .3em .9em;
  border-radius: 999px;
}

/* 404 banner gets same treatment */
.banner-404 {
  background: linear-gradient(135deg, #0A2342 0%, #0f3060 60%, #1a4a7a 100%);
  position: relative;
  overflow: hidden;
}

.article-title {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: clamp(1.625rem, 3vw, 2.5rem);
  font-weight: 800;
  color: #ffffff;
  line-height: 1.1;
  letter-spacing: .03em;
  text-transform: uppercase;
  max-width: 860px;
  margin-bottom: var(--s3);
}

.article-dek {
  font-size: 1.125rem;
  color: rgba(255,255,255,.88);
  line-height: 1.65;
  max-width: 640px;
  margin-bottom: var(--s4);
  font-style: italic;
}

.article-byline {
  display: flex;
  align-items: center;
  gap: var(--s2);
  font-size: .8125rem;
  color: rgba(255,255,255,.65);
  padding-top: var(--s3);
  border-top: 1px solid rgba(255,255,255,.12);
  flex-wrap: wrap;
}

.article-byline-avatar { width: 32px; height: 32px; border-radius: 50%; overflow: hidden; border: 2px solid rgba(255,255,255,.2); flex-shrink: 0; }
.article-byline-author { font-weight: 600; color: #ffffff; }
.article-byline-sep { color: rgba(255,255,255,.25); }

.article-hero-img { width: 100%; max-height: 560px; object-fit: cover; display: block; }

.article-body { padding: var(--s7) 0 var(--s8); }

.article-cols {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
  align-items: start;
}

.article-cols > article { min-width: 0; } /* prevent prose from overflowing grid */

/* ─────────────────────────────────────────────────────────
   PROSE
   ───────────────────────────────────────────────────────── */
.prose > * + * { margin-top: 1.5em; }
.prose p { font-size: 1.0625rem; line-height: 1.82; color: var(--body); }

/* First paragraph = "Our Quick Take" intro block */
.prose > p:first-child {
  font-size: 1.0625rem;
  line-height: 1.75;
  color: #0A2342;
  font-weight: 500;
  padding: 20px 24px 20px;
  background: #F4F6F9;
  border-left: 4px solid #1B7B9E;
  border-radius: 0 4px 4px 0;
  margin-top: 0;
  position: relative;
}

.prose > p:first-child::before {
  content: 'Our Quick Take';
  display: block;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: .6875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #1B7B9E;
  margin-bottom: 10px;
}
.prose h2 { font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.625rem; color: var(--ink); margin-top: 2.5em; padding-top: var(--s3); border-top: 2px solid var(--border); letter-spacing: -.01em; }
.prose h3 { font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.25rem; color: var(--ink); margin-top: 2em; }
.prose h4 { font-family: 'Open Sans', system-ui, sans-serif; font-size: 1rem; font-weight: 600; color: var(--ink); margin-top: 1.75em; letter-spacing: .02em; }
.prose ul, .prose ol { padding-left: 1.5em; }
.prose ul li { list-style-type: disc; }
.prose ol li { list-style-type: decimal; }
.prose li { font-size: 1.0625rem; line-height: 1.7; margin-bottom: .5em; color: var(--body); }
.prose blockquote { border-left: 3px solid var(--teal); padding: var(--s3) var(--s4); background: var(--teal-lt); border-radius: 0 var(--radius) var(--radius) 0; font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.1875rem; font-style: italic; color: var(--ink); line-height: 1.6; }
.prose a { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(27,123,158,.4); }
.prose a:hover { color: var(--navy); text-decoration-color: var(--navy); }
.prose strong { font-weight: 700; color: var(--ink); }
.prose img { width: 100%; border-radius: var(--radius-lg); margin-block: var(--s4); }
.prose hr { border: none; border-top: 1px solid var(--border); margin-block: var(--s6); }
.prose table { width: 100%; border-collapse: collapse; font-size: .9375rem; }
.prose th { background: var(--navy-lt); font-size: .8125rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); padding: .75em 1em; text-align: left; border-bottom: 2px solid var(--border); }
.prose td { padding: .75em 1em; border-bottom: 1px solid var(--border-lt); color: var(--body); }
.prose tr:hover td { background: var(--bg); }

.pros-cons { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); margin-block: var(--s4); }
.pros { background: var(--buy-bg);  border-top: 3px solid var(--buy);  padding: var(--s3); border-radius: 0 0 var(--radius) var(--radius); }
.cons { background: var(--skip-bg); border-top: 3px solid var(--skip); padding: var(--s3); border-radius: 0 0 var(--radius) var(--radius); }
.pros h4 { font-family: 'Open Sans', system-ui, sans-serif; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--buy);  margin-bottom: var(--s2); margin-top: 0; }
.cons h4 { font-family: 'Open Sans', system-ui, sans-serif; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--skip); margin-bottom: var(--s2); margin-top: 0; }
.pros li, .cons li { font-size: .9375rem; padding-left: 1.25em; position: relative; margin-bottom: .4em; list-style: none; }
.pros li::before { content: '+'; position: absolute; left: 0; font-weight: 700; color: var(--buy); }
.cons li::before { content: '−'; position: absolute; left: 0; font-weight: 700; color: var(--skip); }

.owner-note {
  background: var(--navy-lt);
  border: 1px solid var(--border);
  border-left: 4px solid var(--navy);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: var(--s4);
  margin-block: var(--s5);
}

.owner-note-label { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--navy); display: block; margin-bottom: .6em; }
.owner-note p { font-size: .9375rem; color: var(--body); line-height: 1.7; font-style: italic; }
.owner-note-months { font-size: .75rem; color: var(--faint); margin-top: .5em; display: block; }

.post-tags { display: flex; align-items: center; gap: .4em; flex-wrap: wrap; margin-top: var(--s5); padding-top: var(--s3); border-top: 1px solid var(--border); }
.post-tags-label { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.post-tags a { font-size: .75rem; color: var(--muted); border: 1px solid var(--border); padding: .25em .65em; border-radius: 999px; transition: all .12s; }
.post-tags a:hover { border-color: var(--teal); color: var(--teal); }

.author-bio { display: flex; gap: var(--s3); padding: var(--s4); background: var(--navy-lt); border: 1px solid var(--border); border-radius: var(--radius-lg); margin-top: var(--s5); }
.author-bio-avatar { width: 56px; height: 56px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 2px solid var(--border); background: var(--border); }
.author-bio-by { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); display: block; margin-bottom: .25em; }
.author-bio-name { font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.125rem; color: var(--ink); font-weight: 700; margin-bottom: .35em; }
.author-bio-desc { font-size: .9rem; color: var(--muted); line-height: 1.65; }
.author-bio-link { display: inline-block; font-size: .875rem; font-weight: 600; color: var(--teal); margin-top: .5em; }
.author-bio-link:hover { color: var(--navy); text-decoration: underline; }

/* ─────────────────────────────────────────────────────────
   SIDEBAR — Verdict panel
   ───────────────────────────────────────────────────────── */
.sidebar { position: sticky; top: 88px; }

.verdict-panel {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  margin-bottom: var(--s2);
  box-shadow: var(--shadow-sm);
}

.verdict-panel-head {
  background: var(--navy);
  padding: var(--s2) var(--s3);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
}

.verdict-panel-body { padding: var(--s3); }

.verdict-big-score {
  text-align: center;
  padding: var(--s3) 0;
  border-bottom: 1px solid var(--border-lt);
  margin-bottom: var(--s3);
}

.verdict-big-num {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 4rem;
  font-weight: 700;
  color: var(--navy);
  line-height: 1;
  letter-spacing: -.04em;
  display: block;
}

.verdict-big-num span { font-size: 1.5rem; color: var(--faint); }

.verdict-badge {
  display: inline-block;
  margin-top: var(--s2);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  padding: .35em 1em;
  border-radius: 999px;
}

.score-breakdown { display: flex; flex-direction: column; gap: .85em; }
.score-row {}
.score-row-head { display: flex; justify-content: space-between; font-size: .8125rem; color: var(--muted); margin-bottom: .3em; font-weight: 500; }
.score-row-head span { font-weight: 700; color: var(--ink); font-family: 'Courier New', monospace; }
.score-bar { height: 4px; background: var(--border); border-radius: 999px; }
.score-bar-fill { height: 100%; background: var(--teal); border-radius: 999px; transition: width .7s ease; }

.months-block { text-align: center; padding-top: var(--s3); margin-top: var(--s3); border-top: 1px solid var(--border-lt); }
.months-num { font-family: 'Montserrat', system-ui, sans-serif; font-size: 2rem; font-weight: 700; color: var(--navy); line-height: 1; }
.months-label { font-size: .75rem; color: var(--muted); letter-spacing: .06em; text-transform: uppercase; margin-top: .3em; display: block; }

.verdict-cta { display: block; text-align: center; padding: .85em 1em; margin-top: var(--s3); background: var(--navy); color: var(--white); border-radius: var(--radius); font-size: .9375rem; font-weight: 700; transition: background .15s; }
.verdict-cta:hover { background: var(--navy-mid); color: var(--white); }
.verdict-aff { font-size: .7rem; color: var(--faint); text-align: center; margin-top: .5em; display: block; }

.sidebar-widget { background: var(--white); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-top: var(--s2); box-shadow: var(--shadow-sm); }
.sidebar-widget-head { background: var(--navy); padding: var(--s2) var(--s3); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.sidebar-widget-body { padding: var(--s3); }
.sidebar-posts li { padding: .65em 0; border-bottom: 1px solid var(--border-lt); }
.sidebar-posts li:last-child { border-bottom: none; }
.sidebar-posts a { font-size: .9rem; font-weight: 600; color: var(--body); line-height: 1.35; display: block; transition: color .12s; }
.sidebar-posts a:hover { color: var(--teal); }
.sidebar-posts .post-date { font-size: .75rem; color: var(--faint); margin-top: .15em; }

/* ─────────────────────────────────────────────────────────
   RELATED POSTS
   ───────────────────────────────────────────────────────── */
.related-section { padding: var(--s7) 0; background: #F4F6F9; border-top: 1px solid var(--border); }

/* ─────────────────────────────────────────────────────────
   PAGINATION
   ───────────────────────────────────────────────────────── */
.pager { display: flex; justify-content: center; gap: .25em; margin-top: var(--s6); }
.pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; border: 1px solid var(--border); border-radius: var(--radius); font-size: .875rem; font-weight: 600; color: var(--body); background: var(--white); transition: all .12s; }
.pager .page-numbers:hover { border-color: var(--teal); color: var(--teal); }
.pager .current { background: var(--navy); border-color: var(--navy); color: var(--white); }

/* ─────────────────────────────────────────────────────────
   FOOTER
   ───────────────────────────────────────────────────────── */
.site-footer {
  background: var(--navy);
  color: rgba(255,255,255,.55);
}

.footer-body {
  padding: var(--s7) 0 var(--s5);
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.footer-grid {
  display: grid;
  grid-template-columns: 2.5fr 1fr 1fr 1fr;
  gap: var(--s6);
}

.footer-brand-logo { margin-bottom: var(--s3); }
.footer-brand-logo img { height: 46px; width: auto; }

.footer-brand-desc { font-size: .9rem; color: rgba(255,255,255,.75); line-height: 1.7; max-width: 280px; margin-bottom: var(--s3); }

.footer-social { display: flex; gap: .5em; }
.footer-social a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius); color: rgba(255,255,255,.7); transition: all .15s; }
.footer-social a:hover { border-color: var(--teal); color: var(--white); }

.footer-col-title { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--white); display: block; margin-bottom: var(--s3); }
.footer-col ul { display: flex; flex-direction: column; gap: .55em; }
.footer-col a, .footer-menu-list a { font-size: .875rem; color: rgba(255,255,255,.7); transition: color .12s; }
.footer-menu-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .55em; }
.footer-bottom-link-list { display: flex; gap: var(--s3); flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.footer-bottom-link-list a { font-size: .8125rem; color: rgba(255,255,255,.35); transition: color .12s; }
.footer-bottom-link-list a:hover { color: rgba(255,255,255,.7); }
.footer-col a:hover { color: var(--white); }

.footer-bottom {
  padding: var(--s3) 0;
}

.footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  font-size: .8125rem;
  color: rgba(255,255,255,.35);
  flex-wrap: wrap;
  gap: var(--s2);
}

.footer-bottom-links { display: flex; gap: var(--s3); flex-wrap: wrap; }
.footer-bottom-links a { font-size: .8125rem; color: rgba(255,255,255,.35); transition: color .12s; }
.footer-bottom-links a:hover { color: rgba(255,255,255,.7); }

.footer-built-by {
  font-size: .75rem;
  color: rgba(255,255,255,.25);
  letter-spacing: .03em;
}
.footer-built-by a {
  color: rgba(255,255,255,.45);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.15);
  padding-bottom: 1px;
  transition: color .15s, border-color .15s;
}
.footer-built-by a:hover {
  color: #ffffff;
  border-color: rgba(255,255,255,.5);
}

/* ─────────────────────────────────────────────────────────
   COMMENTS
   ───────────────────────────────────────────────────────── */
.comments-area { padding-top: var(--s6); border-top: 2px solid var(--border); margin-top: var(--s6); }
.comments-title { font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.75rem; color: var(--ink); margin-bottom: var(--s4); }
.comment-list li { list-style: none; }
.comment-list > li { padding-block: var(--s3); border-bottom: 1px solid var(--border); }
.comment-meta { font-size: .8125rem; color: var(--muted); margin-bottom: .5em; }
.comment-content p { font-size: 1rem; line-height: 1.7; }
.comment-form p { margin-bottom: var(--s2); }
.comment-form label { display: block; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; color: var(--muted); margin-bottom: .4em; text-transform: uppercase; }
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea { width: 100%; padding: .75em 1em; border: 1.5px solid var(--border); border-radius: var(--radius); background: var(--surface); font-size: 1rem; color: var(--ink); outline: none; transition: border-color .15s; }
.comment-form input:focus,.comment-form textarea:focus { border-color: var(--teal); }
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form .submit { background: var(--navy); color: var(--white); border: none; padding: .75em 1.75em; border-radius: var(--radius); font-size: .9375rem; font-weight: 700; cursor: pointer; transition: background .15s; }
.comment-form .submit:hover { background: var(--navy-mid); }

/* ─────────────────────────────────────────────────────────
   WP CORE
   ───────────────────────────────────────────────────────── */
.wp-caption { font-size: .8125rem; color: var(--muted); margin-top: .5em; font-style: italic; }
.aligncenter { display: block; margin-inline: auto; }
.alignleft  { float: left;  margin: 0 var(--s3) var(--s2) 0; }
.alignright { float: right; margin: 0 0 var(--s2) var(--s3); }
.widget { margin-bottom: var(--s3); }
.widget-title { font-family: 'Montserrat', system-ui, sans-serif; font-size: 1.125rem; color: var(--ink); margin-bottom: var(--s2); font-weight: 700; }

/* ─────────────────────────────────────────────────────────
   SECTION SPACING HELPERS
   ───────────────────────────────────────────────────────── */
.section { padding: var(--s7) 0; background: #ffffff; }
.section--white {
  background: #ffffff;
  border-top: 1px solid var(--border);
}

/* ─────────────────────────────────────────────────────────
   RESPONSIVE
   ───────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero-card { max-width: 560px; }
  .feature-strip { grid-template-columns: 1fr; }
  .feature-strip-img { min-height: 240px; }
  .article-cols { grid-template-columns: 1fr; }
  .sidebar { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--s4); }
  .newsletter-inner { flex-direction: column; gap: var(--s4); align-items: flex-start; }
  .newsletter-form { width: 100%; }
  .newsletter-input { flex: 1; }
}

@media (max-width: 860px) {
  .card-grid { grid-template-columns: 1fr 1fr; }
  .why-grid  { grid-template-columns: 1fr 1fr; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-cell { border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); }
  .proof-cell:last-child { border-bottom: none; }
}

@media (max-width: 640px) {
  :root { --s6: 3.5rem; --s7: 4.5rem; --s8: 5.5rem; }
  .card-grid, .card-grid--2, .card-grid--4 { grid-template-columns: 1fr; }
  .why-grid  { grid-template-columns: 1fr; }
  .pros-cons { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom-inner { flex-direction: column; align-items: flex-start; }
  .hero-stats { flex-wrap: wrap; gap: var(--s4); }

  /* Mobile nav */
  .site-nav { display: none; }
  .site-nav.open {
    display: flex;
    position: fixed;
    inset: 0;
    background: #0A2342;
    z-index: 400;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 3rem 2rem;
    overflow-y: auto;
  }
  .site-nav.open > ul,
  .site-nav.open > .site-nav-list {
    flex-direction: column;
    height: auto;
    width: 100%;
    align-items: stretch;
    gap: 6px;
    display: flex;
  }
  .site-nav.open > ul > li,
  .site-nav.open > .site-nav-list > li {
    height: auto;
    width: 100%;
    margin-right: 0;
    display: block;
  }
  .site-nav.open > ul > li::before,
  .site-nav.open > .site-nav-list > li::before { display: none; }
  .site-nav.open > ul > li > a,
  .site-nav.open > .site-nav-list > li > a {
    display: flex;
    align-items: center;
    padding: 14px 20px;
    font-family: 'Montserrat', system-ui, sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-left: 3px solid #1B7B9E;
    border-radius: 4px;
    width: 100%;
  }
  .site-nav.open > ul > li > a:hover,
  .site-nav.open > .site-nav-list > li > a:hover {
    color: #ffffff;
    background: rgba(255,255,255,.1);
  }
  .nav-toggle { display: flex; }
  .header-search { display: none; }
  .w { padding: 0 1rem; }
}


/* ─────────────────────────────────────────────────────────
   FEATURE STRIP — large first post, image left, text right
   ───────────────────────────────────────────────────────── */
.feature-strip {
  display: grid;
  grid-template-columns: 480px 1fr;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  margin-bottom: 0;
}

.feature-strip-img {
  position: relative;
  overflow: hidden;
  min-height: 340px;
  background: #1a3d6b;
}
.feature-strip-img img { width:100%; height:100%; object-fit:cover; display:block; }
.feature-strip-noimg {
  min-height: 340px;
  background: linear-gradient(140deg, #0d2d52, #1a4a7a);
  display: flex; align-items: center; justify-content: center;
}
.feature-strip-noimg span {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.25rem; color: rgba(255,255,255,.3);
  text-align: center; padding: 2rem;
}

.feature-strip-body {
  padding: 48px 48px 48px;
  display: flex; flex-direction: column; justify-content: center;
}
.feature-strip-label {
  font-family: 'Montserrat', sans-serif;
  font-size: .6875rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: #1B7B9E; display: block; margin-bottom: 12px;
}
.feature-strip-title {
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 800; color: #0A2342;
  line-height: 1.15; margin-bottom: 14px;
  letter-spacing: -.01em;
}
.feature-strip-title a:hover { color: #1B7B9E; }
.feature-strip-excerpt {
  font-family: 'Open Sans', sans-serif;
  font-size: 1rem; color: #637085;
  line-height: 1.7; margin-bottom: 20px;
}
.feature-strip-score {
  display: flex; align-items: baseline; gap: 6px;
  margin-bottom: 12px;
}
.feature-score-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 2rem; font-weight: 800;
  color: #0A2342; line-height: 1;
}
.feature-score-label {
  font-family: 'Open Sans', sans-serif;
  font-size: .8125rem; color: #9BACCB; font-weight: 500;
}
.feature-strip-meta {
  font-family: 'Open Sans', sans-serif;
  font-size: .8125rem; color: #9BACCB;
}

/* ─────────────────────────────────────────────────────────
   CATEGORY BROWSE GRID
   ───────────────────────────────────────────────────────── */
.cat-browse-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 12px;
}

.cat-browse-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 12px 20px;
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  text-decoration: none;
  border-top: 3px solid transparent;
  transition: border-color .18s, box-shadow .18s, transform .15s;
}
.cat-browse-card:hover {
  border-top-color: #1B7B9E;
  box-shadow: 0 4px 16px rgba(10,35,66,.1);
  transform: translateY(-2px);
}
.cat-browse-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 10px;
  display: block;
}
.cat-browse-name {
  font-family: 'Montserrat', sans-serif;
  font-size: .8rem; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  color: #0A2342; display: block;
  margin-bottom: 4px; line-height: 1.3;
}
.cat-browse-count {
  font-family: 'Open Sans', sans-serif;
  font-size: .75rem; color: #9BACCB;
}

/* ── Responsive updates ───────────────────────────────── */
@media (max-width: 1100px) {
  .feature-strip { grid-template-columns: 1fr; }
  .feature-strip-img { min-height: 240px; }
  .cat-browse-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 640px) {
  .cat-browse-grid { grid-template-columns: repeat(2, 1fr); }
  .feature-strip-body { padding: 28px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; }
  .card:hover { transform: none; }
}
