/*
Theme Name: Kilimanjaro Trails Festival
Theme URI: https://kilitrails.rsastaging.com/
Author: Race Space
Author URI: https://race-space.com/
Description: Hand-coded custom theme for the Kilimanjaro Trails Festival (8th annual, 2–5 September 2027, Simba Farm, West Kilimanjaro). Reproduces the approved prototype: warm festival pages on sand/ivory, cinematic charcoal Kili Trail Run pages, fixed transparent-until-scroll header, curved contour hero edge, hero parallax and scroll-in motion. Not a block/FSE theme.
Version: 0.1.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
License: Proprietary — © Redknot Racing Co
Text Domain: kilitrails
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --ochre:#E08A2B; --ochre-hover:#F09A3B; --ochre-hover2:#F5A93F; --deep-ochre:#8F581C;
  --charcoal:#1C1A17; --ultra:#141210; --ultra2:#241C14; --warm-brown:#3A2E22;
  --ivory:#FDFBF7; --sand:#F6F1E7; --warm-sand:#EAE3D6; --rule:#D3CEC4; --body:#4A4A42;
  --green:#465D39; --green2:#526D42; --green3:#5C7A4A; --green4:#93B87A;
  --disp:'Big Shoulders Display', 'Arial Narrow', sans-serif;
  --sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --header-h:90px;
}

/* ============================================================
   BASE  (ported from prototype global styles)
   ============================================================ */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sand);color:var(--charcoal);font-family:var(--sans);font-size:18px;line-height:1.6}
img{max-width:100%}
a{color:var(--ochre);text-decoration:none}
a:hover{color:var(--ochre-hover2)}
::selection{background:var(--ochre);color:var(--charcoal)}
h1,h2,h3,p{margin:0}
button{font-family:inherit}
.kt-skip{position:absolute;left:-9999px;top:auto}
.kt-skip:focus{left:16px;top:16px;z-index:1000;background:var(--ochre);color:var(--charcoal);padding:10px 16px;font-weight:700}

/* Fill-parent media + placeholder frames */
.kt-img{width:100%;height:100%;object-fit:cover;display:block}
.kt-ph{width:100%;height:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:repeating-linear-gradient(135deg,rgba(211,206,196,.16) 0 14px,rgba(211,206,196,.05) 14px 28px),var(--warm-sand);
  border:1px dashed rgba(143,88,28,.45);color:var(--deep-ochre);text-align:center;padding:20px}
.kt-ph--dark{background:repeating-linear-gradient(135deg,rgba(224,138,43,.10) 0 14px,rgba(224,138,43,.03) 14px 28px),#241C14;border-color:rgba(224,138,43,.4);color:rgba(224,138,43,.9)}
.kt-ph__tag{font-family:var(--sans);font-weight:700;font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;border:1px solid currentColor;padding:3px 7px;opacity:.85}
.kt-ph__txt{font-family:var(--sans);font-size:12.5px;line-height:1.45;max-width:30ch;letter-spacing:.02em}

/* ============================================================
   HEADER  (fixed, transparent-until-scroll, 90px)
   ============================================================ */
.kt-header{position:fixed;top:0;left:0;right:0;z-index:200;font-family:var(--sans)}
.kt-header__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,26,23,.72),rgba(28,26,23,0));pointer-events:none}
.kt-header__bar{position:absolute;inset:0;background:var(--charcoal);border-bottom:1px solid rgba(211,206,196,.16);pointer-events:none;opacity:0;transition:opacity .3s ease}
.kt-header.is-scrolled .kt-header__bar,.kt-header.is-open .kt-header__bar{opacity:1}
.kt-header__inner{position:relative;display:flex;align-items:center;gap:32px;padding:0 clamp(20px,4vw,56px);height:var(--header-h)}
.kt-logo{display:flex;align-items:center;padding:10px 0;text-decoration:none;flex:0 0 auto}
.kt-logo img{height:70px;width:70px;display:block;border-radius:50%}
.kt-nav{display:none;flex:1;align-items:center;justify-content:flex-end;gap:26px;min-width:0}
.kt-nav a{font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);padding:6px 0;border-bottom:1.5px solid transparent;font-variant-numeric:tabular-nums;transition:color .18s ease}
.kt-nav a:hover{color:var(--ochre)}
.kt-nav a.is-active{color:var(--ochre);border-bottom-color:var(--ochre)}
.kt-util{display:none;align-items:center;gap:20px;flex:0 0 auto}
.kt-util__contact{font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);font-variant-numeric:tabular-nums}
.kt-util__contact:hover{color:var(--ivory);opacity:.85}
.kt-cta{font-family:var(--disp);display:inline-flex;align-items:center;gap:9px;background:var(--ochre);color:var(--charcoal);font-size:16px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:12px 20px;font-variant-numeric:tabular-nums;transition:background .18s ease}
.kt-cta:hover{background:var(--ochre-hover);color:var(--charcoal)}
.kt-burger{margin-left:auto;display:flex;align-items:center;justify-content:center;width:46px;height:46px;background:transparent;border:1px solid rgba(253,251,247,.3);color:var(--ivory);cursor:pointer;flex:0 0 auto}
@media (min-width:1080px){
  .kt-nav{display:flex}
  .kt-util{display:flex}
  .kt-burger{display:none}
}

/* Drawer + scrim */
.kt-scrim{position:fixed;inset:0;z-index:300;background:rgba(28,26,23,.6);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s ease}
.kt-scrim.is-open{opacity:1;pointer-events:auto}
.kt-drawer{position:fixed;top:0;right:0;bottom:0;z-index:310;width:min(88vw,360px);background:var(--charcoal);border-left:1px solid rgba(211,206,196,.18);display:flex;flex-direction:column;font-family:var(--sans);transform:translateX(102%);transition:transform .34s cubic-bezier(.22,.8,.28,1);overflow-y:auto}
.kt-drawer.is-open{transform:translateX(0)}
.kt-drawer__top{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid rgba(211,206,196,.14)}
.kt-drawer__label{font-weight:700;font-size:12px;letter-spacing:.3em;color:var(--ochre);text-transform:uppercase}
.kt-drawer__close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--ivory);cursor:pointer}
.kt-drawer__nav{display:flex;flex-direction:column;padding:8px 0}
.kt-drawer__nav a{font-family:var(--disp);font-size:24px;font-weight:700;letter-spacing:.04em;color:var(--ivory);text-decoration:none;padding:15px 24px;border-bottom:1px solid rgba(211,206,196,.09);text-transform:uppercase;font-variant-numeric:tabular-nums}
.kt-drawer__nav a:hover{color:var(--ochre)}
.kt-drawer__nav a.sub{font-size:18px;font-weight:600;letter-spacing:.1em;color:rgba(253,251,247,.66);padding:12px 24px 12px 40px}
.kt-drawer__foot{margin-top:auto;padding:24px}
.kt-drawer__cta{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--ochre);color:var(--charcoal);font-family:var(--disp);font-size:17px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:16px;text-decoration:none;font-variant-numeric:tabular-nums}
.kt-drawer__cta:hover{background:var(--ochre-hover);color:var(--charcoal)}
.kt-drawer__meta{margin:14px 0 0;font-size:12.5px;line-height:1.5;color:rgba(253,251,247,.62)}

/* ============================================================
   FOOTER
   ============================================================ */
.kt-footer{background:var(--charcoal);color:var(--ivory);font-family:var(--sans);position:relative;overflow:hidden}
.kt-footer__contour{position:absolute;left:0;right:0;bottom:0;width:100%;height:300px;opacity:.09;pointer-events:none}
.kt-footer__wrap{position:relative;max-width:1280px;margin:0 auto;padding:clamp(56px,7vw,88px) clamp(20px,4vw,56px) 0}
.kt-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(36px,4vw,64px);align-items:start}
.kt-footer__logo{height:120px;width:120px;display:block;border-radius:50%;margin:0 0 20px}
.kt-footer__eyebrow{margin:0 0 22px;font-weight:600;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--ochre);font-variant-numeric:tabular-nums}
.kt-footer p{margin:0 0 20px;font-size:15px;line-height:1.65;color:rgba(253,251,247,.7);max-width:30ch;text-wrap:pretty}
.kt-footer .kt-footer__loc{margin:0;font-size:14px;line-height:1.7;color:rgba(253,251,247,.62)}
.kt-footer__email{display:inline-block;margin-top:14px;font-size:15px;color:var(--ochre);border-bottom:1px solid rgba(224,138,43,.45)}
.kt-social{display:flex;gap:10px;margin-top:24px}
.kt-social a{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(211,206,196,.28);color:var(--ivory)}
.kt-social a:hover{border-color:var(--ochre);color:var(--ochre)}
.kt-footer__coltitle{margin:0 0 18px;font-weight:700;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(253,251,247,.62)}
.kt-footer__links{display:flex;flex-direction:column;gap:11px}
.kt-footer__links a,.kt-footer__links span.dis{font-family:var(--sans);font-weight:500;font-size:13px;letter-spacing:.09em;text-transform:uppercase;font-variant-numeric:tabular-nums;color:var(--ivory);text-decoration:none;display:flex;align-items:center;gap:8px}
.kt-footer__links a:hover{color:var(--ochre)}
.kt-footer__links span.dis{color:rgba(253,251,247,.62)}
.kt-tbc{font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ochre);border:1px solid rgba(224,138,43,.5);padding:2px 5px}
.kt-sub label{display:block}
.kt-sub__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kt-sub input{width:100%;box-sizing:border-box;background:rgba(246,241,231,.05);border:1px solid rgba(211,206,196,.28);color:var(--ivory);font-family:var(--sans);font-size:15px;padding:13px 14px;outline:none}
.kt-sub input:focus{border-color:var(--ochre)}
.kt-sub form{display:flex;flex-direction:column;gap:10px}
.kt-sub button{background:var(--ochre);color:var(--charcoal);border:none;font-family:var(--sans);font-size:13.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:14px;cursor:pointer;font-variant-numeric:tabular-nums}
.kt-sub button:hover{background:var(--ochre-hover)}
.kt-sub__note{margin:12px 0 0;font-size:13px;line-height:1.5;color:rgba(253,251,247,.62)}
.kt-footer__bottom{margin-top:clamp(48px,6vw,72px);padding:26px 0 clamp(28px,3vw,40px);border-top:1px solid rgba(211,206,196,.16);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.kt-footer__legal{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 300px;max-width:64ch}
.kt-footer__legal p{margin:0;font-size:13.5px;color:rgba(253,251,247,.62);max-width:none}
.kt-footer__legal a{color:var(--ochre);border-bottom:1px solid rgba(224,138,43,.5)}
.kt-powered{display:flex;align-items:center;gap:14px;flex:0 0 auto}
.kt-powered span{font-size:13px;font-weight:600;letter-spacing:.08em;color:rgba(253,251,247,.62);white-space:nowrap;font-variant-numeric:tabular-nums}
.kt-powered img{height:45px;width:auto;display:block}

/* ============================================================
   MOTION  (scroll-in rise — ported from prototype; reduced-motion safe)
   ============================================================ */
@keyframes kiliRise{from{transform:translateY(22px)}to{transform:none}}
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .kt-rise{animation:kiliRise linear;animation-timeline:view();animation-range:entry 0% entry 40%}
  }
}

/* Shared layout helper */
.kt-container{max-width:1280px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
