/* =========================================================
   ATB theme — main stylesheet (BEM)
   Font faces are declared in theme.json (self-hosted, WP-managed).
   Brand tokens below alias the WP global-styles CSS variables so
   editor-picked colors and this handwritten CSS stay in sync.
   ========================================================= */

:root{
  --sand: var(--wp--preset--color--sand, #f5d7b0);
  --terracotta: var(--wp--preset--color--terracotta, #d15b56);
  --crimson: var(--wp--preset--color--crimson, #c43138);
  --sage: var(--wp--preset--color--sage, #7ba8a3);
  --teal-mid: var(--wp--preset--color--teal-mid, #3e909d);
  --teal-brand: var(--wp--preset--color--teal-brand, #007896);
  --ink: var(--wp--preset--color--ink, #004e61);

  --paper: #f7e2c2;
  --surface: #fffaf1;
  --text: #03242c;
  --text-soft: rgba(3,36,44,.66);
  --accent: var(--terracotta);
  --accent-deep: var(--crimson);
  --link: var(--teal-brand);
  --rule: rgba(3,36,44,.18);
  --rule-strong: rgba(3,36,44,.34);
  --band: var(--ink);
  --band-text: var(--sand);

  --font-display: var(--wp--preset--font-family--display, 'Playfair Display', Georgia, serif);
  --font-body: var(--wp--preset--font-family--body, 'Lora', Georgia, serif);
  --font-ui: var(--wp--preset--font-family--ui, 'Montserrat', sans-serif);

  --content-size: 720px;
  --wide-size: 1288px;
}

@media (prefers-color-scheme: dark){
  :root{
    --paper:#052128; --surface:#082a32; --text:#f5e9d3; --text-soft:rgba(245,233,211,.68);
    --accent:#e37a71; --accent-deep:#e2646a; --link:#5cc2d6;
    --rule:rgba(245,233,211,.18); --rule-strong:rgba(245,233,211,.34);
    --band:#02181d; --band-text: var(--sand);
  }
}
html.atb-dark{
  --paper:#052128; --surface:#082a32; --text:#f5e9d3; --text-soft:rgba(245,233,211,.68);
  --accent:#e37a71; --accent-deep:#e2646a; --link:#5cc2d6;
  --rule:rgba(245,233,211,.18); --rule-strong:rgba(245,233,211,.34);
  --band:#02181d; --band-text: var(--sand);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--text);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.65;
  overflow-x:hidden;
  position:relative;
}
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='120' height='120' filter='url(%23n)'/></svg>");
}
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:var(--font-display); font-weight:700; text-wrap:balance; }
p{ margin:0; }
button,input,textarea{ font-family:inherit; }
:focus-visible{ outline:2px solid var(--accent-deep); outline-offset:3px; }
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999; background:var(--ink); color:var(--sand);
  padding:12px 18px; font-family:var(--font-ui); font-weight:700; font-size:.85rem;
}
.skip-link:focus{ left:12px; top:12px; }
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.container{ width:100%; max-width:var(--wide-size); margin:0 auto; padding:0 32px; position:relative; z-index:1; }
@media (max-width:640px){ .container{ padding:0 20px; } }

.kicker{
  font-family:var(--font-ui); font-weight:700; font-size:.7rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--accent-deep);
}

[data-reveal]{ opacity:1; transform:none; transition:opacity .5s ease, transform .5s ease; }
@media (prefers-reduced-motion:no-preference){
  [data-reveal]{ opacity:0; transform:translateY(16px); }
  [data-reveal].is-visible{ opacity:1; transform:none; }
}

/* ================= MASTHEAD ================= */
.masthead{ position:relative; z-index:40; border-bottom:1px solid var(--rule); background:var(--paper); }
.masthead__bar{
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  padding-top:9px; padding-bottom:9px; font-family:var(--font-ui); font-size:.68rem; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase; color:var(--text-soft);
  border-bottom:1px solid var(--rule);
}
.masthead__bar-item + .masthead__bar-item{ margin-left:16px; }
@media (max-width:760px){ .masthead__bar-item--regions{ display:none; } }

.masthead__main{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:22px; padding-bottom:22px; }
.masthead__wordmark{ font-family:var(--font-display); font-weight:800; font-size:2rem; letter-spacing:.005em; white-space:nowrap; }
.masthead__wordmark span{ font-style:italic; font-weight:500; color:var(--accent-deep); }

.masthead__nav{ display:flex; align-items:center; gap:28px; }
.masthead__nav-link{
  font-family:var(--font-ui); font-weight:600; font-size:.78rem; letter-spacing:.07em; text-transform:uppercase;
  padding-bottom:4px; border-bottom:1px solid transparent; background:none; border-top:none; border-left:none; border-right:none; cursor:pointer;
}
.masthead__nav-link:hover{ border-color:var(--accent-deep); }
.masthead__nav-link.is-active{ border-color:var(--accent-deep); }
.masthead__dropdown{ position:relative; }
.masthead__dropdown > summary{ list-style:none; cursor:pointer; }
.masthead__dropdown > summary::-webkit-details-marker{ display:none; }
.masthead__panel{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%);
  min-width:210px; background:var(--surface); border:1px solid var(--rule); padding:8px 0;
  box-shadow:0 20px 40px -22px rgba(3,36,44,.4);
}
.masthead__panel-link{ display:flex; align-items:baseline; gap:8px; padding:8px 16px; font-family:var(--font-ui); font-size:.82rem; font-weight:600; }
.masthead__panel-link:hover{ color:var(--link); }
.masthead__panel-num{ font-size:.68rem; color:var(--accent-deep); font-weight:700; }
.masthead__panel-divider{ height:1px; background:var(--rule); margin:6px 0; }

.masthead__actions{ display:flex; align-items:center; gap:16px; }

.masthead__search{ position:relative; }
.masthead__search-toggle{ display:flex; color:var(--text); background:none; border:none; cursor:pointer; padding:0; }
.masthead__search-toggle svg{ width:18px; height:18px; flex:none; }
.masthead__search-form{
  display:none; position:absolute; top:calc(100% + 14px); right:0; z-index:10;
  width:min(280px, calc(100vw - 40px));
  align-items:stretch; gap:8px;
  background:var(--surface); border:1px solid var(--rule); padding:10px;
  box-shadow:0 20px 40px -22px rgba(3,36,44,.4);
}
.masthead__search-form::before{
  content:""; position:absolute; top:-6px; right:14px;
  transform:rotate(45deg); width:11px; height:11px;
  background:var(--surface); border-left:1px solid var(--rule); border-top:1px solid var(--rule);
}
.masthead__search.is-open .masthead__search-form{ display:flex; }
.masthead__search-input{
  flex:1; min-width:0; padding:10px 12px; border:1px solid var(--rule-strong); background:var(--paper);
  font-family:var(--font-body); font-style:italic; font-size:.95rem; color:var(--text);
}
.masthead__search-input::placeholder{ color:var(--text-soft); }
.masthead__search-submit{
  flex:none; display:flex; align-items:center; justify-content:center;
  padding:0 14px; background:var(--accent); color:#fff; border:none; cursor:pointer;
}
.masthead__search-submit svg{ width:16px; height:16px; flex:none; }
.masthead__search-submit:hover{ background:var(--accent-deep); }

.masthead__subscribe{
  font-family:var(--font-ui); font-weight:700; font-size:.72rem; letter-spacing:.09em; text-transform:uppercase;
  padding-bottom:3px; border-bottom:2px solid var(--text);
}
.masthead__toggle{
  display:none; background:none; border:none; cursor:pointer; padding:4px; color:var(--text);
}
.masthead__toggle-bar{ display:block; width:22px; height:2px; background:currentColor; margin:5px 0; transition:transform .18s ease, opacity .18s ease; }
.masthead.is-open .masthead__toggle-bar:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.masthead.is-open .masthead__toggle-bar:nth-child(2){ opacity:0; }
.masthead.is-open .masthead__toggle-bar:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:920px){
  .masthead__wordmark{ font-size:clamp(1.15rem, 6vw, 1.6rem); }
  .masthead__toggle{ display:block; }
  .masthead__nav{
    display:none; position:absolute; top:100%; left:20px; right:20px;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--surface); border:1px solid var(--rule); border-top:none;
    padding:8px 0;
  }
  .masthead.is-open .masthead__nav{ display:flex; }
  .masthead__nav-link{ width:100%; padding:12px 20px; border-bottom:1px solid var(--rule); }
  .masthead__dropdown{ width:100%; }
  .masthead__panel{ position:static; transform:none; width:100%; box-shadow:none; border:none; border-bottom:1px solid var(--rule); background:var(--paper); }

  /* anchor the search dropdown to the whole header (like .masthead__nav
     above), not the small icon — otherwise a wide panel expanding from
     an icon near the middle of the row overflows off the left edge */
  .masthead__search{ position:static; }
  .masthead__search-form{ top:100%; left:20px; right:20px; width:auto; }
  .masthead__search-form::before{ display:none; }
}

/* ================= FOLIO ================= */
.folio{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:14px 0; font-family:var(--font-ui); font-size:.68rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--text-soft);
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
}

/* ================= COVER ================= */
.cover{ position:relative; background:var(--paper); }
.cover__grid{ display:grid; grid-template-columns:minmax(300px,600px) 1fr; min-height:600px; }
.cover__text{
  display:flex; flex-direction:column; justify-content:center; gap:22px;
  padding:56px clamp(24px,4vw,56px);
  padding-left:max(32px, calc((100vw - var(--wide-size))/2 + 32px));
}
.cover__kicker-row{ display:flex; align-items:center; gap:10px; }
.cover__kicker-line{ width:30px; height:1px; background:var(--accent-deep); }
.cover__headline{ font-size:clamp(2.5rem,4.6vw,4.1rem); line-height:1.05; }
.cover__headline em{ font-style:italic; font-weight:500; color:var(--accent-deep); }
.cover__dek{ font-family:var(--font-body); font-style:italic; font-size:1.18rem; color:var(--text-soft); max-width:44ch; }
.cover__byline{ display:flex; align-items:center; gap:10px; font-family:var(--font-ui); font-size:.8rem; font-weight:600; }
.cover__byline-avatar{
  width:28px;height:28px;border-radius:50%; background:var(--ink); color:var(--sand);
  display:flex;align-items:center;justify-content:center; font-family:var(--font-display); font-weight:700; font-size:.72rem;
  overflow:hidden;
}
.cover__byline-avatar img{ width:100%; height:100%; object-fit:cover; }
.cover__byline-meta{ color:var(--text-soft); font-weight:500; }
.cover__cta{
  display:inline-flex; align-items:center; gap:10px; width:fit-content;
  font-family:var(--font-ui); font-weight:700; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
  padding-bottom:5px; border-bottom:2px solid var(--text);
}
.cover__cta svg{ width:15px; height:15px; transition:transform .18s ease; }
.cover__cta:hover svg{ transform:translateX(4px); }

.cover__media{ position:relative; overflow:hidden; background:linear-gradient(180deg,var(--sand) 0%,#eab98a 55%,var(--terracotta) 100%); }
.cover__media svg{ position:absolute; inset:0; width:100%; height:100%; }
.cover__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cover__teaser{ background:var(--band); color:var(--band-text); padding:20px clamp(20px,3vw,40px); }
.cover__teaser-kicker{ font-family:var(--font-ui); font-size:.64rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; opacity:.75; }
.cover__teaser-list{ display:flex; flex-wrap:wrap; gap:6px 22px; margin-top:10px; }
.cover__teaser-item{ display:flex; align-items:baseline; gap:6px; font-family:var(--font-ui); font-weight:600; font-size:.86rem; }
.cover__teaser-num{ font-family:var(--font-display); font-weight:700; font-style:italic; color:var(--accent); font-size:.82rem; }

@media (max-width:900px){
  .cover__grid{ grid-template-columns:1fr; }
  .cover__media{ order:-1; aspect-ratio:16/11; min-height:0; }
  .cover__text{ padding-left:max(20px,32px); }
}

/* ================= FIELD GUIDE ================= */
.field-guide{ padding:64px 0 76px; }
.field-guide__grid{ display:grid; grid-template-columns:7fr 5fr; gap:56px; align-items:start; }
.field-guide__head{ margin-bottom:8px; }
.field-guide__title{ font-size:clamp(1.8rem,2.8vw,2.4rem); margin-top:10px; }

.index-list{ margin-top:28px; }
.index-row{ display:grid; grid-template-columns:auto auto 1fr auto; align-items:baseline; column-gap:14px; padding:18px 0; border-top:1px solid var(--rule); }
.index-list .index-row:last-child{ border-bottom:1px solid var(--rule); }
.index-row__num{ font-family:var(--font-display); font-style:italic; font-weight:700; font-size:1.05rem; color:var(--accent-deep); }
.index-row__name{ font-size:1.32rem; white-space:nowrap; }
.index-row__leader{ border-bottom:1px dotted var(--rule-strong); align-self:center; height:0; margin:0 4px; }
.index-row__hook{ grid-column:1 / -1; font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:.94rem; margin-top:6px; }
.index-row__link{ font-family:var(--font-ui); font-weight:700; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--link); white-space:nowrap; }

.field-guide__aside{ position:relative; }
.field-guide__image{ position:relative; aspect-ratio:4/5; overflow:hidden; background:linear-gradient(175deg,var(--teal-mid),var(--ink)); }
.field-guide__image svg{ position:absolute; inset:0; width:100%; height:100%; }
.field-guide__image img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.field-guide__quote{ margin-top:24px; margin-left:0; padding-left:20px; border-left:2px solid var(--accent-deep); }
.field-guide__quote-mark{ font-family:var(--font-display); font-size:2.6rem; line-height:.6; color:var(--accent-deep); display:block; margin-bottom:6px; }
.field-guide__quote-text{ font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.3rem; line-height:1.3; }
.field-guide__quote-cite{ display:block; margin-top:10px; font-family:var(--font-ui); font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--text-soft); font-style:normal; }

@media (max-width:900px){
  .field-guide__grid{ grid-template-columns:1fr; }
  .index-row{ grid-template-columns:auto auto 1fr; }
  .index-row__link{ grid-column:1/-1; margin-top:4px; }
}

/* ================= AFIELD ================= */
.afield{ padding:60px 0 76px; background:var(--surface); }
.afield__title{ font-size:clamp(1.6rem,2.4vw,2.1rem); margin-top:10px; max-width:26ch; }
.afield__list{ margin-top:32px; display:grid; grid-template-columns:repeat(4,1fr); }
.afield__row{ padding:20px 22px 20px 0; border-top:1px solid var(--rule); }
.afield__list .afield__row{ border-left:1px solid var(--rule); padding-left:22px; }
.afield__list .afield__row:first-child{ border-left:none; padding-left:0; }
.afield__rank{ font-family:var(--font-ui); font-size:.68rem; font-weight:700; letter-spacing:.1em; color:var(--text-soft); }
.afield__name{ font-size:1.3rem; margin-top:8px; }
.afield__hook{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:.9rem; margin-top:8px; }
@media (max-width:900px){ .afield__list{ grid-template-columns:1fr 1fr; } .afield__list .afield__row:nth-child(2){ border-left:none; padding-left:0; } }
@media (max-width:560px){ .afield__list{ grid-template-columns:1fr; } .afield__list .afield__row{ border-left:none !important; padding-left:0 !important; } }

/* ================= DISPATCHES ================= */
.dispatches{ padding:64px 0 76px; }
.dispatches__title{ font-size:clamp(1.8rem,2.8vw,2.4rem); margin-top:10px; }
.dispatches__grid{ display:grid; grid-template-columns:7fr 5fr; gap:56px; margin-top:36px; align-items:start; }

.dispatch-lead__media{ position:relative; aspect-ratio:16/9; overflow:hidden; background:linear-gradient(175deg,var(--terracotta),var(--ink)); margin-bottom:24px; }
.dispatch-lead__media svg{ position:absolute; inset:0; width:100%; height:100%; }
.dispatch-lead__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.dispatch-lead__kicker{ display:block; margin-bottom:10px; }
.dispatch-lead__title{ font-size:1.85rem; line-height:1.15; margin-bottom:16px; }
.dispatch-lead__title a:hover{ color:var(--accent-deep); }
.dispatch-lead__text{ font-family:var(--font-body); font-size:1.04rem; color:var(--text-soft); }
.dispatch-lead__text::first-letter{
  float:left; font-family:var(--font-display); font-weight:700; font-size:3.6rem; line-height:.8;
  padding:6px 8px 0 0; color:var(--accent-deep);
}
.dispatch-lead__quote{ margin:24px 0; padding:4px 0 4px 22px; border-left:2px solid var(--accent-deep); font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.28rem; line-height:1.32; }
.dispatch-lead__byline{ display:flex; align-items:center; gap:8px; margin-top:18px; font-family:var(--font-ui); font-size:.78rem; font-weight:600; color:var(--text-soft); }
.dispatch-lead__byline strong{ color:var(--text); }
.dispatch-lead__byline a:hover{ color:var(--link); }

.brief__title{ font-family:var(--font-ui); font-weight:700; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-soft); padding-bottom:14px; border-bottom:1px solid var(--rule-strong); }
.brief-row{ display:grid; grid-template-columns:auto 1fr; column-gap:16px; padding:18px 0; border-bottom:1px solid var(--rule); }
.brief-row__num{ font-family:var(--font-display); font-style:italic; font-weight:700; color:var(--accent-deep); font-size:1rem; }
.brief-row__title{ font-size:1.08rem; line-height:1.32; }
.brief-row__title a:hover{ color:var(--accent-deep); }
.brief-row__meta{ margin-top:8px; display:flex; flex-wrap:wrap; gap:6px; font-family:var(--font-ui); font-size:.72rem; font-weight:600; color:var(--text-soft); }
.brief-row__meta strong{ color:var(--text); font-weight:700; }
.brief-row__meta a:hover{ color:var(--link); }

@media (max-width:900px){ .dispatches__grid{ grid-template-columns:1fr; } }

/* ================= COLOPHON (authors) ================= */
.colophon{ padding:60px 0 76px; background:var(--surface); }
.colophon__title{ font-size:clamp(1.6rem,2.4vw,2.1rem); margin-top:10px; }
.colophon__list{ margin-top:32px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--rule-strong); }
.colophon__person{ padding:24px 26px 24px 0; }
.colophon__list .colophon__person{ border-left:1px solid var(--rule); padding-left:26px; }
.colophon__list .colophon__person:first-child{ border-left:none; padding-left:0; }
.colophon__role{ font-family:var(--font-ui); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-deep); }
.colophon__name{ font-size:1.5rem; margin-top:8px; }
.colophon__name a:hover{ color:var(--accent-deep); }
.colophon__bio{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:.94rem; margin-top:10px; }
.colophon__meta{ display:flex; align-items:center; gap:10px; margin-top:16px; font-family:var(--font-ui); font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.colophon__meta-count{ color:var(--text-soft); font-weight:600; }
.colophon__meta-link{ color:var(--link); }
@media (max-width:900px){
  .colophon__list{ grid-template-columns:1fr; }
  .colophon__list .colophon__person{ border-left:none !important; padding-left:0 !important; border-top:1px solid var(--rule); }
  .colophon__list .colophon__person:first-child{ border-top:none; }
}

/* ================= SUBSCRIBE ================= */
.subscribe{ padding:70px 0; }
.subscribe__ticket{
  position:relative; background:var(--band); color:var(--band-text);
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:32px;
  padding:40px clamp(24px,4vw,56px); border:1px dashed rgba(245,215,176,.4);
}
.subscribe__ticket::before,.subscribe__ticket::after{ content:""; position:absolute; top:50%; transform:translateY(-50%); width:22px; height:22px; border-radius:50%; background:var(--paper); }
.subscribe__ticket::before{ left:-11px; }
.subscribe__ticket::after{ right:-11px; }
.subscribe__kicker{ color:var(--accent); }
.subscribe__title{ color:var(--band-text); font-size:clamp(1.5rem,2.4vw,1.9rem); margin-top:8px; max-width:26ch; }
.subscribe__copy{ font-family:var(--font-body); font-style:italic; color:rgba(245,215,176,.72); margin-top:8px; font-size:.94rem; }
.subscribe__form{ display:flex; }
.subscribe__input{ width:220px; padding:13px 15px; background:transparent; border:1px solid rgba(245,215,176,.4); border-right:none; color:var(--band-text); font-family:var(--font-ui); font-size:.86rem; }
.subscribe__input::placeholder{ color:rgba(245,215,176,.5); }
.subscribe__submit{ padding:13px 20px; background:var(--accent); color:#fff; border:none; cursor:pointer; font-family:var(--font-ui); font-weight:700; font-size:.76rem; letter-spacing:.07em; text-transform:uppercase; }
.subscribe__submit:hover{ background:var(--accent-deep); }
@media (max-width:760px){ .subscribe__ticket{ grid-template-columns:minmax(0,1fr); } .subscribe__form{ width:100%; } .subscribe__input{ flex:1; width:auto; min-width:0; } }

/* ================= FOOTER ================= */
.site-footer{ padding:48px 0 30px; }
.site-footer__grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:32px; padding-bottom:32px; border-bottom:1px solid var(--rule); }
.site-footer__wordmark{ font-family:var(--font-display); font-weight:800; font-size:1.3rem; }
.site-footer__wordmark span{ font-style:italic; color:var(--link); font-weight:500; }
.site-footer__tagline{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); margin-top:10px; font-size:.9rem; max-width:30ch; }
.site-footer__title{ font-family:var(--font-ui); font-weight:700; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--text-soft); margin-bottom:14px; }
.site-footer__link{ display:block; padding:5px 0; font-family:var(--font-ui); font-size:.86rem; font-weight:600; }
.site-footer__link:hover{ color:var(--link); }
.site-footer__link.is-active{ color:var(--link); }
.site-footer__legal{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding-top:20px; font-family:var(--font-ui); font-size:.72rem; color:var(--text-soft); }
@media (max-width:760px){ .site-footer__grid{ grid-template-columns:1fr 1fr; } .site-footer__legal{ gap:5px; } }

/* ================= BACK TO TOP ================= */
.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  background:var(--ink); color:var(--sand); border:none; cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover{ background:var(--accent-deep); }
@media (max-width:640px){ .back-to-top{ right:16px; bottom:16px; width:42px; height:42px; } }
@media (prefers-reduced-motion:reduce){ .back-to-top{ transition:opacity .01ms linear; } }

/* =========================================================
   ARCHIVE HUB — location / region / author / search / 404
   ========================================================= */
.crumb{ display:flex; align-items:center; gap:8px; font-family:var(--font-ui); font-size:.76rem; font-weight:600; color:var(--text-soft); margin-bottom:18px; flex-wrap:wrap; }
.crumb a:hover{ color:var(--link); }
.crumb__sep{ opacity:.5; }
.crumb__current{ color:var(--text); }

.hub{ padding-top:52px; padding-bottom:44px; }
.hub__title{ font-size:clamp(2.1rem,4.4vw,3.2rem); margin-top:12px; }
.hub__desc{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:1.1rem; max-width:60ch; margin-top:16px; }
.hub__stats{ display:flex; gap:18px; margin-top:22px; font-family:var(--font-ui); font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--text); flex-wrap:wrap; }
.hub__stat{ padding:8px 16px; border:1px solid var(--rule-strong); }
.hub__covers{ margin-top:24px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.hub__covers-label{ font-family:var(--font-ui); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-soft); }
.pill{ font-family:var(--font-ui); font-size:.76rem; font-weight:600; padding:7px 14px; border:1px solid var(--rule-strong); }
.pill:hover{ background:var(--surface); border-color:var(--accent-deep); color:var(--accent-deep); }

.section{ padding-top:8px; padding-bottom:60px; }
.section__head{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:8px; }
.section__title{ font-size:1.5rem; margin-top:8px; }

/* main story grid + Editor's Choice / Top View sidebar, shared by
   every listing page (location, region, author, search, all-stories) */
.archive-layout{ display:grid; grid-template-columns:2fr 1fr; gap:48px; align-items:start; margin-top:8px; }
@media (max-width:900px){ .archive-layout{ grid-template-columns:1fr; } }

.story-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); }
/* a lone odd-count last card spans both columns instead of leaving an empty cell showing through */
.story-grid > .story-card:nth-child(odd):nth-last-child(1){ grid-column:1 / -1; }
@media (max-width:640px){ .story-grid{ grid-template-columns:1fr; } }
.story-card{ background:var(--paper); padding:24px; display:flex; flex-direction:column; gap:10px; }
.story-row__type{ font-family:var(--font-ui); font-size:.64rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding-top:8px; color:var(--text-soft); border-top:2px solid var(--rule-strong); width:fit-content; }
.story-row__type--dispatch{ color:var(--accent-deep); border-color:var(--accent-deep); }
.story-row__type--attraction{ color:var(--teal-brand); border-color:var(--teal-brand); }
.story-row__title{ font-size:1.14rem; line-height:1.28; }
.story-row__title a:hover{ color:var(--accent-deep); }
.story-row__excerpt{ font-family:var(--font-body); color:var(--text-soft); font-size:.9rem; }
.story-row__meta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:6px; font-family:var(--font-ui); font-size:.72rem; font-weight:600; color:var(--text-soft); }
.story-row__meta strong{ color:var(--text); font-weight:700; }

.sidebar{ display:flex; flex-direction:column; gap:40px; }
.widget__title{ font-family:var(--font-ui); font-weight:700; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-soft); padding-bottom:12px; margin-bottom:4px; border-bottom:2px solid var(--rule-strong); }

.choice{ background:var(--band); color:var(--band-text); padding:22px; }
.choice .widget__title{ color:rgba(245,215,176,.7); border-color:rgba(245,215,176,.28); }
.choice-item{ padding:14px 0; border-top:1px solid rgba(245,215,176,.18); }
.choice-item:first-of-type{ border-top:none; padding-top:2px; }
.choice-item__title{ font-family:var(--font-display); font-weight:700; font-style:italic; font-size:1.05rem; line-height:1.32; }
.choice-item__title a:hover{ color:var(--accent); }
.choice-item__meta{ display:block; margin-top:6px; font-family:var(--font-ui); font-size:.68rem; font-weight:600; letter-spacing:.03em; text-transform:uppercase; opacity:.75; }

.top-row{ display:grid; grid-template-columns:auto 1fr; column-gap:14px; padding:14px 0; border-top:1px solid var(--rule); align-items:baseline; }
.top-row:first-of-type{ border-top:none; padding-top:2px; }
.top-row__rank{ font-family:var(--font-display); font-style:italic; font-weight:700; color:var(--accent-deep); font-size:1.15rem; }
.top-row__title{ font-size:.96rem; line-height:1.32; }
.top-row__title a:hover{ color:var(--accent-deep); }
.top-row__views{ display:block; margin-top:5px; font-family:var(--font-ui); font-size:.68rem; font-weight:600; color:var(--text-soft); }

/* author hub */
.author-hub{ display:flex; gap:26px; align-items:flex-start; padding-top:52px; padding-bottom:40px; }
.author-hub__avatar{ width:88px; height:88px; border-radius:50%; background:linear-gradient(150deg,var(--teal-mid),var(--ink)); color:var(--sand); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:2.2rem; flex:none; overflow:hidden; }
.author-hub__avatar img{ width:100%; height:100%; object-fit:cover; }
.author-hub__name{ font-size:clamp(1.9rem,3.6vw,2.6rem); }
.author-hub__beat{ margin-top:6px; }
.author-hub__bio{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:1.05rem; max-width:56ch; margin-top:14px; }
.author-hub__stats{ display:flex; gap:18px; margin-top:20px; font-family:var(--font-ui); font-size:.78rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.author-hub__stat{ padding:8px 16px; border:1px solid var(--rule-strong); }
@media (max-width:560px){ .author-hub{ flex-direction:column; } }

/* page-level search box (search page, 404) — distinct from the
   header's compact dropdown search */
.search-hero{ padding-top:56px; padding-bottom:12px; }
.search-box{ display:flex; margin-top:26px; max-width:640px; border:2px solid var(--text); }
.search-box__input{ flex:1; min-width:0; padding:16px 18px; border:none; background:var(--surface); font-family:var(--font-body); font-style:italic; font-size:1.1rem; color:var(--text); }
.search-box__input::placeholder{ color:var(--text-soft); }
.search-box__submit{ padding:0 24px; background:var(--accent); color:#fff; border:none; cursor:pointer; font-family:var(--font-ui); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.8rem; white-space:nowrap; }
.search-box__submit:hover{ background:var(--accent-deep); }
.search-hero__count{ display:block; margin-top:22px; font-family:var(--font-ui); font-size:.78rem; font-weight:600; color:var(--text-soft); }

/* empty state, with optional suggestion pills */
.empty{ padding:60px 0; }
.empty__text{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); margin-top:12px; max-width:50ch; }
.empty__suggestions{ margin-top:22px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.empty__suggestions-label{ font-family:var(--font-ui); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-soft); }

/* 404 */
.error{ padding-top:64px; padding-bottom:20px; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.error__mark{ font-family:var(--font-display); font-style:italic; font-weight:700; font-size:clamp(4.5rem,11vw,7.5rem); line-height:.8; color:var(--accent-deep); }
.error__title{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin-top:10px; }
.error__text{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:1.05rem; margin-top:16px; max-width:48ch; }
.error__actions{ margin-top:28px; display:flex; gap:12px; flex-wrap:wrap; }
.error__media{ position:relative; aspect-ratio:5/4; overflow:hidden; background:linear-gradient(180deg,var(--sand) 0%,#eab98a 55%,var(--terracotta) 100%); }
.error__media svg{ position:absolute; inset:0; width:100%; height:100%; }
.error__media-pin{ position:absolute; top:50%; left:50%; transform:translate(-50%,-56%); text-align:center; }
.error__media-pin svg{ position:static; width:34px; height:34px; margin:0 auto; }
@media (max-width:800px){ .error{ grid-template-columns:1fr; } .error__media{ order:-1; } }

/* =========================================================
   ENTRY CONTENT — single posts / pages
   ========================================================= */
.entry{ padding:56px 0 80px; }
.entry__inner{ max-width:var(--content-size); margin:0 auto; }
.entry__kicker{ margin-bottom:14px; }
.entry__title{ font-size:clamp(2rem,4.4vw,3rem); line-height:1.1; }
.entry__meta{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:20px; font-family:var(--font-ui); font-size:.82rem; font-weight:600; color:var(--text-soft); }
.entry__meta strong{ color:var(--text); }
.entry__meta a:hover{ color:var(--link); }
.entry__thumbnail{ margin:32px 0; aspect-ratio:16/9; overflow:hidden; }
.entry__thumbnail img{ width:100%; height:100%; object-fit:cover; }

.entry__content{ font-family:var(--font-body); font-size:1.08rem; }
.entry__content > * + *{ margin-top:1.4em; }
.entry__content h2{ font-size:1.7rem; margin-top:2em; }
.entry__content h3{ font-size:1.32rem; margin-top:1.8em; }
.entry__content p:first-of-type::first-letter{
  float:left; font-family:var(--font-display); font-weight:700; font-size:3.6rem; line-height:.78;
  padding:6px 8px 0 0; color:var(--accent-deep);
}
.entry__content a{ color:var(--link); text-decoration:underline; text-underline-offset:3px; }
.entry__content a:hover{ color:var(--accent-deep); }
.entry__content blockquote{ padding:4px 0 4px 22px; border-left:2px solid var(--accent-deep); font-family:var(--font-display); font-style:italic; font-weight:600; font-size:1.28rem; line-height:1.32; }
.entry__content img{ width:100%; height:auto; }
.entry__content figcaption{ font-family:var(--font-ui); font-size:.78rem; color:var(--text-soft); margin-top:8px; }
.entry__content ul, .entry__content ol{ padding-left:1.4em; list-style:revert; }
.entry__content .alignwide{ max-width:var(--wide-size); margin-left:calc(50% - 50vw + (100vw - 100%)/2); width:auto; }
.entry__content .alignfull{ max-width:none; width:100vw; margin-left:calc(50% - 50vw); }

.entry__tags{ margin-top:40px; padding-top:24px; border-top:1px solid var(--rule); display:flex; flex-wrap:wrap; gap:10px; }
.entry__tag{ font-family:var(--font-ui); font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:6px 12px; border:1px solid var(--rule-strong); }
.entry__tag:hover{ background:var(--surface); }

.entry__author{ margin-top:48px; padding:28px; background:var(--surface); border:1px solid var(--rule); display:flex; gap:18px; align-items:flex-start; }
.entry__author-avatar{ width:56px; height:56px; border-radius:50%; background:var(--ink); color:var(--sand); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:700; font-size:1.3rem; flex:none; overflow:hidden; }
.entry__author-avatar img{ width:100%; height:100%; object-fit:cover; }
.entry__author-name{ font-size:1.15rem; }
.entry__author-bio{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); font-size:.92rem; margin-top:6px; }

/* ================= ARCHIVE / LOOP LIST ================= */
.post-list{ padding-top:8px; padding-bottom:80px; }
.post-list__grid{ display:flex; flex-direction:column; }
.post-row{ display:grid; grid-template-columns:1fr; gap:10px; padding:32px 0; border-top:1px solid var(--rule); }
.post-list__grid .post-row:last-child{ border-bottom:1px solid var(--rule); }
.post-row__kicker{ margin-bottom:4px; }
.post-row__title{ font-size:1.5rem; line-height:1.2; }
.post-row__title a:hover{ color:var(--accent-deep); }
.post-row__excerpt{ font-family:var(--font-body); color:var(--text-soft); font-size:.98rem; max-width:70ch; }
.post-row__meta{ display:flex; flex-wrap:wrap; gap:8px; font-family:var(--font-ui); font-size:.76rem; font-weight:600; color:var(--text-soft); }
.post-row__meta strong{ color:var(--text); }

.pagination{ display:flex; justify-content:center; gap:10px; margin-top:40px; font-family:var(--font-ui); font-weight:700; font-size:.82rem; }
.pagination a, .pagination span{ padding:8px 14px; border:1px solid var(--rule-strong); }
.pagination .current{ background:var(--ink); color:var(--sand); border-color:var(--ink); }
.pagination a:hover{ background:var(--surface); }

.no-results{ padding:80px 0; text-align:left; }
.no-results p{ font-family:var(--font-body); font-style:italic; color:var(--text-soft); margin-top:14px; }

/* comments */
.comments{ max-width:var(--content-size); margin:56px auto 0; padding-top:40px; border-top:1px solid var(--rule); }
.comments__title{ font-size:1.5rem; margin-bottom:24px; }
.comment-list{ }
.comment{ padding:20px 0; border-top:1px solid var(--rule); }
.comment__meta{ font-family:var(--font-ui); font-size:.78rem; font-weight:700; color:var(--text-soft); }
.comment__text{ font-family:var(--font-body); margin-top:8px; }
.comment-form p{ margin-top:14px; }
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{
  width:100%; padding:11px 13px; border:1px solid var(--rule-strong); background:var(--surface); color:var(--text); font-family:var(--font-body);
}
.comment-form .form-submit input{
  padding:12px 22px; background:var(--accent); color:#fff; border:none; cursor:pointer; font-family:var(--font-ui); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.8rem;
}
.comment-form .form-submit input:hover{ background:var(--accent-deep); }

/* ================= CONTACT FORM (Contact Form 7) ================= */
.contact-form__row{ margin-top:20px; }
.contact-form__row:first-child{ margin-top:0; }
.contact-form__label{
  display:block; margin-bottom:8px; font-family:var(--font-ui); font-weight:700;
  font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--text);
}
.contact-form__optional{ font-weight:500; text-transform:none; letter-spacing:0; color:var(--text-soft); }
.contact-form__input{
  width:100%; padding:13px 15px; border:1px solid var(--rule-strong); background:var(--surface);
  color:var(--text); font-family:var(--font-body); font-size:1rem;
}
.contact-form__input::placeholder{ color:var(--text-soft); }
.contact-form__input:focus{ outline:2px solid var(--accent-deep); outline-offset:1px; }
textarea.contact-form__input{ min-height:160px; resize:vertical; }
.contact-form__input.wpcf7-not-valid{ border-color:var(--accent-deep); }
.contact-form__submit{ margin-top:28px; display:flex; align-items:center; gap:14px; }
.contact-form__button{
  padding:14px 28px; background:var(--accent); color:#fff; border:none; cursor:pointer;
  font-family:var(--font-ui); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.82rem;
}
.contact-form__button:hover{ background:var(--accent-deep); }
.contact-form__button:disabled{ opacity:.6; cursor:progress; }

.wpcf7-not-valid-tip{ display:block; margin-top:6px; font-family:var(--font-ui); font-size:.78rem; color:var(--accent-deep); }
.wpcf7-response-output{
  margin:24px 0 0; padding:14px 16px; border:1px solid var(--rule-strong);
  font-family:var(--font-ui); font-size:.86rem;
}
.wpcf7-mail-sent-ok{ border-color:var(--teal-brand); color:var(--teal-brand); }
.wpcf7-validation-errors,.wpcf7-mail-sent-ng,.wpcf7-spam-blocked{ border-color:var(--accent-deep); color:var(--accent-deep); }
