/* ============================================================
   Awesome Experiences — bespoke Home, matched to William's
   AX Gen 2 template (the attachment).
   Header pine #00302B · Trip Builder navy #001D41 · accent green #56AD6D
   Hero/nav: bold uppercase Inter · tagline: Instrument Serif · body: Inter
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
  --pine:#00302B; --pine-2:#0a443c; --navy:#001D41; --navy-2:#0a2a52;
  --green:#56AD6D; --green-d:#377347; --orange:#F9612F;
  --ink:#1d2a28; --muted:#5d6560; --faint:#9aa39d;
  --bg:#fff; --bg-2:#F6F7F4; --surface:#EFF1EC; --border:#E2E4DD;
  --display:"Instrument Serif",Georgia,serif;
  --head:"Inter",system-ui,sans-serif;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --maxw:1280px; --gut:clamp(20px,5vw,68px); --r:12px;
  --shadow:0 22px 60px -22px rgba(0,32,28,.34);
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut);}
.eyebrow{font-family:var(--mono);text-transform:uppercase;letter-spacing:.26em;font-size:11px;color:var(--green);font-weight:500;display:inline-block;margin-bottom:14px;}
/* headline = bold uppercase sans (per template) */
.h-display{font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:.98;}
/* serif tagline */
.serif{font-family:var(--display);font-weight:400;letter-spacing:-.01em;line-height:1.1;}
.lede{font-size:clamp(1rem,1.4vw,1.16rem);color:var(--muted);}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--head);font-weight:600;font-size:14px;
  text-transform:uppercase;letter-spacing:.06em;padding:.9em 1.7em;border-radius:8px;border:1.5px solid transparent;cursor:pointer;
  transition:transform .18s,background-color .2s,border-color .2s,box-shadow .2s;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--green);color:#fff;box-shadow:0 12px 28px -12px rgba(86,173,109,.85);}
.btn-primary:hover{background:var(--green-d);}
.btn-quote{background:#fff;border-color:#fff;color:var(--pine)!important;font-weight:700;font-size:12px;letter-spacing:.05em;padding:.78em 1.5em;white-space:nowrap;box-shadow:0 6px 16px -8px rgba(0,0,0,.35);}
.btn-quote:hover{background:var(--green);border-color:var(--green);color:#fff!important;}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.6);color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.12);border-color:#fff;}

/* ---- header (pine green) ---- */
header.nav{position:sticky;top:0;z-index:50;background:var(--pine);}
.nav .wrap{display:flex;align-items:center;gap:24px;height:74px;}
.nav .logo{height:40px;width:auto;}
.nav .tag{font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;line-height:1.15;color:#fff;}
.nav nav{display:flex;gap:22px;margin-left:auto;align-items:center;}
.nav nav a{font-family:var(--head);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.9);position:relative;padding:5px 0;}
.nav nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:-2px;height:2px;background:var(--green);transition:left .2s,right .2s;}
.nav nav a:hover{color:#fff;}.nav nav a:hover::after{left:0;right:0;}

/* ---- hero ---- */
.hero{position:relative;min-height:74vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;}

/* scroll-reveal: elements fade + rise as they enter the viewport */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease, transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s);will-change:opacity,transform;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,32,28,.78) 0%,rgba(0,32,28,.35) 48%,rgba(0,32,28,.08) 100%);}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(48px,9vh,96px);}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.4vw,5.4rem);max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.3);}
.hero p{color:rgba(255,255,255,.92);margin-top:18px;font-size:clamp(1.05rem,1.6vw,1.28rem);max-width:46ch;}
.hero .cta-row{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap;}

/* ---- category tiles (image + pine label bar, per template) ---- */
section.block{padding-block:clamp(52px,7vw,92px);}
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.cat{border-radius:var(--r);overflow:hidden;background:var(--pine);box-shadow:0 1px 2px rgba(0,32,28,.08);transition:transform .3s,box-shadow .3s;display:block;}
.cat:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.cat .img{aspect-ratio:1/1;background-size:cover;background-position:center;transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.cat:hover .img{transform:scale(1.06);}
.cat .lab{padding:14px 12px;text-align:center;font-family:var(--head);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:13px;color:#fff;}

/* ---- bespoke line + trip builder (navy panel, per template) ---- */
.pitch{text-align:center;max-width:760px;margin:0 auto clamp(26px,4vw,40px);}
.pitch h2{font-size:clamp(2rem,3.6vw,3rem);color:var(--pine);}
.pitch p{margin-top:12px;color:var(--muted);font-size:1.08rem;}
.tb{background:var(--navy);border-radius:18px;padding:clamp(26px,3.4vw,44px);color:#fff;max-width:1000px;margin:0 auto;box-shadow:var(--shadow);}
.tb .lab{text-align:center;font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.3rem,2.4vw,1.8rem);margin-bottom:6px;}
.tb .sub{text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:22px;}
.tb form{display:flex;flex-direction:column;gap:12px;}
.tb .selects{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.tb .f{position:relative;}
.tb select{width:100%;appearance:none;-webkit-appearance:none;background:#fff;border:none;border-radius:9px;padding:15px 42px 15px 16px;font-family:var(--sans);font-size:14.5px;color:var(--ink);cursor:pointer;}
.tb .f::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-65%) rotate(45deg);pointer-events:none;}
.tb .paste{display:flex;gap:12px;flex-wrap:wrap;}
.tb .paste input{flex:1;min-width:240px;border:none;border-radius:9px;padding:15px 16px;font-family:var(--sans);font-size:14.5px;color:var(--ink);}
.tb .paste input::placeholder{color:#9aa0a0;}
.tb .go{align-self:stretch;}

/* ---- "inspiring your travels" — featured trips ---- */
.alt{background:var(--bg-2);}
.sec-head{text-align:center;margin-bottom:clamp(28px,4vw,44px);}
.sec-head .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.26em;font-size:11px;color:var(--green);}
.sec-head h2{font-family:var(--head);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.7rem,3vw,2.4rem);color:var(--pine);margin-top:8px;}
.tours{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.tour{border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--border);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s;}
.tour:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.tour .ph{aspect-ratio:16/10;background-size:cover;background-position:center;}
.tour .body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:9px;flex:1;}
.tour .k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);}
.tour h3{font-family:var(--display);font-size:1.4rem;color:var(--pine);line-height:1.1;}
.tour .meta{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between;padding-top:8px;}
.tour .price{font-family:var(--display);font-size:1.5rem;color:var(--pine);}
.tour .price small{font-family:var(--sans);font-size:11px;color:var(--faint);display:block;font-weight:500;}
.tour .go{font-family:var(--head);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--green-d);}

/* ---- CTA + footer ---- */
.cta{background:var(--pine);color:#fff;text-align:center;}
.cta h2{font-family:var(--head);font-weight:800;text-transform:uppercase;font-size:clamp(1.8rem,3.2vw,2.6rem);color:#fff;}
.cta p{color:rgba(255,255,255,.85);margin:14px auto 24px;max-width:52ch;}
footer.ft{background:#022019;color:rgba(255,255,255,.7);font-size:13.5px;}
footer.ft .wrap{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-block:clamp(42px,6vw,66px);}
footer.ft h4{font-family:var(--head);font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.5);margin-bottom:14px;font-weight:700;}
footer.ft a{display:block;color:rgba(255,255,255,.78);padding:5px 0;}
footer.ft a:hover{color:#fff;}
footer.ft .logo{height:38px;width:auto;display:inline-block;margin-bottom:14px;}
.subfoot{border-top:1px solid rgba(255,255,255,.12);}
.subfoot .wrap{display:flex;justify-content:space-between;gap:18px;padding-block:16px;font-size:12px;color:rgba(255,255,255,.5);flex-wrap:wrap;}

/* ---- responsive ---- */
@media (max-width:920px){
  .cats{grid-template-columns:repeat(2,1fr);}
  .tb .selects{grid-template-columns:1fr;}
  .tours{grid-template-columns:1fr;}
  footer.ft .wrap{grid-template-columns:1fr 1fr;}
  .nav .tag{display:none;}
}
@media (max-width:680px){
  .nav nav{display:none;}
}

/* accreditation badges (BA Appointed Operator + PTS) in the footer */
.accred{padding:20px 0;border-top:1px solid rgba(255,255,255,.1);text-align:center;}
.accred-img{height:58px;width:auto;max-width:90%;margin:0 auto;background:#fff;border-radius:10px;padding:10px 18px;box-shadow:0 8px 20px -10px rgba(0,0,0,.5);}
