:root {
  --purple: #C29CE8;
  --purple-bright: #d8b4ff;
  --aubergine: #261334;
  --aubergine-2: #170a23;
  --pearl: #f7f3eb;
  --pearl-2: #fffdf8;
  --silver: #d9d4ca;
  --charcoal: #221e24;
  --white: #ffffff;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Montserrat", system-ui, sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--pearl);color:var(--charcoal);font-family:var(--sans);line-height:1.6} body.no-scroll{overflow:hidden} img{display:block;max-width:100%} a{color:inherit;text-decoration:none} button{font:inherit}
.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--pearl);padding:.8rem 1rem;z-index:1000}.skip-link:focus{top:1rem}
.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:1.1rem clamp(1.2rem,4vw,4.5rem);color:white;transition:background .35s,padding .35s,backdrop-filter .35s}.site-header.scrolled{background:rgba(23,10,35,.88);backdrop-filter:blur(14px);padding-top:.75rem;padding-bottom:.75rem}.wordmark{font-family:var(--serif);font-weight:700;letter-spacing:.11em;font-size:1.35rem}.wordmark span{color:#d8b4ff}.site-header nav{display:flex;align-items:center;gap:1.8rem;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em}.site-header nav a{opacity:.82;transition:opacity .2s}.site-header nav a:hover{opacity:1}.nav-cta{border:1px solid rgba(255,255,255,.7);padding:.65rem 1rem;border-radius:99px}.menu-toggle{display:none;color:#fff;background:none;border:1px solid rgba(255,255,255,.55);border-radius:99px;padding:.45rem .8rem}
.hero{position:relative;min-height:100svh;display:grid;place-items:end start;overflow:hidden;background:#13091c}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 34%;animation:heroZoom 14s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,6,26,.92) 0%,rgba(17,6,26,.55) 42%,rgba(17,6,26,.08) 72%),linear-gradient(0deg,rgba(17,6,26,.72),transparent 46%)}.hero-content{position:relative;color:#fff;padding:0 clamp(1.3rem,7vw,8rem) clamp(6rem,11vh,8.5rem);max-width:880px}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.2em;font-weight:600;font-size:.72rem}.eyebrow{color:#dfc1ff}.hero h1{font-family:var(--serif);font-size:clamp(4rem,10vw,9rem);line-height:.75;margin:.3rem 0 1.5rem;letter-spacing:-.045em}.hero-tagline{font-family:var(--serif);font-size:clamp(1.45rem,3vw,2.25rem);margin:0 0 2rem}.hero-tagline span{color:#cda4f4;margin:0 .35em}.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.92rem 1.35rem;font-size:.77rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;transition:transform .2s,background .2s,border-color .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--purple);color:#fff}.button-primary:hover{background:var(--purple-bright)}.button-ghost{color:#fff;border:1px solid rgba(255,255,255,.65);background:rgba(0,0,0,.08)}.button-pearl{background:var(--pearl);color:var(--aubergine)}.scroll-cue{position:absolute;bottom:1.7rem;left:50%;transform:translateX(-50%);height:38px;width:23px;border:1px solid rgba(255,255,255,.55);border-radius:99px}.scroll-cue span{position:absolute;width:3px;height:7px;background:white;border-radius:3px;left:9px;top:7px;animation:scrollCue 1.7s infinite}
.pearl{background:var(--pearl)}.aubergine{background:var(--aubergine);color:#fff}.intro{padding:clamp(6rem,12vw,11rem) 1.5rem;text-align:center}.narrow{max-width:960px;margin:auto}.section-kicker{color:#C29CE8;margin:0 0 1rem;font-size:.84rem;font-weight:700;letter-spacing:.22em}.aubergine .section-kicker{color:#C29CE8}.intro h2,.section-heading h2,.story-copy h2,.contact h2{font-family:var(--serif);font-size:clamp(3rem,7vw,6.2rem);line-height:.9;margin:.2rem 0 1.8rem;letter-spacing:-.04em}.lede{font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,2rem);max-width:780px;margin:auto;color:#4a404b}.credentials{padding:clamp(4rem,8vw,7rem) clamp(1.3rem,5vw,5rem)}.credential-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.16)}.credential{background:var(--aubergine);padding:2.1rem;min-height:250px}.credential span{font-family:var(--serif);font-size:1.8rem;color:#c69ae9}.credential h3{font-family:var(--serif);font-size:2rem;line-height:1;margin:3rem 0 1rem}.credential p{font-size:.9rem;color:rgba(255,255,255,.65)}
.section-heading{text-align:center;max-width:1000px;margin:0 auto 3rem}
.story-panel{position:relative;min-height:86svh;display:grid;align-items:end;overflow:hidden;background:#111}.story-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.story-castle img{object-position:center 38%}.story-closeup img{object-position:center center}.story-festival img{object-position:center center}.story-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(18,7,27,.92),rgba(18,7,27,.08) 65%),linear-gradient(90deg,rgba(18,7,27,.45),transparent 65%)}.story-copy{position:relative;color:#fff;max-width:840px;padding:clamp(2rem,7vw,8rem);padding-bottom:clamp(4rem,9vw,8rem)}.story-copy h2{font-size:clamp(3.2rem,8vw,7.5rem)}.story-copy p:last-child{max-width:620px;font-size:1.05rem;color:rgba(255,255,255,.8)}
.cinematic-break{position:relative;min-height:88svh;background:#08050b;overflow:hidden}.cinematic-break img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%}.cinematic-break:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,2,6,.9),rgba(4,2,6,.05) 75%)}.cinematic-copy{position:relative;z-index:2;color:#fff;padding:clamp(5rem,9vw,10rem);display:flex;align-items:center;min-height:88svh}.cinematic-copy p{font-family:var(--serif);font-size:clamp(3rem,6vw,6.5rem);line-height:.95}.cinematic-copy em{color:#d4adf5;font-weight:500}
.gallery{padding:clamp(6rem,10vw,10rem) clamp(.75rem,3vw,3rem)}.masonry{max-width:1500px;margin:auto;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:48px;gap:12px}.gallery-item{position:relative;border:0;padding:0;overflow:hidden;cursor:zoom-in;background:#ddd;grid-column:span 4;grid-row:span 8;border-radius:8px}.gallery-item.wide{grid-column:span 8;grid-row:span 8}.gallery-item.tall{grid-row:span 12}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .3s}.gallery-item:hover img{transform:scale(1.035);filter:brightness(.85)}.gallery-item:after{content:"View";position:absolute;right:1rem;bottom:1rem;color:#fff;background:rgba(22,9,33,.7);padding:.35rem .7rem;border-radius:99px;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(5px);transition:.25s}.gallery-item:hover:after{opacity:1;transform:none}
.contact{min-height:760px;display:grid;grid-template-columns:1fr 1fr;align-items:stretch;overflow:hidden}.contact-image{width:100%;height:100%;object-fit:cover;object-position:center top}.contact-copy{padding:clamp(4rem,8vw,8rem);display:flex;flex-direction:column;justify-content:center}.contact-copy p:not(.section-kicker):not(.contact-note){max-width:600px;color:rgba(255,255,255,.75);margin:0 0 2rem}.contact-copy .button{align-self:flex-start}.contact-note{font-size:.72rem;color:rgba(255,255,255,.5);max-width:620px;margin-top:1rem}.contact-note code{color:#fff}
footer{background:var(--aubergine-2);color:#fff;text-align:center;padding:3.5rem 1rem}footer p{margin:.3rem 0;color:rgba(255,255,255,.55);font-size:.8rem}.copyright{margin-top:1.2rem!important}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}.lightbox{width:min(96vw,1500px);height:min(94vh,1100px);padding:0;border:0;background:transparent;overflow:visible}.lightbox::backdrop{background:rgba(7,3,10,.93);backdrop-filter:blur(8px)}.lightbox img{width:100%;height:100%;object-fit:contain}.lightbox-close{position:fixed;z-index:2;right:1.5rem;top:1.2rem;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.35);width:44px;height:44px;border-radius:50%;font-size:1.8rem;line-height:1;cursor:pointer}
@keyframes heroZoom{from{transform:scale(1.02)}to{transform:scale(1.09)}}@keyframes scrollCue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media (max-width:900px){.site-header nav{position:absolute;left:1rem;right:1rem;top:70px;display:none;flex-direction:column;align-items:stretch;background:rgba(23,10,35,.97);padding:1.2rem;border-radius:14px}.site-header nav.open{display:flex}.menu-toggle{display:block}.hero-image{object-position:60% center}.hero-shade{background:linear-gradient(0deg,rgba(17,6,26,.92),rgba(17,6,26,.08) 80%)}.credential-grid{grid-template-columns:repeat(2,1fr)}.contact{grid-template-columns:1fr}.contact-image{height:70svh}.masonry{grid-template-columns:repeat(6,1fr)}.gallery-item,.gallery-item.wide{grid-column:span 3}.gallery-item.wide{grid-column:span 6}}
@media (max-width:600px){.hero-content{padding-bottom:5rem}.hero h1{font-size:4.2rem}.hero-actions{flex-direction:column;align-items:flex-start}.credential-grid{grid-template-columns:1fr}.credential{min-height:auto}.story-panel{min-height:74svh}.story-copy{padding-bottom:3.5rem}.cinematic-break,.cinematic-copy{min-height:72svh}.cinematic-break img{object-position:57% center}.masonry{display:block}.gallery-item{width:100%;height:auto;aspect-ratio:4/3;margin-bottom:10px}.gallery-item.tall{aspect-ratio:4/5}.contact-image{height:58svh}.contact-copy{padding:4.5rem 1.4rem}.lightbox{width:100vw;height:90vh}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-image{animation:none}.scroll-cue span{animation:none}.reveal{opacity:1;transform:none;transition:none}.gallery-item img,.button{transition:none}}

.contact-actions{display:flex;flex-wrap:wrap;gap:1rem}.contact-links{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin-top:1.25rem!important;font-size:.88rem}.contact-links a,footer a{color:inherit;text-decoration:none}.contact-links a:hover,footer a:hover{text-decoration:underline}.contact .button-ghost{border-color:rgba(255,255,255,.45)}
@media (max-width:600px){.contact-actions{flex-direction:column;align-items:flex-start}.contact-links{flex-direction:column;align-items:flex-start;gap:.35rem}.contact-links span{display:none}}

/* Reviews */
.reviews { padding: clamp(5rem, 9vw, 9rem) 5vw; }
.reviews-lede { max-width: 720px; margin: 1.25rem auto 0; text-align: center; }
.review-cards { max-width: 1100px; margin: 3rem auto 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.25rem; }
.review-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; padding: 1.6rem; border: 1px solid rgba(43,22,63,.16); background: rgba(255,255,255,.62); text-decoration: none; color: var(--charcoal); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.review-card:hover { transform: translateY(-4px); border-color: var(--purple); box-shadow: 0 18px 45px rgba(43,22,63,.12); }
.review-icon { width: 3.2rem; height: 3.2rem; display: grid; place-items: center; border-radius: 50%; background: var(--aubergine); color: var(--pearl); font-weight: 700; font-size: .85rem; }
.review-label { margin: 0 0 .35rem; color: var(--purple); font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; }
.review-card h3 { margin: 0; font-family: "Cormorant Garamond", serif; font-size: clamp(1.55rem, 2.2vw, 2rem); }
.review-card p:last-child { margin: .35rem 0 0; color: rgba(35,35,35,.72); }
.review-arrow { font-size: 1.5rem; }
@media (max-width: 760px) { .review-cards { grid-template-columns: 1fr; } .review-card { padding: 1.25rem; } }

/* Jeff revisions: condensed spacing, booking forms, and mid-page CTA */
.booking-section{padding:clamp(4.5rem,7vw,7rem) clamp(1.2rem,5vw,5rem)}
.booking-wrap{max-width:1280px;margin:auto;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2.5rem,6vw,6rem);align-items:start}
.booking-intro h2,.join-crowd-copy h2{font-family:var(--serif);font-size:clamp(3rem,6vw,5.8rem);line-height:.92;letter-spacing:-.04em;margin:.25rem 0 1.4rem}
.booking-intro .lede{font-size:clamp(1.3rem,2vw,1.8rem);margin:0;max-width:560px}
.booking-form{background:var(--pearl-2);border:1px solid rgba(42,18,61,.13);border-radius:18px;padding:clamp(1.25rem,3vw,2.25rem);box-shadow:0 22px 55px rgba(42,18,61,.1)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
.form-full{grid-column:1/-1}
.booking-form label{display:grid;gap:.45rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--aubergine)}
.booking-form input,.booking-form textarea{width:100%;border:1px solid rgba(42,18,61,.22);border-radius:9px;background:#fff;padding:.9rem 1rem;font:inherit;color:var(--charcoal);outline:none;transition:border-color .2s,box-shadow .2s}
.booking-form textarea{resize:vertical;min-height:145px}
.booking-form input:focus,.booking-form textarea:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(100,49,154,.13)}
.booking-form .button{margin-top:1.25rem;border:0;cursor:pointer}
.booking-bottom .booking-intro .lede{color:rgba(255,255,255,.78)}
.dark-form{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);box-shadow:none}
.dark-form label{color:#eadcf5}.dark-form input,.dark-form textarea{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.24)}
.dark-form input:focus,.dark-form textarea:focus{border-color:#d3a7f6;box-shadow:0 0 0 3px rgba(211,167,246,.12)}
.join-crowd{display:grid;grid-template-columns:1.2fr .8fr;min-height:620px;align-items:stretch}
.join-crowd-image{min-height:520px;overflow:hidden}.join-crowd-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.join-crowd-copy{padding:clamp(3rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.join-crowd-copy h2{color:var(--purple)}.join-crowd-copy p:not(.section-kicker){max-width:570px;margin:0 0 1.8rem;color:#4a404b}
/* Condense the colored blocks without crowding the content */
.intro{padding:clamp(4rem,7vw,7rem) 1.5rem}.credentials{padding:clamp(3rem,5vw,4.5rem) clamp(1.2rem,4vw,4rem)}
.credential{padding:clamp(1.5rem,2.5vw,2.2rem);min-height:300px}.credential h3{margin:.25rem 0 1rem;font-size:clamp(1.75rem,2.5vw,2.25rem)}.credential p{font-size:.88rem;line-height:1.72}
.story-panel{min-height:72svh}.story-copy{padding-bottom:clamp(3rem,6vw,5rem)}
.cinematic-break,.cinematic-copy{min-height:74svh}.gallery{padding:clamp(4.5rem,7vw,7rem) clamp(.75rem,3vw,3rem)}.reviews{padding:clamp(4.5rem,7vw,7rem) 5vw}
@media (max-width:900px){.booking-wrap{grid-template-columns:1fr}.join-crowd{grid-template-columns:1fr}.join-crowd-image{min-height:56svh}.credential-grid{grid-template-columns:1fr 1fr}.credential{min-height:auto}}
@media (max-width:600px){.booking-section{padding:4rem 1.1rem}.form-grid{grid-template-columns:1fr}.form-full{grid-column:auto}.booking-form{padding:1.1rem}.credential-grid{grid-template-columns:1fr}.join-crowd-image{min-height:48svh}.join-crowd-copy{padding:3.8rem 1.4rem}.story-panel{min-height:68svh}.cinematic-break,.cinematic-copy{min-height:64svh}}

/* Subtle emphasis for The Experience category labels */
.story-copy .section-kicker{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:.42rem .72rem;
  margin-bottom:1.15rem;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  background:rgba(35,14,52,.42);
  color:var(--purple-bright);
  font-size:clamp(.76rem,1vw,.88rem);
  font-weight:700;
  letter-spacing:.18em;
  text-shadow:0 1px 12px rgba(0,0,0,.35);
  backdrop-filter:blur(5px);
}

/* Final contrast system: light lavender on dark imagery, dark aubergine on light sections */
:root{
  --brand-purple-light:#C29CE8;
  --brand-purple-dark:#261334;
}

/* Experience labels sit over dark photography. */
.story-copy .section-kicker{
  color:var(--brand-purple-light) !important;
}

/* Light-background headings and review labels. */
.booking-section.pearl .section-kicker,
.join-crowd.pearl .section-kicker,
.join-crowd.pearl .join-crowd-copy h2,
.gallery.pearl .section-kicker,
.reviews.pearl .section-kicker,
.reviews.pearl .review-label{
  color:var(--brand-purple-dark) !important;
}

/* Primary actions on light backgrounds. */
.booking-section.pearl .button-primary,
.join-crowd.pearl .button-primary{
  background:var(--brand-purple-dark);
  color:#fff;
}
.booking-section.pearl .button-primary:hover,
.join-crowd.pearl .button-primary:hover{
  background:#3a1d4e;
  color:#fff;
}

/* Dark sections retain the lighter lavender accent. */
.aubergine .section-kicker,
.booking-bottom .section-kicker{
  color:var(--brand-purple-light) !important;
}
