/*
Theme Name: Sri Lanka Trail
Theme URI: https://srilankatrail.com
Author: Pasindu — Trendlytik
Author URI: https://trendlytik.com
Description: Route planning theme for independent travel in Sri Lanka. Customizer-driven
             home page, six interactive planning tools, and a route-matrix data store.
             Plain PHP/CSS/JS — no build step required on the server.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: slt
Tags: travel, custom-colors, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   Palette is emitted from the Customizer into an inline block — see
   slt_customizer_css() in inc/customizer.php. The :root defaults below are
   the fallback if that ever fails to print.
   ========================================================================== */

/* ═══════════════════════════════════════════════════════════
   SRI LANKA TRAIL — v5
   Everything with a data-verify attribute needs your ground
   truth before launch. Placeholder photography via Pexels.
   ═══════════════════════════════════════════════════════════ */
:root{
  --paper:#FCFBF8; --band:#D3DAC8; --band-lt:#E7EBDF;
  --ink:#14201C; --ink-70:#4A5551; --ink-45:#7E8783;
  --stamp:#A8442C; --signal:#E3A62A; --rail:#1E4258; --moss:#2F5A47;
  --rule:rgba(20,32,28,.13);
  --disp:"Fraunces",Georgia,serif;
  --body:"Plus Jakarta Sans",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,monospace;
  --pad:clamp(1rem,4vw,3.5rem); --maxw:1240px; --r:6px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.62; -webkit-font-smoothing:antialiased; }
img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
:focus-visible{ outline:2.5px solid var(--stamp); outline-offset:3px; }
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }

h1,h2,h3,h4{ font-family:var(--disp); margin:0; font-weight:600; line-height:1.08; letter-spacing:-.022em; font-variation-settings:"SOFT" 30,"WONK" 1; }
h1{ font-size:clamp(2.2rem,1.3rem + 3.5vw,4rem); }
h2{ font-size:clamp(1.7rem,1.15rem + 2vw,2.6rem); }
h3{ font-size:1.15rem; } h4{ font-size:1rem; }

.lab{ font-family:var(--mono); font-size:.68rem; letter-spacing:.17em; text-transform:uppercase; color:var(--stamp); display:block; }
.ref{ font-family:var(--mono); font-size:.66rem; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-45); }
.sec{ padding-block:clamp(3rem,6vw,5.2rem); }
.sec-head{ text-align:center; max-width:58ch; margin:0 auto clamp(2rem,4vw,3rem); }
.sec-head p{ margin:.9rem 0 0; color:var(--ink-70); }
.sec-head.left{ text-align:left; margin-inline:0; }

.f{ margin:0; overflow:hidden; border-radius:var(--r); background:var(--band-lt); position:relative; }
.f img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.3,1); }
.f img.img-fail{ background:repeating-linear-gradient(135deg,#E1E6D9 0 9px,#D6DCCB 9px 18px); min-height:150px; }
.r-16x9{ aspect-ratio:16/9; } .r-4x3{ aspect-ratio:4/3; } .r-1x1{ aspect-ratio:1/1; }

/* header */
.top{ background:var(--ink); color:rgba(252,251,248,.8); font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; }
.top-in{ display:flex; justify-content:space-between; gap:1rem; padding-block:.5rem; flex-wrap:wrap; }
.top i{ font-style:normal; color:var(--signal); }
.nav{ position:sticky; top:0; z-index:90; background:rgba(252,251,248,.95); backdrop-filter:blur(9px); border-bottom:1px solid var(--rule); }
.nav-in{ display:flex; align-items:center; gap:1.5rem; padding-block:.9rem; }
.brand{ display:flex; align-items:center; gap:.65rem; flex:none; }
.brand b{ font-family:var(--disp); font-weight:600; font-size:1.14rem; line-height:1; display:block; letter-spacing:-.02em; }
.brand small{ font-family:var(--mono); font-size:.56rem; letter-spacing:.18em; color:var(--ink-45); }
.nav-links{ display:flex; gap:1.4rem; align-items:center; margin-left:auto; }
.nav-links > a,.drop > button{ font-size:.9rem; font-weight:500; font-family:var(--body); color:var(--ink); background:none; border:0; cursor:pointer; padding:.3rem 0; }
.nav-links > a:hover,.drop > button:hover{ color:var(--stamp); }
.drop{ position:relative; }
.drop-menu{ position:absolute; top:calc(100% + .7rem); left:-.8rem; min-width:250px; background:var(--paper); border:1px solid var(--rule); border-radius:var(--r); box-shadow:0 16px 38px rgba(20,32,28,.13); padding:.4rem; display:none; }
.drop:hover .drop-menu,.drop:focus-within .drop-menu{ display:block; }
.drop-menu a{ display:flex; justify-content:space-between; gap:1rem; padding:.5rem .7rem; font-size:.87rem; border-radius:4px; }
.drop-menu a:hover{ background:var(--band-lt); }
.drop-menu a em{ font-style:normal; font-family:var(--mono); font-size:.58rem; color:var(--ink-45); align-self:center; }
.btn{ font-family:var(--body); font-weight:600; font-size:.88rem; padding:.62rem 1.2rem; border-radius:100px; border:1.5px solid transparent; cursor:pointer; display:inline-flex; align-items:center; gap:.45rem; transition:.18s; }
.btn-fill{ background:var(--stamp); color:#fff; } .btn-fill:hover{ background:#8C351F; }
.btn-line{ border-color:var(--stamp); color:var(--stamp); } .btn-line:hover{ background:var(--stamp); color:#fff; }
.btn-ink{ background:var(--ink); color:var(--signal); } .btn-ink:hover{ background:var(--rail); }
.btn-sig{ background:var(--signal); color:var(--ink); } .btn-sig:hover{ background:#CE9420; }
@media(max-width:1080px){ .nav-links{ display:none; } }

/* hero */
.hero{ position:relative; }
.hero-photo{ border-radius:0; aspect-ratio:21/9; min-height:430px; }
.hero-over{ position:absolute; inset:0; display:flex; align-items:center; background:linear-gradient(92deg,rgba(20,32,28,.8) 0%,rgba(20,32,28,.5) 44%,rgba(20,32,28,.14) 76%); pointer-events:none; }
.hero-copy{ color:#fff; max-width:33ch; }
.hero-copy h1{ text-shadow:0 2px 24px rgba(0,0,0,.32); }
.hero-copy h1 em{ font-style:italic; color:var(--signal); }
.hero-copy p{ margin:1.1rem 0 0; font-size:1.05rem; color:rgba(255,255,255,.9); text-shadow:0 1px 14px rgba(0,0,0,.4); }
.hero-copy .lab{ color:var(--signal); margin-bottom:.9rem; }
.hero-card{ position:absolute; right:var(--pad); top:50%; transform:translateY(-50%); width:min(370px,40vw); background:var(--paper); border-radius:10px; box-shadow:0 20px 52px rgba(20,32,28,.32); padding:1.35rem 1.4rem 1.2rem; }
@media(max-width:1000px){
  .hero-over{ background:linear-gradient(180deg,rgba(20,32,28,.3),rgba(20,32,28,.82)); align-items:flex-end; }
  .hero-copy{ max-width:none; padding-bottom:1.6rem; }
  .hero-card{ position:relative; transform:none; width:auto; margin:-2.6rem var(--pad) 0; z-index:5; }
}
.hc-head{ text-align:center; border-bottom:1px solid var(--rule); padding-bottom:.85rem; }
.hc-head b{ font-family:var(--disp); font-weight:600; font-size:1.6rem; letter-spacing:-.025em; display:block; }
.hc-head small{ font-family:var(--mono); font-size:.64rem; color:var(--ink-45); }
.hc-pick{ display:grid; grid-template-columns:1fr auto 1fr; gap:.5rem; align-items:end; margin:1rem 0 .8rem; }
.hc-pick label{ font-family:var(--mono); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-45); display:block; margin-bottom:.2rem; }
.hc-pick select{ width:100%; font-family:var(--mono); font-size:.78rem; color:var(--ink); background:transparent; border:0; border-bottom:1.5px solid var(--ink); padding:.3rem 0; appearance:none; cursor:pointer; }
.hc-swap{ background:none; border:1px solid var(--rule); border-radius:4px; width:28px; height:28px; cursor:pointer; }
.hc-swap:hover{ border-color:var(--stamp); color:var(--stamp); }
.hcr{ display:flex; align-items:baseline; gap:.4rem; padding:.34rem 0; border-bottom:1px dotted var(--rule); flex-wrap:wrap; font-family:var(--mono); font-size:.77rem; }
.hcr .m{ width:3.2rem; flex:none; font-size:.6rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-45); }
.hcr .d{ flex:1; border-bottom:1px dotted var(--rule); transform:translateY(-3px); min-width:.8rem; }
.hcr .n{ width:100%; font-size:.64rem; line-height:1.55; color:var(--ink-45); }
.hc-foot{ display:flex; gap:.5rem; margin-top:.9rem; }
.hc-foot .btn{ flex:1; justify-content:center; font-size:.79rem; padding:.55rem .5rem; }
.aff{ font-family:var(--mono); font-size:.58rem; letter-spacing:.08em; color:var(--ink-45); text-align:center; margin:.55rem 0 0; }

/* tool index */
.cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(232px,1fr)); border-top:2px solid var(--ink); }
.col{ border-right:1px solid var(--rule); padding:1.3rem 1.3rem 1.5rem 0; }
.col:last-child{ border-right:0; }
@media(max-width:760px){ .col{ border-right:0; border-bottom:1px solid var(--rule); padding-right:0; } }
.col > .lab{ margin-bottom:.9rem; }
.tool{ display:flex; gap:.6rem; align-items:baseline; padding:.48rem 0; border-bottom:1px dotted var(--rule); }
.tool:hover{ background:var(--band-lt); }
.tool .n{ font-family:var(--mono); font-size:.64rem; color:var(--ink-45); flex:none; width:1.7rem; }
.tool .t{ font-weight:500; font-size:.92rem; flex:1; }
.tool .s{ font-family:var(--mono); font-size:.55rem; letter-spacing:.08em; text-transform:uppercase; padding:.12rem .35rem; flex:none; border-radius:2px; }
.s.live{ background:var(--ink); color:var(--signal); }
.s.bld{ background:var(--signal); color:var(--ink); }
.s.pln{ border:1px solid var(--rule); color:var(--ink-45); }
.col-note{ font-family:var(--mono); font-size:.62rem; color:var(--ink-45); margin-top:.9rem; line-height:1.65; }

/* generic panels */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
@media(max-width:840px){ .duo{ grid-template-columns:1fr; } }
.panel{ border:1px solid var(--rule); border-radius:var(--r); padding:clamp(1.3rem,2.6vw,1.9rem); background:var(--paper); }
.panel.dark{ background:var(--ink); color:#fff; border-color:transparent; }
.panel.dark p{ color:rgba(255,255,255,.74); }
.panel.moss{ background:var(--moss); color:#fff; border-color:transparent; }
.panel.moss p{ color:rgba(255,255,255,.78); }
.panel p{ color:var(--ink-70); font-size:.93rem; }

/* interactive widget bits */
.wfield{ display:grid; gap:.45rem; margin-bottom:.9rem; }
.wfield label{ font-family:var(--mono); font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; color:var(--ink-45); }
.panel.dark .wfield label,.panel.moss .wfield label{ color:rgba(255,255,255,.6); }
.wfield select,.wfield input{
  font-family:var(--mono); font-size:.83rem; padding:.55rem .7rem; border-radius:4px;
  border:1px solid var(--rule); background:var(--paper); color:var(--ink); width:100%;
}
.panel.dark .wfield select,.panel.dark .wfield input,
.panel.moss .wfield select,.panel.moss .wfield input{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.22); color:#fff; }
.wrow{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.out{ font-family:var(--mono); font-size:.82rem; line-height:1.8; border-top:1px solid var(--rule); padding-top:.9rem; margin-top:.3rem; }
.panel.dark .out,.panel.moss .out{ border-color:rgba(255,255,255,.2); }
.out b{ color:var(--stamp); } .panel.dark .out b,.panel.moss .out b{ color:var(--signal); }
.big{ font-family:var(--disp); font-size:1.7rem; font-weight:600; letter-spacing:-.02em; display:block; line-height:1.15; }

/* months */
.months{ display:grid; grid-template-columns:repeat(6,1fr); gap:3px; margin:1.2rem 0 1rem; }
.months button{ font-family:var(--mono); font-size:.67rem; background:transparent; color:#fff; border:1px solid rgba(255,255,255,.22); border-radius:3px; padding:.46rem .1rem; cursor:pointer; }
.months button:hover{ border-color:var(--signal); }
.months button[aria-pressed="true"]{ background:var(--signal); color:var(--ink); border-color:var(--signal); font-weight:500; }
.verdict{ font-family:var(--mono); font-size:.78rem; line-height:1.85; border-top:1px solid rgba(255,255,255,.18); padding-top:1rem; margin-top:auto; }
.verdict b{ color:var(--signal); } .verdict .bad{ color:#EE8B72; }
.advis{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:1.4rem; }
@media(max-width:900px){ .advis{ grid-template-columns:1fr; } }
.adv-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:.85rem; align-content:start; }

/* featured + tiles */
.fg{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr); gap:1.4rem; }
@media(max-width:900px){ .fg{ grid-template-columns:1fr; } }
.feat{ position:relative; border-radius:var(--r); overflow:hidden; min-height:355px; display:flex; }
.feat .f{ position:absolute; inset:0; border-radius:0; }
.feat:hover .f img{ transform:scale(1.05); }
.feat-body{ position:relative; z-index:2; margin-top:auto; padding:1.6rem; color:#fff; background:linear-gradient(180deg,rgba(20,32,28,0),rgba(20,32,28,.92) 58%); width:100%; }
.feat-body p{ font-size:.9rem; color:rgba(255,255,255,.84); margin:.55rem 0 1rem; max-width:46ch; }
.pill{ position:absolute; top:1rem; left:1rem; z-index:3; font-family:var(--mono); font-size:.6rem; letter-spacing:.13em; text-transform:uppercase; background:var(--stamp); color:#fff; padding:.32rem .6rem; border-radius:3px; }
.tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; align-content:start; }
@media(max-width:560px){ .tiles{ grid-template-columns:repeat(2,1fr); } }
.tile h4{ margin:.6rem 0 .15rem; color:var(--stamp); font-size:.95rem; }
.tile .pin{ font-family:var(--mono); font-size:.6rem; color:var(--ink-45); }
.tile:hover .f img{ transform:scale(1.07); }

/* driver service */
.drv{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(1.6rem,4vw,3rem); align-items:center; }
@media(max-width:900px){ .drv{ grid-template-columns:1fr; } }
.rates{ font-family:var(--mono); font-size:.8rem; margin-top:1.3rem; }
.rrow{ display:flex; gap:.7rem; align-items:baseline; padding:.55rem 0; border-bottom:1px dotted rgba(255,255,255,.24); }
.rrow .w{ flex:1; }
.rrow .d{ flex:1; border-bottom:1px dotted rgba(255,255,255,.24); transform:translateY(-3px); }
.rrow b{ color:var(--signal); font-weight:500; }
.ticks{ list-style:none; padding:0; margin:1.2rem 0 0; font-size:.9rem; }
.ticks li{ padding-left:1.5rem; position:relative; margin-bottom:.5rem; color:rgba(255,255,255,.85); }
.ticks li::before{ content:"✓"; position:absolute; left:0; color:var(--signal); font-weight:700; }

/* fee ledger */
.led{ font-family:var(--mono); font-size:.79rem; border-top:2px solid var(--ink); }
.lrow{ display:flex; gap:.7rem; align-items:baseline; padding:.5rem 0; border-bottom:1px dotted var(--rule); flex-wrap:wrap; }
.lrow .pl{ flex:1; min-width:10rem; font-weight:500; }
.lrow .dd{ flex:1; border-bottom:1px dotted var(--rule); transform:translateY(-3px); min-width:1rem; }
.lrow .pr{ font-weight:500; } .lrow s{ color:var(--ink-45); }
.lrow .dt{ width:5rem; text-align:right; color:var(--ink-45); font-size:.66rem; }

/* trails / articles */
.row3{ display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:1.4rem; }
.trail .f{ margin-bottom:.9rem; }
.trail:hover .f img{ transform:scale(1.05); }
.trail .tref{ font-family:var(--mono); font-size:.62rem; letter-spacing:.11em; text-transform:uppercase; color:var(--stamp); }
.trail h3{ margin:.4rem 0 .45rem; }
.trail p{ font-size:.89rem; color:var(--ink-70); margin:0; }
.arts{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(1.6rem,4vw,3rem); align-items:center; }
@media(max-width:860px){ .arts{ grid-template-columns:1fr; } }
.art-pair{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
@media(max-width:520px){ .art-pair{ grid-template-columns:1fr; } }
.art{ position:relative; border-radius:var(--r); overflow:hidden; min-height:285px; display:flex; }
.art .f{ position:absolute; inset:0; border-radius:0; }
.art:hover .f img{ transform:scale(1.05); }
.art-body{ position:relative; z-index:2; margin-top:auto; padding:1.2rem; color:#fff; background:linear-gradient(180deg,rgba(20,32,28,0),rgba(20,32,28,.92) 52%); width:100%; }
.art-body .ref{ color:rgba(255,255,255,.62); }
.art-body h4{ margin:.35rem 0 .3rem; font-size:1.02rem; }
.art-body p{ font-size:.8rem; color:rgba(255,255,255,.76); margin:0; }

/* signup */
.field{ display:flex; border:2px solid currentColor; border-radius:4px; overflow:hidden; max-width:400px; }
.field input{ font-family:var(--mono); font-size:.8rem; padding:.75rem .9rem; border:0; background:transparent; color:inherit; flex:1; min-width:0; }
.field input::placeholder{ color:rgba(255,255,255,.45); }
.field button{ font-family:var(--body); font-weight:600; font-size:.78rem; background:var(--signal); color:var(--ink); border:0; padding:.75rem 1.1rem; cursor:pointer; }
.field button:hover{ background:#CE9420; }

.band-bg{ background:var(--band); }
.foot{ background:var(--ink); color:rgba(255,255,255,.62); }
.foot-in{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:2rem; padding-block:3rem; }
@media(max-width:860px){ .foot-in{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .foot-in{ grid-template-columns:1fr; } }
.foot h4{ color:#fff; margin-bottom:.85rem; font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; font-family:var(--mono); font-weight:500; }
.foot a{ display:block; font-size:.87rem; padding:.22rem 0; }
.foot a:hover{ color:var(--signal); }
.foot p{ font-size:.85rem; margin:.8rem 0 0; }
.foot-bar{ border-top:1px solid rgba(255,255,255,.14); padding-block:1.15rem; display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.foot-bar span{ font-family:var(--mono); font-size:.64rem; letter-spacing:.09em; }

/* ═══ EARNING SURFACES ═════════════════════════════════
   REVENUE MAP — one component, placed only at decisions.
     .offer[data-p="transport"]  12Go Asia        ~5% / booking
     .offer[data-p="tours"]      GetYourGuide     8–10% / booking
     .offer[data-p="stay"]       Stay22           ~4% / stay
     .offer[data-p="driver"]     OWN SERVICE      USD 15–30 / job
     .offer[data-p="gear"]       Amazon           3–4%
     .offer[data-p="esim"]       Airalo           ~15%
     .offer[data-p="insure"]     SafetyWing       USD 10–30
     .offer[data-p="list"]       Email capture    compounding
   Swap href="#" for your tracked link. Keep the .offer-tag —
   disclosure next to the link converts better than a buried one.
   ═══════════════════════════════════════════════════════ */
.offer{
  display:flex; align-items:center; gap:.85rem; flex-wrap:wrap;
  margin-top:1rem; padding:.8rem .95rem;
  border:1px solid var(--rule); border-left:3px solid var(--signal);
  border-radius:4px; background:var(--band-lt);
}
.offer-txt{ flex:1; min-width:11rem; font-size:.84rem; line-height:1.45; }
.offer-txt b{ font-weight:600; }
.offer .btn{ font-size:.78rem; padding:.48rem .95rem; flex:none; }
.offer-tag{
  width:100%; font-family:var(--mono); font-size:.56rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-45); margin:0;
}
.offer.own{ border-left-color:var(--moss); background:rgba(47,90,71,.09); }
.offer.free{ border-left-color:var(--ink-45); }
.panel.dark .offer,.panel.moss .offer,.feat-body .offer{
  background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.2);
  border-left-color:var(--signal); color:#fff;
}
.panel.dark .offer-tag,.panel.moss .offer-tag,.feat-body .offer-tag{ color:rgba(255,255,255,.5); }
.offer-sm{ margin-top:.6rem; padding:.55rem .7rem; }
.offer-sm .offer-txt{ font-size:.78rem; }

@media (prefers-reduced-motion:reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }


/* ==========================================================================
   WordPress core + editor classes
   ========================================================================== */
.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; width:1px; word-wrap:normal !important;
}
.screen-reader-text:focus{
  background:var(--paper); clip:auto !important; clip-path:none; color:var(--ink);
  display:block; font-size:.9rem; height:auto; left:5px; line-height:normal;
  padding:15px 23px 14px; text-decoration:none; top:5px; width:auto; z-index:100000;
}
.alignleft{ float:left; margin:.4rem 1.4rem 1rem 0; }
.alignright{ float:right; margin:.4rem 0 1rem 1.4rem; }
.aligncenter{ clear:both; display:block; margin-inline:auto; }
.alignwide{ max-width:1100px; margin-inline:auto; }
.alignfull{ max-width:none; }
.wp-caption{ max-width:100%; }
.wp-caption-text,.gallery-caption{ font-family:var(--mono); font-size:.7rem; color:var(--ink-45); margin-top:.4rem; }
.sticky{ position:relative; }
.bypostauthor{ display:block; }

/* single / archive / page ------------------------------------------------ */
.entry{ max-width:74ch; margin-inline:auto; }
.entry-hero{ margin-bottom:1.8rem; }
.entry-title{ font-size:clamp(1.9rem,1.2rem + 2.6vw,3rem); }
.entry-meta{ font-family:var(--mono); font-size:.68rem; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-45); margin:.9rem 0 0; }
.entry-content{ margin-top:2rem; }
.entry-content > *{ margin-block:1.15rem; }
.entry-content h2{ font-size:1.7rem; margin-top:2.4rem; }
.entry-content h3{ font-size:1.25rem; margin-top:1.9rem; }
.entry-content a{ color:var(--stamp); text-decoration:underline; text-underline-offset:3px; }
.entry-content img{ border-radius:var(--r); }
.entry-content blockquote{
  border-left:3px solid var(--signal); padding-left:1.2rem; margin-left:0;
  font-family:var(--disp); font-size:1.15rem; font-style:italic;
}
.entry-content code{ font-family:var(--mono); font-size:.86em; background:var(--band-lt); padding:.15em .35em; border-radius:3px; }
.entry-content ul,.entry-content ol{ padding-left:1.3rem; }
.entry-content li{ margin-bottom:.45rem; }
.entry-content table{ width:100%; border-collapse:collapse; font-size:.92rem; }
.entry-content th,.entry-content td{ text-align:left; padding:.55rem .6rem; border-bottom:1px solid var(--rule); }
.entry-content th{ font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; }

.archive-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(265px,1fr)); gap:1.6rem; }
.pagination{ display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center; margin-top:3rem; }
.pagination .page-numbers{
  font-family:var(--mono); font-size:.8rem; padding:.5rem .85rem;
  border:1px solid var(--rule); border-radius:4px;
}
.pagination .current,.pagination .page-numbers:hover{ background:var(--ink); color:var(--signal); border-color:var(--ink); }

.notfound{ text-align:center; max-width:52ch; margin-inline:auto; padding-block:clamp(3rem,8vw,7rem); }
.search-form{ display:flex; border:2px solid var(--ink); border-radius:4px; overflow:hidden; max-width:420px; }
.search-form input[type=search]{ flex:1; min-width:0; border:0; background:transparent; padding:.75rem .9rem; font-family:var(--mono); font-size:.82rem; color:var(--ink); }
.search-form input[type=search]:focus{ outline:none; background:var(--band-lt); }
.search-form button{ border:0; background:var(--ink); color:var(--signal); padding:.75rem 1.1rem; cursor:pointer; font-weight:600; font-size:.8rem; }

/* mobile nav ------------------------------------------------------------- */
.nav-toggle{ display:none; background:none; border:1px solid var(--rule); border-radius:4px; padding:.45rem .6rem; cursor:pointer; margin-left:auto; }
.nav-toggle span{ display:block; width:19px; height:2px; background:var(--ink); margin:3.5px 0; }
@media(max-width:1080px){
  .nav-toggle{ display:block; }
  .nav-links{ display:none; position:absolute; top:100%; left:0; right:0; background:var(--paper);
    border-bottom:1px solid var(--rule); flex-direction:column; align-items:stretch;
    gap:0; padding:.6rem var(--pad) 1.1rem; box-shadow:0 14px 30px rgba(20,32,28,.1); }
  .nav-links.open{ display:flex; }
  .nav-links > a,.drop > button{ padding:.62rem 0; border-bottom:1px dotted var(--rule); width:100%; text-align:left; }
  .drop-menu{ position:static; display:block; box-shadow:none; border:0; padding:0 0 .5rem .8rem; min-width:0; background:transparent; }
  .nav-in{ position:relative; flex-wrap:wrap; }
}

/* ==========================================================================
   Route page links (populated by the SLT Route Pages plugin)
   These rules are inert when the plugin is inactive.
   ========================================================================== */
.slt-guide-row{ padding-top:.55rem !important; }
.slt-guide{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--signal); text-decoration:none;
  border-bottom:1px solid rgba(227,166,42,.4); padding-bottom:1px;
}
.slt-guide:hover{ color:#fff; border-color:#fff; }
.panel .slt-guide, .out .slt-guide{ color:var(--stamp); border-color:rgba(168,68,44,.35); }
.panel .slt-guide:hover, .out .slt-guide:hover{ color:var(--ink); border-color:var(--ink); }
.slt-leg{
  color:inherit; text-decoration:underline; text-decoration-style:dotted;
  text-underline-offset:3px; text-decoration-color:var(--stamp);
}
.slt-leg:hover{ color:var(--stamp); text-decoration-style:solid; }
