/* ==========================================================================
   KINDEGE EXPEDITION & SAFARIS — design system
   Palette taken from the brand mark: charcoal black, brand gold, warm ivory.
   Editorial, photography-led, minimal. No decorative gradients.
   ========================================================================== */

:root{
  --ink:#141210;
  --ink-2:#221F1B;
  --ink-3:#332E28;
  --gold:#E9A81C;
  --gold-soft:#F3C45E;
  --ivory:#FBF8F2;
  --ivory-2:#F2ECE1;
  --paper:#FFFFFF;
  --body:#3D3832;
  --muted:#6E675E;
  --line:rgba(20,18,16,0.12);
  --line-2:rgba(20,18,16,0.06);
  --line-dark:rgba(251,248,242,0.16);
  --shade:0 1px 2px rgba(20,18,16,.04), 0 10px 30px -14px rgba(20,18,16,.22);
  --shade-lift:0 2px 6px rgba(20,18,16,.06), 0 24px 50px -20px rgba(20,18,16,.32);
  --max:1240px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--ivory); color:var(--body);
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  font-size:16.5px; line-height:1.68; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces','Georgia',serif; color:var(--ink);
  margin:0 0 .5em; font-weight:600; line-height:1.12; letter-spacing:-0.015em;
}
a{color:inherit;}
img{max-width:100%; display:block;}
::selection{background:var(--gold); color:var(--ink);}

.wrap{max-width:var(--max); margin:0 auto; padding:0 26px;}
.wrap--narrow{max-width:860px;}
.section{padding:96px 0;}
.section--tight{padding:64px 0;}
.section--ivory2{background:var(--ivory-2);}
.section--dark{background:var(--ink); color:rgba(251,248,242,.76);}
.section--dark h1,.section--dark h2,.section--dark h3{color:var(--ivory);}
@media(max-width:760px){ .section{padding:64px 0;} }

/* ---------- Section heads ---------- */
.kicker{
  font-size:11.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px; display:block;
}
.shead{max-width:64ch; margin-bottom:48px;}
.shead h2{font-size:clamp(30px,4vw,46px);}
.shead p{color:var(--muted); font-size:17.5px; margin:14px 0 0;}
.section--dark .shead p{color:rgba(251,248,242,.66);}
.shead--center{margin-left:auto; margin-right:auto; text-align:center;}
.shead--split{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; max-width:none;}
.shead--split > div{max-width:60ch;}
@media(max-width:760px){ .shead--split{flex-direction:column; align-items:flex-start;} }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 30px; font-weight:600; font-size:14.5px; letter-spacing:.01em;
  text-decoration:none; border:1.5px solid transparent; cursor:pointer;
  font-family:inherit; border-radius:2px;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
.btn--gold{background:var(--gold); color:var(--ink);}
.btn--gold:hover{background:var(--gold-soft);}
.btn--ink{background:var(--ink); color:var(--ivory);}
.btn--ink:hover{background:var(--ink-2);}
.btn--out{border-color:var(--ink); color:var(--ink);}
.btn--out:hover{background:var(--ink); color:var(--ivory);}
.btn--out-light{border-color:rgba(251,248,242,.5); color:var(--ivory);}
.btn--out-light:hover{background:var(--ivory); color:var(--ink);}
.btn--wa{background:#25D366; color:#fff;}
.btn--wa:hover{background:#1DB455;}
.btn--sm{padding:11px 20px; font-size:13px;}
.btn--block{width:100%;}

/* ---------- Header ---------- */
.topbar{background:var(--ink); color:rgba(251,248,242,.62); font-size:12.5px; padding:9px 0;}
.topbar .wrap{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.topbar a{color:inherit; text-decoration:none;}
.topbar a:hover{color:var(--gold);}
@media(max-width:700px){ .topbar{display:none;} }

.header{
  position:sticky; top:0; z-index:200; background:rgba(251,248,242,.9);
  backdrop-filter:blur(14px); border-bottom:1px solid transparent;
  transition:background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.header.is-stuck{background:var(--ivory); border-bottom-color:var(--line); box-shadow:var(--shade);}
.nav{display:flex; align-items:center; justify-content:space-between; gap:22px; padding:12px 26px;}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; flex-shrink:0;}
.brand img{height:46px; width:auto;}
.brand__txt{line-height:1.08;}
.brand__name{display:block; font-family:'Fraunces',serif; font-weight:600; font-size:19px; color:var(--ink); letter-spacing:-.02em;}
.brand__sub{display:block; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:2px;}
@media(max-width:420px){ .brand__txt{display:none;} }

.nav__links{display:flex; align-items:center; gap:2px;}
.nav__links > a, .nav__item > a{
  display:block; padding:10px 12px; font-size:14px; font-weight:500; color:var(--body);
  text-decoration:none; position:relative; transition:color .18s ease;
}
.nav__links > a::after, .nav__item > a::after{
  content:''; position:absolute; left:12px; right:12px; bottom:4px; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.nav__links > a:hover::after, .nav__item > a:hover::after,
.nav__links > a[aria-current="page"]::after, .nav__item > a[aria-current="page"]::after{transform:scaleX(1);}
.nav__links > a:hover, .nav__item > a:hover{color:var(--ink);}
@media(max-width:1120px){ .nav__links{display:none;} }

.nav__item{position:relative;}
.nav__item > a > .caret{font-size:9px; margin-left:5px; opacity:.55; display:inline-block; transition:transform .2s ease;}
.nav__item.is-open > a > .caret{transform:rotate(180deg);}
.dd{
  position:absolute; top:calc(100% + 6px); left:0; min-width:268px; background:var(--paper);
  border:1px solid var(--line); padding:8px; box-shadow:var(--shade-lift); z-index:300;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s;
}
.nav__item.is-open .dd{opacity:1; visibility:visible; transform:translateY(0);}
.dd a{display:block; padding:10px 13px; font-size:13.5px; color:var(--muted); text-decoration:none;}
.dd a:hover, .dd a:focus-visible{background:var(--ivory-2); color:var(--ink); outline:none;}
.dd__all{border-top:1px solid var(--line-2); margin-top:6px; color:var(--gold) !important; font-weight:600;}

/* Mega menu (Safaris) — multi-column dropdown */
.dd--mega{min-width:600px; padding:20px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:4px 22px;}
.dd--mega .dd__group{grid-column:span 1;}
.dd--mega .dd__h{font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); padding:10px 13px 4px; display:block;}
.dd--mega a{padding:8px 13px; font-size:13.5px;}
.dd--mega .dd__all{grid-column:1 / -1; margin-top:10px; padding-top:14px;}
@media(max-width:1260px){ .dd--mega{min-width:520px; grid-template-columns:1fr 1fr;} .dd--mega .dd__all{grid-column:1/-1;} }

.nav__act{display:flex; align-items:center; gap:10px;}
.burger{display:none; width:46px; height:46px; border:1px solid var(--line); background:var(--paper); cursor:pointer; padding:0; place-items:center;}
.burger span{display:block; width:19px; height:1.5px; background:var(--ink); margin:4.5px auto; transition:transform .25s ease, opacity .25s ease;}
.burger.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.burger.is-open span:nth-child(2){opacity:0;}
.burger.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
@media(max-width:1120px){ .burger{display:grid;} .nav__act .btn--gold{display:none;} }

.drawer{position:fixed; inset:0; z-index:400; background:var(--ivory); transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); overflow-y:auto; padding:20px 26px 48px;}
.drawer.is-open{transform:translateX(0);}
.drawer__top{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px;}
.drawer__x{width:46px; height:46px; border:1px solid var(--line); background:var(--paper); font-size:22px; cursor:pointer; color:var(--ink);}
.drawer a.dlink{display:block; padding:16px 0; font-family:'Fraunces',serif; font-size:21px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line-2);}
.drawer__act{display:grid; gap:10px; margin-top:28px;}

/* ---------- Hero ---------- */
.hero{position:relative; background:var(--ink); overflow:hidden; min-height:100vh; display:flex; align-items:center;}
.hero__bg{position:absolute; inset:0; z-index:0; background:var(--ink);}
.hero__bg img, .hero__bg video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.hero__bg img{opacity:.9;}
.hero__bg video{opacity:0; transition:opacity .9s ease;}
.hero__bg video.is-ready{opacity:.85;}
.hero__bg::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,16,.5) 0%, rgba(20,18,16,.15) 32%, rgba(20,18,16,.35) 68%, rgba(20,18,16,.82) 100%);}
.hero__inner{position:relative; z-index:2; padding:150px 0 96px; color:var(--ivory); width:100%;}
@media(max-width:1024px){ .hero__inner{padding:128px 0 84px;} }
@media(max-width:760px){ .hero__inner{padding:110px 0 76px;} }
@media(max-height:700px) and (min-width:761px){ .hero__inner{padding:96px 0 60px;} .hero__facts{margin-top:32px; padding-top:18px;} }
.hero h1{color:var(--ivory); font-size:clamp(38px,6.8vw,80px); max-width:17ch; letter-spacing:-.025em;}
.hero h1 em{font-style:italic; color:var(--gold);}
.hero__lead{font-size:18.5px; max-width:54ch; color:rgba(251,248,242,.85); margin:20px 0 34px;}
.hero__tag{display:inline-flex; align-items:center; gap:10px; font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; font-weight:600; color:var(--gold); margin-bottom:22px;}
.hero__tag::before{content:''; width:30px; height:1px; background:var(--gold);}
.hero__cta{display:flex; gap:12px; flex-wrap:wrap;}
.hero__facts{display:flex; gap:44px; flex-wrap:wrap; margin-top:56px; padding-top:28px; border-top:1px solid rgba(251,248,242,.16);}
.hero__facts div{font-size:13px; color:rgba(251,248,242,.62); letter-spacing:.04em;}
.hero__facts strong{display:block; font-family:'Fraunces',serif; font-size:23px; color:var(--ivory); font-weight:600; margin-bottom:2px;}
@media(max-width:480px){ .hero__facts{gap:26px; margin-top:38px; padding-top:20px;} }
.hero__scroll{position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(251,248,242,.75); text-decoration:none; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;}
.hero__scroll span{width:1px; height:34px; background:linear-gradient(180deg, rgba(251,248,242,.9), rgba(251,248,242,0)); animation:scrollpulse 2.2s ease-in-out infinite;}
@keyframes scrollpulse{0%,100%{opacity:.35;} 50%{opacity:1;}}
@media(prefers-reduced-motion:reduce){ .hero__scroll span{animation:none;} }
@media(max-width:760px){ .hero__scroll{display:none;} }

/* ---------- Discover Tanzania (interactive) ---------- */
.discover{position:relative; background:var(--ink); color:var(--ivory); overflow:hidden;}
.discover__stage{position:relative; height:78vh; min-height:520px; max-height:760px;}
.discover__img{position:absolute; inset:0;}
.discover__frame{position:absolute; inset:0; opacity:0; transition:opacity .7s ease;}
.discover__frame.is-on{opacity:1;}
.discover__frame img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.discover__stage::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(20,18,16,.88) 0%, rgba(20,18,16,.45) 46%, rgba(20,18,16,.15) 75%);}
.discover__panel{position:absolute; left:0; top:0; bottom:0; z-index:2; width:min(46%,480px); display:flex; flex-direction:column; justify-content:center; padding:0 6vw;}
.discover__panel .kicker{color:var(--gold-soft);}
.discover__panel h3{color:var(--ivory); font-size:clamp(30px,4vw,44px); margin-bottom:14px;}
.discover__panel p{color:rgba(251,248,242,.82); max-width:38ch; margin-bottom:18px;}
.discover__tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px;}
.discover__tags span{font-size:11.5px; letter-spacing:.05em; padding:6px 12px; border:1px solid rgba(251,248,242,.28); color:rgba(251,248,242,.85);}
@media(max-width:1024px){ .discover__panel{width:100%; padding:0 26px;} }
@media(max-height:700px) and (min-width:761px){ .discover__stage{height:auto; min-height:64vh; max-height:640px;} }
.discover__nav{position:relative; z-index:3; display:flex; overflow-x:auto; gap:0; border-top:1px solid rgba(251,248,242,.14); scrollbar-width:none;}
.discover__nav::-webkit-scrollbar{display:none;}
.discover__nav button{flex:1 0 auto; min-width:140px; padding:18px 20px; background:transparent; border:none; border-right:1px solid rgba(251,248,242,.1); color:rgba(251,248,242,.55); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; text-align:left; cursor:pointer; transition:color .2s ease, background .2s ease; position:relative;}
.discover__nav button::before{content:''; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s ease;}
.discover__nav button.is-on{color:var(--ivory); background:rgba(251,248,242,.05);}
.discover__nav button.is-on::before{transform:scaleX(1);}
.discover__nav button:hover{color:var(--ivory);}
@media(max-width:760px){ .discover__stage{height:auto; min-height:70vh;} .discover__panel{padding:120px 24px 40px; justify-content:flex-end;} .discover__nav button{min-width:112px; padding:14px 14px; font-size:11px;} }

/* ---------- Journey finder chips ---------- */
.finder__chips{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px;}
.finder__chip{padding:11px 20px; border:1px solid var(--line); background:var(--paper); font-size:13.5px; font-weight:500; color:var(--body); cursor:pointer; transition:all .18s ease;}
.finder__chip:hover{border-color:var(--gold);}
.finder__chip.is-on{background:var(--ink); color:var(--ivory); border-color:var(--ink);}
.finder__result{border:1px solid var(--line); background:var(--paper); padding:0; display:grid; grid-template-columns:1.1fr 1fr; min-height:280px; box-shadow:var(--shade);}
.finder__imgwrap{position:relative; min-height:280px; overflow:hidden;}
.finder__imgwrap img{width:100%; height:100%; object-fit:cover; display:block;}
.finder__body{padding:40px; display:flex; flex-direction:column; justify-content:center;}
.finder__body .kicker{margin-bottom:10px;}
.finder__body h3{font-size:26px; margin-bottom:10px;}
.finder__body p{color:var(--muted); margin-bottom:22px;}
@media(max-width:760px){ .finder__result{grid-template-columns:1fr;} .finder__imgwrap{min-height:220px;} .finder__body{padding:26px;} }

/* ---------- Repeated-photo tint system ----------
   The photo library is small and a handful of images necessarily appear
   more than once across the site. Rather than showing the exact same
   frame twice, later instances of a repeated photo get a signature
   colour-graded gradient wash (in the site's earthy palette) so the
   repeat reads as a deliberate editorial device rather than an accident.
   Applied automatically by tintClass() in data.js wherever the same
   image URL recurs on a page. */
.tint-amber, .tint-teal, .tint-rose, .tint-olive, .tint-indigo{position:relative;}
.tint-amber::after, .tint-teal::after, .tint-rose::after, .tint-olive::after, .tint-indigo::after{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:1; mix-blend-mode:multiply; opacity:.5;
}
.tint-amber::after{background:linear-gradient(140deg,#c1793a,#4f3016);}
.tint-teal::after{background:linear-gradient(140deg,#2f6f6a,#12302e);}
.tint-rose::after{background:linear-gradient(140deg,#a34a5a,#3d1a22);}
.tint-olive::after{background:linear-gradient(140deg,#748143,#2c331a);}
.tint-indigo::after{background:linear-gradient(140deg,#454f8a,#181c38);}

/* ---------- Grids & cards ---------- */
.grid{display:grid; gap:26px;}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
@media(max-width:1000px){ .grid--3,.grid--4{grid-template-columns:repeat(2,1fr);} }
@media(max-width:640px){ .grid--2,.grid--3,.grid--4{grid-template-columns:1fr;} }

.card{background:var(--paper); border:1px solid var(--line-2); text-decoration:none; color:inherit; display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
.card:hover{transform:translateY(-3px); box-shadow:var(--shade-lift); border-color:var(--line);}
.card__img{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--ivory-2);}
.card__img img{width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.6,.3,1);}
.card:hover .card__img img{transform:scale(1.05);}
.card__pill{position:absolute; top:13px; left:13px; z-index:2; background:var(--ink); color:var(--ivory); font-size:10.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; padding:6px 11px;}
.card__pill--gold{background:var(--gold); color:var(--ink);}
.card__b{padding:22px; display:flex; flex-direction:column; gap:8px; flex:1;}
.card__b h3{font-size:19px; margin:0;}
.card__meta{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700;}
.card__b p{font-size:14.5px; color:var(--muted); margin:0; flex:1;}
.card__f{display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-top:14px; padding-top:15px; border-top:1px solid var(--line-2);}
.card__price{font-family:'Fraunces',serif; font-weight:600; color:var(--ink); font-size:19px; line-height:1.1;}
.card__price span{display:block; font-family:'Inter',sans-serif; font-size:10.5px; font-weight:600; color:var(--muted); letter-spacing:.13em; text-transform:uppercase; margin-bottom:3px;}
.card__go{font-size:13px; font-weight:600; color:var(--gold); white-space:nowrap;}

/* Editorial tile */
.tile{position:relative; display:block; overflow:hidden; text-decoration:none; aspect-ratio:3/4; background:var(--ink);}
.tile img{width:100%; height:100%; object-fit:cover; opacity:.78; transition:transform .7s cubic-bezier(.2,.6,.3,1), opacity .4s ease;}
.tile:hover img{transform:scale(1.06); opacity:.62;}
.tile__c{position:absolute; left:0; right:0; bottom:0; padding:26px 22px; color:var(--ivory); z-index:2;}
.tile__c::before{content:''; position:absolute; inset:0; background:var(--ink); opacity:.55; z-index:-1;}
.tile h3{color:var(--ivory); font-size:21px; margin:0 0 4px;}
.tile p{font-size:13px; color:rgba(251,248,242,.74); margin:0;}
@media(max-width:640px){ .tile{aspect-ratio:16/10;} }

/* Numbered features */
.feats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(max-width:1000px){ .feats{grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .feats{grid-template-columns:1fr;} }

.routemap{border:1px solid var(--line); background:var(--paper); padding:22px; margin:36px 0 0;}
.routemap__cap{font-size:12.5px; color:var(--muted); margin-top:14px;}
.routemap__cap strong{color:var(--ink); font-weight:600;}
@media(max-width:480px){ .routemap{padding:14px;} }
.feat{background:var(--paper); padding:30px 24px;}
.section--dark .feats{background:var(--ink-3); border-color:var(--ink-3);}
.section--dark .feat{background:var(--ink-2);}
.feat__n{font-family:'Fraunces',serif; font-size:12px; font-weight:700; color:var(--gold); letter-spacing:.16em; margin-bottom:14px;}
.feat h3{font-size:17.5px; margin-bottom:7px;}
.feat p{font-size:14px; color:var(--muted); margin:0;}
.section--dark .feat p{color:rgba(251,248,242,.64);}

/* Split */
.split{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
@media(max-width:920px){ .split{grid-template-columns:1fr; gap:36px;} }
.split__img{overflow:hidden; aspect-ratio:4/3;}
.split__img img{width:100%; height:100%; object-fit:cover;}

/* Stats */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media(max-width:700px){ .stats{grid-template-columns:repeat(2,1fr);} }
.stat b{display:block; font-family:'Fraunces',serif; font-size:40px; color:var(--gold); font-weight:600; line-height:1;}
.stat span{font-size:13px; color:var(--muted); letter-spacing:.03em;}
.section--dark .stat span{color:rgba(251,248,242,.6);}

/* Accordion */
.acc{border:1px solid var(--line); background:var(--paper);}
.acc + .acc{margin-top:-1px;}
.acc__h{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:19px 22px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-family:'Fraunces',serif; font-size:16.5px; color:var(--ink); font-weight:600;}
.acc__h:focus-visible{outline:2px solid var(--gold); outline-offset:-2px;}
.acc__i{color:var(--gold); font-size:20px; flex-shrink:0; transition:transform .25s ease;}
.acc.is-open .acc__i{transform:rotate(45deg);}
.acc__b{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.acc__in{padding:0 22px 20px;}
.acc__in p{margin:0 0 10px; font-size:14.5px; color:var(--muted);}
.acc__day{display:block; font-size:10.5px; letter-spacing:.15em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-bottom:3px; font-family:'Inter',sans-serif;}
.acc__meta{display:flex; gap:18px; flex-wrap:wrap; font-size:12.5px; color:var(--muted); margin-top:10px;}

/* Chips */
.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{padding:10px 18px; border:1px solid var(--line); background:var(--paper); font-size:13px; cursor:pointer; color:var(--muted); font-family:inherit; transition:all .16s ease;}
.chip:hover{border-color:var(--ink); color:var(--ink);}
.chip.is-on{background:var(--ink); border-color:var(--ink); color:var(--ivory); font-weight:600;}

/* Scroller */
.scroller{display:flex; gap:22px; overflow-x:auto; padding:4px 4px 20px; scroll-snap-type:x mandatory;}
.scroller > *{flex:0 0 310px; scroll-snap-align:start;}
.scroller::-webkit-scrollbar{height:5px;}
.scroller::-webkit-scrollbar-track{background:var(--line-2);}
.scroller::-webkit-scrollbar-thumb{background:var(--ink); opacity:.3;}

/* Forms */
.field{margin-bottom:18px;}
.field label{display:block; font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%; padding:13px 15px; border:1px solid var(--line); background:var(--paper); color:var(--body); font-family:inherit; font-size:15px; border-radius:2px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(233,168,28,.16);}
.field textarea{min-height:120px; resize:vertical;}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media(max-width:560px){ .frow{grid-template-columns:1fr;} }

/* Lists */
.ticks{list-style:none; padding:0; margin:14px 0 0; font-size:14.5px; color:var(--muted);}
.ticks li{padding:9px 0; border-bottom:1px solid var(--line-2); display:flex; gap:10px;}
.ticks li::before{content:'—'; color:var(--gold); flex-shrink:0;}
.ticks--x li::before{content:'×'; color:var(--muted);}

/* CTA */
.cta{background:var(--ink); color:var(--ivory); padding:88px 0; text-align:center;}
.cta h2{color:var(--ivory); font-size:clamp(28px,3.8vw,42px);}
.cta p{max-width:56ch; margin:14px auto 30px; color:rgba(251,248,242,.72); font-size:17px;}
.cta__b{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}

/* Footer */
.footer{background:var(--ink); color:rgba(251,248,242,.62); padding:72px 0 30px; font-size:14px;}
.footer__grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.1fr; gap:42px; margin-bottom:52px;}
@media(max-width:940px){ .footer__grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .footer__grid{grid-template-columns:1fr;} }
.footer h4{color:var(--ivory); font-size:11px; letter-spacing:.2em; text-transform:uppercase; margin-bottom:18px; font-family:'Inter',sans-serif; font-weight:700;}
.footer a{color:rgba(251,248,242,.62); text-decoration:none; display:block; padding:6px 0;}
.footer a:hover{color:var(--gold);}
.footer__brand .fmark{height:56px; margin-bottom:16px;}
.footer__brand p{line-height:1.75; margin:0 0 18px;}
.socials{display:flex; gap:10px;}
.socials a{width:40px; height:40px; border:1px solid var(--line-dark); display:grid; place-items:center; padding:0;}
.socials a:hover{border-color:var(--gold); color:var(--gold);}
.footer__news input{width:100%; padding:12px 14px; background:var(--ink-2); border:1px solid var(--line-dark); color:var(--ivory); font-family:inherit; font-size:14px; margin-bottom:10px; border-radius:2px;}
.footer__news input:focus{outline:none; border-color:var(--gold);}
.footer__bot{border-top:1px solid var(--line-dark); padding-top:26px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px;}
.footer__bot a{display:inline; padding:0;}

/* Page hero */
.crumbs{font-size:12.5px; color:var(--muted); margin-bottom:16px;}
.crumbs a{text-decoration:none; color:var(--muted);}
.crumbs a:hover{color:var(--gold);}
.phero{background:var(--ivory-2); padding:56px 0 50px; border-bottom:1px solid var(--line);}
@media(max-width:480px){ .phero{padding:42px 0 36px;} }
.phero h1{font-size:clamp(32px,5vw,54px); max-width:20ch;}
.phero p{color:var(--muted); font-size:17.5px; max-width:64ch; margin:14px 0 0;}
.phero--img{position:relative; background:var(--ink); border:none;}
.phero__bg{position:absolute; inset:0; overflow:hidden;}
.phero__bg img, .phero__bg video{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.phero__bg img{opacity:.85;}
.phero__bg video{opacity:0; transition:opacity .8s ease;}
.phero__bg video.is-ready{opacity:.8;}
.phero__bg::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,18,16,.28) 0%, rgba(20,18,16,.62) 100%); z-index:1;}
.phero--img .wrap{position:relative; z-index:2;}
.phero--img h1{color:var(--ivory);}
.phero--img p, .phero--img .crumbs, .phero--img .crumbs a{color:rgba(251,248,242,.74);}

/* Utility */
.note{font-size:13.5px; color:var(--muted); background:var(--ivory-2); border-left:2px solid var(--gold); padding:14px 18px;}
.skip{position:absolute; left:-9999px; background:var(--gold); color:var(--ink); padding:13px 22px; z-index:999; font-weight:600;}
.skip:focus{left:0; top:0;}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}

/* Reveal */
[data-rev]{opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease;}
[data-rev].in{opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}
  [data-rev]{opacity:1; transform:none;}
  .card:hover{transform:none;}
  .card:hover .card__img img, .tile:hover img{transform:none;}
}
