
    /* ── Design tokens ── */
    :root {
      --forest:   #a3150d;
      --pine:     #c02419;
      --sage:     #d9382c;
      --sky:      #fdecea;
      --trail:    #D52B1E;
      --amber:    #e8820a;
      --stone:    #f5f2ed;
      --pebble:   #e0dbd3;
      --ink:      #1c1c1c;
      --muted:    #5a5a5a;
      --white:    #ffffff;
      --radius:   6px;
      --shadow:   0 2px 8px rgba(0,0,0,0.10);
      --shadow-lg:0 6px 24px rgba(0,0,0,0.12);
    }

    /* ── Reset & base ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
      font-size: 15px;
      line-height: 1.6;
      color: var(--ink);
      background: var(--stone);
    }
    a { color: var(--pine); text-decoration: none; }
    a:hover { color: var(--trail); text-decoration: underline; }
    img { max-width: 100%; height: auto; display: block; }

    /* ── Layout helpers ── */
    .container {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 20px;
    }

    /* ── Skip link ── */
    .skip-link {
      position: absolute; top: -40px; left: 0;
      background: var(--trail); color: #fff; padding: 8px 14px;
      border-radius: 0 0 var(--radius) 0; z-index: 9999;
      transition: top .2s;
    }
    .skip-link:focus { top: 0; }

    /* ══════════════════════════════════════
       HEADER
    ══════════════════════════════════════ */
    .site-header {
      background: var(--forest);
      color: var(--white);
      position: sticky; top: 0; z-index: 100;
      box-shadow: 0 2px 12px rgba(0,0,0,0.25);
    }
    .header-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      padding: 12px 20px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .site-logo {
      display: flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
    }
    .logo-icon {
      width: 44px; height: 44px;
      background: var(--trail);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 22px;
      flex-shrink: 0;
    }
    .logo-text {
      display: flex; flex-direction: column;
      line-height: 1.15;
    }
    .logo-text strong {
      font-size: 1.25rem;
      color: var(--white);
      letter-spacing: -.3px;
    }
    .logo-text span {
      font-size: 0.7rem;
      color: #ffdad5;
      text-transform: uppercase;
      letter-spacing: .08em;
    }

    /* Primary nav */
    .primary-nav {
      display: flex;
      align-items: center;
      gap: 4px;
      flex-wrap: wrap;
    }
    .primary-nav a {
      color: #ffeeeb;
      font-size: 0.82rem;
      font-weight: 500;
      padding: 5px 10px;
      border-radius: var(--radius);
      white-space: nowrap;
      transition: background .15s, color .15s;
    }
    .primary-nav a:hover,
    .primary-nav a:focus {
      background: rgba(255,255,255,.12);
      color: var(--white);
      text-decoration: none;
    }
    .nav-cta {
      background: var(--trail) !important;
      color: var(--white) !important;
      padding: 6px 14px !important;
      font-weight: 600 !important;
    }
    .nav-cta:hover { background: #8f130c !important; }

    /* Mobile hamburger */
    .menu-toggle {
      display: none;
      background: none; border: none;
      cursor: pointer; padding: 6px;
      color: var(--white);
      font-size: 1.5rem;
      line-height: 1;
    }

    /* ══════════════════════════════════════
       HERO
    ══════════════════════════════════════ */
    .hero {
      background: linear-gradient(135deg, var(--forest) 0%, var(--pine) 60%, var(--sage) 100%);
      color: var(--white);
      padding: 56px 20px 48px;
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .hero::before {
      content: '';
      position: absolute; inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") repeat;
    }
    .hero-content { position: relative; max-width: 680px; margin: 0 auto; }
    .hero-eyebrow {
      display: inline-block;
      background: rgba(255,255,255,.12);
      border: 1px solid rgba(255,255,255,.2);
      border-radius: 20px;
      font-size: 0.75rem;
      font-weight: 600;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 4px 14px;
      margin-bottom: 18px;
      color: #ffd9d4;
    }
    .hero h1 {
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      font-weight: 700;
      line-height: 1.2;
      margin-bottom: 14px;
      letter-spacing: -.5px;
    }
    .hero h1 em {
      font-style: normal;
      color: #fff0c9;
    }
    .hero p {
      font-size: 1.05rem;
      color: #ffe9e6;
      max-width: 540px;
      margin: 0 auto 28px;
    }

    /* Search bar */
    .search-form {
      display: flex;
      max-width: 500px;
      margin: 0 auto;
      border-radius: 50px;
      overflow: hidden;
      box-shadow: 0 4px 20px rgba(0,0,0,.3);
    }
    .search-form input {
      flex: 1;
      border: none;
      padding: 14px 20px;
      font-size: 0.95rem;
      outline: none;
      color: var(--ink);
    }
    .search-form button {
      background: var(--trail);
      color: var(--white);
      border: none;
      padding: 14px 24px;
      font-size: 0.9rem;
      font-weight: 600;
      cursor: pointer;
      white-space: nowrap;
      transition: background .15s;
    }
    .search-form button:hover { background: #8f130c; }

    /* ══════════════════════════════════════
       QUICK-STATS BAR
    ══════════════════════════════════════ */
    .stats-bar {
      background: var(--trail);
      color: var(--white);
      padding: 10px 20px;
    }
    .stats-inner {
      max-width: 1100px;
      margin: 0 auto;
      display: flex;
      gap: 28px;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      font-size: 0.82rem;
      font-weight: 600;
    }
    .stats-inner span { opacity: .75; }
    .stats-inner strong { opacity: 1; }

    /* ══════════════════════════════════════
       MAIN DIRECTORY GRID
    ══════════════════════════════════════ */
    .section { padding: 44px 20px; }
    .section-header {
      display: flex;
      align-items: baseline;
      gap: 12px;
      margin-bottom: 24px;
    }
    .section-header h2 {
      font-size: 1.35rem;
      font-weight: 700;
      color: var(--forest);
      white-space: nowrap;
    }
    .section-header::after {
      content: '';
      flex: 1;
      height: 2px;
      background: var(--pebble);
      border-radius: 2px;
    }

    .dir-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
      gap: 14px;
    }

    .dir-card {
      background: var(--white);
      border: 1px solid var(--pebble);
      border-radius: var(--radius);
      padding: 18px 16px;
      display: flex;
      align-items: flex-start;
      gap: 13px;
      transition: box-shadow .18s, transform .18s, border-color .18s;
      text-decoration: none;
      color: inherit;
    }
    .dir-card:hover {
      box-shadow: var(--shadow-lg);
      transform: translateY(-2px);
      border-color: var(--sage);
      text-decoration: none;
      color: inherit;
    }
    .dir-card:focus {
      outline: 2px solid var(--sage);
      outline-offset: 2px;
    }
    .card-icon {
      width: 40px; height: 40px;
      border-radius: var(--radius);
      display: flex; align-items: center; justify-content: center;
      font-size: 1.3rem;
      flex-shrink: 0;
    }
    .card-body { min-width: 0; }
    .card-title {
      font-weight: 600;
      font-size: 0.9rem;
      color: var(--forest);
      line-height: 1.3;
      margin-bottom: 3px;
    }
    .card-desc {
      font-size: 0.78rem;
      color: var(--muted);
      line-height: 1.4;
    }

    /* Category color classes */
    .c-green  { background: #fdecea; }
    .c-blue   { background: #e8f0f8; }
    .c-amber  { background: #fef3e2; }
    .c-red    { background: #fdecea; }
    .c-purple { background: #f0ebfb; }
    .c-teal   { background: #fdf0ee; }
    .c-gray   { background: #f0eff0; }
    .c-pine   { background: #fbeae8; }

    /* ══════════════════════════════════════
       FEATURED CONTENT PANELS
    ══════════════════════════════════════ */
    .features-section {
      background: var(--white);
      padding: 44px 20px;
      border-top: 1px solid var(--pebble);
      border-bottom: 1px solid var(--pebble);
    }
    .features-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 32px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .feature-panel h3 {
      font-size: 1rem;
      font-weight: 700;
      color: var(--forest);
      border-left: 3px solid var(--trail);
      padding-left: 10px;
      margin-bottom: 14px;
    }
    .feature-panel p, .feature-panel li {
      font-size: 0.85rem;
      color: var(--muted);
      line-height: 1.65;
    }
    .feature-panel ol, .feature-panel ul {
      padding-left: 18px;
    }
    .feature-panel li { margin-bottom: 6px; }
    .feature-panel li strong { color: var(--ink); }
    .feature-panel a.read-more {
      display: inline-block;
      margin-top: 12px;
      font-size: 0.82rem;
      font-weight: 600;
      color: var(--trail);
    }

    /* ══════════════════════════════════════
       POPULAR STATE LINKS
    ══════════════════════════════════════ */
    .popular-section {
      padding: 44px 20px;
    }
    .popular-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      max-width: 1100px;
      margin: 0 auto;
    }
    .popular-block h3 {
      font-size: 0.85rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .07em;
      color: var(--muted);
      margin-bottom: 10px;
    }
    .state-links {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .state-pill {
      background: var(--sky);
      border: 1px solid #f2c4be;
      border-radius: 20px;
      padding: 5px 14px;
      font-size: 0.82rem;
      font-weight: 500;
      color: var(--pine);
      text-decoration: none;
      transition: background .15s, color .15s;
    }
    .state-pill:hover {
      background: var(--pine);
      color: var(--white);
      text-decoration: none;
      border-color: var(--pine);
    }

    /* ══════════════════════════════════════
       FOOTER NAV
    ══════════════════════════════════════ */
    .site-footer {
      background: var(--forest);
      color: #ffdad5;
      padding: 36px 20px 24px;
    }
    .footer-inner {
      max-width: 1100px;
      margin: 0 auto;
    }
    .footer-nav {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 24px;
    }
    .footer-nav a {
      color: #ffeeeb;
      font-size: 0.82rem;
      font-weight: 500;
      padding: 5px 12px;
      border-radius: var(--radius);
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.1);
      text-decoration: none;
      transition: background .15s;
    }
    .footer-nav a:hover {
      background: rgba(255,255,255,.14);
      color: var(--white);
    }
    .footer-bottom {
      border-top: 1px solid rgba(255,255,255,.1);
      padding-top: 18px;
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      align-items: center;
      justify-content: space-between;
      font-size: 0.8rem;
    }
    .footer-bottom p { color: #ffc9c2; }
    .footer-bottom a { color: #ffdad5; }

    /* ══════════════════════════════════════
       AD PLACEHOLDER
    ══════════════════════════════════════ */
    .ad-slot {
      background: #f0f0f0;
      border: 1px dashed #ccc;
      border-radius: var(--radius);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.75rem;
      color: #999;
      text-align: center;
      padding: 8px;
    }
    .ad-slot-banner { height: 90px; margin-bottom: 20px; }
    .ad-slot-rect { min-height: 250px; }

    /* ══════════════════════════════════════
       RESPONSIVE
    ══════════════════════════════════════ */
    @media (max-width: 768px) {
      .primary-nav { display: none; flex-direction: column; width: 100%; }
      .primary-nav.open { display: flex; }
      .primary-nav a { padding: 10px 14px; font-size: 0.9rem; }
      .menu-toggle { display: block; }
      .header-inner { flex-wrap: wrap; }

      .popular-grid { grid-template-columns: 1fr; }
      .dir-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
      .dir-card { padding: 13px 12px; gap: 10px; }
      .card-icon { width: 34px; height: 34px; font-size: 1.1rem; }

      .hero { padding: 36px 16px 32px; }
      .section { padding: 28px 16px; }
      .features-section { padding: 28px 16px; }
      .popular-section { padding: 28px 16px; }

      .stats-inner { gap: 16px; font-size: 0.78rem; }
    }

    @media (max-width: 480px) {
      .dir-grid { grid-template-columns: 1fr 1fr; }
      .features-grid { grid-template-columns: 1fr; }
    }

    @media (prefers-reduced-motion: reduce) {
      .dir-card { transition: none; }
      html { scroll-behavior: auto; }
    }
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.dlr-card,.lst-card{content-visibility:auto;contain-intrinsic-size:auto 140px;overflow-wrap:break-word}.page-body>*{min-width:0}.section-heading h2{white-space:normal;min-width:0}.section-heading{min-width:0}@media (max-width:768px){.site-header{max-height:100vh;max-height:100dvh;overflow-y:auto}.menu-toggle{min-width:44px;min-height:44px}.primary-nav a{min-height:44px;display:flex;align-items:center}.breadcrumb-inner a{padding:8px 2px}.state-nav{padding:10px 16px}.state-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:8px;scrollbar-width:thin}.snav-pill{flex:0 0 auto;padding:10px 13px;font-size:.82rem;scroll-snap-align:start}.dlr-loc,.lst-loc{white-space:normal}.dlr-visit,.lst-visit{display:inline-block;padding:12px 0;margin:-8px 0 -12px}.dlr-name,.lst-name{padding:11px 0;margin:-11px 0}.sidebar-links a{padding:12px 12px}.footer-nav a{padding:11px 14px}input,select,textarea{font-size:16px!important}.dir-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.dir-card{min-width:0;overflow-wrap:anywhere}.listing-grid{grid-template-columns:minmax(0,1fr)!important}.listing-card{min-width:0;overflow-wrap:anywhere}.maint-table td.maint-item{white-space:normal;width:auto}.maint-table th,.maint-table td{padding:8px 8px}}@media (max-width:480px){.dir-grid{gap:8px!important}.dir-card{flex-direction:column;align-items:flex-start;gap:6px}.stats-inner{display:grid!important;grid-template-columns:1fr 1fr;gap:6px 10px!important;text-align:left;font-size:.74rem}}
@keyframes rvSpin { to { transform: rotate(360deg); } }
.nav-lang{border:1px solid rgba(255,255,255,.35);margin-left:4px}

.site-header{background:#D52B1E}
.nav-cta{background:#fff!important;color:#a3150d!important}
.nav-cta:hover{background:#ffe9e6!important}
.nav-more{position:relative}
.nav-more summary{list-style:none;cursor:pointer;color:#fff;font-size:.82rem;font-weight:500;padding:5px 10px;border-radius:6px;white-space:nowrap;transition:background .15s}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more summary::after{content:' \25BE';font-size:.8em}
.nav-more summary:hover,.nav-more[open] summary{background:rgba(255,255,255,.12)}
.nav-more-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border-radius:8px;box-shadow:0 10px 28px rgba(0,0,0,.28);min-width:210px;padding:6px;z-index:300;display:flex;flex-direction:column}
.nav-more-menu a,.primary-nav .nav-more-menu a{color:#a3150d!important;padding:9px 12px!important;border-radius:6px;font-weight:600;font-size:.85rem}
.nav-more-menu a:hover{background:#fdecea!important;color:#a3150d!important}
.primary-nav a.nav-extra{display:none}
@media(max-width:1060px){
.primary-nav{display:none;flex-direction:column;width:100%}
.primary-nav.open{display:flex}
.primary-nav a{padding:10px 14px;font-size:.9rem;min-height:44px;display:flex;align-items:center}
.primary-nav a.nav-extra{display:flex}
.menu-toggle{display:block;min-width:44px;min-height:44px}
.header-inner{flex-wrap:wrap}
.nav-more{display:none}
.site-header{max-height:100vh;max-height:100dvh;overflow-y:auto}
}
.logo-icon{background:#fff;width:58px;height:36px;border-radius:5px}
.logo-icon svg{width:50px;height:25px;display:block}
.stats-bar{background:#8f130c}
.primary-nav a,.logo-text span{color:#fff}
.hero-content:has(.one-line){max-width:880px}
.hero h1.one-line{white-space:nowrap;font-size:clamp(1.05rem,5.3vw,2.8rem)}
.nav-cta{color:#a3150d!important}

.page-hero.has-photo,.hero.has-photo{background-image:linear-gradient(135deg,rgba(26,58,42,.84) 0%,rgba(45,92,62,.62) 60%,rgba(26,58,42,.55) 100%),var(--hero-img);background-size:cover;background-position:center}
.hero.has-photo{padding-top:84px;padding-bottom:72px}
.page-hero.has-photo{padding-top:64px;padding-bottom:56px}
.page-hero.has-photo h1,.hero.has-photo h1{text-shadow:0 2px 14px rgba(0,0,0,.35)}
