/* ===== Journey Events — site styles =====================================
   Colours and fonts come from content.js and are injected as CSS custom
   properties at runtime, so the editor can change them live.
   ====================================================================== */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--brown);
  background:var(--cream);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}

.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.narrow{max-width:660px;margin:0 auto}

/* ---------- type ---------- */
h1,h2,h3,.display{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--ink);
  margin:0;
  line-height:1.04;
  letter-spacing:-0.03em;
}
h1{font-size:clamp(38px,5.2vw,68px)}
h2{font-size:clamp(30px,3.8vw,52px)}
h3{font-size:clamp(22px,2.2vw,30px);letter-spacing:-0.02em}

.eyebrow{
  font-family:var(--font-body);
  font-size:13px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brown);
  margin:0 0 22px;
}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--font-body);
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
  padding:15px 34px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--light);
  cursor:pointer;
  transition:background .25s,color .25s;
}
.btn:hover{background:transparent;color:var(--ink)}
.btn--light{background:transparent;border-color:var(--light);color:var(--light)}
.btn--light:hover{background:var(--light);color:var(--ink)}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:60;
  background:var(--ink);
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
  padding:14px 40px;
}
.nav__logo{line-height:1;text-decoration:none;display:block}
.nav__word{
  font-family:var(--font-display);
  font-size:27px;font-weight:500;letter-spacing:.14em;
  color:var(--light);display:block;
}
.nav__sub{
  font-family:var(--font-display);
  font-size:14px;letter-spacing:.42em;
  color:var(--light);display:block;
  text-align:right;margin-top:1px;opacity:.92;
}
.nav__links{display:flex;align-items:center;gap:46px}
.nav__links a{
  color:var(--light);text-decoration:none;
  font-size:15px;letter-spacing:.02em;
  padding:4px 0;border-bottom:1px solid transparent;
  transition:border-color .2s;
}
.nav__links a:hover{border-color:var(--light)}
.nav__toggle{display:none;background:none;border:0;color:var(--light);font-size:24px;cursor:pointer;padding:4px 8px}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);overflow:hidden}
.hero__img{
  width:100%;height:clamp(420px,58vw,620px);
  object-fit:cover;display:block;
}
.hero__scrim{position:absolute;inset:0;background:#000;pointer-events:none}
.hero__headline{
  position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);
  width:min(92%,900px);text-align:center;
  color:#fff;white-space:pre-line;
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(34px,5.4vw,72px);line-height:1.02;
  letter-spacing:-0.045em;
  text-shadow:0 2px 30px rgba(0,0,0,.35);
}
.hero__frame{
  position:relative;z-index:5;
  width:min(268px,44vw);margin:-160px auto 0;
  border:14px solid var(--ink);
  background:var(--ink);
  box-shadow:0 18px 50px rgba(31,22,18,.22);
}
.hero__frame img{aspect-ratio:4/5;object-fit:cover;width:100%}

/* ---------- sections ---------- */
.sec{padding:110px 0}
.sec--cream{background:var(--cream)}
.sec--paper{background:var(--paper)}
.sec--sand{background:var(--sand)}
.sec--ink{background:var(--ink);color:var(--light)}
.sec--tight{padding-top:60px}
.intro{text-align:center}
.intro p{font-size:19px;max-width:640px;margin:0 auto 34px}

/* ---------- feature split ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split__imgs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.split__imgs img{aspect-ratio:4/5;object-fit:cover;width:100%}
.split__imgs > *:last-child img{margin-top:44px}
.split h2{margin-bottom:26px}

/* ---------- pillars ---------- */
.pillars__head{text-align:center;max-width:820px;margin:0 auto 70px}
.pillar{
  display:grid;grid-template-columns:220px 1fr 1fr;
  gap:44px;align-items:center;
  padding:38px 0;
  border-top:1px solid rgba(89,67,50,.28);
}
.pillars__list .pillar:last-child{border-bottom:1px solid rgba(89,67,50,.28)}
.pillar img{width:220px;height:148px;object-fit:cover}
.pillar h3{margin:0}
.pillar p{margin:0;font-size:16px}
.pillar:nth-child(even){grid-template-columns:1fr 1fr 220px}
.pillar:nth-child(even) .pillar__img{order:3}

/* ---------- packages ---------- */
.packages h2{
  font-size:clamp(34px,5vw,62px);
  text-transform:uppercase;letter-spacing:.01em;
  margin-bottom:56px;
}
.pkg{
  display:grid;grid-template-columns:260px 300px 1fr;
  gap:48px;align-items:center;
  padding:40px 0;
  border-top:1px solid rgba(31,22,18,.22);
}
.pkg:last-of-type{border-bottom:1px solid rgba(31,22,18,.22)}
.pkg img{width:260px;height:170px;object-fit:cover}
.pkg__name{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--ink);letter-spacing:.01em;margin:0 0 6px}
.pkg__size{font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--brown);margin:0}
.pkg__lead{font-weight:700;color:var(--ink);margin:0 0 6px}
.pkg__body{margin:0;font-size:16px}
.packages__cta{margin-top:52px;text-align:center}

/* ---------- quote ---------- */
.quote{display:grid;grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);gap:70px;align-items:start}
.quote__img img{width:100%;aspect-ratio:9/11;object-fit:cover}
.quote h2{margin-bottom:26px}
.form{margin-top:34px}
.form h3{margin:0 0 22px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--brown);margin:0 0 7px}
.form .field{margin-bottom:18px}
.form input,.form select,.form textarea{
  width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink);
  background:transparent;border:0;border-bottom:1px solid rgba(89,67,50,.38);
  padding:9px 2px;border-radius:0;
}
.form textarea{min-height:96px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-bottom-color:var(--ink)}
.form__note{font-size:13px;margin-top:16px;opacity:.7}
.form__status{font-size:14px;margin-top:14px;min-height:20px}

/* ---------- past events ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:var(--light);padding:78px 0 44px}
.footer a{color:var(--light);text-decoration:none;border-bottom:1px solid rgba(251,253,253,.35)}
.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px}
.footer__word{font-family:var(--font-display);font-size:26px;letter-spacing:.14em;margin:0 0 4px;color:var(--light)}
.footer__sub{font-family:var(--font-display);font-size:13px;letter-spacing:.4em;margin:0 0 20px;color:var(--light);opacity:.9}
.footer p{font-size:15px;opacity:.88;margin:0 0 8px}
.footer__legal{margin-top:56px;padding-top:22px;border-top:1px solid rgba(251,253,253,.18);font-size:13px;opacity:.6}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .wrap{padding:0 24px}
  .sec{padding:76px 0}
  .nav{padding:12px 24px}
  .nav__links{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:var(--ink);flex-direction:column;gap:0;padding:8px 24px 20px;
  }
  .nav__links.open{display:flex}
  .nav__links a{padding:12px 0;width:100%}
  .nav__toggle{display:block}
  .hero__frame{width:min(210px,50vw);margin-top:-110px;border-width:10px}
  .split,.quote{grid-template-columns:1fr;gap:40px}
  .split__imgs > *:last-child img{margin-top:0}
  .pillar,.pillar:nth-child(even){grid-template-columns:1fr;gap:16px;padding:30px 0}
  .pillar:nth-child(even) .pillar__img{order:0}
  .pillar img{width:100%;height:200px}
  .pkg{grid-template-columns:1fr;gap:16px;padding:32px 0}
  .pkg img{width:100%;height:210px}
  .form__row{grid-template-columns:1fr;gap:0}
  .gallery{grid-template-columns:1fr 1fr}
  .footer__grid{grid-template-columns:1fr;gap:32px}
}
