/* ===== COLOURS & FONTS: change everything here ===== */
:root{
  --ink:#07090c; --night:#0d1417; --fog:#9fb0ab; --bone:#ebe4d2;
  --lantern:#f0a94a; --ember:#b4532a; --velvet:#3b0e15; --line:#243438;
  --head:'IM Fell English',Georgia,serif;
  --body:'Cormorant Garamond',Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--bone);font:400 1.25rem/1.65 var(--body);overflow-x:hidden;
  background:radial-gradient(ellipse at 15% 0%,#111c20,transparent 55%),radial-gradient(ellipse at 90% 100%,#0f171a,transparent 55%),var(--ink);background-attachment:fixed}
img{max-width:100%}
a{color:var(--lantern)}
:focus-visible{outline:2px solid var(--lantern);outline-offset:4px}
h1,h2,h3{font-family:var(--head);font-weight:400;line-height:1.1;margin:0}
h2{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:1.2rem}
h3{font-size:clamp(1.5rem,3vw,1.8rem);margin-bottom:.4rem}
p{margin:0 0 1.1em}
.wrap{max-width:66rem;margin:0 auto;padding:0 1.5rem}
section{padding:clamp(3.5rem,8vw,6rem) 0;position:relative}
.alt{background:linear-gradient(#090e10,#0d1417 45%,#090e10)}
.alt::before{content:"";position:absolute;left:0;right:0;top:0;height:9rem;pointer-events:none;background:linear-gradient(rgba(159,176,171,.08),transparent)}
.note{color:var(--fog);font-style:italic}
.eyebrow{font-family:var(--head);font-style:italic;color:var(--lantern);font-size:1.25rem;margin-bottom:.4rem}

/* grain + a dim lantern light that follows the pointer on EVERY page */
body::before{content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.09;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
body::after{content:"";position:fixed;inset:0;z-index:75;pointer-events:none;
  background:radial-gradient(circle 460px at var(--gx,50%) var(--gy,40%),rgba(3,5,7,0) 0%,rgba(3,5,7,.2) 55%,rgba(3,5,7,.5) 100%)}

/* ===== BUTTONS ===== */
.btn{display:inline-block;padding:.85rem 2rem;border:1px solid var(--lantern);color:var(--lantern);text-decoration:none;cursor:pointer;
  font-family:var(--head);font-size:1.25rem;line-height:1.2;background:rgba(7,9,12,.55);transition:background .25s,color .25s,box-shadow .25s}
.btn:hover{background:var(--lantern);color:var(--ink);box-shadow:0 0 40px rgba(240,169,74,.45)}
.btn.solid{background:var(--lantern);color:var(--ink)}
.btn.solid:hover{box-shadow:0 0 40px rgba(240,169,74,.6)}

/* ===== HEADER: opening strip, logo, menu, Book button ===== */
.top{position:fixed;top:0;left:0;right:0;z-index:90;transition:background .3s}
.top.solid{background:rgba(6,8,10,.94);backdrop-filter:blur(8px);border-bottom:1px solid #1b2a2e}
.topbar{display:flex;justify-content:center;gap:2.2rem;padding:.3rem 1rem;font-size:.95rem;color:var(--fog);background:rgba(3,5,7,.65);border-bottom:1px solid #182326;text-align:center}
.bar{display:flex;align-items:center;gap:1.5rem;max-width:80rem;margin:0 auto;padding:.7rem 1.5rem;position:relative}
.logo{font-family:var(--head);font-size:1.7rem;color:var(--bone);text-decoration:none;white-space:nowrap}
.logo span{color:var(--lantern)}
nav ul{display:flex;gap:1.7rem;list-style:none;margin:0;padding:0}
nav ul a{color:var(--fog);text-decoration:none;font-size:1.15rem}
nav ul a:hover,nav ul a[aria-current]{color:var(--lantern)}
.right{margin-left:auto;display:flex;align-items:center;gap:.8rem}
.right .btn{padding:.55rem 1.4rem;font-size:1.1rem}
.burger{display:none;width:46px;height:46px;border:1px solid var(--line);background:rgba(7,9,12,.6);color:var(--bone);cursor:pointer;padding:0}
.burger i{display:block;width:22px;height:2px;background:currentColor;margin:5px auto;transition:transform .25s,opacity .25s}
.burger[aria-expanded=true] i:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded=true] i:nth-child(2){opacity:0}
.burger[aria-expanded=true] i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ===== HERO: dark old map + the guide ===== */
.hero{--x:50%;--y:60%;position:relative;min-height:100svh;overflow:hidden;display:flex;align-items:center;
  background:radial-gradient(ellipse at 50% 12%,#2a3f45 0%,transparent 42%),linear-gradient(#0a1114,#06080a);padding:9rem 0 5rem}
.hero.small{min-height:58svh}
.city{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:1}
.dark,.glow{position:absolute;inset:0;pointer-events:none;z-index:2}
.dark{background:radial-gradient(circle 300px at var(--x) var(--y),rgba(7,9,12,0) 0%,rgba(7,9,12,.6) 55%,rgba(7,9,12,.9) 100%)}
.glow{mix-blend-mode:screen;background:radial-gradient(circle 320px at var(--x) var(--y),rgba(240,169,74,.22),transparent 70%)}
.fog{position:absolute;z-index:3;left:0;bottom:0;width:200%;height:46%;pointer-events:none;opacity:.55;filter:blur(30px);
  background:radial-gradient(ellipse 18% 40% at 10% 70%,#8fa39e55,transparent),radial-gradient(ellipse 22% 50% at 38% 60%,#8fa39e44,transparent),
  radial-gradient(ellipse 16% 40% at 62% 75%,#8fa39e55,transparent),radial-gradient(ellipse 20% 45% at 88% 65%,#8fa39e44,transparent);
  animation:drift 70s linear infinite alternate}
.fog.two{height:30%;opacity:.35;animation-duration:110s;animation-direction:alternate-reverse}
@keyframes drift{to{transform:translateX(-50%)}}
.hero::after{content:"";position:absolute;inset:auto 0 0;height:7rem;z-index:3;background:linear-gradient(transparent,var(--ink));pointer-events:none}

/* the guide: black silhouette, backlit by pale mist so it reads on dark screens */
.guide{position:absolute;z-index:4;bottom:0;right:7vw;height:min(88svh,780px);aspect-ratio:480/900;pointer-events:none}
.guide .halo{position:absolute;left:-70%;right:-70%;top:-4%;bottom:-8%;
  background:radial-gradient(ellipse at 50% 56%,rgba(175,200,195,.5),rgba(175,200,195,.17) 42%,transparent 70%)}
.guide img{position:relative;display:block;width:100%;height:100%;
  filter:drop-shadow(0 0 1.5px rgba(245,205,150,.65)) drop-shadow(0 0 26px rgba(240,169,74,.22))}
.footmist{position:absolute;z-index:5;left:0;right:0;bottom:-1rem;height:20%;pointer-events:none;filter:blur(14px);
  background:linear-gradient(transparent,rgba(130,150,146,.35) 60%,rgba(130,150,146,.1))}
.hero.small .guide{height:min(60svh,500px);right:4vw}
.hero .wrap{position:relative;z-index:6;width:100%;max-width:80rem;padding:0 1.5rem}
.hero .wrap>*{max-width:40rem}
.hero .wrap::before{content:"";position:absolute;inset:-3rem -2rem;z-index:-1;background:radial-gradient(ellipse at 30% 50%,rgba(5,7,9,.72),transparent 70%)}
.hero h1{font-size:clamp(3.6rem,11vw,9rem);letter-spacing:.03em;text-shadow:0 2px 24px #000,0 0 40px rgba(240,169,74,.3);animation:breathe 6s ease-in-out infinite}
.hero.small h1{font-size:clamp(2.8rem,8vw,5.8rem)}
@keyframes breathe{50%{text-shadow:0 2px 24px #000,0 0 22px rgba(240,169,74,.15)}}
.where{font-family:var(--head);font-style:italic;font-size:clamp(1.3rem,3vw,2rem);color:var(--lantern);margin:.5rem 0 1.4rem;text-shadow:0 2px 14px #000}
.lead{color:#b9c6c1;font-size:clamp(1.2rem,2.5vw,1.4rem);margin-bottom:2rem;text-shadow:0 2px 14px #000}
.hero .btn+.btn{margin-left:.8rem}

/* ===== QUICK TILES (right under the hero) ===== */
.tiles{padding:0 0 3rem;margin-top:-3.5rem;z-index:7}
.tilegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.tile{display:block;padding:1.3rem 1.4rem;background:rgba(8,13,15,.96);color:var(--bone);text-decoration:none;transition:background .25s}
.tile small{display:block;font-family:var(--head);font-style:italic;color:var(--lantern);font-size:1.05rem}
.tile strong{display:block;font-family:var(--head);font-weight:400;font-size:1.35rem;line-height:1.2;margin:.15rem 0}
.tile span{color:var(--fog);font-size:1.05rem;line-height:1.35;display:block}
.tile:hover{background:#101b1f}

/* ===== PICTURES: arched like a doorway, dark and misty ===== */
.pic{position:relative;margin:0;overflow:hidden;background:#000;border:1px solid #2b3d40;border-radius:48% 48% 0 0/26% 26% 0 0}
.pic img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;filter:grayscale(.45) contrast(1.1) brightness(.85);transition:filter .4s}
.pic::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(5,7,9,.8) 100%),linear-gradient(transparent 70%,rgba(5,7,9,.6))}
.pic figcaption{position:absolute;z-index:2;left:0;right:0;bottom:.6rem;text-align:center;font-style:italic;color:var(--fog);font-size:1rem}
.pic:hover img{filter:grayscale(0) contrast(1.1) brightness(1.05)}

/* ===== ROUTE TIMELINE ===== */
.about{display:grid;grid-template-columns:1fr 1.1fr;gap:3.5rem;align-items:start}
.intro{font-size:clamp(1.25rem,2.5vw,1.5rem)}
.intro em{color:var(--lantern)}
.stops{list-style:none;margin:0;padding:0 0 0 2.4rem;position:relative}
.stops::before{content:"";position:absolute;left:.55rem;top:.6rem;bottom:.6rem;border-left:1px dashed #4b5d5a}
.stops li{position:relative;margin-bottom:3rem}
.stops li::before{content:"";position:absolute;left:-2.25rem;top:.55rem;width:.9rem;height:.9rem;border-radius:50%;background:var(--lantern);box-shadow:0 0 14px 4px rgba(240,169,74,.55)}
.stops li:last-child::before{background:var(--ember);box-shadow:0 0 14px 4px rgba(180,83,42,.6)}
.stops p{color:var(--fog)}
.stops .pic{margin-top:1rem;max-width:26rem}
.stops.big li{display:grid;grid-template-columns:1fr 1.15fr;gap:2.5rem;align-items:center;margin-bottom:4.5rem}
.stops.big .pic{margin:0;max-width:none}

/* ===== CARDS, REVIEWS, FORM ===== */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.4rem}
.card{display:flex;flex-direction:column;padding:1.6rem;border:1px solid var(--line);background:linear-gradient(160deg,rgba(240,169,74,.05),transparent 60%)}
.card .when{color:var(--lantern);font-style:italic}
.card .tag{color:var(--bone);font-style:italic}
.card p{color:var(--fog)}
.card a{margin-top:auto;text-decoration:none}
.card.hot{border-color:#6b1d2a;background:linear-gradient(160deg,rgba(107,29,42,.4),transparent 70%)}
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2rem}
blockquote{margin:0;padding-top:1rem;border-top:1px solid var(--line)}
blockquote p{font-size:1.3rem;font-style:italic;margin-bottom:.4rem}
blockquote footer{background:none;border:0;padding:0;text-align:left;color:var(--fog);font-size:1rem}
.stars{color:var(--lantern);letter-spacing:.2em}
.signup{display:grid;gap:1rem;max-width:34rem}
.signup label{display:block;font-size:1.05rem;color:var(--fog);margin-bottom:.2rem}
.signup input[type=text],.signup input[type=email]{width:100%;padding:.8rem 1rem;font:inherit;font-size:1.15rem;color:var(--bone);background:rgba(5,8,10,.8);border:1px solid #33484c;border-radius:0}
.signup input:focus{border-color:var(--lantern);outline:none;box-shadow:0 0 0 3px rgba(240,169,74,.2)}
.check{display:flex!important;gap:.7rem;align-items:flex-start}
.check input{margin-top:.5rem;accent-color:var(--lantern)}
.cta{text-align:center}
.velvet{background:linear-gradient(rgba(5,7,9,.5),rgba(5,7,9,.78)),repeating-linear-gradient(90deg,#1a0508 0,var(--velvet) 3.5rem,#1a0508 7rem);border-block:1px solid #4a1520}

/* ===== TICKETS, DATES, FAQ ===== */
.dates,.tickets{display:grid;gap:1rem}
.date{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.6rem;border:1px solid var(--line);background:linear-gradient(90deg,rgba(240,169,74,.05),transparent)}
.date strong,.tick strong{font-family:var(--head);font-weight:400;font-size:clamp(1.3rem,3vw,1.6rem);line-height:1.2}
.date span,.tick span{color:var(--fog);display:block;font-size:1.05rem}
.date.hot{border-color:#6b1d2a;background:linear-gradient(90deg,rgba(107,29,42,.35),transparent)}
.tick{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--line)}
.tick b{font-family:var(--head);font-weight:400;font-size:1.6rem;color:var(--lantern);white-space:nowrap}
.good{columns:2;column-gap:3rem;padding-left:1.2rem;color:var(--fog)}
.good li{margin-bottom:.6rem;break-inside:avoid}
details{border-top:1px solid var(--line);padding:1.1rem 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{cursor:pointer;font-family:var(--head);font-size:clamp(1.25rem,3vw,1.5rem);list-style:none;padding-right:2rem;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:0;color:var(--lantern)}
details[open] summary::after{content:"\2212"}
details p{color:var(--fog);margin:.8rem 0 0;max-width:42rem}

/* ===== FOOTER ===== */
footer.site{padding:4rem 0 6rem;color:var(--fog);font-size:1.05rem;background:linear-gradient(var(--ink),#040608);border-top:1px solid #1b2a2e}
.fcols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
footer.site h3{font-size:1.3rem;color:var(--bone)}
footer.site ul{list-style:none;margin:0;padding:0}
footer.site li{margin:.3rem 0}
footer.site a{color:var(--fog)}
footer.site a:hover{color:var(--lantern)}
.legal{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #182326;font-size:.95rem}

/* sticky Book bar on phones */
.bookbar{display:none}

/* ===== TABLET & PHONE ===== */
@media (max-width:900px){
  .burger{display:block}
  .topbar span+span{display:none}
  nav{position:absolute;left:0;right:0;top:100%;display:none;background:rgba(5,7,9,.98);border-bottom:1px solid #1b2a2e;padding:.3rem 1.5rem 1rem}
  nav.open{display:block}
  nav ul{flex-direction:column;gap:0}
  nav ul a{display:block;padding:.95rem 0;border-bottom:1px solid #162226;font-size:1.35rem}
  .hero{align-items:flex-start;padding:8rem 0 calc(min(44svh,420px) + 1rem)}
  .hero.small{min-height:0;padding-bottom:calc(min(30svh,260px) + 1rem)}
  .hero .wrap{text-align:center}
  .hero .wrap>*{margin-left:auto;margin-right:auto}
  .hero .wrap::before{background:radial-gradient(ellipse,rgba(5,7,9,.75),transparent 70%)}
  .guide{right:50%;transform:translateX(50%);height:min(44svh,420px)}
  .hero.small .guide{right:50%;height:min(30svh,260px)}
  .tilegrid{grid-template-columns:repeat(2,1fr)}
  .about,.stops.big li{grid-template-columns:1fr;gap:1.4rem}
  .stops .pic{max-width:none}
  .fcols{grid-template-columns:1fr 1fr}.fcols>:first-child{grid-column:1/-1}
  .good{columns:1}
}
@media (max-width:560px){
  body{font-size:1.15rem}
  .tilegrid{grid-template-columns:1fr}
  .tile{display:flex;justify-content:space-between;align-items:center;gap:1rem}
  .tile span{display:none}
  .fcols{grid-template-columns:1fr}
  .right .btn{display:none}
  .hero .btn{display:block;width:100%;margin:.6rem 0 0!important}
  .bookbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:85;padding:.7rem 1rem calc(.7rem + env(safe-area-inset-bottom));background:rgba(5,7,9,.96);border-top:1px solid #4a1520;text-align:center}
  .bookbar .btn{display:block;width:100%}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}

/* ===== TRIPADVISOR REVIEWS + CONTACT FORM ===== */
.rv-sum{display:flex;gap:.9rem;align-items:center;flex-wrap:wrap;margin-bottom:1.6rem}
.rv-sum a,.rv-ta a,.rv-meta a{color:var(--lantern)}
.bubbles{display:block;height:20px;width:auto}
.rv-sum .bubbles{height:24px}
.quotes blockquote{display:flex;flex-direction:column}
.rv-title{font-size:1.45rem;margin:.6rem 0 .3rem}
.rv-text{margin:0 0 .4rem;color:var(--fog);font-style:italic;font-size:1.15rem;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.rv-text.open{display:block}
.rv-more{align-self:flex-start;background:none;border:0;padding:.3rem 0;color:var(--lantern);font:inherit;cursor:pointer;min-height:44px}
.rv-meta{margin-top:auto;padding-top:.7rem;color:var(--fog);font-size:1rem}
.rv-ta{margin-top:1.6rem;color:var(--fog);font-size:1rem;display:flex;align-items:center;gap:.5rem}
.rv-logo{height:22px}
.rv-fallback{max-width:30rem}
.signup textarea{width:100%;min-height:9rem;padding:.8rem 1rem;font:inherit;font-size:1.15rem;color:var(--bone);background:rgba(5,8,10,.8);border:1px solid #33484c;border-radius:0;resize:vertical}
.signup textarea:focus{border-color:var(--lantern);outline:none;box-shadow:0 0 0 3px rgba(240,169,74,.2)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.status{min-height:1.6em;margin:0;font-style:italic}
.status.ok{color:#9fd6a8}.status.bad{color:#e88a7a}
.fine{color:var(--fog);font-size:.95rem;margin:0}
.g-recaptcha{transform-origin:0 0}
@media (max-width:1100px){nav ul{gap:1.1rem}nav ul a{font-size:1.05rem}.logo{font-size:1.5rem}}
@media (max-width:380px){.g-recaptcha{transform:scale(.88)}}

/* ===== BOOKING ===== */
.options{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.opt{display:flex;flex-direction:column;padding:clamp(1.5rem,4vw,2.2rem);border:1px solid var(--line);background:linear-gradient(160deg,rgba(240,169,74,.08),transparent 65%)}
.opt.group{border-color:#6b1d2a;background:linear-gradient(160deg,rgba(107,29,42,.42),transparent 70%)}
.opt p{color:var(--fog)}
.opt .btn{margin-top:auto;align-self:flex-start}
.right2{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.state{color:var(--fog);font-style:italic}
.state.few{color:var(--lantern)}.state.full{color:#e88a7a}
.signup select,.signup input[type=date],.signup input[type=number],.signup input[type=tel]{width:100%;min-height:3.1rem;padding:.7rem 1rem;font:inherit;font-size:1.15rem;color:var(--bone);background:rgba(5,8,10,.8);border:1px solid #33484c;border-radius:0;color-scheme:dark}
.signup select:focus,.signup input[type=date]:focus,.signup input[type=number]:focus,.signup input[type=tel]:focus{border-color:var(--lantern);outline:none;box-shadow:0 0 0 3px rgba(240,169,74,.2)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hint{color:var(--fog);font-size:1rem;margin:.3rem 0 0}
.plain{list-style:none;padding:0;margin:1.2rem 0 0;color:var(--fog)}
.plain li{margin-bottom:.5rem;padding-left:1.3rem;position:relative}
.plain li::before{content:"";position:absolute;left:0;top:.65em;width:.5rem;height:.5rem;border-radius:50%;background:var(--lantern);box-shadow:0 0 8px 2px rgba(240,169,74,.5)}
@media (max-width:760px){.options,.row2{grid-template-columns:1fr}}
