﻿
  :root{
    --ink:#1c1b19;
    --ink-soft:#5a544c;
    --paper:#f3efe4;
    --paper-raised:#fbf9f3;
    --red:#c32e32;
    --red-dark:#9c2226;
    --line-green:#2f7a5c;
    --line-gold:#c79a2e;
    --line-blue:#2e5c99;
    --line-plum:#7a3b69;
    --line-rust:#a8592c;
    --board:#e6dbbe;
    --rule: rgba(28,27,25,0.14);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  html,body{overflow-x:clip; max-width:100%;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Source Sans 3', sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Barlow Condensed', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.01em;
    margin:0;
  }
  .mono{font-family:'IBM Plex Mono', monospace;}
  a{color:inherit;text-decoration:none;}
  a,button,.tab,.idx-tab{touch-action:manipulation;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 24px;}

  .visually-hidden{
    position:absolute !important;
    width:1px; height:1px;
    padding:0; margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .skip-link{
    position:absolute;
    left:16px; top:-60px;
    z-index:1000;
    background:var(--ink);
    color:var(--paper);
    padding:12px 20px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:14px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    border-radius:2px;
    transition:top .15s ease;
  }
  .skip-link:focus{top:16px;}

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

  /* ---------- Masthead ---------- */
  .site-header-sticky{position:sticky; top:0; z-index:200;}
  .masthead{
    background:var(--paper-raised);
    border-bottom:4px solid var(--ink);
    position:relative;
  }
  .masthead-rule2{height:1px; background:var(--ink); margin-top:4px;}
  .masthead .wrap{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    padding:16px 24px;
    gap:16px;
  }
  .masthead .wrap > .brand{justify-self:center;}
  .masthead .wrap > .masthead-weather{justify-self:start;}
  .masthead .wrap > .btn-post{justify-self:end;}

  .masthead-weather{display:flex; align-items:baseline; gap:10px;}
  .masthead-weather .wx-temp{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:700;
    font-size:26px;
    line-height:1;
    color:var(--ink);
  }
  .masthead-weather .wx-desc{
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    color:var(--ink-soft);
    line-height:1.4;
  }

  .brand{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size:clamp(24px,3.6vw,34px);
    letter-spacing:0.01em;
    text-transform:uppercase;
    line-height:1;
    cursor:pointer;
  }
  .brand span{color:var(--red);}
  .brand small{
    display:block;
    font-family:'IBM Plex Mono', monospace;
    text-transform:none;
    font-size:11px;
    letter-spacing:0.06em;
    color:var(--ink-soft);
    margin-top:3px;
  }
  .btn-post{
    background:var(--red);
    color:#fff;
    padding:10px 18px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:16px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    border-radius:2px;
    box-shadow:2px 2px 0 var(--ink);
    transition:transform .15s ease, box-shadow .15s ease;
    white-space:nowrap;
  }
  .btn-post:hover{transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink);}

  /* ---------- Category nav - second row of the header ---------- */
  .nav-toggle{display:none;}
  .site-catnav{background:var(--paper-raised); border-top:1px solid var(--rule);}
  .site-catnav .wrap{
    display:flex;
    flex-wrap:nowrap;
    justify-content:center;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
    gap:20px;
    padding:0 24px;
  }
  .site-catnav a{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:14px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    padding:11px 15px;
    white-space:nowrap;
    border-bottom:2px solid transparent;
  }
  .site-catnav a:hover{color:var(--red);}
  .site-catnav a.active{color:var(--red); border-color:var(--red);}

  /* -- Classifieds dropdown (native <details>/<summary>, no JS framework needed) -- */
  .site-catnav-dropdown{position:relative;}
  .site-catnav-dropdown > summary{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:14px;
    letter-spacing:0.03em;
    text-transform:uppercase;
    padding:11px 15px;
    white-space:nowrap;
    border-bottom:2px solid transparent;
    cursor:pointer;
    list-style:none;
    display:flex;
    align-items:center;
    gap:5px;
  }
  .site-catnav-dropdown > summary::-webkit-details-marker{display:none;}
  .site-catnav-dropdown > summary::after{content:"\25BE"; font-size:10px; position:relative; top:1px;}
  .site-catnav-dropdown > summary:hover{color:var(--red);}
  .site-catnav-dropdown.active > summary,
  .site-catnav-dropdown[open] > summary{color:var(--red); border-color:var(--red);}

  .site-catnav-dropdown-panel{
    position:fixed; top:0; left:0;
    min-width:190px;
    background:var(--paper-raised);
    border:1px solid var(--rule);
    border-top:3px solid var(--red);
    box-shadow:0 12px 24px -10px rgba(0,0,0,0.3);
    z-index:210;
    padding:6px 0;
    display:flex;
    flex-direction:column;
  }
  .site-catnav-dropdown-panel a{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:13px;
    letter-spacing:0.02em;
    text-transform:uppercase;
    padding:10px 18px;
    white-space:nowrap;
    color:var(--ink);
    border-bottom:0;
  }
  .site-catnav-dropdown-panel a:hover{color:var(--red); background:var(--paper);}
  .site-catnav-dropdown-divider{height:1px; background:var(--rule); margin:6px 14px;}
  .site-catnav-dropdown-account{color:var(--red) !important;}

  /* Mobile-only: search + menu-toggle row that replaces the horizontal category nav */
  .mobile-nav-row{display:none; background:var(--paper-raised);}
  .mobile-nav-row-inner{
    max-width:1160px; margin:0 auto;
    display:flex; align-items:center; gap:10px;
    padding:10px 16px;
  }
  .mobile-search{flex:1; min-width:0; display:flex; border:1px solid var(--rule); background:var(--paper);}
  .mobile-search input{flex:1; min-width:0; border:0; background:transparent; padding:9px 10px; font-family:'Source Sans 3', sans-serif; font-size:14px; outline:none; color:var(--ink);}
  .mobile-search button{border:0; background:transparent; padding:0 12px; font-size:16px; cursor:pointer; flex-shrink:0; color:var(--ink-soft);}
  .nav-burger{
    display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; font-size:19px; line-height:1;
    padding:9px 13px; border:1px solid var(--ink); border-radius:2px;
    background:var(--paper-raised); flex-shrink:0;
  }

  /* ---------- H1 strip - sits right below the header on the home page ---------- */
  .page-h1-strip{background:var(--paper-raised); border-bottom:1px solid var(--rule);}
  .page-h1-strip .wrap{padding:10px 24px;}

  /* ---------- Shared buttons / tickets ---------- */
  .ticket{
    display:inline-flex;
    align-items:center;
    gap:8px;
    background:var(--paper-raised);
    border:2px dashed var(--ink);
    padding:11px 20px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:16px;
    letter-spacing:0.02em;
    text-transform:uppercase;
    border-radius:3px;
  }
  .ticket.solid{background:var(--red); color:#fff; border:2px solid var(--ink);}
  .ticket.small{padding:8px 14px; font-size:14px;}

  .section-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:16px;
    margin-bottom:22px;
    flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(24px,3vw,32px); font-weight:800;}
  .section-head .note{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    color:var(--ink-soft);
    letter-spacing:0.03em;
  }

  .kicker{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--red);
    font-weight:500;
  }
  .byline{
    font-family:'IBM Plex Mono', monospace;
    font-size:11px;
    color:var(--ink-soft);
  }

  /* ---------- Sidebar widgets (shared: home + article) ---------- */
  .widget{
    background:var(--paper-raised);
    border:1px solid var(--rule);
    padding:18px;
    margin-bottom:20px;
  }
  .widget h3{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:18px;
    text-transform:uppercase;
    margin-bottom:10px;
    padding-bottom:8px;
    border-bottom:2px solid var(--ink);
  }
  .widget p{font-size:14px; line-height:1.55; color:var(--ink-soft); margin:0 0 14px;}
  .classifieds-widget{border-left:4px solid var(--red);}
  .reporter-card{display:flex; align-items:center; gap:12px;}
  .reporter-card strong{display:block; font-family:'Source Sans 3', sans-serif; font-size:14px; margin-bottom:3px;}
  .reporter-card span{font-size:12px; color:var(--ink-soft); line-height:1.4;}
  .most-read{
    list-style:decimal inside;
    display:flex;
    flex-direction:column;
    gap:10px;
    font-size:14px;
    line-height:1.4;
    padding-left:2px;
    margin:0;
  }
  .most-read li::marker{font-family:'IBM Plex Mono', monospace; color:var(--red); font-weight:600;}

  /* ---------- Photo placeholders ---------- */
  .hero-media{
    aspect-ratio:16/9;
    position:relative;
    border:1px solid var(--rule);
    overflow:hidden;
  }
  .hero-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .grad-1{background:linear-gradient(135deg, var(--line-blue), var(--ink) 120%);}
  .grad-2{background:linear-gradient(135deg, var(--line-green), var(--ink) 120%);}
  .grad-3{background:linear-gradient(135deg, var(--red), var(--ink) 120%);}
  .grad-4{background:linear-gradient(135deg, var(--line-gold), var(--ink) 120%);}
  .media-cap{
    position:absolute; left:0; bottom:0;
    background:rgba(0,0,0,0.55);
    color:#fff;
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    padding:5px 9px;
    letter-spacing:0.02em;
  }

  /* =========================================================
     PAGE: HOME - dense broadsheet layout
  ========================================================= */
  .serif{font-family:'Source Serif 4', Georgia, serif;}
  .dek{
    font-family:'Source Sans 3', sans-serif;
    text-transform:none;
    color:var(--ink-soft);
    font-size:15px;
    line-height:1.5;
    margin:8px 0 12px;
  }

  .home-top{padding:28px 0 8px;}
  .home-top-grid{display:grid; grid-template-columns:2.1fr 1fr 0.95fr; gap:0;}
  .home-lead{border-right:1px solid var(--rule); padding-right:28px;}
  .home-col{border-right:1px solid var(--rule); padding:0 24px;}
  .home-top-grid > aside.sidebar{padding-left:24px;}

  .lead-story{display:block; padding-bottom:18px; border-bottom:2px solid var(--ink); margin-bottom:6px;}
  .lead-story .hero-media{margin-bottom:12px;}
  .lead-story h2{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:700;
    text-transform:none;
    font-size:clamp(24px,3.2vw,36px);
    line-height:1.08;
    margin:6px 0 0;
    letter-spacing:0;
  }

  .site-h1{
    font-family:'IBM Plex Mono', monospace;
    text-transform:none;
    font-weight:500;
    font-size:12px;
    letter-spacing:0.02em;
    color:var(--ink-soft);
    margin:0;
  }

  .headline-list{display:flex; flex-direction:column;}
  .headline-row{display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--rule);}
  .headline-row:first-child{padding-top:0;}
  .headline-thumb{width:84px; height:60px; flex-shrink:0;}
  .headline-row .h-body{flex:1; min-width:0;}
  .headline-row .kicker{font-size:10px;}
  .headline-row h3{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:600;
    text-transform:none;
    font-size:16px;
    line-height:1.28;
    margin:3px 0 4px;
  }
  .headline-row .byline{font-size:10px;}

  .col-head{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size:13px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    border-bottom:2px solid var(--red);
    padding-bottom:8px;
    margin-bottom:6px;
  }
  .text-headline{
    display:block;
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:600;
    text-transform:none;
    font-size:15px;
    line-height:1.35;
    padding:12px 0;
    border-bottom:1px solid var(--rule);
  }
  .text-headline .th-title{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .text-headline .byline{
    display:block;
    margin-top:5px;
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    color:var(--ink-soft);
    letter-spacing:0.02em;
  }

  .mini-form{display:flex; gap:6px;}
  .mini-form input{
    flex:1; min-width:0;
    border:1px solid var(--rule);
    padding:8px 10px;
    font-family:'Source Sans 3', sans-serif;
    font-size:13px;
    background:var(--paper);
  }
  .mini-form button{
    border:0; background:var(--ink); color:#fff;
    padding:0 12px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700; text-transform:uppercase; font-size:12px;
    cursor:pointer; flex-shrink:0;
  }

  /* ---- Halftone/duotone photo treatment - the signature device ---- */
  .halftone{position:relative; overflow:hidden;}
  .halftone.ink{background:linear-gradient(155deg, var(--ink) 0%, var(--red-dark) 145%);}
  .halftone.ink2{background:linear-gradient(155deg, #4a453d 0%, var(--ink) 145%);}
  .halftone::after{
    content:"";
    position:absolute; inset:0;
    background-image:radial-gradient(rgba(243,239,228,0.5) 1px, transparent 1.5px);
    background-size:5px 5px;
    mix-blend-mode:overlay;
    pointer-events:none;
  }

  /* ---- Front-page mosaic - mixed tile sizes, not a repeated pattern ---- */
  .home-sections{padding:8px 0 40px;}
  .frontpage-grid{display:grid; grid-template-columns:repeat(12,1fr); grid-auto-flow:dense; gap:28px;}
  .tile{display:block; min-width:0;}
  .tile-photo{grid-column:span 7;}
  .tile-md{grid-column:span 4;}
  .tile-sm{grid-column:span 3;}
  .tile-full{grid-column:span 12;}

  .tile-head{
    display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap;
    margin-bottom:14px; padding-bottom:8px; border-bottom:2px solid var(--red);
  }
  .tile-head h2{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size:14px;
    letter-spacing:0.06em;
    text-transform:uppercase;
  }
  .tile-head h2 a:hover{color:var(--red);}
  .tile-more{font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:var(--red); white-space:nowrap;}
  .tile-photo .hero-media, .tile-md .hero-media, .tile-sm .hero-media{margin-bottom:12px;}
  .tile-feature h3{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:700;
    text-transform:none;
    font-size:clamp(19px,2.3vw,24px);
    line-height:1.15;
    margin:0 0 8px;
  }

  .tile-brief{
    grid-column:span 5;
    align-self:start;
    background:var(--paper-raised);
    border:1px solid var(--rule);
    padding:20px;
  }
  .tile-brief h2{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size:14px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    border-bottom:2px solid var(--red);
    padding-bottom:8px;
    margin-bottom:6px;
  }
  .brief-item{display:flex; gap:9px; padding:11px 0; border-bottom:1px solid var(--rule); align-items:baseline;}
  .brief-item:last-child{border-bottom:0; padding-bottom:0;}
  .brief-tick{
    flex-shrink:0;
    width:8px; height:8px;
    border-radius:50%;
    margin-top:5px;
  }
  .brief-item h3{
    font-family:'Source Sans 3', sans-serif;
    text-transform:none;
    font-weight:600;
    font-size:14px;
    line-height:1.35;
  }
  .brief-item .kicker{font-size:9px; display:block; margin-bottom:2px;}

  .tile-classifieds{
    grid-column:span 12;
    background:var(--board);
    border:1px solid var(--rule);
    padding:26px 28px;
    display:grid;
    grid-template-columns:1.2fr 2fr;
    gap:24px;
    align-items:center;
  }
  .tile-classifieds h2{font-size:clamp(20px,2.6vw,26px); font-weight:800; margin-bottom:6px;}
  .tile-classifieds p{font-family:'Source Sans 3', sans-serif; color:var(--ink-soft); font-size:14px; margin:0 0 14px; max-width:36ch;}
  .mini-pin-row{display:flex; gap:14px; flex-wrap:wrap;}
  .mini-pin{
    background:var(--paper-raised);
    border:1px solid var(--rule);
    padding:10px 12px;
    width:150px;
    font-family:'Source Sans 3', sans-serif;
    box-shadow:0 6px 12px -6px rgba(0,0,0,0.3);
    transform:rotate(-1.5deg);
  }
  .mini-pin:nth-child(2){transform:rotate(1.2deg);}
  .mini-pin:nth-child(3){transform:rotate(-0.8deg);}
  .mini-pin .cat{font-family:'IBM Plex Mono', monospace; font-size:9px; color:var(--ink-soft); text-transform:uppercase;}
  .mini-pin h4{font-family:'Source Sans 3', sans-serif; font-weight:700; font-size:13px; margin:3px 0 0; line-height:1.25;}

  .tile-opinion{background:var(--paper-raised); border:1px solid var(--rule); padding:20px;}
  .op-feature{display:flex; gap:12px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--rule);}
  .op-avatar{width:40px; height:40px; border-radius:50%; flex-shrink:0; background:linear-gradient(150deg, var(--line-plum), var(--ink));}
  .op-feature h3{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:700; text-transform:none;
    font-size:17px; line-height:1.25; margin:0 0 4px;
  }

  .tile-weather{
    background:var(--ink); color:var(--paper);
    padding:22px 30px;
    display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:28px;
  }
  .wx-head{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
  .tile-weather h2{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:14px;
    letter-spacing:0.08em; text-transform:uppercase; margin:0;
    padding-right:22px; border-right:2px solid var(--red);
  }
  .wx-now{font-family:'Source Serif 4', Georgia, serif; font-size:34px; font-weight:700; line-height:1; display:flex; align-items:baseline; gap:10px; white-space:nowrap;}
  .wx-now span{font-family:'IBM Plex Mono', monospace; font-size:12px; color:#cfc8b6; font-weight:400;}
  .wx-stats{display:flex; gap:30px; flex-wrap:wrap;}
  .wx-stat{
    display:flex; flex-direction:column; gap:5px;
    padding-left:24px; border-left:1px solid rgba(255,255,255,0.15);
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:#fff;
  }
  .wx-stat-label{font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:#cfc8b6;}

  .ad-banner{
    border:1px dashed var(--ink-soft);
    background:var(--paper-raised);
    text-align:center;
    padding:20px;
    margin:8px 0 44px;
    font-family:'IBM Plex Mono', monospace;
    font-size:10px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .ad-banner strong{
    display:block;
    font-family:'Barlow Condensed', sans-serif;
    font-size:16px;
    letter-spacing:0.02em;
    text-transform:none;
    color:var(--ink);
    margin-top:4px;
  }
  .widget .ad-banner{margin:0;}

  /* ---- Full-coverage index - dense text-only tabbed section, deliberately
     different texture from the photo mosaic above (no images, no cards) ---- */
  .section-index{padding:44px 0 60px; border-top:3px solid var(--ink); margin-top:14px;}
  .idx-tabs{
    display:flex; flex-wrap:wrap;
    gap:4px; margin:22px 0 26px; border-bottom:1px solid var(--rule);
  }
  .idx-tab{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700; font-size:15px; letter-spacing:0.02em; text-transform:uppercase;
    padding:10px 16px; border:0; background:transparent; color:var(--ink-soft);
    cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-1px;
    white-space:nowrap;
  }
  .idx-tab.active{color:var(--ink); border-color:var(--red);}
  .idx-panel{display:none;}
  .idx-panel.active{display:block;}
  .idx-list{display:grid; grid-template-columns:repeat(2,1fr); gap:0 40px;}
  .idx-item{
    display:block; padding:13px 0; border-bottom:1px solid var(--rule);
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:600; font-size:15px; line-height:1.35;
  }
  .idx-item .byline{
    display:block; margin-top:4px;
    font-family:'IBM Plex Mono', monospace; font-size:10px;
    color:var(--ink-soft); text-transform:uppercase;
  }
  .idx-more{
    margin-top:16px; display:inline-block;
    font-family:'IBM Plex Mono', monospace; font-size:11px;
    letter-spacing:0.05em; text-transform:uppercase; color:var(--red);
  }

  .cat-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; font-size:14px;}
  .cat-list li{border-bottom:1px solid var(--rule); padding-bottom:9px;}
  .cat-list a:hover{color:var(--red);}

  /* =========================================================
     PAGE: CLASSIFIEDS
  ========================================================= */
  .subbar{background:var(--ink); color:var(--paper);}
  .subbar .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:12px 24px;
    flex-wrap:wrap;
  }
  .subbar .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:#cfc8b6;
  }
  .subbar .tag b{color:#fff;}
  .subbar .breadcrumb{padding:0; font-size:12px; color:#cfc8b6;}
  .subbar .breadcrumb a{color:#cfc8b6;}
  .subbar .breadcrumb a:hover{color:#fff;}
  .subbar .breadcrumb span{color:#fff;}
  .search{
    display:flex;
    align-items:stretch;
    background:var(--paper-raised);
    border-radius:2px;
    overflow:hidden;
    flex:1 1 320px;
    max-width:480px;
    min-width:0;
  }
  .search input{
    border:0;
    padding:9px 12px;
    font-family:'Source Sans 3', sans-serif;
    font-size:14px;
    flex:1;
    min-width:0;
    width:100%;
    outline:none;
    background:transparent;
    color:var(--ink);
  }
  .search button{
    border:0;
    background:var(--red);
    color:#fff;
    padding:0 16px;
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    letter-spacing:0.03em;
    text-transform:uppercase;
    cursor:pointer;
    flex-shrink:0;
  }

  .hero{
    position:relative;
    background:
      radial-gradient(circle at 8% 20%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      radial-gradient(circle at 32% 68%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      radial-gradient(circle at 61% 15%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      radial-gradient(circle at 84% 55%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      radial-gradient(circle at 46% 88%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      radial-gradient(circle at 92% 85%, rgba(0,0,0,0.05) 0 2px, transparent 3px),
      linear-gradient(var(--board), var(--board));
    border-bottom:1px solid var(--rule);
    padding:56px 0 72px;
    overflow:hidden;
  }
  .hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:40px; align-items:center;}
  .hero h1{font-size:clamp(34px,5.6vw,64px); line-height:0.95; font-weight:800;}
  .hero h1 em{font-style:normal; color:var(--red);}
  .hero p.lede{
    font-family:'Source Sans 3', sans-serif;
    text-transform:none;
    font-size:17px;
    color:var(--ink-soft);
    max-width:46ch;
    margin:16px 0 26px;
    line-height:1.5;
  }
  .hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}

  .pinboard{position:relative; height:340px;}
  .pin-card{
    position:absolute;
    width:clamp(160px,42vw,210px);
    background:var(--paper-raised);
    border:1px solid var(--rule);
    padding:14px 14px 12px;
    box-shadow:0 10px 18px -8px rgba(0,0,0,0.35);
    font-family:'Source Sans 3', sans-serif;
  }
  .pin-card::before{
    content:"";
    position:absolute; top:-9px; left:50%;
    transform:translateX(-50%);
    width:14px; height:14px;
    border-radius:50%;
    background:radial-gradient(circle at 35% 30%, #ff8a80, var(--red-dark));
    box-shadow:0 3px 4px rgba(0,0,0,0.35);
  }
  .pin-card .cat{font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft);}
  .pin-card h3{font-family:'Source Sans 3', sans-serif; text-transform:none; font-weight:700; font-size:15px; margin:5px 0 6px; line-height:1.25;}
  .pin-card .price{font-family:'IBM Plex Mono', monospace; font-size:13px; font-weight:500;}
  .pin-1{top:0; left:6%; transform:rotate(-4deg);}
  .pin-2{top:18px; left:52%; transform:rotate(3deg);}
  .pin-3{top:190px; left:2%; transform:rotate(2.5deg);}
  .pin-4{top:200px; left:48%; transform:rotate(-2.5deg);}

  .boroughs{padding:64px 0 8px; scroll-margin-top:150px;}
  #browse{scroll-margin-top:150px;}
  .borough-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
  .borough-card{
    display:block;
    background:var(--paper-raised);
    border:1px solid var(--rule);
    border-left:5px solid var(--line);
    padding:16px 16px 14px;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .borough-card:hover{transform:translateY(-3px); box-shadow:0 10px 16px -10px rgba(0,0,0,0.4);}
  .borough-card .name{font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:19px; text-transform:uppercase;}
  .borough-card .count{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft); margin-top:4px;}
  .b-green{--line:var(--line-green);}
  .b-gold{--line:var(--line-gold);}
  .b-blue{--line:var(--line-blue);}
  .b-plum{--line:var(--line-plum);}

  .listings{padding:64px 0 20px;}
  .tabs{display:flex; gap:6px; margin-bottom:26px; flex-wrap:wrap; border-bottom:1px solid var(--rule);}
  .tab{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:700;
    font-size:16px;
    letter-spacing:0.02em;
    text-transform:uppercase;
    padding:10px 16px;
    border:0;
    background:transparent;
    color:var(--ink-soft);
    cursor:pointer;
    border-bottom:3px solid transparent;
    margin-bottom:-1px;
  }
  .tab.active{color:var(--ink); border-color:var(--red);}
  .listing-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .listing-card{background:var(--paper-raised); border:1px solid var(--rule); padding:16px; display:flex; flex-direction:column; gap:8px; min-width:0;}
  .listing-card[data-target]{cursor:pointer;}
  .listing-card[data-target]:hover{border-color:var(--ink);}
  .listing-card .top-row{display:flex; align-items:center; justify-content:space-between;}
  .chip{font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.06em; text-transform:uppercase; padding:3px 7px; border-radius:2px; color:#fff;}
  .chip.green{background:var(--line-green);}
  .chip.gold{background:var(--line-gold); color:#1c1b19;}
  .chip.blue{background:var(--line-blue);}
  .chip.plum{background:var(--line-plum);}
  .chip.rust{background:var(--line-rust);}
  .posted{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft);}
  .listing-card h3{font-family:'Source Sans 3', sans-serif; text-transform:none; font-weight:700; font-size:16px; line-height:1.3;}
  .listing-card .meta{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}
  .listing-card .price{margin-top:auto; font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:15px; padding-top:8px; border-top:1px dashed var(--rule);}
  .price.free{color:var(--line-green);}
  .biz-card-address{
    margin-top:auto; padding-top:8px; border-top:1px dashed var(--rule);
    font-family:'Source Sans 3', sans-serif; font-size:12px; color:var(--ink-soft);
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  }
  .biz-badge.small{font-size:9px; padding:2px 6px; margin-top:6px;}

  .post-cta{margin:72px 0 0; background:var(--ink); color:var(--paper); padding:56px 0;}
  .post-cta .wrap{display:grid; grid-template-columns:1.2fr 1fr; gap:40px; align-items:center;}
  .post-cta h2{font-size:clamp(26px,3.4vw,38px); font-weight:800;}
  .post-cta p{color:#cfc8b6; max-width:44ch; margin-top:10px; line-height:1.5;}
  .steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .steps li{display:flex; gap:12px; align-items:baseline; font-size:14px; color:#e7e1d0;}
  .steps b{
    font-family:'IBM Plex Mono', monospace; color:var(--paper); font-size:12px;
    border:1px solid #6d6659; border-radius:50%; width:22px; height:22px;
    display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .post-cta .ticket.solid{margin-top:22px;}

  /* =========================================================
     PAGE: ARTICLE
  ========================================================= */
  .article-wrap{display:grid; grid-template-columns:1.7fr 1fr; gap:40px; padding:40px 0 70px; align-items:start;}
  .article-main h1{font-size:clamp(28px,4vw,44px); margin:10px 0 14px; line-height:1.05;}
  .article-media{margin:18px 0 22px;}
  .lede-p{font-size:18px; font-weight:600; line-height:1.5; margin-bottom:16px;}
  .article-main p{font-size:16px; line-height:1.7; color:var(--ink); margin-bottom:16px;}
  blockquote{
    border-left:3px solid var(--red);
    margin:26px 0;
    padding:2px 0 2px 20px;
    font-family:'Barlow Condensed', sans-serif;
    font-size:22px;
    font-weight:600;
    text-transform:none;
    line-height:1.3;
    color:var(--ink);
  }
  blockquote span{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    text-transform:uppercase;
    color:var(--ink-soft);
    display:block;
    margin-top:8px;
  }

  /* =========================================================
     PAGE: CLASSIFIEDS SUBSYSTEM - category browse, listing detail, post-ad
  ========================================================= */
  .breadcrumb{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft);
    padding:14px 0; letter-spacing:0.02em;
  }
  .breadcrumb a{color:var(--ink-soft);}
  .breadcrumb a:hover{color:var(--red);}
  .breadcrumb span{color:var(--ink);}

  /* -- Category browse: filter sidebar + listing grid -- */
  .cls-browse-head{
    display:flex; align-items:flex-end; justify-content:space-between; gap:28px; flex-wrap:wrap;
    padding:6px 0 24px; border-bottom:1px solid var(--rule);
  }
  .cls-browse-head-text{flex:1 1 400px; min-width:0;}
  .cls-browse-head h1, .cls-browse-head h2{
    font-family:'Source Serif 4', Georgia, serif; font-weight:700; text-transform:none;
    font-size:clamp(28px,3.6vw,38px); margin:0 0 6px;
  }
  .cls-browse-head .dek{font-size:15px; margin:0;}
  .cls-browse-head-search{flex:0 1 360px; margin-bottom:2px;}
  .cls-browse-body{padding:28px 0 60px;}
  .cls-browse-grid{display:grid; grid-template-columns:260px 1fr; gap:36px; align-items:start;}

  .filter-panel{background:var(--paper-raised); border:1px solid var(--rule); padding:20px;}
  .filter-group{padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--rule);}
  .filter-group:last-child{border-bottom:0; margin-bottom:0; padding-bottom:0;}
  .filter-label{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:13px;
    letter-spacing:0.05em; text-transform:uppercase; margin-bottom:12px; display:block;
  }
  .filter-check{display:flex; align-items:center; gap:8px; font-size:14px; padding:5px 0; cursor:pointer;}
  .filter-check input{accent-color:var(--red);}
  .filter-check.depth-1{padding-left:14px; font-size:13px;}
  .filter-check.depth-2{padding-left:28px; font-size:12.5px; color:var(--ink-soft);}
  .filter-check.depth-3{padding-left:42px; font-size:12px; color:var(--ink-soft);}
  .filter-scroll{max-height:320px; overflow-y:auto; padding-right:4px;}
  /* Category/Borough rows are now plain links (click = navigate immediately,
     no Apply step) — give them real link affordance + an active state for
     the borough that's currently selected via ?listing_location=. */
  a.filter-check{text-decoration:none; color:var(--ink); transition:color .1s ease;}
  a.filter-check:hover{color:var(--red);}
  a.filter-check.active{color:var(--red); font-weight:700;}

  .borough-toggle-input{display:none;}
  .borough-extra{display:none;}
  .borough-toggle-input:checked ~ .borough-extra{display:block;}
  .borough-toggle-input:checked ~ .borough-toggle-label{display:none;}
  .borough-toggle-label{
    display:block; margin-top:6px; font-family:'IBM Plex Mono', monospace; font-size:11px;
    letter-spacing:0.03em; text-transform:uppercase; color:var(--red); cursor:pointer;
  }
  .borough-toggle-label:hover{text-decoration:underline;}

  .filter-price-form{margin:0;}
  .filter-price{display:flex; align-items:center; gap:8px;}
  .filter-price input{
    width:100%; min-width:0; border:1px solid var(--rule); background:var(--paper);
    padding:8px 9px; font-family:'IBM Plex Mono', monospace; font-size:13px;
  }
  /* Small inline submit for the one control that still needs one (freeform
     numbers have no "click to navigate" equivalent) — deliberately not a
     full-width Apply bar like the old .filter-apply, so it doesn't compete
     with the CTA below. */
  .filter-price-go{
    flex-shrink:0; width:34px; height:34px; border:0; background:var(--ink); color:var(--paper);
    font-size:15px; line-height:1; cursor:pointer; transition:background .15s ease;
  }
  .filter-price-go:hover{background:var(--red);}

  .filter-apply{
    width:100%; margin-top:4px; padding:11px; background:var(--ink); color:var(--paper);
    border:0; font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.03em;
    text-transform:uppercase; font-size:14px; cursor:pointer;
  }
  .filter-apply:hover{background:var(--red);}

  .filter-clear{
    display:block; text-align:center; margin-top:16px; padding-top:16px; border-top:1px solid var(--rule);
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em;
    text-transform:uppercase; color:var(--ink-soft);
  }
  .filter-clear:hover{color:var(--red);}

  /* Post-an-ad CTA — sits where the old Apply/Clear button block was */
  .filter-cta{
    margin-top:20px; padding:22px 20px; background:var(--ink); color:var(--paper); text-align:center;
  }
  .filter-panel > .filter-clear + .filter-cta,
  .filter-panel > .filter-cta{margin-top:20px;}
  .filter-cta-kicker{
    display:block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--line-gold); margin-bottom:8px;
  }
  .filter-cta h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:19px;
    text-transform:none; letter-spacing:0; color:#fff; margin:0 0 8px;
  }
  .filter-cta p{
    font-family:'Source Sans 3', sans-serif; font-size:13px; line-height:1.5; color:#cfc8b6; margin:0 0 18px;
  }
  .filter-cta .ticket.solid{width:100%; justify-content:center;}

  .browse-toolbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; flex-wrap:wrap; gap:10px;}
  .browse-sort-form{display:flex; align-items:center;}
  .browse-count{font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}
  .browse-sort{
    font-family:'IBM Plex Mono', monospace; font-size:12px; padding:8px 10px;
    border:1px solid var(--rule); background:var(--paper-raised); color:var(--ink);
  }
  .browse-listing-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}

  /* -- Subcategory hub pages -- */
  .subcat-hub{padding:8px 0 60px;}
  .subcat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start;}
  .subcat-card{border:1px solid var(--rule); background:var(--paper-raised);}
  .subcat-card-head{
    padding:15px 18px; color:#fff;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:17px;
    text-transform:uppercase; letter-spacing:0.02em;
  }
  .subcat-card-head.c-blue{background:var(--line-blue);}
  .subcat-card-head.c-gold{background:var(--line-gold); color:var(--ink);}
  .subcat-card-head.c-plum{background:var(--line-plum);}
  .subcat-card-head.c-green{background:var(--line-green);}
  .subcat-card-body{padding:8px 18px 20px;}
  .subcat-card-body a{
    display:block; padding:10px 0; border-bottom:1px solid var(--rule);
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink); text-align:center;
    text-decoration:none;
  }
  .subcat-card-body a:hover{color:var(--red);}
  .subcat-card-body a:last-of-type{border-bottom:0;}

  .subcat-flat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
  .subcat-flat-item{
    display:block; padding:14px 18px; border:1px solid var(--rule); background:var(--paper-raised);
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink); text-decoration:none;
  }
  .subcat-flat-item:hover{border-color:var(--red); color:var(--red);}

  .subcat-flat-toggle-input{display:none;}
  .subcat-flat-extra{display:none;}
  .subcat-flat-toggle-input:checked ~ .subcat-flat-grid .subcat-flat-extra{display:block;}
  .subcat-flat-toggle-input:checked ~ .subcat-flat-toggle-wrap{display:none;}
  .subcat-flat-toggle-wrap{text-align:center; margin-top:16px;}
  .subcat-flat-toggle-label{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:12px;
    color:var(--ink-soft); cursor:pointer; text-decoration:underline; text-underline-offset:2px;
  }
  .subcat-flat-toggle-label:hover{color:var(--red);}

  /* -- All Boroughs directory page -- */
  .locations-directory{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rule); border-left:1px solid var(--rule); margin:8px 0 60px;}
  .locations-row{
    display:flex; justify-content:space-between; align-items:center; gap:10px;
    padding:15px 18px; border-bottom:1px solid var(--rule); border-right:1px solid var(--rule);
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink); text-decoration:none;
  }
  .locations-row:hover{color:var(--red); background:var(--paper-raised);}
  .locations-row-count{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); white-space:nowrap;}

  /* -- Category/borough archive "mini article" — long-form SEO content block --
     Two-column article+sidebar shape (matches .article-wrap on single posts):
     wide reading column for the structured article, narrow aside for live
     stats + internal links + CTA, so long-form text doesn't strand in a
     narrow ~75ch column with a big empty gap beside it in a full-width box. */
  .cls-mini-article{
    margin:12px 0 60px;
    padding:36px 40px;
    background:var(--paper-raised);
    border:1px solid var(--rule);
    border-top:3px solid var(--ink);
  }
  .cls-mini-article-kicker{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--red); font-weight:500; display:block; margin-bottom:8px;
  }
  .cls-mini-article > h2{
    font-family:'Source Serif 4', Georgia, serif; font-weight:700; text-transform:none;
    font-size:clamp(22px,2.8vw,30px); margin:0 0 24px;
  }
  .cls-mini-article-grid{display:grid; grid-template-columns:1.7fr 1fr; gap:48px; align-items:start;}

  .cls-mini-article-body{font-family:'Source Sans 3', sans-serif; font-size:15.5px; line-height:1.7; color:var(--ink);}
  .cls-mini-article-body p{margin:0 0 16px;}
  .cls-mini-article-body p:last-child{margin-bottom:0;}
  .cls-mini-article-body h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:0.02em;
    font-size:19px; color:var(--ink); margin:30px 0 12px; padding-bottom:8px; border-bottom:2px solid var(--red);
  }
  .cls-mini-article-body h3:first-child{margin-top:0;}
  .cls-mini-article-body ul, .cls-mini-article-body ol{margin:0 0 16px; padding-left:22px;}
  .cls-mini-article-body li{margin-bottom:7px; line-height:1.6;}
  .cls-mini-article-body strong{font-weight:700;}
  .cls-mini-article-body .cls-faq-item{margin-bottom:16px;}
  .cls-mini-article-body .cls-faq-q{
    font-family:'Source Sans 3', sans-serif; font-weight:700; color:var(--ink); display:block; margin-bottom:4px;
  }

  .cls-mini-article-aside{position:sticky; top:24px; display:flex; flex-direction:column; gap:18px;}
  .cls-mini-article-stats{display:flex; flex-wrap:wrap; gap:8px;}
  .cls-mini-article-stat{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em; text-transform:uppercase;
    color:var(--ink-soft); background:var(--paper); border:1px solid var(--rule); border-radius:2px;
    padding:6px 11px;
  }
  .cls-mini-article-stat strong{color:var(--ink); font-weight:600;}
  .cls-mini-article-links{
    background:var(--paper); border:1px solid var(--rule); padding:18px;
    display:flex; flex-direction:column; gap:11px;
  }
  .cls-mini-article-links-label{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--ink-soft); margin-bottom:2px;
  }
  .cls-mini-article-links a{
    font-family:'Source Sans 3', sans-serif; font-size:13.5px; color:var(--ink);
  }
  .cls-mini-article-links a:hover{color:var(--red);}
  .cls-mini-article-cta{background:var(--ink); color:var(--paper); padding:20px;}
  .cls-mini-article-cta p{font-family:'Source Sans 3', sans-serif; font-size:13px; color:#cfc8b6; margin:0 0 14px; line-height:1.5;}
  .cls-mini-article-cta a.ticket{width:100%; justify-content:center;}

  @media (max-width:900px){
    .cls-mini-article-grid{grid-template-columns:1fr;}
    .cls-mini-article-aside{position:static;}
  }
  @media (max-width:700px){
    .cls-mini-article{padding:24px 20px;}
  }

  /* -- Listing detail page -- */
  .listing-detail{padding:6px 0 60px;}
  .listing-detail-grid{display:grid; grid-template-columns:1.6fr 1fr; gap:44px; align-items:start;}
  .listing-gallery-main{aspect-ratio:4/3; margin-bottom:10px;}
  .listing-gallery-thumbs{display:grid; grid-template-columns:repeat(4,1fr); gap:8px;}
  .listing-gallery-thumbs .hero-media{aspect-ratio:1/1;}
  .listing-title-block{margin-top:26px; padding-bottom:20px; border-bottom:1px solid var(--rule);}
  .listing-title-block .chip{margin-bottom:10px;}
  .listing-title-block h1{
    font-family:'Source Serif 4', Georgia, serif; font-weight:700; text-transform:none;
    font-size:clamp(24px,3vw,32px); margin:0 0 10px; line-height:1.15;
  }
  .listing-price{font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:22px; color:var(--ink);}
  .listing-price.free{color:var(--line-green);}
  .listing-meta-row{display:flex; gap:16px; flex-wrap:wrap; margin-top:10px; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}

  .listing-fields{display:grid; grid-template-columns:repeat(2,1fr); gap:14px 20px; padding:22px 0; border-bottom:1px solid var(--rule);}
  .listing-field{display:flex; flex-direction:column; gap:3px;}
  .listing-field .fk{font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft);}
  .listing-field .fv{font-family:'Source Sans 3', sans-serif; font-size:14px; font-weight:600;}

  .listing-desc{padding:22px 0; font-size:15px; line-height:1.7; border-bottom:1px solid var(--rule);}
  .listing-desc h2{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:14px; letter-spacing:0.06em;
    text-transform:uppercase; margin-bottom:12px;
  }

  .seller-card{background:var(--paper-raised); border:1px solid var(--rule); padding:20px;}
  .seller-card-top{display:flex; align-items:center; gap:14px; padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--rule);}
  .seller-avatar{width:52px; height:52px; border-radius:50%; flex-shrink:0; background:linear-gradient(150deg, var(--line-blue), var(--ink));}
  .seller-card-top strong{display:block; font-family:'Source Sans 3', sans-serif; font-size:16px;}
  .seller-card-top span{font-size:12px; color:var(--ink-soft); display:block; margin-top:2px;}
  .seller-stats{display:flex; gap:18px; margin-bottom:16px; font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft);}
  .seller-stats b{display:block; font-family:'Source Serif 4', Georgia, serif; font-size:17px; color:var(--ink); font-weight:700;}
  .message-form textarea{
    width:100%; min-height:90px; border:1px solid var(--rule); background:var(--paper);
    padding:10px; font-family:'Source Sans 3', sans-serif; font-size:13px; resize:vertical; margin-bottom:10px;
  }
  .message-form input{
    width:100%; border:1px solid var(--rule); background:var(--paper);
    padding:9px 10px; font-family:'Source Sans 3', sans-serif; font-size:13px; margin-bottom:10px;
  }
  /* RTCL's real seller-contact form (Listing::email_to_seller_form(), AJAX-backed) */
  .message-form .rtcl-form-group{margin-bottom:0;}
  .message-form .rtcl-btn, .message-form button[type=submit]{
    width:100%; padding:12px; background:var(--red); color:#fff; border:0; border-radius:0; cursor:pointer;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.03em;
    text-transform:uppercase; font-size:15px; margin-top:2px;
  }
  .message-form .rtcl-btn:hover, .message-form button[type=submit]:hover{background:var(--red-dark);}
  #rtcl-contact-message-display{font-family:'IBM Plex Mono', monospace; font-size:12px; margin:8px 0 0;}
  #rtcl-contact-message-display.text-success{color:var(--line-green);}
  #rtcl-contact-message-display.text-danger{color:var(--red);}
  .screen-reader-text{
    border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px;
    overflow:hidden; padding:0; position:absolute !important; width:1px; word-wrap:normal !important;
  }

  /* -- Businesses: badge, hours, contact card, map, claim CTA -- */
  .biz-badge{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.05em;
    text-transform:uppercase; padding:4px 9px; border:1px solid var(--rule); color:var(--ink-soft); margin-bottom:10px;
  }
  .biz-badge.verified{color:var(--line-green); border-color:var(--line-green);}
  .biz-badge.unclaimed{color:var(--ink-soft); border-color:var(--ink-soft);}

  .biz-hours-card, .biz-contact-card, .biz-claim-cta{
    background:var(--paper-raised); border:1px solid var(--rule); padding:20px; margin-bottom:16px;
  }
  .biz-hours-card h3, .biz-contact-card h3, .biz-claim-cta h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:14px; text-transform:uppercase;
    letter-spacing:0.05em; margin-bottom:14px; padding-bottom:8px; border-bottom:2px solid var(--ink);
    display:flex; align-items:center; justify-content:space-between; gap:10px;
  }
  .biz-open-status{font-family:'IBM Plex Mono', monospace; font-size:10px; text-transform:uppercase; letter-spacing:0.04em; padding:3px 8px;}
  .biz-open-status.open{color:var(--line-green); border:1px solid var(--line-green);}
  .biz-open-status.closed{color:var(--red); border:1px solid var(--red);}
  .biz-hours-row{display:flex; justify-content:space-between; padding:5px 0; font-size:13px; border-bottom:1px dashed var(--rule);}
  .biz-hours-row:last-child{border-bottom:0;}
  .biz-hours-row.today{font-weight:700;}
  .biz-hours-row .day{color:var(--ink-soft);}
  .biz-contact-card div{margin-bottom:10px; font-size:14px; line-height:1.5;}
  .biz-contact-card div:last-child{margin-bottom:0;}
  .biz-contact-card a{color:var(--red);}
  /* isolation:isolate contains Leaflet's own internal z-indices (its zoom
     controls default to 1000, well above this site's dropdown menu at 210)
     inside this element's own stacking context, so the map can never paint
     over page chrome like the header's Classifieds dropdown, no matter what
     z-index Leaflet assigns internally. */
  .biz-map{width:100%; height:260px; border:1px solid var(--rule); margin-bottom:16px; isolation:isolate;}
  .biz-claim-cta p{font-size:13px; color:var(--ink-soft); margin:0 0 12px;}
  .biz-claim-cta .ticket{width:100%; justify-content:center;}
  .biz-claim-form input, .biz-claim-form textarea{
    width:100%; border:1px solid var(--rule); background:var(--paper);
    padding:9px 10px; font-family:'Source Sans 3', sans-serif; font-size:13px; margin-bottom:10px;
  }
  .biz-claim-form textarea{min-height:80px; resize:vertical;}
  .safety-tip{
    margin-top:16px; padding:12px 14px; background:var(--paper); border:1px dashed var(--ink-soft);
    font-size:12px; color:var(--ink-soft); line-height:1.5;
  }
  .safety-tip b{color:var(--ink); font-family:'Barlow Condensed', sans-serif; text-transform:uppercase; letter-spacing:0.03em; font-size:11px;}

  /* -- Seller profile page -- */
  .profile-head{padding:26px 0; border-bottom:1px solid var(--rule); background:var(--paper-raised);}
  .profile-head-inner{display:flex; align-items:center; gap:22px; flex-wrap:wrap;}
  .profile-avatar-lg{width:84px; height:84px; border-radius:50%; flex-shrink:0; background:linear-gradient(150deg, var(--line-blue), var(--ink));}
  .profile-head h1{
    font-family:'Source Serif 4', Georgia, serif; font-weight:700; text-transform:none;
    font-size:clamp(24px,3vw,32px); margin:0 0 6px;
  }
  .verify-badges{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;}
  .verify-badge{
    display:inline-flex; align-items:center; gap:5px;
    font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.03em; text-transform:uppercase;
    padding:4px 9px; background:var(--paper); border:1px solid var(--rule); color:var(--ink-soft);
  }
  .verify-badge.on{color:var(--line-green); border-color:var(--line-green);}
  .profile-stats-panel{background:var(--paper-raised); border:1px solid var(--rule); padding:20px;}
  .profile-stat-row{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--rule); font-size:13px;}
  .profile-stat-row:last-child{border-bottom:0;}
  .profile-stat-row span:first-child{color:var(--ink-soft);}
  .profile-stat-row span:last-child{font-family:'IBM Plex Mono', monospace; font-weight:500;}

  .cls-quicklinks{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink-soft);}
  .cls-quicklinks a{color:var(--red); margin-left:6px;}
  .cls-quicklinks a:first-of-type{margin-left:10px;}

  /* -- Post an ad form -- */
  .post-ad-page{padding:6px 0 70px;}
  .post-ad-grid{display:grid; grid-template-columns:1fr 320px; gap:44px; align-items:start;}
  .step-indicator{display:flex; align-items:center; gap:0; margin-bottom:32px;}
  .step-item{display:flex; align-items:center; gap:10px;}
  .step-num{
    width:30px; height:30px; border-radius:50%; border:2px solid var(--ink); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:13px; background:var(--paper-raised);
  }
  .step-item.done .step-num{background:var(--ink); color:var(--paper);}
  .step-label{font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.03em; text-transform:uppercase;}
  .step-connector{flex:1; height:2px; background:var(--rule); margin:0 12px;}

  .form-section{padding:26px 0; border-bottom:1px solid var(--rule);}
  .form-section:first-of-type{padding-top:0;}
  .form-section h2{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:15px; letter-spacing:0.05em;
    text-transform:uppercase; margin-bottom:18px; padding-bottom:8px; border-bottom:2px solid var(--red); display:inline-block;
  }
  .form-row{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-bottom:16px;}
  .form-field{display:flex; flex-direction:column; gap:6px;}
  .form-field.full{grid-column:1/-1;}
  .form-field label{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em; text-transform:uppercase; color:var(--ink-soft);}
  .form-field input, .form-field select, .form-field textarea{
    border:1px solid var(--rule); background:var(--paper-raised); padding:10px 11px;
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink);
  }
  .form-field textarea{min-height:110px; resize:vertical;}
  .cat-select-row{display:flex; gap:8px; flex-wrap:wrap;}
  .cat-select-btn{
    padding:9px 16px; border:1px solid var(--rule); background:var(--paper-raised);
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.03em;
    text-transform:uppercase; cursor:pointer; color:var(--ink-soft);
  }
  .cat-select-btn.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
  .dynamic-fields{display:none;}
  .dynamic-fields.active{display:block;}
  .photo-upload-box{
    border:2px dashed var(--rule); background:var(--paper-raised); padding:36px 20px;
    text-align:center; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);
  }
  .photo-upload-box strong{display:block; font-family:'Barlow Condensed', sans-serif; font-size:16px; color:var(--ink); text-transform:none; margin-bottom:6px; font-weight:700;}
  .post-ad-sidebar{background:var(--paper-raised); border:1px solid var(--rule); padding:20px; position:sticky; top:130px;}
  .post-ad-sidebar h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:14px; letter-spacing:0.05em;
    text-transform:uppercase; margin-bottom:12px; padding-bottom:8px; border-bottom:2px solid var(--ink);
  }
  .post-ad-sidebar ul{margin:0 0 20px; padding-left:18px; font-size:13px; line-height:1.8; color:var(--ink-soft);}
  .publish-btn{
    width:100%; padding:14px; background:var(--red); color:#fff; border:0;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.03em;
    text-transform:uppercase; font-size:16px; cursor:pointer;
  }
  .publish-btn:hover{background:var(--red-dark);}

  /* -- Subcategory hub pages -- */
  .subcat-hub{padding:8px 0 60px;}
  .subcat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:start;}
  .subcat-card{border:1px solid var(--rule); background:var(--paper-raised);}
  .subcat-card-head{
    padding:15px 18px; color:#fff;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:17px;
    text-transform:uppercase; letter-spacing:0.02em;
  }
  .subcat-card-head.c-blue{background:var(--line-blue);}
  .subcat-card-head.c-gold{background:var(--line-gold); color:var(--ink);}
  .subcat-card-head.c-plum{background:var(--line-plum);}
  .subcat-card-head.c-green{background:var(--line-green);}
  .subcat-card-body{padding:8px 18px 20px;}
  .subcat-card-body a{
    display:block; padding:10px 0; border-bottom:1px solid var(--rule);
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink); text-align:center;
  }
  .subcat-card-body a:hover{color:var(--red);}
  .subcat-card-body a:last-of-type{border-bottom:0;}
  .subcat-more{
    display:block; width:fit-content; margin:16px auto 0; padding:9px 22px;
    background:var(--paper); border:1px solid var(--rule);
    font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase; letter-spacing:0.05em;
    color:var(--ink-soft); text-align:center;
  }
  .subcat-more:hover{border-color:var(--ink); color:var(--ink);}

  /* =========================================================
     PAGE: CATEGORY TEMPLATES - shared base, per-category module differs
  ========================================================= */
  .cat-hero{padding:38px 0; background:var(--paper-raised); border-bottom:1px solid var(--rule); border-top:4px solid var(--ink);}
  .cat-hero-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
  .cat-hero h1{
    font-family:'Source Serif 4', Georgia, serif;
    font-weight:700; text-transform:none;
    font-size:clamp(28px,3.8vw,42px);
    line-height:1.05; margin:8px 0 10px;
  }
  .cat-hero .dek{font-size:16px; max-width:52ch; margin:0 0 18px;}
  .cat-topics{margin-top:4px;}
  .cat-topics b{
    display:block; color:var(--ink-soft); font-weight:600; text-transform:uppercase;
    letter-spacing:0.06em; font-size:11px; font-family:'IBM Plex Mono', monospace;
    margin-bottom:10px;
  }
  .cat-topics-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; max-width:48ch;}
  .cat-topics-list li{
    font-family:'Source Sans 3', sans-serif; font-size:14px; line-height:1.4;
    color:var(--ink); padding-left:18px; position:relative;
  }
  .cat-topics-list li::before{
    content:"";
    position:absolute; left:0; top:6px;
    width:7px; height:7px; border-radius:50%;
    background:var(--red);
  }
  .cat-hero.cat-sport .cat-topics-list li::before{background:var(--line-blue);}
  .cat-hero.cat-realestate .cat-topics-list li::before{background:var(--line-gold);}
  .cat-hero.cat-politics .cat-topics-list li::before{background:var(--line-plum);}
  .cat-hero.cat-business .cat-topics-list li::before{background:var(--line-green);}
  .cat-hero.cat-community .cat-topics-list li::before{background:var(--line-gold);}
  .cat-hero.cat-crime .cat-topics-list li::before{background:var(--ink-soft);}
  .cat-hero.cat-health .cat-topics-list li::before{background:var(--line-green);}

  .cat-hero-widget{background:var(--paper); border:1px solid var(--rule); padding:22px;}
  .cat-hero-widget .cat-module-head{margin-top:0;}
  .cat-hero-widget .scoreboard-grid,
  .cat-hero-widget .stat-strip,
  .cat-hero-widget .events-strip,
  .cat-hero-widget .care-list,
  .cat-hero-widget .council-grid{grid-template-columns:1fr;}

  .cat-module-head{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:14px;
    letter-spacing:0.08em; text-transform:uppercase;
    padding-bottom:8px; margin-bottom:18px;
    border-bottom:2px solid var(--red);
    display:inline-block;
  }

  .cat-body{padding:40px 0 60px;}
  .cat-body-grid{display:grid; grid-template-columns:2.2fr 1fr; gap:40px; align-items:start;}
  .cat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px 24px;}
  .cat-card{display:block;}
  .cat-card .hero-media{margin-bottom:10px;}
  .cat-card h3{
    font-family:'Source Serif 4', Georgia, serif; font-weight:700; text-transform:none;
    font-size:18px; line-height:1.25; margin:0 0 6px;
  }
  .cat-card .dek{font-size:13px; margin:0 0 6px; -webkit-line-clamp:2;}

  .cat-grid .tile-classifieds{grid-column:1/-1; grid-template-columns:1.2fr 2fr;}

  .pagination{
    grid-column:1/-1; display:flex; justify-content:center; align-items:center;
    gap:6px; margin-top:14px; flex-wrap:wrap;
  }
  .page-link{
    font-family:'IBM Plex Mono', monospace; font-size:13px;
    padding:9px 14px; border:1px solid var(--rule); color:var(--ink-soft);
    background:var(--paper-raised);
  }
  .page-link:hover{border-color:var(--ink); color:var(--ink);}
  .page-link.active{background:var(--ink); color:var(--paper); border-color:var(--ink);}
  .page-ellipsis{padding:9px 4px; color:var(--ink-soft); font-family:'IBM Plex Mono', monospace; font-size:13px;}

  /* -- Sport: scoreboard module -- */
  .cat-hero.cat-sport{border-top-color:var(--line-blue);}
  .cat-module-sport .cat-module-head{border-color:var(--line-blue);}
  .scoreboard-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .score-card{background:var(--paper-raised); border:1px solid var(--rule); border-left:4px solid var(--line-blue); padding:16px;}
  .score-team{font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:18px; text-transform:uppercase;}
  .score-league{font-family:'IBM Plex Mono', monospace; font-size:10px; color:var(--ink-soft); text-transform:uppercase; margin-top:2px;}
  .score-line{display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; padding-top:10px; border-top:1px dashed var(--rule); font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}
  .score-line strong{color:var(--ink); font-family:'Source Sans 3', sans-serif; font-weight:700; font-size:14px;}

  /* -- Real Estate: market snapshot module -- */
  .cat-hero.cat-realestate{border-top-color:var(--line-gold);}
  .cat-module-realestate .cat-module-head{border-color:var(--line-gold);}
  .market-note{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); margin:-10px 0 18px;}
  .market-bars{display:flex; flex-direction:column; gap:12px; max-width:640px;}
  .market-row{display:grid; grid-template-columns:150px 1fr 76px; align-items:center; gap:14px;}
  .market-label{font-family:'Source Sans 3', sans-serif; font-size:14px; font-weight:600;}
  .market-track{background:var(--paper); border:1px solid var(--rule); height:12px; position:relative; overflow:hidden;}
  .market-fill{height:100%; background:var(--line-gold);}
  .market-value{font-family:'IBM Plex Mono', monospace; font-size:13px; text-align:right;}
  .market-cta{margin-top:20px;}

  /* -- Politics: council watch module -- */
  .cat-hero.cat-politics{border-top-color:var(--line-plum);}
  .cat-module-politics .cat-module-head{border-color:var(--line-plum);}
  .council-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:36px;}
  .council-sub{font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:12px;}
  .agenda-item{display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--rule);}
  .agenda-item:last-child{border-bottom:0;}
  .agenda-date{
    flex-shrink:0; width:56px; text-align:center;
    font-family:'IBM Plex Mono', monospace; font-size:12px; font-weight:500;
    color:var(--line-plum); border:1px solid var(--rule); padding:6px 0; height:fit-content;
  }
  .agenda-item strong{display:block; font-family:'Source Sans 3', sans-serif; font-size:14px; margin-bottom:2px;}
  .agenda-item span{font-size:13px; color:var(--ink-soft);}
  .vote-title{font-family:'Source Serif 4', Georgia, serif; font-weight:700; font-size:16px; margin-bottom:14px;}
  .vote-bar-row{display:grid; grid-template-columns:60px 1fr 34px; align-items:center; gap:10px; margin-bottom:8px; font-family:'IBM Plex Mono', monospace; font-size:12px;}
  .vote-track{background:var(--paper); border:1px solid var(--rule); height:10px;}
  .vote-fill{height:100%;}
  .vote-fill.yes{background:var(--line-plum);}
  .vote-fill.no{background:var(--ink-soft);}
  .vote-fill.abstain{background:var(--rule);}

  /* -- Business: stat strip module -- */
  .cat-hero.cat-business{border-top-color:var(--line-green);}
  .cat-module-business .cat-module-head{border-color:var(--line-green);}
  .stat-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  .stat-card{background:var(--paper-raised); border:1px solid var(--rule); border-top:3px solid var(--line-green); padding:18px;}
  .stat-value{font-family:'Source Serif 4', Georgia, serif; font-weight:700; font-size:30px; display:flex; align-items:baseline; gap:10px;}
  .stat-value .trend{font-family:'IBM Plex Mono', monospace; font-size:12px; font-weight:500;}
  .trend.up{color:var(--line-green);}
  .trend.down{color:var(--red);}
  .stat-label{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); text-transform:uppercase; margin-top:8px;}

  /* -- Community: events strip module -- */
  .cat-hero.cat-community{border-top-color:var(--line-gold);}
  .cat-module-community .cat-module-head{border-color:var(--line-gold);}
  .events-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
  .event-card{display:flex; gap:12px; background:var(--paper-raised); border:1px solid var(--rule); padding:14px;}
  .event-date{
    flex-shrink:0; width:48px; text-align:center; background:var(--line-gold); color:var(--ink);
    padding:6px 0; height:fit-content;
  }
  .event-date .ed-day{display:block; font-family:'Source Serif 4', Georgia, serif; font-weight:700; font-size:18px; line-height:1;}
  .event-date .ed-mon{display:block; font-family:'IBM Plex Mono', monospace; font-size:9px; letter-spacing:0.05em; margin-top:2px;}
  .event-card strong{display:block; font-family:'Source Sans 3', sans-serif; font-size:13px; line-height:1.3; margin-bottom:4px;}
  .event-card span{font-size:12px; color:var(--ink-soft);}

  /* -- Crime: incident log module -- */
  .cat-hero.cat-crime{border-top-color:var(--ink-soft);}
  .cat-module-crime .cat-module-head{border-color:var(--ink-soft);}
  .incident-log{width:100%; border-collapse:collapse; font-family:'IBM Plex Mono', monospace; font-size:13px;}
  .incident-log th{
    text-align:left; font-size:10px; letter-spacing:0.05em; text-transform:uppercase;
    color:var(--ink-soft); font-weight:500; padding:0 12px 10px 0; border-bottom:2px solid var(--ink);
  }
  .incident-log td{padding:11px 12px 11px 0; border-bottom:1px solid var(--rule);}
  .incident-log tr:last-child td{border-bottom:0;}
  .incident-status{
    display:inline-block; padding:2px 8px; font-size:10px; letter-spacing:0.03em; text-transform:uppercase;
    background:var(--paper-raised); border:1px solid var(--rule);
  }

  /* -- Health: care-near-you module -- */
  .cat-hero.cat-health{border-top-color:var(--line-green);}
  .cat-module-health .cat-module-head{border-color:var(--line-green);}
  .care-list{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
  .care-item{display:flex; justify-content:space-between; align-items:center; gap:12px; background:var(--paper-raised); border:1px solid var(--rule); border-left:4px solid var(--line-green); padding:14px 16px;}
  .care-item strong{display:block; font-family:'Source Sans 3', sans-serif; font-size:14px; margin-bottom:3px;}
  .care-item span{font-size:12px; color:var(--ink-soft);}
  .care-wait{flex-shrink:0; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--line-green); text-align:right; white-space:nowrap;}

  /* ---------- Footer ---------- */
  .site-footer{background:var(--paper-raised); border-top:3px solid var(--ink); padding:44px 0 0; margin-top:20px;}
  .footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; padding-bottom:36px;}
  .footer-brand-col .brand{font-size:22px;}
  .footer-tagline{
    font-family:'Source Sans 3', sans-serif;
    font-size:13px;
    line-height:1.55;
    color:var(--ink-soft);
    max-width:30ch;
    margin:12px 0 0;
  }
  .footer-col-head{
    font-family:'Barlow Condensed', sans-serif;
    font-weight:800;
    font-size:13px;
    letter-spacing:0.06em;
    text-transform:uppercase;
    border-bottom:2px solid var(--red);
    padding-bottom:9px;
    margin-bottom:12px;
  }
  .footer-link-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px;}
  .footer-link-list a{
    font-family:'Source Sans 3', sans-serif;
    font-size:13.5px;
    color:var(--ink-soft);
  }
  .footer-link-list a:hover{color:var(--red);}
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
    padding:18px 0 22px; border-top:1px solid var(--rule);
  }
  .footer-bottom .fine{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft);}
  .footer-contact:hover{color:var(--red);}

  /* ---------- Responsive ---------- */
  @media (max-width:900px){
    .hero .wrap{grid-template-columns:1fr;}
    .pinboard{height:280px; margin-top:16px;}
    .borough-grid{grid-template-columns:repeat(2,1fr);}
    .listing-grid{grid-template-columns:repeat(2,1fr);}
    .subcat-grid{grid-template-columns:1fr;}
    .subcat-flat-grid{grid-template-columns:1fr 1fr;}
    .locations-directory{grid-template-columns:1fr 1fr;}
    .post-cta .wrap{grid-template-columns:1fr;}

    .article-wrap{grid-template-columns:1fr;}

    .home-top-grid{grid-template-columns:1fr;}
    .home-lead, .home-col{border-right:0; padding-right:0; padding-left:0;}
    .home-col{border-top:1px solid var(--rule); padding-top:18px; margin-top:12px;}
    .home-top-grid > aside.sidebar{padding-left:0; border-top:1px solid var(--rule); padding-top:18px; margin-top:12px;}
    .frontpage-grid > *{grid-column:span 12 !important; grid-row:auto !important;}
    .tile-classifieds{grid-template-columns:1fr;}
    .cat-grid .tile-classifieds{grid-template-columns:1fr;}

    .cat-body-grid{grid-template-columns:1fr;}
    .cat-hero-grid{grid-template-columns:1fr;}
    .cls-browse-grid{grid-template-columns:1fr;}
    .browse-listing-grid{grid-template-columns:repeat(2,1fr);}
    .listing-detail-grid{grid-template-columns:1fr;}
    .listing-fields{grid-template-columns:1fr 1fr;}
    .post-ad-grid{grid-template-columns:1fr;}
    .post-ad-sidebar{position:static;}
    .form-row{grid-template-columns:1fr;}
    .step-label{display:none;}
    .subcat-grid{grid-template-columns:1fr;}
    .cat-grid{grid-template-columns:1fr;}
    .scoreboard-grid{grid-template-columns:1fr;}
    .market-row{grid-template-columns:110px 1fr 66px; gap:8px;}
    .council-grid{grid-template-columns:1fr;}
    .stat-strip{grid-template-columns:1fr;}
    .events-strip{grid-template-columns:repeat(2,1fr);}
    .care-list{grid-template-columns:1fr;}
    .incident-log{font-size:12px;}
    .footer-grid{grid-template-columns:1fr 1fr; row-gap:28px;}
    .footer-brand-col{grid-column:1 / -1;}
  }
  @media (max-width:700px){
    .masthead .wrap{grid-template-columns:auto 1fr auto; padding:12px 16px;}
    .masthead-weather{gap:6px;}
    .masthead-weather .wx-desc{display:none;}
    .masthead-weather .wx-temp{font-size:20px;}
    .brand{font-size:19px;}
    .btn-post{padding:8px 12px; font-size:13px;}

    .mobile-nav-row{display:block; border-top:1px solid var(--rule);}
    .site-catnav{display:none; border-top:1px solid var(--rule);}
    .nav-toggle:checked ~ .site-catnav{display:block;}
    .site-catnav .wrap{
      flex-direction:column;
      overflow-x:visible;
      padding:6px 16px 10px;
      gap:0;
    }
    .site-catnav a{width:100%; padding:12px 4px; border-bottom:1px solid var(--rule);}
    .site-catnav a:last-child{border-bottom:0;}

    /* Dropdown becomes a plain expanding sublist inline with the rest of the
       stacked mobile menu, not a floating panel (there's no room to float). */
    .site-catnav-dropdown{width:100%; border-bottom:1px solid var(--rule);}
    .site-catnav-dropdown > summary{width:100%; padding:12px 4px; justify-content:space-between; border-bottom:0;}
    .site-catnav-dropdown-panel{
      position:static; width:100%; border:0; box-shadow:none; background:transparent;
      padding:0 0 8px; border-top:1px solid var(--rule);
    }
    .site-catnav-dropdown-panel a{width:100%; padding:12px 4px 12px 20px;}
    .site-catnav-dropdown-divider{margin:6px 4px;}

    .mobile-hide-nav-dupe{display:none;}
    .idx-list{grid-template-columns:1fr;}
  }
  @media (max-width:520px){
    .borough-grid{grid-template-columns:1fr 1fr;}
    .listing-grid{grid-template-columns:1fr;}
    .locations-directory{grid-template-columns:1fr;}
    .subbar .wrap{flex-direction:column; align-items:stretch;}
    .cls-browse-head{flex-direction:column; align-items:stretch;}
    .cls-browse-head-text, .cls-browse-head-search{flex:none;}
    .search{max-width:none;}
    .pin-3, .pin-4{display:none;}
    .pinboard{height:180px;}
    .pin-2{left:38%;}
    .headline-thumb{display:none;}
    .events-strip{grid-template-columns:1fr;}
    .browse-listing-grid{grid-template-columns:1fr;}
    .listing-fields{grid-template-columns:1fr;}
    .listing-gallery-thumbs{grid-template-columns:repeat(3,1fr);}
    .footer-grid{grid-template-columns:1fr;}
    .footer-bottom{flex-direction:column; align-items:flex-start;}
  }

  a:focus-visible, button:focus-visible, input:focus-visible, label:focus-visible{
    outline:2px solid var(--red);
    outline-offset:2px;
  }


  /* ================================================================
     Post an ad (/listing-form/) — category picker + RTCL form skin
     ================================================================ */

  /* -- Step 1: category picker -- */
  .md-catpick{border-bottom:0;}
  .md-catpick .cat-select-row{margin-bottom:22px;}
  .md-catpick .cat-select-btn{font-size:15px; padding:11px 22px;}
  .md-catpick-hint{
    font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.02em;
    color:var(--ink-soft); margin:0 0 16px;
  }
  .md-catpick-hint strong{color:var(--ink);}
  .md-catpick-groups + .md-catpick-flat{margin-top:16px;}
  .md-form-notices .rtcl-alert,
  .md-form-notices .alert{
    border:1px solid var(--red); border-left:4px solid var(--red); background:var(--paper-raised);
    color:var(--ink); padding:12px 16px; margin:0 0 18px; font-size:14px;
  }

  /* -- Step 2: skin RTCL's own form to the design system -- */
  .rtcl-post-form-wrap{font-family:'Source Sans 3', sans-serif; color:var(--ink);}
  .rtcl-post-form-wrap .rtcl-post-section-title{margin-bottom:14px;}
  .rtcl-post-form-wrap .rtcl-post-section-title h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:15px; letter-spacing:0.05em;
    text-transform:uppercase; color:var(--ink); margin:0; padding-bottom:8px;
    border-bottom:2px solid var(--red); display:inline-block;
  }
  .rtcl-post-form-wrap .rtcl-post-section-title h3 .rtcl-icon{display:none;}
  .rtcl-post-form-wrap .rtcl-post-section,
  .rtcl-post-form-wrap #rtcl-pricing-wrap{padding:22px 0; border-bottom:1px solid var(--rule);}
  .rtcl-post-form-wrap .rtcl-post-section:first-child{padding-top:0;}
  .rtcl-post-form-wrap .rtcl-post-section .rtcl-post-section,
  .rtcl-post-form-wrap .rtcl-post-section #rtcl-pricing-wrap{padding:0; border-bottom:0;}
  .rtcl-post-form-wrap label,
  .rtcl-post-form-wrap .rtcl-field-label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em;
    text-transform:uppercase; color:var(--ink-soft);
  }
  .rtcl-post-form-wrap .require-star{color:var(--red);}
  .rtcl-post-form-wrap .rtcl-form-control,
  .rtcl-post-form-wrap select,
  .rtcl-post-form-wrap textarea.rtcl-form-control{
    border:1px solid var(--rule); border-radius:0; background:var(--paper-raised);
    padding:10px 11px; font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink);
    box-shadow:none;
  }
  .rtcl-post-form-wrap .rtcl-form-control:focus{border-color:var(--ink); box-shadow:none; outline:2px solid var(--red); outline-offset:1px;}
  .rtcl-post-form-wrap .rtcl-hints{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); margin-top:4px;}
  .rtcl-post-form-wrap .selected-cat{
    font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink);
    display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:10px;
  }
  .rtcl-post-form-wrap .selected-cat .change-cat{
    color:var(--red); text-transform:uppercase; font-size:11px; letter-spacing:0.03em;
    border:1px solid var(--rule); padding:4px 10px; background:var(--paper-raised);
  }
  .rtcl-post-form-wrap .selected-cat .change-cat:hover{border-color:var(--red);}
  /* Gallery uploader: match the mockup's dashed photo box (DOM untouched) */
  .rtcl-post-form-wrap .rtcl-gallery{
    border:2px dashed var(--rule); background:var(--paper-raised); padding:36px 20px;
    text-align:center; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);
  }
  .rtcl-post-form-wrap .rtcl-gallery-browse-button{
    display:inline-block; padding:9px 18px; background:var(--ink); color:var(--paper);
    border:0; border-radius:0; font-family:'Barlow Condensed', sans-serif; font-weight:700;
    font-size:14px; letter-spacing:0.03em; text-transform:uppercase;
  }
  .rtcl-post-form-wrap .rtcl-gallery-browse-button:hover{background:var(--red); color:#fff;}
  .rtcl-post-form-wrap .rtcl-submit-btn{
    width:100%; padding:14px; margin-top:22px; background:var(--red); color:#fff; border:0; border-radius:0;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; letter-spacing:0.03em;
    text-transform:uppercase; font-size:16px; cursor:pointer;
  }
  .rtcl-post-form-wrap .rtcl-submit-btn:hover{background:var(--red-dark);}
  .rtcl-post-form-wrap .rtcl-checkbox label{text-transform:none; font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink);}
  .post-ad-page .step-indicator{margin-top:26px;}
  .post-ad-page .cls-browse-head{margin-bottom:24px;}
  /* Gallery constraints note is informational — don't render it as an error */
  .rtcl-post-form-wrap .rtcl-post-gallery .rtcl-notices-wrapper .alert-danger{
    background:var(--paper-raised); border:1px solid var(--rule); border-left:4px solid var(--line-gold);
    color:var(--ink-soft); font-family:'IBM Plex Mono', monospace; font-size:11px; padding:10px 14px;
  }
  .rtcl-post-form-wrap .rtcl-post-gallery .rtcl-notices-wrapper .alert-danger p{margin:2px 0;}
  .rtcl-post-form-wrap .rtcl-gallery a#rtcl-gallery-browse-button.rtcl-btn-primary{
    background:var(--ink); color:var(--paper); border:0; border-radius:0;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:14px;
    letter-spacing:0.03em; text-transform:uppercase; padding:9px 18px;
  }
  .rtcl-post-form-wrap .rtcl-gallery a#rtcl-gallery-browse-button.rtcl-btn-primary:hover{background:var(--red); color:#fff;}
  /* RTCL colors its buttons with !important + CSS vars — retheme the vars */
  .rtcl-post-form-wrap{
    --rtcl-button-bg-color: var(--ink);
    --rtcl-button-color: var(--paper);
    --rtcl-button-hover-bg-color: var(--red);
    --rtcl-button-hover-color: #fff;
    --rtcl-primary-color: var(--red);
    --rtcl-link-color: var(--red);
    --rtcl-link-hover-color: var(--red-dark);
  }

  /* ================================================================
     MY ACCOUNT + CHECKOUT — skin over RTCL's own markup/JS.
     rtcl-public.css stays enqueued on these pages (offcanvas nav,
     actions dropdown, table responsive stacking, popups, select2 all
     depend on it); this layer only re-themes colors, type and chrome.
     ================================================================ */

  /* -- Retheme RTCL's CSS vars site-wide (loads after its inline style) -- */
  :root{
    --rtcl-primary-color: var(--red);
    --rtcl-link-color: var(--ink);
    --rtcl-link-hover-color: var(--red);
    --rtcl-button-bg-color: var(--ink);
    --rtcl-button-color: #fff;
    --rtcl-button-hover-bg-color: var(--red);
    --rtcl-button-hover-color: #fff;
  }

  /* RTCL's own .rtcl-account{background:#EEEEEE} rule (1 class) outranks our
     plain `body{background:var(--paper)}` (1 element) in specificity, so the
     paper background was losing on my-account/checkout. Match it. */
  body.rtcl-account{background:var(--paper);}

  /* -- Shared RTCL primitives -- */
  .rtcl{font-family:'Source Sans 3', sans-serif; color:var(--ink);}
  .rtcl .rtcl-btn, .rtcl .btn.btn-primary{
    border-radius:0; border:0;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:15px;
    letter-spacing:0.03em; text-transform:uppercase; padding:11px 22px; cursor:pointer;
  }
  .rtcl .rtcl-field-label, .rtcl .control-label, .rtcl label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.03em;
    text-transform:uppercase; color:var(--ink-soft);
  }
  .rtcl .rtcl-form-control, .rtcl select.rtcl-form-control, .rtcl textarea.rtcl-form-control{
    border:1px solid var(--rule); border-radius:0; background:var(--paper-raised);
    padding:10px 11px; font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink);
    box-shadow:none;
  }
  .rtcl .rtcl-form-control:focus{border-color:var(--ink); box-shadow:none; outline:2px solid var(--red); outline-offset:1px;}
  .rtcl .help-block, .rtcl .description.small, .rtcl p.description{
    font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); text-transform:none;
  }
  .rtcl .require-star, .rtcl .rtcl-required, .rtcl abbr.required{color:var(--red); text-decoration:none;}
  .rtcl .rtcl-message.alert, .rtcl .alert.alert-danger, .rtcl .alert.alert-info, .rtcl .alert.alert-success{
    border:1px solid var(--rule); border-left:4px solid var(--line-blue); border-radius:0;
    background:var(--paper-raised); color:var(--ink); padding:12px 16px; margin:0 0 18px; font-size:14px;
  }
  .rtcl .rtcl-message.rtcl-error, .rtcl .alert.alert-danger{border-left-color:var(--red);}
  .rtcl .rtcl-message.rtcl-success, .rtcl .alert.alert-success{border-left-color:var(--line-green);}
  .rtcl .rtcl-message p, .rtcl .alert p{margin:0;}
  .rtcl .rtcl-no-data-found, .rtcl .rtcl-not-found{
    border:1px dashed var(--ink-soft); background:var(--paper-raised); padding:22px;
    font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);
  }

  /* =========================================================
     LOGIN / REGISTER — logged-out /my-account/ (login+register split,
     via Functions::get_template('myaccount/form-login')) and logged-out
     /checkout/ (login-only, via Functions::login_form() — same base
     classes, no #rtcl-user-login-wrapper or <h2> ever printed there).

     RTCL ships this as a rounded white "SaaS card" (#rtcl-account
     #rtcl-user-login-wrapper{background:#fff;padding:50px;border-radius:30px})
     floating alone on the page — that's the "miserable" look. It also has
     a genuine layout bug we inherit: our own `gap` on the flex container
     plus RTCL's own 50px horizontal padding (its `.rtcl-account #id`
     selector outranks a plain `#id` override, so our padding never wins)
     pushed the two 50%-basis columns just over the available width,
     forcing them to wrap onto separate lines instead of sitting side by
     side — hence the huge dead whitespace on the right. Fixed below by
     force-setting layout with !important (same pattern as the My Account
     nav) and moving the visual "gap" into a shared border on the columns
     instead of flex `gap`, so there's no width arithmetic to get wrong.
     ========================================================= */
  .rtcl-account main.wrap.page-wrap{padding-top:0;}
  #rtcl-user-login-wrapper,
  .rtcl > .rtcl-login-form-wrap{ /* checkout: no #rtcl-user-login-wrapper, .rtcl-login-form-wrap sits directly under .rtcl */
    background:transparent !important; padding:0 !important; border-radius:0 !important; box-shadow:none !important;
    max-width:900px; margin:36px auto 60px;
  }
  #rtcl-user-login-wrapper.have-registration-form{
    display:flex !important; flex-wrap:wrap !important; align-items:stretch !important; gap:0 !important;
  }
  .rtcl-login-form-wrap, .rtcl-registration-form-wrap{
    background:var(--paper-raised); border:1px solid var(--rule); padding:36px 38px; min-width:0;
  }
  #rtcl-user-login-wrapper.have-registration-form .rtcl-login-form-wrap,
  #rtcl-user-login-wrapper.have-registration-form .rtcl-registration-form-wrap{
    flex:0 0 50% !important; padding:36px 38px !important;
  }
  #rtcl-user-login-wrapper.have-registration-form .rtcl-registration-form-wrap{border-left:0 !important;}
  /* Solo login card — checkout's Functions::login_form() (no #rtcl-user-login-wrapper
     at all, .rtcl-login-form-wrap sits directly under .rtcl), or my-account with
     registration disabled/on a separate page (.separate-registration-form) —
     reads as one centered card instead of stretching half-width with nothing beside it. */
  .rtcl > .rtcl-login-form-wrap,
  #rtcl-user-login-wrapper.separate-registration-form .rtcl-login-form-wrap{
    max-width:480px; margin-left:auto; margin-right:auto;
  }

  /* Eyebrow kicker + heading treatment (CSS-generated — no template
     override needed, keeps this independent of plugin markup changes).
     RTCL already uses .rtcl-registration-form-wrap:before for its own
     absolutely-positioned divider line (1 ID + 3 classes, badly out-
     specifies a plain 1-class rule) — only one ::before can win, so
     force every property here with !important to fully replace it
     rather than leave an invisible mispositioned leftover. */
  .rtcl-login-form-wrap::before, .rtcl-registration-form-wrap::before{
    content:"Montreal Daily Account" !important;
    display:block !important; position:static !important; width:auto !important; height:auto !important;
    font-family:'IBM Plex Mono', monospace !important; font-size:10px !important; letter-spacing:0.1em !important;
    text-transform:uppercase !important; color:var(--red) !important; background:none !important; margin:0 0 10px !important;
  }
  .rtcl-login-form-wrap h2, .rtcl-registration-form-wrap h2{
    font-family:'Source Serif 4', Georgia, serif !important; font-weight:700 !important; text-transform:none !important;
    letter-spacing:0 !important; color:var(--ink) !important;
    font-size:clamp(24px,3vw,30px); margin:0 0 22px; padding-bottom:16px; border-bottom:1px solid var(--rule) !important;
  }
  .rtcl .rtcl-form-group{margin-bottom:16px;}
  .rtcl .rtcl-login-form-submit-wrap{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:6px;}
  .rtcl .rtcl-check-label{font-family:'Source Sans 3', sans-serif; text-transform:none; font-size:13px; color:var(--ink-soft); letter-spacing:0;}
  .rtcl .rtcl-forgot-password{margin-top:16px; font-size:13px; color:var(--ink-soft);}
  .rtcl .rtcl-forgot-password a{font-weight:600;}
  .rtcl .rtcl-forgot-password > span{color:var(--rule);}
  .rtcl-login-form-wrap .help-block, .rtcl-registration-form-wrap .help-block{margin-top:4px;}
  .rtcl-registration-form-wrap .name-row,
  .rtcl-registration-form-wrap .phone-row{display:flex; gap:14px;}
  .rtcl-registration-form-wrap .name-row > div{flex:1; min-width:0;}
  .rtcl-registration-form-wrap .phone-row{flex-direction:column;}
  .rtcl input[type=checkbox], .rtcl input[type=radio]{accent-color:var(--red);}

  @media (max-width:900px){
    #rtcl-user-login-wrapper.have-registration-form .rtcl-login-form-wrap,
    #rtcl-user-login-wrapper.have-registration-form .rtcl-registration-form-wrap{
      flex:0 0 100% !important;
    }
    #rtcl-user-login-wrapper.have-registration-form .rtcl-registration-form-wrap{
      border-left:1px solid var(--rule) !important; border-top:0 !important; margin-top:-1px;
    }
  }

  /* -- My Account frame -- */
  .rtcl-MyAccount-wrap{gap:36px; padding:26px 0 60px;}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-content{flex:1; min-width:0; padding:0;}
  .rtcl-myaccount-logo{display:none !important;} /* RTCL ships its own plugin logo here */

  /* RTCL's own nav-color rules are all scoped under
     `body.rtcl-account:not(.page-template-rtcl-canvas_template) .rtcl-MyAccount-wrap
     .rtcl-MyAccount-navigation ...` — 4 classes deep, which outranks a plain
     `.rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ...` override (2 classes)
     regardless of stylesheet order. Rather than chase that selector everywhere,
     force the color-only declarations here; layout/spacing is left to RTCL. */
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation{background:var(--ink) !important;}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation::before{
    content:"My account"; display:block; padding:18px 20px 12px;
    font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.1em;
    text-transform:uppercase; color:#8f887a; border-bottom:1px solid rgba(255,255,255,0.12);
  }
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li{
    border-color:rgba(255,255,255,0.1) !important; color:#cfc8b6 !important; background:transparent !important;
  }
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li a{
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:15px;
    letter-spacing:0.04em; text-transform:uppercase; padding:15px 22px 15px 56px;
    color:inherit !important;
  }
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li.rtcl-MyAccount-navigation-link a:before{background-color:#8f887a !important; left:22px;}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li:hover,
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li.is-active{
    background:rgba(255,255,255,0.06) !important; color:#fff !important;
  }
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li:hover a:before,
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li.is-active a:before{background-color:var(--paper) !important;}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li.rtcl-MyAccount-navigation-link--add-listing{border-top:1px solid rgba(255,255,255,0.18) !important;}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation ul li.rtcl-MyAccount-navigation-link--add-listing a{color:#fff !important;}
  @media screen and (max-width:991px){
    .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation{background:var(--ink) !important;}
  }

  .rtcl-MyAccount-mobile-navbar{background:var(--ink); padding:16px 20px; margin-bottom:20px;}
  .rtcl-MyAccount-mobile-navbar h4{
    margin:0; font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:17px;
    letter-spacing:0.04em; text-transform:uppercase; color:var(--paper);
  }

  .rtcl .rtcl-myaccount-content-title, .rtcl-MyAccount-content h3{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:17px; letter-spacing:0.05em;
    text-transform:uppercase; color:var(--ink); margin:0 0 18px; padding-bottom:8px;
    border-bottom:2px solid var(--red); display:inline-block;
  }

  /* -- Dashboard -- */
  .rtcl-user-info{background:var(--paper-raised); border:1px solid var(--rule); padding:20px; margin-bottom:18px;}
  .rtcl-user-content-inner{display:flex; align-items:center; gap:16px;}
  .rtcl-user-avatar img{border-radius:50%; border:1px solid var(--rule); width:72px; height:72px;}
  .rtcl-user-details h5{margin:0 0 4px; font-family:'Source Sans 3', sans-serif; font-weight:700; font-size:18px;}
  .rtcl-user-details .rtcl-media-heading{margin:0; font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);}
  .rtcl-user-note{margin-top:14px; padding:12px 14px; background:var(--paper); border:1px dashed var(--ink-soft); font-size:13px;}
  .rtcl-user-note h4{font-family:'Barlow Condensed', sans-serif; text-transform:uppercase; font-size:13px; letter-spacing:0.03em; margin:0 0 4px;}

  .rtcl-listing-statistics{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:14px;}
  .rtcl-listing-count{background:var(--paper-raised); border:1px solid var(--rule); border-top:3px solid var(--line-green);}
  .rtcl-listing-count:nth-child(2){border-top-color:var(--line-blue);}
  .rtcl-listing-count:nth-child(3){border-top-color:var(--line-gold);}
  .rtcl-listing-count:nth-child(4){border-top-color:var(--line-plum);}
  .rtcl-listing-count-inner{display:flex; align-items:center; gap:13px; padding:16px;}
  .rtcl-listing-icon svg{width:26px; height:auto; filter:hue-rotate(-8deg) saturate(0.6) brightness(0.78);}
  .rtcl-listing-number h5{
    margin:0 0 2px; font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:10px;
    letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft);
  }
  .rtcl-listing-number span{font-family:'Source Serif 4', Georgia, serif; font-weight:700; font-size:24px; line-height:1;}

  /* -- My Listings / Favourites -- */
  .rtcl-action-wrap{margin-bottom:20px;}
  .rtcl-my-listings-search-form form{display:flex; gap:8px; flex-wrap:wrap;}
  .rtcl-my-listings-search-form select.rtcl-form-control{flex:0 0 auto; width:auto;}
  .rtcl-my-listings-search-keyword{display:flex; flex:1 1 220px; min-width:0; border:1px solid var(--rule); background:var(--paper-raised);}
  .rtcl-my-listings-search-keyword input.rtcl-form-control{border:0; flex:1; min-width:0;}
  .rtcl-my-listings-search-keyword button{border:0; background:var(--ink); padding:0 14px; cursor:pointer; flex-shrink:0;}
  .rtcl-my-listings-search-keyword button svg path{fill:var(--paper);}
  .rtcl-my-listings-search-keyword button:hover{background:var(--red);}

  .rtcl-my-listing-table{width:100%; border-collapse:collapse;}
  .rtcl-my-listing-table thead th{
    text-align:left; font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:10px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft);
    padding:0 12px 10px 0; border-bottom:2px solid var(--ink);
  }
  .rtcl-my-listing-table tbody td{padding:14px 12px 14px 0; border-bottom:1px solid var(--rule); vertical-align:middle;}
  .rtcl-my-listing-table .listing-thumb img{width:84px; height:63px; object-fit:cover; border:1px solid var(--rule);}
  .rtcl-my-listing-table a.listing-title{font-weight:700; font-size:15px; color:var(--ink);}
  .rtcl-my-listing-table a.listing-title:hover{color:var(--red);}
  .rtcl-my-listing-table .rtcl-meta{font-family:'IBM Plex Mono', monospace; font-size:11px; color:var(--ink-soft); padding-left:0;}
  .rtcl-my-listing-table .rtcl-meta a{color:var(--ink-soft);}
  .rtcl-my-listing-table .rtcl-meta a:hover{color:var(--red);}
  .rtcl-my-listing-table .rtcl-price{font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:14px;}
  .rtcl-my-listing-table .status-cell span, .rtcl-my-listing-table .listing-status-mobile span:last-child{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:10px; letter-spacing:0.05em;
    text-transform:uppercase; padding:3px 8px; border:1px solid var(--rule); color:var(--ink-soft);
  }
  .rtcl-my-listing-table .status-cell span.publish{color:var(--line-green); border-color:var(--line-green);}
  .rtcl-my-listing-table .status-cell span.pending{color:var(--line-gold); border-color:var(--line-gold);}
  .rtcl-my-listing-table .status-cell span.rtcl-expired{color:var(--red); border-color:var(--red);}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-content .rtcl-my-listing-table .rtcl-actions{
    background-color:var(--paper-raised); border:1px solid var(--rule); border-radius:0;
    box-shadow:0 10px 18px -8px rgba(0,0,0,0.35);
  }
  .rtcl-MyAccount-wrap .rtcl-MyAccount-content .rtcl-my-listing-table .rtcl-actions a{font-size:13px; color:var(--ink);}
  .rtcl-MyAccount-wrap .rtcl-MyAccount-content .rtcl-my-listing-table .rtcl-actions a:hover{color:var(--red);}
  .rtcl-my-listing-table td[data-column]{font-size:14px;}

  /* RTCL pagination (account tables + plugin loops) */
  .rtcl-pagination ul.page-numbers{display:flex; justify-content:center; gap:6px; list-style:none; margin:18px 0 0; padding:0; flex-wrap:wrap;}
  .rtcl-pagination ul.page-numbers li a, .rtcl-pagination ul.page-numbers li span{
    display:inline-block; font-family:'IBM Plex Mono', monospace; font-size:13px;
    padding:9px 14px; border:1px solid var(--rule); color:var(--ink-soft); background:var(--paper-raised); border-radius:0;
  }
  .rtcl-pagination ul.page-numbers li a:hover{border-color:var(--ink); color:var(--ink); background:var(--paper-raised);}
  .rtcl-pagination ul.page-numbers li span.current{background:var(--ink); color:var(--paper); border-color:var(--ink);}

  /* -- Edit account / privacy settings -- */
  .rtcl-EditAccountForm .rtcl-form-control-static{margin:0; font-size:15px;}
  .rtcl .rtcl-form-check-label{font-family:'Source Sans 3', sans-serif; text-transform:none; font-size:14px; color:var(--ink); letter-spacing:0;}
  .rtcl .rtcl-form-radio-group label{font-family:'Source Sans 3', sans-serif; text-transform:none; font-size:14px; color:var(--ink); letter-spacing:0;}
  .rtcl .rtcl-media-upload{border:2px dashed var(--rule); background:var(--paper-raised); border-radius:0;}
  .rtcl .rtcl-gravatar-img img{border-radius:50%; border:1px solid var(--rule);}
  .rtcl .rtcl-gravatar-wrap p a{color:var(--red); font-size:12px;}
  .rtcl-profile-settings-form .rtcl-icon{color:var(--ink-soft);}

  /* -- Payment history + generic RTCL tables -- */
  .rtcl-table-striped-border, .rtcl-bs-table{width:100%; border-collapse:collapse; font-size:14px;}
  .rtcl-table-striped-border th, .rtcl-bs-table th{
    text-align:left; font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:10px;
    letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft);
    padding:0 12px 10px 0; border-bottom:2px solid var(--ink); background:transparent;
  }
  .rtcl-table-striped-border td, .rtcl-bs-table td{padding:12px 12px 12px 0; border-bottom:1px solid var(--rule); background:transparent;}
  .rtcl a.rtcl-payment-popup-link{color:var(--red); font-family:'IBM Plex Mono', monospace;}
  .rtcl-popup-content{background:var(--paper-raised); border:1px solid var(--rule); border-radius:0;}
  .rtcl-popup-title{font-family:'Barlow Condensed', sans-serif; font-weight:800; text-transform:uppercase; letter-spacing:0.03em;}

  /* -- Checkout -- */
  .rtcl-checkout-content{padding:4px 0 40px;}
  .rtcl-checkout-form-wrap > p{font-size:15px; color:var(--ink-soft); margin:0 0 20px;}
  .rtcl .rtcl-checkout-heading, .rtcl #rtcl-payment-methods .pm-heading, .rtcl .pricing-info h2{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:16px; letter-spacing:0.05em;
    text-transform:uppercase; color:var(--ink); margin:26px 0 16px; padding-bottom:8px;
    border-bottom:2px solid var(--red); display:inline-block;
  }
  .rtcl #rtcl-billing-fields .rtcl-checkout-heading{margin-top:0;}
  .rtcl .rtcl-billing-fields__field-wrapper label{display:block; margin-bottom:6px;}
  .rtcl .rtcl-billing-fields__field-wrapper .optional{color:var(--ink-soft); text-transform:none;}
  .rtcl .input-text.rtcl-form-control{width:100%;}
  .rtcl .rtcl-form-row{margin-bottom:15px;}
  /* select2 skin (checkout country/state) */
  .rtcl .select2-container--default .select2-selection--single{
    border:1px solid var(--rule); border-radius:0; background:var(--paper-raised); height:auto; padding:6px 6px;
  }
  .rtcl .select2-container--default .select2-selection--single .select2-selection__rendered{
    font-family:'Source Sans 3', sans-serif; font-size:14px; color:var(--ink);
  }
  .select2-dropdown{border:1px solid var(--ink); border-radius:0; background:var(--paper-raised); font-family:'Source Sans 3', sans-serif; font-size:14px;}
  .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background:var(--red);}
  .select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid var(--rule);}

  #rtcl-payment-methods ul.rtcl-list-group{list-style:none; margin:0; padding:0; display:block;}
  .rtcl .rtcl-payment-method{
    background:var(--paper-raised); border:1px solid var(--rule); padding:14px 16px; margin:0 0 10px;
  }
  .rtcl .rtcl-payment-method > label{
    display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; margin:0;
    font-family:'Source Sans 3', sans-serif; font-size:15px; font-weight:600; color:var(--ink); text-transform:none; letter-spacing:0;
  }
  .rtcl .rtcl-payment-method .payment_box{
    margin-top:12px; padding:12px 14px; background:var(--paper); border:1px dashed var(--ink-soft);
    font-size:13px; color:var(--ink-soft); line-height:1.5;
  }
  .rtcl .rtcl-payment-method .payment_box p{margin:0;}
  .rtcl .rtcl-store-gateway-info{
    font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft); margin:14px 0;
  }
  .rtcl .rtcl-submit-btn-wrap{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; align-items:center;}
  .rtcl .rtcl-submit-btn-wrap .rtcl-btn{padding:13px 26px; font-size:16px;}
  .rtcl #rtcl-checkout-submit-btn{background:var(--red);}
  .rtcl #rtcl-checkout-submit-btn:hover{background:var(--red-dark);}

  /* pricing/promotion cards (when plans exist) */
  .rtcl-checkout-pricing-wrapper{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:16px; margin:0 0 8px;}
  /* Fallback state ("No promotion plan found.") renders as a bare, classless
     <div><span>...</span></div> — style it like the site's other empty-states. */
  .rtcl-checkout-pricing-wrapper > div:not([class]){
    padding:14px 16px; background:var(--paper-raised); border:1px dashed var(--ink-soft);
  }
  .rtcl-checkout-pricing-wrapper > div:not([class]) span{
    font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink-soft);
  }
  .rtcl-checkout-pricing-wrapper > div{min-width:0;}
  .rtcl .rtcl-checkout-pricing{background:var(--paper-raised); border:1px solid var(--rule); padding:18px;}
  .rtcl .rtcl-pricing-title{
    font-family:'Barlow Condensed', sans-serif; font-weight:800; font-size:17px; letter-spacing:0.02em;
    text-transform:uppercase; margin:0 0 10px;
  }
  .rtcl .rtcl-pricing-price{font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:18px; display:block; margin:8px 0;}
  .rtcl .rtcl-pricing-description{font-size:13px; color:var(--ink-soft);}
  .rtcl .rtcl-pricing-btn label{
    display:inline-block; margin-left:8px; cursor:pointer;
    font-family:'Barlow Condensed', sans-serif; font-weight:700; font-size:14px; letter-spacing:0.03em;
    text-transform:uppercase; color:var(--ink);
  }

  /* -- Responsive -- */
  @media (max-width:991px){
    .rtcl-MyAccount-wrap{display:block; padding-top:0;}
    /* offcanvas panel keeps RTCL's fixed positioning; just make sure it's above the sticky masthead */
    .rtcl-MyAccount-wrap .rtcl-MyAccount-navigation{z-index:999999;}
  }
  @media (max-width:900px){
    #rtcl-user-login-wrapper.have-registration-form{grid-template-columns:1fr;}
  }
