  :root{
    --bg: #F7F5F0;
    --ink: #14161B;
    --brass: #B8863B;
    --navy: #1B2A41;
    --hairline: #E4E0D8;
    --muted: #5B5F6A;
    --container: 1180px;
  }

  *, *::before, *::after{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }

  body{
    margin:0;
    background: var(--bg);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
    /* font-family/size/weight/letter-spacing/line-height: see the
       dynamic Customizer output in inc/typography.php (tpd_typography_css) */
  }

  h1,h2,h3,h4,h5,h6{
    margin: 0;
    /* font-family/size/weight/letter-spacing/line-height: see the
       dynamic Customizer output in inc/typography.php (tpd_typography_css) */
  }

  a{ color: inherit; text-decoration: none; }
  img, svg{ display:block; max-width:100%; }
  button, input{ font-family: inherit; }

  .skip-link{
    position:absolute; left:-9999px; top:0;
    background: var(--navy); color:#fff; padding: 10px 16px; z-index: 200;
  }
  .skip-link:focus{ left: 12px; top: 12px; }

  :focus-visible{
    outline: 2px solid var(--brass);
    outline-offset: 3px;
  }

  .wrap{
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
  }

  .eyebrow{
    font-family: 'Inter', sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--brass);
    display: inline-flex;
    gap: 8px;
    align-items: center;
  }
  .eyebrow .country{
    color: var(--muted);
    font-weight: 600;
  }
  .eyebrow .sep{ color: var(--hairline); }

  /* ---------- Utility strip ---------- */
  .utility-strip{
    background: var(--navy);
    color: rgba(242,239,232,0.85);
    font-size: 11px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(242,239,232,0.12);
    position: relative;
    z-index: 21;
  }
  .utility-inner{
    display:flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
  }
  .utility-datetime{
    font-weight: 500;
    letter-spacing: 0.02em;
    white-space: nowrap;
  }
  .utility-metrics{
    display:flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    justify-content: center;
  }
  .utility-metric{
    display:flex;
    align-items: baseline;
    gap: 5px;
    white-space: nowrap;
  }
  .utility-metric + .utility-metric{
    border-left: 1px solid rgba(242,239,232,0.18);
    padding-left: 14px;
  }
  .utility-metric .label{
    color: rgba(242,239,232,0.55);
  }
  .utility-metric .value{
    color: #F2EFE8;
    font-weight: 600;
  }
  @media (min-width: 700px){
    .utility-inner{
      flex-direction: row;
      justify-content: space-between;
    }
  }

  /* ---------- Header / Masthead ---------- */
  header.masthead{
    border-bottom: 1px solid var(--hairline);
    background: var(--bg);
    position: relative;
    z-index: 20;
  }

  .nav-row{
    display:flex;
    align-items:center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 18px 0;
    gap: 14px;
  }

  .logo{
    font-family:'Fraunces', serif;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
  }
  .logo span{ color: var(--brass); }

  nav.primary-nav{
    display:none;
  }
  nav.primary-nav ul{
    display:flex;
    gap: 32px;
    list-style:none;
    margin:0; padding:0;
  }
  nav.primary-nav a{
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink);
    position: relative;
    padding-bottom: 4px;
  }
  nav.primary-nav a::after{
    content:'';
    position:absolute;
    left:0; bottom:0;
    width:0; height:1px;
    background: var(--brass);
    transition: width 220ms ease-out;
  }
  nav.primary-nav a:hover::after{ width:100%; }

  .cta-btn{
    border: 1.5px solid var(--navy);
    color: var(--navy);
    background: transparent;
    padding: 10px 20px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
    transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
  }
  .cta-btn:hover{
    background: var(--brass);
    border-color: var(--brass);
    color: var(--ink);
  }

  .hero-band{
    background: var(--brass);
    border-top: 1px solid rgba(20,22,27,0.1);
  }
  .hero-grid{
    display:flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 32px;
    padding: 44px 0 40px;
  }
  .hero-copy{
    text-align: center;
  }
  .hero-tag{
    display:inline-flex;
    background: var(--ink);
    color: var(--bg);
    padding: 7px 12px;
  }
  .hero-copy h1{
    margin-top: 18px;
    font-size: clamp(28px, 5vw, var(--tpd-h1-size));
    max-width: 15ch;
    line-height: var(--tpd-h1-lh);
    color: var(--ink);
    font-family: var(--tpd-h1-family);
    font-weight: var(--tpd-h1-weight);
    letter-spacing: var(--tpd-h1-ls);
  }
  .hero-copy .tagline{
    margin-top: 14px;
    color: var(--ink);
    font-weight: 400;
    font-size: 17px;
    max-width: 46ch;
  }
  .hero-visual{
    width: 260px;
    flex: none;
  }
  .hero-visual svg{
    width: 100%;
    height: auto;
    overflow: visible;
  }
  .state-path{
    fill: var(--ink);
    fill-opacity: 0;
    stroke: var(--ink);
    stroke-opacity: 0.62;
    stroke-width: 2.2;
    stroke-linejoin: round;
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    transition: stroke-dashoffset 950ms ease-out, fill-opacity 1200ms ease-out;
  }
  .hero-visual.map-in .state-path{
    stroke-dashoffset: 0;
    fill-opacity: 0.14;
  }
  .city-dot{
    fill: var(--navy);
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
    transform: scale(0.3);
    transition: opacity 380ms ease-out, transform 380ms ease-out;
  }
  .hero-visual.map-in .city-dot{
    opacity: 1;
    transform: scale(1);
  }
  .city-pulse{
    fill: none;
    stroke: var(--navy);
    stroke-width: 1.2;
    opacity: 0;
    animation: city-pulse 2.6s ease-out infinite;
    animation-play-state: paused;
  }
  .hero-visual.map-in .city-pulse{
    animation-play-state: running;
  }
  @keyframes city-pulse{
    0%{ r: 4.6; opacity: 0.55; }
    100%{ r: 13; opacity: 0; }
  }

  /* ---------- Ticker ---------- */
  .ticker-wrap{
    border-top: 1px solid var(--hairline);
    background: var(--bg);
    overflow: hidden;
    padding: 14px 0;
  }
  .ticker-track{
    display:flex;
    width: max-content;
    animation: ticker-scroll 46s linear infinite;
  }
  .ticker-wrap:hover .ticker-track,
  .ticker-track.paused{
    animation-play-state: paused;
  }
  @keyframes ticker-scroll{
    from{ transform: translateX(0); }
    to{ transform: translateX(-50%); }
  }
  .ticker-item{
    display:flex;
    align-items:center;
    gap: 10px;
    padding: 0 28px;
    border-right: 1px solid var(--hairline);
    white-space: nowrap;
    font-size: 13.5px;
  }
  .ticker-item .t-tag{
    font-weight: 700;
    color: var(--brass);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-size: 12px;
  }
  .ticker-item .t-time{
    color: var(--muted);
    font-size: 12px;
  }

  /* ---------- Section shell ---------- */
  section{
    padding: 48px 0;
  }
  .section-head{
    display:flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin-bottom: 24px;
    border-bottom: 1px solid var(--hairline);
    padding-bottom: 14px;
  }
  .section-head h2{
    font-size: clamp(22px, 3vw, var(--tpd-h2-size));
    line-height: var(--tpd-h2-lh);
    font-family: var(--tpd-h2-family);
    font-weight: var(--tpd-h2-weight);
    letter-spacing: var(--tpd-h2-ls);
  }
  .section-head .section-note{
    font-size: 13px;
    color: var(--muted);
  }

  @media (min-width: 560px){
    section{ padding: 64px 0; }
    .section-head{
      flex-direction: row;
      align-items: baseline;
      justify-content: space-between;
      gap: 0;
      margin-bottom: 32px;
      padding-bottom: 16px;
    }
  }

  /* ---------- Wire ---------- */
  .wire-list{
    display:flex;
    flex-direction: column;
  }
  .wire-item{
    padding: 24px 0;
    border-bottom: 1px solid var(--hairline);
    display:grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .wire-item:first-child{ padding-top: 0; }
  .wire-item h3{
    font-family: var(--tpd-h3-family);
    font-size: var(--tpd-h3-size);
    font-weight: var(--tpd-h3-weight);
    letter-spacing: var(--tpd-h3-ls);
    line-height: var(--tpd-h3-lh);
  }
  .wire-item h3 a{
    background-image: linear-gradient(var(--brass), var(--brass));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 1px;
    transition: background-size 250ms ease-out;
  }
  .wire-item h3 a:hover{ background-size: 100% 1px; }
  .wire-item .dek{
    color: var(--muted);
    font-size: 15px;
    max-width: 62ch;
  }
  .wire-item .meta{
    font-size: 12.5px;
    color: var(--muted);
    margin-top: 2px;
  }

  /* ---------- Category grid ---------- */
  .news-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .news-card{
    display: flex;
    flex-direction: column;
  }
  .placeholder-img{
    width: 100%;
    aspect-ratio: 4 / 3;
    background: var(--hairline);
  }
  .plate-caption{
    margin: 8px 0 0;
    font-size: 11px;
    color: var(--muted);
  }
  .news-card-title{
    margin: 12px 0 0;
    font-size: var(--tpd-h3-size);
    line-height: var(--tpd-h3-lh);
    font-family: var(--tpd-h3-family);
    font-weight: var(--tpd-h3-weight);
    letter-spacing: var(--tpd-h3-ls);
  }
  .news-card-title a{
    background-image: linear-gradient(var(--brass), var(--brass));
    background-repeat: no-repeat;
    background-position: 0 100%;
    background-size: 0% 1px;
    transition: background-size 250ms ease-out;
  }
  .news-card-title a:hover{ background-size: 100% 1px; }
  .news-card-excerpt{
    margin: 8px 0 0;
    font-size: 14px;
    color: var(--muted);
  }
  @media (min-width: 640px){
    .news-grid{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (min-width: 1024px){
    .news-grid{ grid-template-columns: repeat(4, 1fr); gap: 32px; }
  }

  /* ---------- Editor's Take ---------- */
  .feature-card{
    background: rgba(184,134,59,0.055);
    border-left: 4px solid var(--navy);
    padding: 36px 32px;
  }
  .feature-card h3{
    font-size: clamp(20px, 3vw, var(--tpd-h3-size));
    margin-top: 14px;
    line-height: var(--tpd-h3-lh);
    font-family: var(--tpd-h3-family);
    font-weight: var(--tpd-h3-weight);
    letter-spacing: var(--tpd-h3-ls);
  }
  .feature-card p.body{
    margin-top: 16px;
    font-size: 16px;
    color: var(--ink);
    max-width: 68ch;
  }
  .byline{
    margin-top: 22px;
    font-size: 13.5px;
    color: var(--muted);
    display:flex;
    align-items:center;
    gap: 10px;
  }
  .byline .rule{
    width: 22px; height: 1px; background: var(--hairline);
  }

  /* ---------- Trust strip ---------- */
  .trust-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px 24px;
  }
  .trust-item h4{
    font-size: var(--tpd-h4-size);
    line-height: var(--tpd-h4-lh);
    font-family: var(--tpd-h4-family);
    font-weight: var(--tpd-h4-weight);
    letter-spacing: var(--tpd-h4-ls);
    display:flex;
    align-items:center;
    gap: 10px;
    margin-bottom: 8px;
  }
  .trust-item .icon{
    width: 20px; height: 20px;
    color: var(--navy);
    flex: none;
  }
  .trust-item .icon svg{
    width:100%; height:100%;
    fill:none;
    stroke: currentColor;
    stroke-width: 1.4;
  }
  .trust-item p{
    font-size: 14px;
    color: var(--muted);
    margin:0;
    max-width: 34ch;
  }

  /* ---------- Subscribe band ---------- */
  .subscribe-band{
    background: var(--navy);
    color: #F2EFE8;
    padding: 60px 0;
  }
  .subscribe-inner{
    max-width: 640px;
  }
  .subscribe-inner h2{
    font-size: clamp(22px, 3vw, var(--tpd-h2-size));
    color: #F2EFE8;
    line-height: var(--tpd-h2-lh);
    font-family: var(--tpd-h2-family);
    font-weight: var(--tpd-h2-weight);
    letter-spacing: var(--tpd-h2-ls);
  }
  .subscribe-form{
    margin-top: 24px;
    display:flex;
    flex-direction: column;
    gap: 12px;
  }
  .subscribe-form input[type="email"]{
    background: transparent;
    border: 1px solid rgba(242,239,232,0.35);
    color: #F2EFE8;
    padding: 13px 16px;
    font-size: 14.5px;
    width: 100%;
  }
  .subscribe-form input[type="email"]::placeholder{ color: rgba(242,239,232,0.55); }
  .subscribe-form button{
    background: var(--brass);
    border: 1px solid var(--brass);
    color: var(--ink);
    padding: 13px 22px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: opacity 180ms ease;
  }
  .subscribe-form button:hover{ opacity: 0.88; }
  .subscribe-note{
    margin-top: 14px;
    font-size: 12px;
    color: rgba(242,239,232,0.6);
  }

  /* ---------- Footer ---------- */
  footer{
    background: #11141B;
    color: rgba(242,239,232,0.82);
    padding: 56px 0 28px;
  }
  .footer-grid{
    display:grid;
    grid-template-columns: 1fr;
    gap: 32px;
    padding-bottom: 32px;
    border-bottom: 1px solid rgba(242,239,232,0.12);
  }
  .footer-brand .logo{ color: #F2EFE8; }
  .footer-brand .logo span{ color: var(--brass); }
  .footer-brand p{
    margin-top: 10px;
    font-size: 13.5px;
    color: rgba(242,239,232,0.55);
    max-width: 32ch;
  }
  .footer-col h5{
    font-size: var(--tpd-h5-size);
    line-height: var(--tpd-h5-lh);
    font-family: var(--tpd-h5-family);
    font-weight: var(--tpd-h5-weight);
    letter-spacing: var(--tpd-h5-ls);
    text-transform: uppercase;
    color: rgba(242,239,232,0.5);
    margin: 0 0 14px;
  }
  .footer-col ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column; gap:10px;
  }
  .footer-col a{
    font-size: 13.5px;
    color: rgba(242,239,232,0.82);
  }
  .footer-col a:hover{ color: var(--brass); }

  .footer-bottom{
    padding-top: 24px;
    display:flex;
    flex-direction: column-reverse;
    gap: 18px;
    align-items: flex-start;
  }
  .footer-bottom .copyright{
    font-size: 12.5px;
    color: rgba(242,239,232,0.45);
  }
  .social-icons{
    display:flex;
    gap: 16px;
  }
  .social-icons a{
    width: 30px; height: 30px;
    border: 1px solid rgba(242,239,232,0.2);
    display:flex; align-items:center; justify-content:center;
    color: rgba(242,239,232,0.8);
    transition: border-color 180ms ease, color 180ms ease;
  }
  .social-icons a:hover{ border-color: var(--brass); color: var(--brass); }
  .social-icons svg{ width: 15px; height: 15px; fill: currentColor; }

  @media (prefers-reduced-motion: reduce){
    .ticker-track{ animation: none; }
    .state-path{ stroke-dashoffset:0; fill-opacity:0.14; transition:none; }
    .city-dot{ opacity:1; transform:none; transition:none; }
    .city-pulse{ display:none; }
    html{ scroll-behavior:auto; }
  }

  /* ---------- Breakpoints ---------- */
  @media (min-width: 700px){
    .trust-grid{ grid-template-columns: repeat(4, 1fr); }
    .footer-bottom{
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
    }
  }

  @media (min-width: 860px){
    nav.primary-nav{ display:block; }
    .footer-grid{ grid-template-columns: 1.4fr 1fr 1fr; }
  }

  @media (min-width: 760px){
    .hero-grid{
      flex-direction: row;
      justify-content: space-between;
      text-align: left;
      padding: 68px 0 52px;
      gap: 40px;
    }
    .hero-copy{ text-align: left; max-width: 560px; }
    .hero-visual{ width: 400px; }
  }

  @media (min-width: 900px){
    .wire-item{
      grid-template-columns: 200px 1fr;
      align-items: baseline;
      column-gap: 28px;
    }
    .wire-item .eyebrow-col{ padding-top: 4px; }
  }

  /* ==================================================================
     WordPress-specific additions
     ================================================================== */

  /* Wire items: last one shouldn't show a trailing divider, regardless
     of how many posts the query returns. */
  .wire-item:last-child{ border-bottom: none; }

  /* Custom Logo support (Appearance → Customize → Site Identity) */
  .logo img{
    max-height: 40px;
    width: auto;
    display: block;
  }

  /* Primary nav: WordPress wraps menu items in <li>; strip default markers */
  .primary-nav ul li{ list-style: none; }

  /* Footer link columns already target generic ul/a via .footer-col rules above. */

  /* ---------- Single post / page / 404 ---------- */

  /* Used by page.php and 404.php for now — page.php gets its own
     sidebar-layout system in a later step, same as single.php just did. */
  .single-post-inner{
    max-width: 760px;
    padding-top: 48px;
    padding-bottom: 64px;
  }

  .single-layout{
    display: flex;
    align-items: flex-start;
    gap: 48px;
    padding-top: 48px;
    padding-bottom: 64px;
  }
  .single-main{
    min-width: 0; /* allow long words/code blocks to shrink instead of overflowing */
    max-width: 720px;
  }
  .single-layout--full-width .single-main{
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
  }
  .single-layout--right-sidebar .single-main{
    width: var(--tpd-content-width, 68%);
    max-width: none;
  }
  .single-layout--right-sidebar .single-sidebar{
    width: calc(100% - var(--tpd-content-width, 68%));
  }
  .single-layout--left-sidebar{
    flex-direction: row-reverse;
  }
  .single-layout--left-sidebar .single-main{
    width: var(--tpd-content-width, 68%);
    max-width: none;
  }
  .single-layout--left-sidebar .single-sidebar{
    width: calc(100% - var(--tpd-content-width, 68%));
  }
  .single-sidebar{
    flex: none;
  }
  .single-sidebar .widget{
    margin-bottom: 32px;
  }
  .single-sidebar .widget-title{
    font-size: 15px;
    font-weight: 600;
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--hairline);
  }
  .single-sidebar .widget ul{
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .single-sidebar .widget li{
    padding: 6px 0;
    font-size: 14px;
    color: var(--muted);
  }
  .single-sidebar .widget a{
    color: var(--ink);
  }
  .single-sidebar .widget a:hover{ color: var(--brass); }

  @media (max-width: 780px){
    .single-layout{
      flex-direction: column !important;
      gap: 32px;
      padding-top: 32px;
    }
    .single-main{
      width: 100% !important;
      max-width: none !important;
    }
    .single-sidebar{
      width: 100% !important;
    }
  }
  /* Elements are rendered in a user-configurable order (see
     tpd_render_single_element()), so every block gets its own top
     margin and the first one in the article resets to zero — this way
     any element can end up first without a visible gap at the top. */
  .single-main > *:first-child{ margin-top: 0 !important; }

  .single-post-category{ margin-top: 24px; }
  .single-post-title{
    font-family: var(--tpd-h1-family);
    font-size: var(--tpd-h1-size);
    font-weight: var(--tpd-h1-weight);
    letter-spacing: var(--tpd-h1-ls);
    line-height: var(--tpd-h1-lh);
    margin-top: 14px;
  }
  .single-post-meta{
    margin-top: 10px;
    font-size: 13.5px;
    color: var(--muted);
  }
  .single-post-meta + .single-post-meta{ margin-top: 2px; }
  .single-post-thumbnail{
    margin-top: 28px;
  }
  .single-post-thumbnail img{
    width: 100%;
    height: auto;
  }
  .single-post-content{
    margin-top: 28px;
    font-size: 17px;
    line-height: 1.65;
    color: var(--ink);
  }
  .single-post-content p{ margin: 0 0 1.3em; }
  .single-post-content h2{
    font-family: var(--tpd-h2-family);
    font-size: var(--tpd-h2-size);
    font-weight: var(--tpd-h2-weight);
    letter-spacing: var(--tpd-h2-ls);
    line-height: var(--tpd-h2-lh);
    margin: 1.6em 0 0.6em;
  }
  .single-post-content h3{
    font-family: var(--tpd-h3-family);
    font-size: var(--tpd-h3-size);
    font-weight: var(--tpd-h3-weight);
    letter-spacing: var(--tpd-h3-ls);
    line-height: var(--tpd-h3-lh);
    margin: 1.4em 0 0.5em;
  }
  .single-post-content a{
    color: var(--navy);
    text-decoration: underline;
    text-decoration-color: var(--hairline);
    text-underline-offset: 3px;
  }
  .single-post-content a:hover{ text-decoration-color: var(--brass); }
  .single-post-content ul,
  .single-post-content ol{
    margin: 0 0 1.3em;
    padding-left: 1.4em;
  }
  .single-post-content blockquote{
    margin: 1.6em 0;
    padding-left: 20px;
    border-left: 3px solid var(--brass);
    color: var(--muted);
    font-style: italic;
  }
  .single-post-content img{ max-width: 100%; height: auto; }
  .page-links{
    margin-top: 24px;
    font-size: 14px;
    color: var(--muted);
  }

  .single-post-tags{
    margin-top: 28px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .single-post-tag{
    font-size: 12.5px;
    color: var(--muted);
    border: 1px solid var(--hairline);
    padding: 5px 12px;
    letter-spacing: 0.02em;
  }
  .single-post-tag:hover{ color: var(--brass); border-color: var(--brass); }

  .single-related{
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--hairline);
  }
  .single-related-heading{
    font-size: var(--tpd-h2-size);
    line-height: var(--tpd-h2-lh);
    margin-bottom: 20px;
    font-family: var(--tpd-h2-family);
    font-weight: var(--tpd-h2-weight);
    letter-spacing: var(--tpd-h2-ls);
  }
  .single-related-grid{
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .single-related-item h3{
    font-size: var(--tpd-h3-size);
    line-height: var(--tpd-h3-lh);
    margin: 6px 0 4px;
    font-family: var(--tpd-h3-family);
    font-weight: var(--tpd-h3-weight);
    letter-spacing: var(--tpd-h3-ls);
  }
  .single-related-item .meta{
    font-size: 12px;
    color: var(--muted);
  }
  @media (min-width: 640px){
    .single-related-grid{ grid-template-columns: repeat(3, 1fr); }
  }

  .single-post-comments{
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--hairline);
  }
  .single-post-comments .comment-list{ list-style: none; margin: 0; padding: 0; }
  .single-post-comments textarea,
  .single-post-comments input[type="text"],
  .single-post-comments input[type="email"],
  .single-post-comments input[type="url"]{
    width: 100%;
    font-family: 'Inter', sans-serif;
    font-size: 14px;
    padding: 10px 12px;
    border: 1px solid var(--hairline);
    background: var(--bg);
    color: var(--ink);
  }
  .single-post-comments .form-submit input{
    width: auto;
    background: var(--navy);
    color: #fff;
    border: none;
    padding: 11px 22px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    font-size: 12.5px;
    cursor: pointer;
  }

  /* Pagination (index/archive) */
  .pagination,
  .navigation.pagination{
    margin-top: 32px;
    display: flex;
    gap: 16px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
  }
  .pagination .page-numbers{ color: var(--muted); }
  .pagination a.page-numbers:hover{ color: var(--brass); }
  .pagination .page-numbers.current{ color: var(--ink); }

  /* ==================================================================
     Post Hero Banner
     ================================================================== */
  .post-hero{
    position: relative;
    min-height: 480px;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  .post-hero--no-image{
    background-image: linear-gradient(135deg, var(--navy) 0%, #223753 100%) !important;
  }
  .post-hero-inner{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding-top: 64px;
    padding-bottom: 40px;
  }
  .post-hero-category{
    display: inline-flex;
    background: var(--ink);
    color: var(--bg);
    padding: 6px 12px;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  .post-hero-meta{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    color: rgba(242,239,232,.75);
  }
  .post-hero-sep{ color: rgba(242,239,232,.4); }
  .post-hero-title{
    color: #F2EFE8;
    max-width: 26ch;
  }
  .post-hero-description{
    color: rgba(242,239,232,.85);
    font-size: 17px;
    line-height: 1.5;
    max-width: 62ch;
    margin-top: 4px;
  }

  @media (max-width: 640px){
    .post-hero{ min-height: 420px; }
    .post-hero-inner{ padding-top: 48px; padding-bottom: 28px; }
  }

  /* ---------- Author hover/focus bio card ---------- */
  .author-popover-wrap,
  .share-popover-wrap{
    position: relative;
    display: inline-flex;
  }
  .post-hero-author{
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: rgba(242,239,232,.9);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-color: rgba(242,239,232,.35);
    text-underline-offset: 3px;
  }
  .post-hero-author:hover{ text-decoration-color: var(--brass); }

  .author-card{
    position: absolute;
    bottom: calc(100% + 12px);
    left: 0;
    width: 260px;
    background: var(--bg);
    color: var(--ink);
    padding: 18px;
    box-shadow: 0 12px 28px rgba(0,0,0,.22);
    border: 1px solid var(--hairline);
    z-index: 40;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 160ms ease-out, transform 160ms ease-out, visibility 160ms;
  }
  .author-popover-wrap:hover .author-card,
  .author-popover-wrap:focus-within .author-card{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .author-card-top{
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .author-card-top img{
    width: 40px;
    height: 40px;
    border-radius: 50%;
    flex: none;
  }
  .author-card-name{
    font-family: 'Fraunces', serif;
    font-weight: 600;
    font-size: 15px;
  }
  .author-card-bio{
    display: block;
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--muted);
  }
  .author-card-social{
    display: flex;
    gap: 12px;
    margin-top: 12px;
  }
  .author-card-social a{
    width: 16px;
    height: 16px;
    color: var(--muted);
  }
  .author-card-social a:hover{ color: var(--brass); }
  .author-card-social svg{ width: 100%; height: 100%; fill: currentColor; }

  /* ---------- Share button + popover ---------- */
  .share-btn{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: rgba(242,239,232,.9);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
  }
  .share-btn svg{ width: 15px; height: 15px; fill: currentColor; }
  .share-btn:hover{ color: var(--brass); }

  .share-card{
    position: absolute;
    bottom: calc(100% + 12px);
    left: 0;
    display: flex;
    gap: 8px;
    background: var(--bg);
    border: 1px solid var(--hairline);
    box-shadow: 0 12px 28px rgba(0,0,0,.22);
    padding: 10px;
    z-index: 40;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity 160ms ease-out, transform 160ms ease-out, visibility 160ms;
  }
  .share-popover-wrap:hover .share-card,
  .share-popover-wrap:focus-within .share-card{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .share-card a,
  .share-card button{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--hairline);
    background: none;
    color: var(--ink);
    cursor: pointer;
    padding: 7px;
  }
  .share-card a:hover,
  .share-card button:hover{ border-color: var(--brass); color: var(--brass); }
  .share-card svg{ width: 100%; height: 100%; fill: currentColor; }

  .share-toast{
    position: absolute;
    bottom: calc(100% + 12px);
    left: 0;
    white-space: nowrap;
    background: var(--ink);
    color: var(--bg);
    font-size: 12px;
    padding: 6px 10px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 200ms ease-out;
    z-index: 41;
  }
  .share-toast.is-visible{ opacity: 1; }

  /* ---------- Preferred source button ---------- */
  .preferred-source-btn{
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid rgba(242,239,232,.4);
    color: rgba(242,239,232,.9);
    padding: 6px 12px;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
  }
  .preferred-source-btn svg{ width: 14px; height: 14px; fill: currentColor; }
  .preferred-source-btn:hover{
    background: var(--brass);
    border-color: var(--brass);
    color: var(--ink);
  }

  /* ---------- Key Takeaways box ---------- */
  .key-takeaways{
    background: rgba(184,134,59,.055);
    border-left: 4px solid var(--navy);
    padding: 24px 28px;
  }
  .key-takeaways-heading{
    margin-bottom: 12px;
  }
  .key-takeaways-list{
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .key-takeaways-list li{
    position: relative;
    padding-left: 26px;
    margin-bottom: 10px;
    font-size: 15.5px;
    line-height: 1.55;
    color: var(--ink);
  }
  .key-takeaways-list li:last-child{ margin-bottom: 0; }
  .key-takeaways-list li::before{
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 8px;
    height: 8px;
    background: var(--brass);
  }

