/*
Theme Name: Lap of the Gap
Theme URI: https://log.rsastaging.com/
Author: Race Space
Author URI: https://www.race-space.com/
Description: Hand-coded custom theme for the Glendalough Lap of the Gap Marathon & Glen to Glen Half, organised by Glendalough AC. Reproduces the approved editorial prototype: Cormorant Garamond + Jost, gold-on-paper restraint, sticky nav, slide-in drawer, live countdown and SVG elevation profile. Not a block/FSE theme.
Version: 0.2.7
Requires at least: 6.0
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: lap-of-the-gap
*/

/* ============================================================
   FONTS (self-hosted — GDPR-safe, no Google CDN)
   ============================================================ */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/cormorant-300.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-400.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/cormorant-500.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url(assets/fonts/cormorant-300-italic.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-400-italic.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:200;font-display:swap;src:url(assets/fonts/jost-200.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/jost-300.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/jost-400.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/jost-500.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/jost-700.woff2) format('woff2');}

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --ink:#182226;--green:#2B3730;--slate:#3E4B4F;--gold:#B89A57;--gold-hi:#D8BE83;--gold-hover:#A68B4E;
  --gold-dk:#8A7434;--sage:#7C8464;--stone:#A89E8A;--rule:#D7D4CE;--paper:#F7F4EE;
  --paper-warm:#EFEAE2;--off:#FDFBF8;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Jost',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --wrap:1480px;
  --pad:clamp(20px,3.6vw,56px);
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.6;}
img{max-width:100%;}
a{color:var(--gold);text-decoration:none;}
a:hover{color:var(--gold-hi);}
p{margin:0;}
h1,h2,h3,h4{margin:0;font-weight:400;font-family:var(--serif);}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.lg-skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:var(--off);padding:12px 20px;z-index:200;font-size:12px;letter-spacing:.2em;text-transform:uppercase;}
.lg-skip:focus{left:0;color:var(--off);}
.lg-page{min-height:100vh;display:flex;flex-direction:column;background:var(--paper);}
main{flex:1;}
@keyframes lgFade{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@keyframes lgSlide{from{opacity:0;transform:translateX(100%);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;}}

/* Shared helpers */
.lg-wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.lg-label{font-family:var(--sans);font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--sage);}
.lg-eyebrow{display:flex;align-items:center;gap:14px;}
.lg-eyebrow .rule{width:52px;height:1px;background:var(--gold);display:block;}
.lg-eyebrow span{font-size:10.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);}
.lg-btn{display:inline-block;font-family:var(--sans);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--off);background:var(--gold);padding:19px 34px;border:0;cursor:pointer;transition:background .18s;}
.lg-btn:hover{background:var(--gold-hover);color:var(--off);}
/* Bold on the filled gold "Enter"/primary CTAs (ghost buttons stay light). */
.lg-btn:not(.lg-btn--ghost):not(.lg-btn--ghost-dk),.lg-nav__enter,.lg-drawer__enter{font-weight:700;}
.lg-btn--sm{font-size:11.5px;letter-spacing:.2em;padding:13px 22px;}
.lg-btn--ghost{background:transparent;color:var(--off);border:1px solid rgba(253,251,248,.32);}
.lg-btn--ghost:hover{background:transparent;border-color:var(--gold);color:var(--off);}
.lg-btn--ghost-dk{background:transparent;color:var(--ink);border:1px solid var(--stone);}
.lg-btn--ghost-dk:hover{background:transparent;border-color:var(--gold);color:var(--ink);}
.lg-morelink{display:inline-flex;align-items:center;gap:12px;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:8px;}
.lg-morelink:hover{color:var(--ink);}
.lg-morelink svg{display:block;}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.lg-header{position:sticky;top:0;z-index:60;background:rgba(24,34,38,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(215,212,206,.13);}
.lg-header__inner{max-width:var(--wrap);margin:0 auto;padding:14px var(--pad);min-height:78px;display:flex;align-items:center;gap:clamp(16px,3vw,48px);flex-wrap:wrap;}
.lg-brand{display:flex;align-items:center;gap:16px;text-decoration:none;flex:none;}
.lg-brand img{height:70px;width:auto;display:block;}
.lg-brand__loc{font-size:9px;letter-spacing:.34em;color:var(--sage);text-transform:uppercase;line-height:1.6;max-width:9ch;}
.lg-nav{display:flex;align-items:center;gap:clamp(12px,1.7vw,26px);margin-left:auto;flex-wrap:wrap;justify-content:flex-end;}
.lg-nav__list{display:flex;align-items:center;gap:clamp(12px,1.7vw,26px);flex-wrap:wrap;justify-content:flex-end;list-style:none;margin:0;padding:0;}
.lg-nav__list li{list-style:none;}
.lg-nav__link,.lg-nav__list a{display:inline-block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(215,212,206,.66);padding:6px 0;border-bottom:1px solid transparent;white-space:nowrap;transition:color .18s,border-color .18s;}
.lg-nav__link:hover,.lg-nav__list a:hover{color:var(--off);border-bottom-color:var(--gold);}
.lg-nav__link.is-active,.lg-nav__list .current-menu-item>a,.lg-nav__list .current-menu-ancestor>a,.lg-nav__list .current_page_item>a,.lg-nav__list .current-page-ancestor>a{color:var(--off);border-bottom-color:var(--gold);}
.lg-nav__enter{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--off);background:var(--gold);padding:13px 22px;white-space:nowrap;flex:none;transition:background .18s;}
.lg-nav__enter:hover{background:var(--gold-hover);color:var(--off);}
.lg-burger{margin-left:auto;flex:none;display:none;flex-direction:column;justify-content:center;gap:6px;width:48px;height:48px;padding:0 10px;background:transparent;border:1px solid rgba(215,212,206,.28);cursor:pointer;transition:border-color .18s;}
.lg-burger:hover{border-color:var(--gold);}
.lg-burger span{display:block;height:1.5px;background:var(--off);}

/* below 1080px: swap nav for burger */
@media (max-width:1079.98px){
  .lg-nav{display:none;}
  .lg-burger{display:flex;}
}

/* Drawer */
.lg-drawer{position:fixed;inset:0;z-index:90;display:none;justify-content:flex-end;}
.lg-drawer.is-open{display:flex;}
.lg-drawer__backdrop{position:absolute;inset:0;background:rgba(20,29,33,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:lgFade .3s ease both;border:0;cursor:pointer;width:100%;height:100%;}
.lg-drawer__panel{position:relative;width:min(88vw,360px);height:100%;background:var(--ink);border-left:1px solid rgba(215,212,206,.16);display:flex;flex-direction:column;animation:lgSlide .32s cubic-bezier(.22,.61,.36,1) both;overflow-y:auto;}
.lg-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid rgba(215,212,206,.14);}
.lg-drawer__head img{height:55px;width:auto;display:block;}
.lg-drawer__close{flex:none;width:42px;height:42px;background:transparent;border:1px solid rgba(215,212,206,.28);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:border-color .18s;}
.lg-drawer__close:hover{border-color:var(--gold);}
.lg-drawer__nav{display:flex;flex-direction:column;padding:12px 24px 24px;}
.lg-drawer__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.lg-drawer__list li{list-style:none;}
.lg-drawer__link,.lg-drawer__list a{display:block;font-family:var(--serif);font-size:24px;font-weight:400;color:var(--off);padding:15px 0;border-bottom:1px solid rgba(215,212,206,.1);transition:color .18s;}
.lg-drawer__link:hover,.lg-drawer__link.is-active,.lg-drawer__list a:hover,.lg-drawer__list .current-menu-item>a,.lg-drawer__list .current-menu-ancestor>a,.lg-drawer__list .current_page_item>a{color:var(--gold);}
.lg-drawer__enter{margin-top:26px;text-align:center;font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--off);background:var(--gold);padding:18px 24px;}
.lg-drawer__enter:hover{background:var(--gold-hover);color:var(--off);}
.lg-drawer__loc{margin-top:22px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);line-height:1.9;}

/* ============================================================
   AWAITING-CONFIRMATION NOTICE (reusable editorial state)
   ============================================================ */
.lg-notice{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gold);padding:9px 14px;}
.lg-notice svg{flex:none;}
.lg-notice__label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk);}
.lg-notice--ondark{border-color:rgba(184,154,87,.55);}
.lg-notice--ondark .lg-notice__label{color:var(--gold);}
.lg-notice--lg{padding:11px 16px;}

/* ============================================================
   HERO
   ============================================================ */
.lg-hero{position:relative;min-height:min(88vh,860px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);}
.lg-hero__img,.lg-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;}
.lg-hero__video{background:var(--ink);}
/* Single-layer gradient only — a two-layer (comma) gradient renders opaque in some Chromium/Brave builds. */
.lg-hero__scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(24,34,38,.9) 0%,rgba(24,34,38,.58) 42%,rgba(24,34,38,.22) 100%);}
.lg-hero__inner{position:relative;width:100%;max-width:var(--wrap);margin:0 auto;padding:clamp(60px,9vw,120px) var(--pad) clamp(44px,5vw,68px);display:flex;flex-wrap:wrap;row-gap:26px;justify-content:space-between;align-items:flex-end;gap:40px;}
.lg-hero__copy{max-width:840px;animation:lgFade 1.4s ease both;}
.lg-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(46px,7.4vw,116px);line-height:.94;letter-spacing:-.015em;color:var(--off);text-wrap:balance;margin-top:26px;}
.lg-hero__lede{margin-top:30px;max-width:520px;font-weight:300;font-size:clamp(15px,1.2vw,18px);line-height:1.8;color:rgba(253,251,248,.82);}
.lg-hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px;}
.lg-hero__count{text-align:right;flex:none;}
.lg-hero__count .num{font-family:var(--serif);font-size:clamp(52px,6vw,88px);line-height:1;color:var(--off);font-weight:300;display:block;text-shadow:0 2px 26px rgba(24,34,38,.6),0 1px 4px rgba(24,34,38,.45);}
.lg-hero__count .cap{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:#C9C2B4;margin-top:14px;display:block;text-shadow:0 1px 12px rgba(24,34,38,.8),0 1px 3px rgba(24,34,38,.6);}
.lg-hero__count .tick{width:1px;height:64px;background:linear-gradient(var(--gold),rgba(184,154,87,0));margin:22px 0 0 auto;}

/* ============================================================
   STAT STRIP (dark)
   ============================================================ */
.lg-stats{background:var(--ink);border-top:1px solid rgba(215,212,206,.14);}
.lg-stats__grid{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
.lg-stat{padding:38px 30px;border-left:1px solid rgba(215,212,206,.14);}
.lg-stat:first-child{padding-left:0;border-left:0;}
.lg-stat:last-child{padding-right:0;}
.lg-stat__k{font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--sage);margin-bottom:12px;}
.lg-stat__v{font-family:var(--serif);font-size:26px;color:var(--off);}
.lg-stat__v small{font-size:15px;color:var(--stone);margin-left:8px;}
.lg-stat__note{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-top:10px;}

/* ============================================================
   INTRO (paper, offset grid)
   ============================================================ */
.lg-sect{position:relative;overflow:hidden;}
.lg-sect--paper{background:var(--paper);}
.lg-sect--warm{background:var(--paper-warm);}
.lg-sect--ink{background:var(--ink);color:var(--off);}
.lg-sect--green{background:var(--green);color:var(--off);}
/* Vertical-only helpers — must NOT reset the horizontal padding set by .lg-wrap. */
.lg-pad{padding-top:clamp(72px,9vw,140px);padding-bottom:clamp(72px,9vw,140px);}
.lg-pad-lg{padding-top:clamp(72px,8vw,124px);padding-bottom:clamp(72px,8vw,124px);}
.lg-intro__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(40px,7vw,110px);}
.lg-intro__lead{font-family:var(--serif);font-size:clamp(26px,2.9vw,42px);line-height:1.32;color:var(--ink);font-weight:300;text-wrap:pretty;}
.lg-intro__body{margin-top:34px;max-width:60ch;font-weight:300;font-size:17px;line-height:1.85;color:var(--slate);}
.lg-intro__aside{padding-top:clamp(0px,4vw,72px);}
.lg-deflist{}
.lg-deflist__row{border-top:1px solid var(--rule);padding:22px 0;display:flex;justify-content:space-between;gap:20px;}
.lg-deflist__row:last-child{border-bottom:1px solid var(--rule);}
.lg-deflist__k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);}
.lg-deflist__v{font-family:var(--serif);font-size:19px;color:var(--ink);text-align:right;}

/* ============================================================
   TWO WAYS UP (asymmetric cards)
   ============================================================ */
.lg-secthead{display:flex;align-items:baseline;gap:20px;margin-bottom:clamp(34px,4vw,60px);}
.lg-secthead h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,50px);font-weight:300;color:var(--ink);}
.lg-secthead .rule{flex:1;height:1px;background:var(--rule);}
.lg-secthead .tag{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--sage);white-space:nowrap;}
.lg-secthead--dark h2{color:var(--off);}
.lg-secthead--dark .rule{background:rgba(215,212,206,.18);}
.lg-twoup{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(24px,3vw,54px);align-items:start;}
.lg-card{display:block;text-decoration:none;color:inherit;}
.lg-card--offset{margin-top:clamp(0px,6vw,96px);}
.lg-card__media{position:relative;overflow:hidden;background:var(--ink);}
.lg-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.lg-card:hover .lg-card__media img{transform:scale(1.03);}
.lg-ar-16-10{aspect-ratio:16/10;}
.lg-ar-4-5{aspect-ratio:4/5;}
.lg-ar-5-4{aspect-ratio:5/4;}
.lg-ar-3-4{aspect-ratio:3/4;}
.lg-card__badge{position:absolute;left:0;bottom:0;padding:28px 32px;background:linear-gradient(0deg,rgba(24,34,38,.78),rgba(24,34,38,0));}
.lg-card__badge span{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);}
.lg-card__foot{padding-top:26px;margin-top:26px;border-top:1px solid var(--rule);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;}
.lg-card__foot--stack{display:block;}
.lg-card h3{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.05;font-size:clamp(28px,3vw,42px);}
.lg-card--sm h3{font-size:clamp(24px,2.2vw,32px);line-height:1.1;}
.lg-card__desc{margin-top:16px;max-width:52ch;font-weight:300;font-size:16px;line-height:1.8;color:var(--slate);}
.lg-card--sm .lg-card__desc{font-size:15.5px;margin-top:14px;}
.lg-pill{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--gold);padding-bottom:7px;white-space:nowrap;}
.lg-card--sm .lg-pill{display:inline-block;margin-top:22px;}

/* ============================================================
   ELEVATION PROFILE
   ============================================================ */
.lg-prof__head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(30px,5vw,80px);align-items:end;margin-bottom:clamp(40px,5vw,70px);}
.lg-prof__head h2{font-family:var(--serif);font-size:clamp(30px,3.4vw,50px);font-weight:300;margin-top:18px;line-height:1.05;}
.lg-prof__head p{font-weight:300;font-size:16px;line-height:1.85;color:rgba(253,251,248,.72);max-width:62ch;}
.lg-prof__svg{width:100%;height:clamp(190px,22vw,300px);display:block;}
.lg-prof__wps{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));border-top:1px solid rgba(215,212,206,.16);margin-top:8px;}
.lg-wp{padding:20px 14px 0 0;}
.lg-wp__km{font-family:var(--serif);font-size:19px;color:var(--gold);}
.lg-wp__name{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(253,251,248,.66);margin-top:8px;line-height:1.5;}
.lg-wp__alt{font-size:11px;color:var(--sage);margin-top:6px;}
.lg-prof__note{margin-top:26px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(168,158,138,.7);}

/* ============================================================
   COURSE MAP
   ============================================================ */
.lg-coursemap{margin:0;}
.lg-coursemap picture{display:block;}
.lg-coursemap img{display:block;width:100%;height:auto;}
.lg-coursemap__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px 40px;margin-top:clamp(24px,3vw,34px);}
.lg-coursemap__note{margin:0;max-width:56ch;font-size:11px;letter-spacing:.14em;line-height:1.9;text-transform:uppercase;color:rgba(168,158,138,.7);}

/* ============================================================
   ENTRY PHASES
   ============================================================ */
.lg-entry__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(30px,5vw,80px);}
.lg-entry__lead h2{font-family:var(--serif);font-size:clamp(28px,3.2vw,46px);font-weight:300;margin-top:18px;line-height:1.06;color:var(--ink);}
.lg-entry__lead p{margin-top:22px;font-weight:300;font-size:16px;line-height:1.85;color:var(--slate);}
.lg-phase{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,auto));gap:clamp(16px,3vw,44px);align-items:baseline;padding:26px 0;border-top:1px solid var(--rule);}
.lg-phase__no{font-size:11px;color:var(--stone);letter-spacing:.14em;}
.lg-phase__name{font-family:var(--serif);font-size:clamp(21px,2vw,28px);color:var(--ink);}
.lg-phase__note{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);}
.lg-phase__price{font-family:var(--serif);font-size:clamp(22px,2vw,30px);color:var(--gold);}
.lg-entry__foot{border-top:1px solid var(--rule);padding-top:28px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;}
.lg-entry__foot span{font-size:13px;font-weight:300;color:var(--slate);}
.lg-btn--sm.lg-btn{padding:18px 32px;font-size:12px;}

/* ============================================================
   QUOTE
   ============================================================ */
.lg-quote{position:relative;overflow:hidden;}
.lg-quote__bg{position:absolute;inset:0;}
.lg-quote__bg img{width:100%;height:100%;object-fit:cover;opacity:.36;}
.lg-quote__inner{position:relative;max-width:1100px;margin:0 auto;padding:clamp(80px,10vw,160px) var(--pad);text-align:left;}
.lg-quote blockquote{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(24px,3.1vw,44px);line-height:1.34;text-wrap:pretty;}
.lg-quote__by{margin-top:34px;display:flex;align-items:center;gap:16px;}
.lg-quote__by .rule{width:36px;height:1px;background:var(--gold);}
.lg-quote__by span{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--stone);}
.lg-quote svg{margin-bottom:30px;}

/* ============================================================
   RACE MORNING (3-then-2 wrapping row)
   ============================================================ */
.lg-morning__row{display:flex;flex-wrap:wrap;column-gap:clamp(20px,2.6vw,44px);row-gap:clamp(30px,3.4vw,46px);margin-top:clamp(38px,4.5vw,64px);}
.lg-step{flex:1 1 min(100%,240px);padding-right:8px;}
.lg-step--wide{flex:1 1 min(100%,380px);}
.lg-step__no{font-size:10px;letter-spacing:.24em;color:var(--gold);margin-bottom:16px;}
.lg-step__t{font-family:var(--serif);font-size:22px;color:var(--ink);line-height:1.2;}
.lg-step__b{margin-top:12px;font-weight:300;font-size:14.5px;line-height:1.75;color:var(--slate);}
.lg-morning h2{font-family:var(--serif);font-size:clamp(28px,3.2vw,46px);font-weight:300;color:var(--ink);max-width:20ch;line-height:1.06;}

/* ============================================================
   MOSAIC STRIP
   ============================================================ */
.lg-strip{background:var(--ink);}
.lg-strip__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;}
.lg-strip__cell{display:block;aspect-ratio:16/10;overflow:hidden;}
.lg-strip__cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.lg-strip__cell:hover img{transform:scale(1.04);}

/* ============================================================
   CLOSING CTA
   ============================================================ */
.lg-closing{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(30px,5vw,70px);align-items:end;}
.lg-closing h2{font-family:var(--serif);font-size:clamp(32px,4.4vw,66px);font-weight:300;color:var(--ink);line-height:1.02;max-width:22ch;}
.lg-closing__p{margin-top:24px;max-width:52ch;font-weight:300;font-size:16.5px;line-height:1.85;color:var(--slate);}
.lg-closing__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:flex-start;}

/* ============================================================
   FOOTER
   ============================================================ */
.lg-footer{background:var(--ink);color:var(--off);border-top:1px solid rgba(215,212,206,.14);}
.lg-footer__inner{max-width:var(--wrap);margin:0 auto;padding:clamp(56px,6vw,88px) var(--pad) 0;}
.lg-footer__cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(28px,4vw,60px);}
.lg-footer__brand img{height:92px;width:auto;display:block;}
.lg-footer__brand p{margin-top:18px;max-width:34ch;font-weight:300;font-size:14.5px;line-height:1.8;color:rgba(253,251,248,.62);}
.lg-footer__brand .lg-btn{margin-top:26px;font-size:11.5px;letter-spacing:.22em;padding:15px 26px;}
.lg-footer__coltitle{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin-bottom:20px;}
.lg-footer__menu{list-style:none;margin:0;padding:0;}
.lg-footer__menu li{list-style:none;}
.lg-footer__link,.lg-footer__menu a{display:block;padding:8px 0;font-size:14px;font-weight:300;color:rgba(253,251,248,.78);}
.lg-footer__link:hover,.lg-footer__menu a:hover{color:var(--off);}
.lg-footer__bar{margin-top:clamp(44px,5vw,72px);border-top:1px solid rgba(215,212,206,.14);padding:28px 0 36px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;}
.lg-footer__legal{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;}
.lg-footer__legal span,.lg-footer__legal a{font-size:12px;font-weight:300;color:rgba(168,158,138,.9);}
.lg-footer__legal a:hover{color:var(--off);}
.lg-footer__powered{display:flex;align-items:center;gap:16px;}
.lg-footer__powered .eyebrow{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);}
.lg-footer__powered a{display:block;line-height:0;}
.lg-footer__powered img{height:34px;width:auto;display:block;}

/* ============================================================
   PAGE HEROES / SHARED (for later pages, base styles)
   ============================================================ */
.lg-phero{position:relative;background:var(--ink);overflow:hidden;}
.lg-phero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.45;}
.lg-phero__inner{position:relative;max-width:var(--wrap);margin:0 auto;padding:clamp(70px,9vw,140px) var(--pad) clamp(56px,6vw,96px);}
.lg-phero .eyebrow{font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);}
.lg-phero h1{font-family:var(--serif);font-weight:300;font-size:clamp(38px,5.6vw,86px);line-height:1;color:var(--off);margin-top:22px;max-width:22ch;}
.lg-phero p{margin-top:26px;max-width:60ch;font-weight:300;font-size:17px;line-height:1.85;color:rgba(253,251,248,.76);}
/* Tall image-led hero (course pages): full-opacity photo + single-layer scrim. */
.lg-phero--tall{min-height:min(64vh,600px);display:flex;align-items:flex-end;}
.lg-phero--tall .lg-phero__img{opacity:1;}
.lg-phero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,34,38,.85),rgba(24,34,38,.2));}
.lg-phero--tall .lg-phero__inner{width:100%;}

/* ============================================================
   COURSE PAGES (Marathon / Half)
   ============================================================ */
.lg-course__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(36px,6vw,96px);align-items:start;}
.lg-course__lead{font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);line-height:1.4;font-weight:300;color:var(--ink);}
.lg-course__stages{margin-top:40px;display:grid;gap:34px;}
.lg-course__k{font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--sage);margin-bottom:12px;}
.lg-course__b{font-weight:300;font-size:16.5px;line-height:1.85;color:var(--slate);max-width:62ch;}
.lg-course__aside{padding-top:8px;}
.lg-facts{border:1px solid var(--rule);padding:30px 28px;background:var(--off);}
.lg-facts__title{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);margin-bottom:22px;}
.lg-facts__row{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--paper-warm);}
.lg-facts__row span{font-size:14px;font-weight:300;color:var(--slate);}
.lg-facts__row .v{font-family:var(--serif);font-size:18px;color:var(--ink);font-weight:400;text-align:right;}
.lg-facts__notice{margin-top:22px;}
.lg-btn--block{display:block;text-align:center;margin-top:26px;}
.lg-course__photo{margin-top:26px;overflow:hidden;background:var(--ink);}
.lg-course__photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ============================================================
   SHARED PAGE TYPOGRAPHY
   ============================================================ */
.lg-h1{font-family:var(--serif);font-weight:300;font-size:clamp(38px,5.4vw,80px);line-height:1;color:var(--ink);}
.lg-h2{font-family:var(--serif);font-weight:300;font-size:clamp(26px,2.8vw,40px);color:var(--ink);line-height:1.1;}
.lg-prose{margin-top:20px;max-width:64ch;font-weight:300;font-size:16.5px;line-height:1.85;color:var(--slate);}
.lg-prose + .lg-prose{margin-top:20px;}
.lg-twocol{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(30px,5vw,80px);}

/* ---- Races index ---- */
.lg-racerow{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,64px);align-items:center;padding:clamp(44px,5vw,72px) 0;border-bottom:1px solid var(--rule);}
.lg-racerow:last-child{border-bottom:0;}
.lg-racerow__main{display:grid;grid-template-columns:1fr;gap:inherit;align-items:center;text-decoration:none;color:inherit;}
.lg-racerow__media{overflow:hidden;background:var(--ink);}
.lg-racerow__media picture{display:block;width:100%;height:100%;}
.lg-racerow__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.lg-racerow__main:hover .lg-racerow__media img{transform:scale(1.03);}
.lg-racerow__eyebrow{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--sage);}
.lg-racerow h2{font-family:var(--serif);font-size:clamp(28px,3.4vw,50px);font-weight:400;color:var(--ink);margin-top:16px;line-height:1.04;}
.lg-racerow__desc{margin-top:20px;max-width:54ch;font-weight:300;font-size:16.5px;line-height:1.85;color:var(--slate);}
.lg-racestats{display:flex;flex-wrap:wrap;gap:0 44px;margin-top:30px;}
.lg-racestats>div{padding-top:16px;border-top:1px solid var(--rule);min-width:100px;}
.lg-racestats .k{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);}
.lg-racestats .v{display:block;font-family:var(--serif);font-size:23px;margin-top:6px;color:var(--ink);}
.lg-racerow .lg-pill{display:inline-block;margin-top:32px;}
/* Course map beside each race: preview + link to the interactive route */
.lg-racemap{margin:0;}
.lg-racemap__label{display:block;font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--sage);margin-bottom:16px;}
.lg-racemap__frame{overflow:hidden;background:var(--ink);}
.lg-racemap__frame picture{display:block;}
.lg-racemap__frame img{display:block;width:100%;height:auto;}
.lg-racemap__foot{margin-top:clamp(18px,2.2vw,26px);}

/* Three columns once the row is wide enough for the copy to keep its stats on one line:
   photo and map bookend the copy, mirrored on the reversed row. */
@media (min-width:680px){
	.lg-racerow__main{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:1200px){
	.lg-racerow{grid-template-columns:minmax(0,2fr) minmax(0,1fr);}
	.lg-racerow--rev{grid-template-columns:minmax(0,1fr) minmax(0,2fr);}
	.lg-racerow--rev .lg-racerow__main{grid-column:2;grid-row:1;}
	.lg-racerow--rev .lg-racemap{grid-column:1;grid-row:1;}
	.lg-racerow h2{font-size:clamp(30px,2.9vw,42px);}
	.lg-racerow__desc{font-size:15.5px;line-height:1.8;}
	.lg-racestats{gap:0 clamp(14px,1.6vw,30px);margin-top:26px;}
	.lg-racestats>div{min-width:84px;}
	/* crop the dead margin either side of the route so the preview still reads at column width */
	.lg-racemap__frame{aspect-ratio:3/4;}
	.lg-racemap__frame picture{height:100%;}
	.lg-racemap__frame img{height:100%;object-fit:cover;}
	.lg-racemap__frame--marathon img{object-position:49% center;}
	.lg-racemap__frame--half img{object-position:44% center;}
	.lg-racemap__foot .lg-btn{display:block;text-align:center;}
}

/* ---- Guide: journey + transport ---- */
.lg-journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));column-gap:clamp(20px,2.6vw,36px);row-gap:32px;}
.lg-journey__step{padding:22px 24px 0 0;border-top:1px solid var(--rule);}
.lg-journey__no{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.lg-journey__no span:first-child{font-size:10px;letter-spacing:.2em;color:var(--gold);}
.lg-journey__no .line{flex:1;height:1px;background:var(--rule);}
.lg-journey__t{font-family:var(--serif);font-size:21px;color:var(--ink);line-height:1.2;}
.lg-journey__b{margin-top:12px;font-weight:300;font-size:14.5px;line-height:1.75;color:var(--slate);}
.lg-transport{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(28px,4vw,60px);margin-top:clamp(36px,4vw,56px);align-items:start;}
.lg-transport__hero{background:var(--ink);color:var(--off);padding:clamp(30px,3.4vw,48px);}
.lg-transport__badge{display:flex;align-items:center;gap:14px;}
.lg-transport__badge span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);}
.lg-transport__hero h3{font-family:var(--serif);font-size:clamp(24px,2.6vw,36px);font-weight:400;margin-top:20px;line-height:1.1;}
.lg-transport__hero p{margin-top:18px;max-width:52ch;font-weight:300;font-size:16px;line-height:1.85;color:rgba(253,251,248,.76);}
.lg-transport__fares{display:flex;flex-wrap:wrap;gap:0 40px;margin-top:30px;}
.lg-transport__fares>div{padding-top:14px;border-top:1px solid rgba(215,212,206,.2);}
.lg-transport__fares .k{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);}
.lg-transport__fares .v{display:block;font-family:var(--serif);font-size:24px;margin-top:6px;color:var(--gold);}
.lg-transport__alts{display:grid;border-top:1px solid var(--rule);}
.lg-transport__alt{padding:26px 0;border-bottom:1px solid var(--rule);}
.lg-transport__althead{display:flex;align-items:center;gap:12px;}
.lg-transport__althead h4{font-family:var(--serif);font-size:21px;font-weight:400;color:var(--ink);}
.lg-transport__alt p{margin-top:12px;font-weight:300;font-size:15px;line-height:1.8;color:var(--slate);max-width:52ch;}
.lg-hqtag{font-size:12px;color:var(--sage);letter-spacing:.12em;text-transform:uppercase;text-align:right;}

/* ---- Travel ---- */
.lg-stack__row{border-bottom:1px solid var(--rule);padding:26px 0;}
.lg-stack__row:first-child{border-top:1px solid var(--rule);}
.lg-stack__row h3{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);}
.lg-stack__row p{margin-top:10px;font-weight:300;font-size:15px;line-height:1.8;color:var(--slate);max-width:58ch;}
.lg-partners{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;}
@media(max-width:640px){.lg-partners{grid-template-columns:1fr;}}

/* ---- Spectators ---- */
.lg-spot{border-top:1px solid var(--rule);padding:26px 0;}
.lg-spot:last-child{border-bottom:1px solid var(--rule);}
.lg-spot__head{display:flex;justify-content:space-between;gap:20px;align-items:baseline;}
.lg-spot__head h3{font-family:var(--serif);font-size:clamp(22px,2.2vw,30px);font-weight:400;color:var(--ink);}
.lg-spot__head span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);white-space:nowrap;}
.lg-spot p{margin-top:12px;max-width:60ch;font-weight:300;font-size:16px;line-height:1.85;color:var(--slate);}
.lg-rules{background:var(--paper-warm);padding:clamp(26px,3vw,40px);}
.lg-rules h3{font-family:var(--serif);font-size:24px;font-weight:400;color:var(--ink);}
.lg-rules__list{margin-top:20px;display:grid;gap:16px;}
.lg-rules__item{display:flex;gap:14px;align-items:flex-start;}
.lg-rules__item svg{flex:none;margin-top:3px;}
.lg-rules__item p{font-weight:300;font-size:15px;line-height:1.75;color:var(--slate);}

/* ---- Results ---- */
.lg-edition{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,auto));gap:clamp(16px,3vw,40px);align-items:baseline;padding:19px 0;border-top:1px solid var(--rule);}
.lg-edition__year{font-family:var(--serif);font-size:23px;color:var(--ink);}
.lg-edition__label{font-size:14px;font-weight:300;color:var(--slate);}
.lg-edition__status{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);}
.lg-edition__link{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:5px;color:var(--ink);}
.lg-records{margin-top:clamp(30px,4vw,50px);display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));column-gap:clamp(20px,3vw,44px);row-gap:26px;}
.lg-record{padding:22px 24px 0 0;border-top:1px solid var(--rule);}
.lg-record__k{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--sage);}
.lg-record__v{font-family:var(--serif);font-size:clamp(28px,3vw,40px);color:var(--ink);margin-top:14px;}
.lg-record__note{font-size:12px;color:var(--stone);margin-top:8px;letter-spacing:.1em;text-transform:uppercase;}

/* ---- Elites & prizes ---- */
.lg-prizes{margin-top:26px;}
.lg-prizes__row{border-top:1px solid var(--rule);padding:18px 0;display:flex;justify-content:space-between;gap:20px;}
.lg-prizes__row:last-child{border-bottom:1px solid var(--rule);}
.lg-prizes__row span{font-size:15px;font-weight:300;color:var(--ink);}
/* Confirmed cash values read gold, like the entry prices and coach fares. */
.lg-prizes__row .v{font-family:var(--serif);font-size:19px;color:var(--gold);}

/* ---- About ---- */
.lg-about{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(32px,6vw,90px);align-items:start;}
@media(max-width:820px){.lg-about{grid-template-columns:1fr;}}
.lg-about__lead{font-family:var(--serif);font-size:clamp(21px,2.2vw,30px);line-height:1.45;font-weight:300;color:var(--ink);}
.lg-about__photo{overflow:hidden;background:var(--ink);}
.lg-about__photo picture{display:block;width:100%;height:100%;}
.lg-about__photo img{width:100%;height:100%;object-fit:cover;display:block;}
.lg-about__vol{margin-top:26px;border:1px solid var(--rule);padding:28px 26px;}
.lg-about__vol h3{font-family:var(--serif);font-size:22px;font-weight:400;color:var(--ink);}
.lg-about__vol p{margin-top:14px;font-weight:300;font-size:15px;line-height:1.8;color:var(--slate);}
.lg-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));column-gap:clamp(20px,2.6vw,36px);row-gap:28px;margin-top:36px;}
.lg-values>div{padding:20px 20px 0 0;border-top:1px solid var(--rule);}
.lg-values__k{font-family:var(--serif);font-size:30px;color:var(--gold);}
.lg-values__b{font-size:13px;font-weight:300;color:var(--slate);margin-top:8px;line-height:1.7;}

/* ---- Gallery ---- */
.lg-gallery__head{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px;align-items:end;}
.lg-gallery__credit{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(168,158,138,.85);line-height:2;text-align:right;}
.lg-mosaic{display:flex;flex-wrap:wrap;gap:1px;background:var(--ink);}
.lg-mosaic__cell{overflow:hidden;display:block;margin:0;padding:0;border:0;background:var(--ink);font:inherit;color:inherit;-webkit-appearance:none;appearance:none;cursor:zoom-in;}
.lg-mosaic__cell:focus-visible{outline:2px solid var(--gold);outline-offset:-3px;}
.lg-mosaic__cell picture{display:block;width:100%;height:100%;}
.lg-mosaic__cell img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,.61,.36,1);}
.lg-mosaic__cell:hover img{transform:scale(1.03);}

/* ---- Lightbox ---- */
.lg-lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;background:rgba(20,29,33,.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:clamp(20px,4vw,64px);animation:lgFade .25s ease both;}
.lg-lightbox.is-open{display:flex;}
.lg-lightbox__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:100%;}
.lg-lightbox__img{max-width:min(1100px,90vw);max-height:82vh;width:auto;height:auto;object-fit:contain;display:block;}
.lg-lightbox__cap{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(168,158,138,.85);text-align:center;}
.lg-lightbox__close,.lg-lightbox__nav{position:absolute;background:transparent;border:1px solid rgba(215,212,206,.28);color:var(--off);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .18s,color .18s;}
.lg-lightbox__close{top:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px);width:46px;height:46px;}
.lg-lightbox__nav{top:50%;transform:translateY(-50%);width:52px;height:52px;}
.lg-lightbox__prev{left:clamp(12px,2vw,28px);}
.lg-lightbox__next{right:clamp(12px,2vw,28px);}
.lg-lightbox__close:hover,.lg-lightbox__nav:hover{border-color:var(--gold);color:var(--gold);}
@media(max-width:640px){.lg-lightbox__nav{width:44px;height:44px;}.lg-lightbox__img{max-height:74vh;}}

/* ---- Contact Form 7 (styled to match the .lg-form design) ---- */
.lg-form .wpcf7 p,.lg-form form p{margin:0 0 22px;}
.lg-form label{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);}
.lg-form input[type=text],.lg-form input[type=email],.lg-form input[type=tel],.lg-form select,.lg-form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,212,206,.32);padding:10px 0;margin-top:10px;color:var(--off);font-family:var(--sans);font-size:16px;font-weight:300;outline:none;}
.lg-form textarea{resize:vertical;min-height:96px;}
.lg-form select option{color:var(--ink);}
.lg-form input:focus,.lg-form select:focus,.lg-form textarea:focus{border-bottom-color:var(--gold);}
.lg-form input[type=submit]{display:inline-block;margin-top:6px;font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--off);background:var(--gold);border:0;padding:18px 34px;cursor:pointer;transition:background .18s;-webkit-appearance:none;appearance:none;}
.lg-form input[type=submit]:hover{background:var(--gold-hover);}
.lg-form .wpcf7-response-output{margin:18px 0 0!important;border:1px solid rgba(215,212,206,.32)!important;padding:12px 16px!important;font-size:13px;font-weight:300;color:var(--off);}
.lg-form .wpcf7-not-valid-tip{color:#e6b8a2;font-size:12px;letter-spacing:.04em;text-transform:none;margin-top:6px;}
.lg-form .wpcf7-spinner{margin:0 0 0 12px;}

/* ---- FAQ ---- */
.lg-faq{max-width:1100px;margin:0 auto;padding-left:var(--pad);padding-right:var(--pad);}
.lg-faq__item{border-top:1px solid var(--rule);}
.lg-faq__q{width:100%;display:flex;gap:24px;align-items:baseline;justify-content:space-between;padding:24px 0;background:transparent;border:0;cursor:pointer;text-align:left;color:var(--ink);}
.lg-faq__q>span:first-child{font-family:var(--serif);font-size:clamp(20px,2vw,27px);font-weight:400;line-height:1.25;}
.lg-faq__sign{font-size:26px;font-weight:200;color:var(--gold);line-height:1;flex:none;}
.lg-faq__a{padding:0 0 28px;max-width:70ch;}
.lg-faq__a p{font-weight:300;font-size:16px;line-height:1.85;color:var(--slate);}
.lg-faq__foot{border-top:1px solid var(--rule);padding-top:32px;display:flex;flex-wrap:wrap;gap:18px;align-items:center;}
.lg-faq__foot span{font-size:15px;font-weight:300;color:var(--slate);}

/* ---- Contact ---- */
.lg-contact__list{margin-top:40px;}
.lg-contact__row{border-top:1px solid rgba(215,212,206,.2);padding:20px 0;display:flex;justify-content:space-between;gap:20px;}
.lg-contact__row:last-child{border-bottom:1px solid rgba(215,212,206,.2);}
.lg-contact__row .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);}
.lg-contact__row .v{font-family:var(--serif);font-size:19px;color:var(--off);}
.lg-contact__row .v a{color:var(--gold);}
.lg-form{background:var(--green);padding:clamp(28px,3.4vw,46px);}
.lg-form h2{font-family:var(--serif);font-size:26px;font-weight:400;color:var(--off);}
.lg-form__fields{display:grid;gap:22px;margin-top:26px;}
.lg-form__fields label{display:block;}
.lg-form__fields label span{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);margin-bottom:10px;}
.lg-form__fields input,.lg-form__fields select,.lg-form__fields textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,212,206,.32);padding:10px 0;color:var(--off);font-family:var(--sans);font-size:16px;font-weight:300;outline:none;}
.lg-form__fields textarea{resize:vertical;}
.lg-form__fields select option{color:var(--ink);}
.lg-form__fields input:focus,.lg-form__fields select:focus,.lg-form__fields textarea:focus{border-bottom-color:var(--gold);}
.lg-form__fields button{justify-self:start;}

/* ---- Legal ---- */
.lg-policy{border-top:1px solid var(--rule);padding:26px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(18px,3vw,44px);}
.lg-policy h2{font-family:var(--serif);font-size:clamp(20px,2vw,27px);font-weight:400;color:var(--ink);line-height:1.2;}
.lg-policy p{font-weight:300;font-size:15.5px;line-height:1.8;color:var(--slate);}
/* Multi-paragraph policy blocks wrap their <p>s in one div so the grid stays two-up. */
.lg-policy p+p{margin-top:15px;}

/* ---- News ---- */
.lg-news__row{display:grid;grid-template-columns:minmax(200px,290px) 1fr auto;gap:clamp(20px,3vw,48px);align-items:center;padding:28px 0;border-top:1px solid var(--rule);}
.lg-news__thumb{display:block;overflow:hidden;aspect-ratio:16/11;background:var(--paper-warm);align-self:stretch;min-height:130px;}
.lg-news__thumbimg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.7,.2,1);}
.lg-news__thumb:hover .lg-news__thumbimg{transform:scale(1.045);}
.lg-news__body{min-width:0;}
.lg-news__date{display:block;margin-bottom:12px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);white-space:nowrap;}
.lg-news__title{font-family:var(--serif);font-size:clamp(22px,2.2vw,32px);font-weight:400;color:var(--ink);line-height:1.15;}
.lg-news__title a{color:var(--ink);}
.lg-news__title a:hover{color:var(--gold);}
.lg-news__excerpt{margin-top:12px;max-width:62ch;font-weight:300;font-size:15.5px;line-height:1.8;color:var(--slate);}
.lg-news__tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);}
.lg-news__pager{margin-top:40px;}
.lg-news__pager a,.lg-news__pager .current{padding:8px 12px;border:1px solid var(--rule);margin-right:6px;font-size:13px;color:var(--ink);}

/* ---- Single post ---- */
.lg-single__head{background:var(--ink);}
.lg-single__head .lg-phero__inner{padding-top:clamp(64px,7vw,110px);padding-bottom:clamp(40px,5vw,72px);}
.lg-single__back{display:block;width:-moz-fit-content;width:fit-content;margin-bottom:26px;font-family:var(--sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);}
.lg-single__head .eyebrow{display:block;}
.lg-single__back:hover{color:var(--gold);}
.lg-single__head .eyebrow{font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);}
.lg-single__head h1{font-family:var(--serif);font-weight:300;font-size:clamp(32px,4.6vw,64px);line-height:1.05;color:var(--off);margin-top:18px;max-width:24ch;}
.lg-single__meta{margin-top:20px;font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);}

/* Imported/editorial post body */
.lg-post{max-width:74ch;}
.lg-post h2{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,36px);line-height:1.15;color:var(--ink);margin:44px 0 0;}
.lg-post h3{font-family:var(--serif);font-weight:500;font-size:clamp(19px,1.8vw,23px);line-height:1.25;color:var(--green);margin:32px 0 0;}
.lg-post p{margin-top:18px;font-weight:300;font-size:17px;line-height:1.9;color:var(--slate);}
.lg-post ul,.lg-post ol{margin:16px 0 0;padding-left:1.25em;color:var(--slate);font-weight:300;font-size:17px;line-height:1.7;}
.lg-post li{margin-top:9px;}
.lg-post li::marker{color:var(--gold);}
.lg-post a{color:var(--gold-dk);text-decoration:underline;text-underline-offset:3px;}
.lg-post a:hover{color:var(--gold);}
.lg-post strong{font-weight:500;color:var(--ink);}
.lg-post em{font-style:italic;}
.lg-post > *:first-child{margin-top:0;}
.lg-post figure.wp-block-table,.lg-post .lg-post__table{margin:30px 0 0;overflow-x:auto;}
.lg-post table{width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px;}
.lg-post th,.lg-post td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--rule);font-weight:300;color:var(--slate);}
.lg-post thead th{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);font-weight:400;border-bottom:1px solid var(--stone);white-space:nowrap;}
.lg-post tbody tr:first-child td{color:var(--ink);font-weight:400;}
.lg-post blockquote{margin:26px 0 0;padding-left:22px;border-left:2px solid var(--gold);font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.4;color:var(--green);}
.lg-post img{height:auto;margin-top:26px;}

/* Prev / next post */
.lg-postnav{display:flex;justify-content:space-between;gap:24px;margin-top:60px;padding-top:28px;border-top:1px solid var(--rule);}
.lg-postnav__r{text-align:right;margin-left:auto;}
.lg-postnav__lbl{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);margin-bottom:6px;}
.lg-postnav a{font-family:var(--serif);font-size:19px;color:var(--ink);}
.lg-postnav a:hover{color:var(--gold);}

/* ---- Subscribe band ---- */
.lg-subscribe__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:center;}
.lg-subscribe .eyebrow{font-size:10px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);}
.lg-subscribe h2{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.6vw,50px);line-height:1;color:var(--off);margin-top:16px;}
.lg-subscribe__intro p{margin-top:20px;max-width:44ch;font-weight:300;font-size:16px;line-height:1.8;color:rgba(253,251,248,.72);}
.lg-subscribe__form.lg-form{background:transparent;padding:0;}
.lg-subscribe__row{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap;}
.lg-subscribe__field,.lg-subscribe__row .wpcf7-form-control-wrap{flex:1 1 220px;display:flex;}
.lg-subscribe__row .wpcf7-form-control-wrap input[type=email]{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,212,206,.4);padding:14px 0;color:var(--off);font-family:var(--sans);font-size:17px;font-weight:300;outline:none;}
.lg-subscribe__row input[type=email]{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,212,206,.4);padding:14px 0;color:var(--off);font-family:var(--sans);font-size:17px;font-weight:300;outline:none;}
.lg-subscribe__row input[type=email]::placeholder{color:rgba(253,251,248,.5);}
.lg-subscribe__row input[type=email]:focus{border-bottom-color:var(--gold);}
.lg-subscribe__row button,.lg-subscribe__form .wpcf7 input[type=submit]{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--off);background:var(--gold);border:0;padding:16px 32px;cursor:pointer;transition:background .18s;-webkit-appearance:none;appearance:none;}
.lg-subscribe__row button:hover,.lg-subscribe__form .wpcf7 input[type=submit]:hover{background:var(--gold-hover);}
.lg-subscribe__form .wpcf7-response-output{color:var(--off);border-color:rgba(215,212,206,.4)!important;}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* News list stacks below the two-column width */
@media (max-width:820px){
  .lg-news__row{grid-template-columns:1fr;gap:18px;align-items:start;}
  .lg-news__thumb{aspect-ratio:16/9;width:100%;}
  .lg-news__tag{margin-top:4px;}
  .lg-news__date{margin-bottom:8px;}
}

/* ============================================================
   REDUCED WIDTH TWEAKS
   ============================================================ */
@media (max-width:640px){
  .lg-deflist__v{font-size:17px;}
  .lg-hero__count{text-align:left;}
  .lg-hero__count .tick{margin:22px auto 0 0;}
}
