

:root{
  --ink:#0A1A2E;
  --ink-soft:#48586C;
  --paper:#FAFAF8;
  --paper-deep:#ECF0F4;
  --rust:#F36A00;
  --rust-deep:#C95700;
  --gold:#FFB35C;
  --teal:#1E8A1E;
  --maroon:#9A1414;
  --maroon-deep:#6E0E0E;
  --line:rgba(10,26,46,0.14);
  --line-on-dark:rgba(250,250,248,0.22);
  --on-dark:#FAFAF8;
  --on-dark-dim:rgba(250,250,248,0.72);
  --radius-sm:10px;
  --radius-md:18px;
  --radius-lg:28px;
  --shadow-card:0 12px 30px -12px rgba(10,26,46,0.35);
  --container:1180px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html{scroll-behavior:smooth; scroll-padding-top:84px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.55;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
ul{list-style:none;}
input,textarea,select{font-family:inherit;font-size:16px;}

h1,h2,h3,h4,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  line-height:1.12;
  letter-spacing:-0.01em;
  color:var(--ink);
}
h1{font-size:clamp(38px,9vw,48px);}
h2{font-size:clamp(28px,6.5vw,36px);}
h3{font-size:20px;}
h4{font-size:16px;}

.wrap{
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

.section-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--rust);
  font-weight:600;
  margin-bottom:10px;
}
.section-label::before{
  content:"";
  width:16px;height:1px;
  background:var(--rust);
}
.section-head{margin-bottom:28px;}
.section-head p{color:var(--ink-soft);margin-top:10px;max-width:42ch;font-size:15px;}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:15px 26px;
  border-radius:999px;
  font-size:15px;
  font-weight:600;
  min-height:48px;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease;
  white-space:nowrap;
}
.btn:active{transform:scale(0.97);}
.btn-rust{background:var(--rust);color:var(--paper);box-shadow:0 10px 24px -8px rgba(243,106,0,0.55);}
.btn-rust:hover{background:var(--rust-deep);}
.btn-ink{background:var(--ink);color:var(--paper);}
.btn-line{border:1.5px solid var(--line);color:var(--ink);}
.btn-line-dark{border:1.5px solid var(--line-on-dark);color:var(--on-dark);}
.btn-wide{width:100%;}

.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap;
}
.skip-link{
  position:absolute; left:12px; top:-60px;
  background:var(--ink); color:var(--paper);
  padding:10px 16px; border-radius:8px; z-index:200;
  transition:top .2s ease;
}
.skip-link:focus{top:12px;}


header{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:rgba(10,26,46,0.0);
  transition:background .3s ease, box-shadow .3s ease;
  padding:14px 0;
}
header.scrolled{
  background:rgba(250,250,248,0.96);
  backdrop-filter:blur(10px);
  box-shadow:0 2px 20px rgba(10,26,46,0.08);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px;
}
.brand{display:flex; align-items:center; gap:10px;}
.logo-badge{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--paper);
  border-radius:10px;
  padding:5px 10px;
  box-shadow:0 2px 10px rgba(10,26,46,0.16);
  transition:box-shadow .3s ease;
}
.logo-badge img{display:block;}
.brand img{height:32px; width:auto;}
.brand-name{
  font-family:'Fraunces',serif; font-size:18px; font-weight:600;
  color:var(--on-dark);
  transition:color .3s ease;
}
header.scrolled .brand-name{color:var(--ink);}
.nav-links{
  display:none;
}
.nav-actions{display:flex; align-items:center; gap:8px;}
.nav-enquire-btn{
  padding:9px 14px; min-height:36px;
  font-size:12.5px; white-space:nowrap;
}
.menu-btn{
  width:40px; height:40px; flex:none;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  color:var(--on-dark);
  transition:color .3s ease, background .2s ease;
}
header.scrolled .menu-btn{color:var(--ink);}
.menu-btn:active{background:rgba(0,0,0,0.06);}
.menu-btn-bars{
  position:relative;
  width:20px; height:14px;
  display:inline-block;
}
.menu-btn-bars span{
  position:absolute; left:0;
  width:100%; height:1.8px;
  border-radius:2px;
  background:currentColor;
  transition:transform .32s cubic-bezier(.2,.8,.3,1), opacity .2s ease, top .32s cubic-bezier(.2,.8,.3,1);
}
.menu-btn-bars span:nth-child(1){top:0;}
.menu-btn-bars span:nth-child(2){top:6px;}
.menu-btn-bars span:nth-child(3){top:12px;}
.menu-btn.is-active .menu-btn-bars span:nth-child(1){top:6px; transform:rotate(45deg);}
.menu-btn.is-active .menu-btn-bars span:nth-child(2){opacity:0; transform:scaleX(0);}
.menu-btn.is-active .menu-btn-bars span:nth-child(3){top:6px; transform:rotate(-45deg);}

.mobile-panel{
  position:fixed; inset:0; z-index:90;
  background:var(--ink);
  color:var(--paper);
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.2,.8,.3,1);
  padding:20px;
  display:flex; flex-direction:column;
}
.mobile-panel.open{transform:translateX(0);}
.mobile-panel-top{display:flex; justify-content:space-between; align-items:center;}
.mobile-panel-logo{height:28px; width:auto;}
.mobile-panel-top .logo-badge{box-shadow:none;}
.mobile-panel-close{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:var(--paper);
}
.mobile-panel nav{margin-top:20px; flex:1;}
.mobile-panel nav a{
  display:block;
  font-family:'Fraunces',serif;
  font-size:28px;
  padding:16px 4px;
  border-bottom:1px solid var(--line-on-dark);
  opacity:0;
  transform:translateY(10px);
  transition:transform .38s cubic-bezier(.2,.8,.3,1), opacity .3s ease;
  transition-delay:0s;
}
.mobile-panel.open nav a{opacity:1; transform:translateY(0);}
.mobile-panel.open nav a:nth-child(1){transition-delay:.08s;}
.mobile-panel.open nav a:nth-child(2){transition-delay:.13s;}
.mobile-panel.open nav a:nth-child(3){transition-delay:.18s;}
.mobile-panel.open nav a:nth-child(4){transition-delay:.23s;}
.mobile-panel.open nav a:nth-child(5){transition-delay:.28s;}
.mobile-panel.open nav a:nth-child(6){transition-delay:.33s;}
.mobile-panel-foot{padding-top:20px; display:flex; flex-direction:column; gap:12px;}
.mobile-panel-foot a{font-size:14px; color:var(--on-dark-dim);}


.hero{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  color:var(--on-dark);
}
.hero-media{position:absolute; inset:0;}
.hero-slide{
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1.2s ease;
}
.hero-slide.active{opacity:1;}
.hero-slide img{width:100%; height:100%; object-fit:cover;}
.hero-media::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,16,28,0.55) 0%, rgba(6,16,28,0.15) 32%, rgba(6,16,28,0.35) 60%, rgba(6,16,28,0.92) 100%);
}
.hero-content{
  position:relative; z-index:5;
  margin-top:auto;
  padding:0 20px 34px;
}
.hero-eyebrow{
  font-size:14px;
  color:var(--gold);
  margin-bottom:10px;
  display:flex; align-items:center; gap:8px;
}
.hero-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);}
.hero h1{color:var(--on-dark); max-width:20ch;}
.hero-sub{
  margin-top:14px; max-width:34ch;
  font-size:15.5px; color:rgba(250,250,248,0.88);
}
.hero-ctas{margin-top:22px; display:flex; gap:10px; flex-wrap:wrap;}
@media (max-width:480px){
  .hero-ctas{flex-wrap:nowrap;}
  .hero-ctas .btn{flex:1 1 0; min-width:0; padding:14px 10px; font-size:13px; white-space:normal; text-align:center;}
}
.hero-dots{
  position:relative; z-index:5;
  display:flex; gap:6px; padding:0 20px calc(18px + 78px + env(safe-area-inset-bottom));
}
.hero-dots button{
  width:22px; height:3px; border-radius:2px;
  background:rgba(250,250,248,0.35);
  transition:background .2s ease, width .2s ease;
}
.hero-dots button.active{background:var(--gold); width:34px;}
.hero-scroll-cue{
  position:absolute; right:18px; bottom:20px; z-index:5;
  writing-mode:vertical-rl;
  font-size:11px; letter-spacing:0.08em;
  color:rgba(250,250,248,0.6);
  display:none;
}


.intro{padding:56px 0 20px;}
.intro p{color:var(--ink-soft); margin-top:16px; font-size:15.5px; max-width:56ch;}
.intro p + p{margin-top:12px;}
.fact-row{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:20px 16px;
  margin-top:32px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.fact-row .fact-value{
  font-family:'Fraunces',serif; font-size:26px; display:block; color:var(--rust);
}
.fact-row .fact-label{font-size:13px; color:var(--ink-soft);}


.rail-section{padding:48px 0 8px; overflow:hidden;}
.rail-head{
  display:flex; flex-direction:column; align-items:flex-start;
  gap:16px; margin-bottom:22px;
  padding:0 20px;
}
.rail-head h2{font-size:clamp(24px,6.5vw,30px);}
.rail-controls{display:flex; align-items:center; gap:10px; flex:none;}
.rail-counter{
  font-family:'Fraunces',serif; font-size:14px; color:var(--ink-soft);
  min-width:46px; text-align:center;
}
.rail-arrow{
  width:40px; height:40px; border-radius:50%;
  border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, border-color .2s ease, opacity .2s ease;
}
.rail-arrow svg{width:16px; height:16px;}
.rail-arrow:disabled{opacity:0.35;}
.rail-arrow:not(:disabled):hover{background:var(--ink); color:var(--paper); border-color:var(--ink);}

.rail{
  display:flex;
  gap:14px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  padding:0 20px 10px;
  scrollbar-width:none;
}
.rail::-webkit-scrollbar{display:none;}
@media (max-width:699px){
  .rail{padding-left:20px;}
}
.dest-card{
  flex:none;
  width:78vw;
  max-width:320px;
  scroll-snap-align:start;
  border-radius:var(--radius-md);
  overflow:hidden;
  background:var(--ink);
  position:relative;
  box-shadow:var(--shadow-card);
  cursor:pointer;
  transition:transform .18s ease;
}
.dest-card:active{transform:scale(0.98);}
.dest-card:focus-visible{outline:2px solid var(--rust); outline-offset:3px;}
.dest-card .scene{height:230px; position:relative;}
.dest-card .scene img{width:100%; height:100%; object-fit:cover;}
.dest-card .scene::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,16,28,0.05) 40%, rgba(6,16,28,0.85) 100%);
}
.dest-price-chip{
  position:absolute; top:12px; left:12px; z-index:2;
  background:rgba(250,250,248,0.92);
  color:var(--ink);
  font-size:12.5px; font-weight:600;
  padding:6px 12px; border-radius:999px;
}
.dest-season-chip{
  position:absolute; top:12px; right:12px; z-index:2;
  background:rgba(6,16,28,0.55);
  color:var(--paper);
  font-size:11px; font-weight:600;
  padding:6px 11px; border-radius:999px;
  backdrop-filter:blur(2px);
}
.dest-card-body{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:16px;
  color:var(--paper);
}
.dest-card-body .region{font-size:12px; color:var(--gold); margin-bottom:2px;}
.dest-card-body h3{font-size:22px; color:var(--paper);}
.dest-meta{
  display:flex; justify-content:space-between; align-items:center;
  margin-top:10px; padding-top:10px;
  border-top:1px solid var(--line-on-dark);
  font-size:13px; color:rgba(250,250,248,0.85);
}
.dest-view-link{
  color:var(--paper); font-weight:600; font-size:13px;
  display:flex; align-items:center; gap:5px;
}
.dest-view-link svg{width:13px; height:13px;}


.why{padding:56px 0;}
.why-list{margin-top:24px;}
.why-row{
  display:flex; gap:16px;
  padding:22px 0;
  border-top:1px solid var(--line);
}
.why-row:last-child{border-bottom:1px solid var(--line);}
.why-icon{
  flex:none; width:44px; height:44px;
  border-radius:50%;
  background:var(--paper-deep);
  display:flex; align-items:center; justify-content:center;
  color:var(--rust);
}
.why-icon svg{width:22px; height:22px;}
.why-row p{color:var(--ink-soft); margin-top:6px; font-size:14.5px;}


.experiences{padding:16px 0 56px;}
.exp-list{display:flex; flex-direction:column; gap:12px; margin-top:24px;}
.exp-row{
  display:flex; align-items:center; gap:14px;
  padding:14px; border-radius:var(--radius-md);
  background:var(--paper-deep);
  transition:background .2s ease;
}
.exp-row .thumb{
  flex:none; width:64px; height:64px; border-radius:14px; overflow:hidden;
}
.exp-row .thumb img{width:100%; height:100%; object-fit:cover;}
.exp-row .exp-body{flex:1; min-width:0;}
.exp-row h3{font-size:16.5px;}
.exp-row p{font-size:13.5px; color:var(--ink-soft); margin-top:2px;}
.exp-row .exp-go{flex:none; width:32px; height:32px; color:var(--rust);}
.exp-row .exp-go svg{width:18px; height:18px;}


.business{background:var(--maroon-deep); color:var(--on-dark); padding:56px 0;}
.business .section-label{color:var(--gold);}
.business .section-label::before{background:var(--gold);}
.business h2{color:var(--on-dark);}
.business-head p{color:var(--on-dark-dim); margin-top:12px; font-size:15px; max-width:50ch;}
.business-cards{display:flex; flex-direction:column; gap:14px; margin-top:28px;}
.b-card{
  background:rgba(250,250,248,0.06);
  border:1px solid var(--line-on-dark);
  border-radius:var(--radius-md);
  padding:20px;
}
.b-card .b-label{font-size:12px; color:var(--gold); margin-bottom:8px; display:block;}
.b-card h3{color:var(--on-dark); font-size:18px; margin-bottom:8px;}
.b-card p{font-size:14px; color:var(--on-dark-dim); line-height:1.6;}
.b-card a.b-link{display:inline-block; margin-top:10px; color:var(--gold); font-size:14px; font-weight:600;}
.service-tags{display:flex; flex-wrap:wrap; gap:8px;}
.service-tags span{
  font-size:12.5px; padding:6px 12px; border-radius:999px;
  border:1px solid var(--line-on-dark); color:var(--on-dark-dim);
}
.hours-grid{display:flex; flex-direction:column; gap:8px; font-size:14.5px;}
.hours-grid div{display:flex; justify-content:space-between;}
.hours-grid strong{color:var(--on-dark);}
.contact-list{display:flex; flex-direction:column; gap:12px; margin-top:2px;}
.contact-row{display:flex; align-items:center; gap:12px; font-size:14px; color:var(--on-dark-dim); transition:color .2s ease;}
.contact-row:hover{color:var(--on-dark);}
.contact-ico{
  flex:none; width:34px; height:34px; border-radius:10px;
  overflow:hidden; display:flex; align-items:center; justify-content:center;
  background:transparent;
}
.contact-ico img{width:100%; height:100%; object-fit:cover;}

.catalogue-head{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-top:40px; margin-bottom:16px; gap:12px; flex-wrap:wrap;
}
.catalogue-head h3{color:var(--on-dark); font-size:19px;}
.catalogue-head a{font-size:13.5px; color:var(--gold); font-weight:600;}
.catalogue-hint{font-size:13px; color:var(--on-dark-dim); margin-bottom:14px;}
.catalogue-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:10px;
}
.cat-item{
  background:rgba(250,250,248,0.05);
  border:1px solid var(--line-on-dark);
  border-radius:14px; padding:14px;
  position:relative;
  display:block; width:100%; text-align:left;
  font-family:inherit;
  transition:background .2s ease, border-color .2s ease, transform .15s ease;
}
button.cat-item{cursor:pointer;}
button.cat-item:hover{background:rgba(250,250,248,0.1); border-color:rgba(255,179,92,0.5);}
button.cat-item:active{transform:scale(0.98);}
.cat-tag{font-size:10.5px; color:var(--gold); font-weight:600;}
.cat-item h4{color:var(--on-dark); font-size:14.5px; margin-top:6px; line-height:1.3; padding-right:20px;}
.cat-item p{font-size:12px; color:var(--on-dark-dim); margin-top:2px;}
.cat-item strong{display:block; margin-top:8px; font-family:'Fraunces',serif; font-size:16px; color:var(--gold);}
.cat-item a{display:inline-block; margin-top:8px; font-size:13px; color:var(--gold); font-weight:600;}
.cat-chevron{
  position:absolute; top:14px; right:12px;
  width:20px; height:20px; border-radius:50%;
  border:1px solid rgba(232,198,138,0.55);
}
.cat-chevron::before{
  content:"›";
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:14px; line-height:1;
}


.cat-modal-card{max-width:520px;}
.cat-modal-head{
  position:relative; height:36vh; min-height:200px; max-height:280px;
  flex:none; overflow:hidden;
  background:var(--ink); color:var(--on-dark);
}
.cat-modal-head img{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%; object-fit:cover;
  opacity:1; transition:opacity .25s ease;
}
.cat-modal-head img.cat-modal-img-loading{opacity:0;}
.cat-modal-head::after{
  content:"";
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(6,16,28,0.1) 0%, rgba(6,16,28,0.28) 42%, rgba(6,16,28,0.94) 100%);
}
.cat-modal-overlay{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  padding:20px 22px;
}
.cat-modal-tag{font-size:11.5px; color:var(--gold); font-weight:600; letter-spacing:0.02em;}
.cat-modal-overlay h3{color:var(--on-dark); font-size:25px; margin-top:6px;}
.cat-modal-price-row{display:flex; gap:28px; margin-top:14px;}
.cat-modal-price-row .mm-label{color:var(--on-dark-dim);}
.cat-modal-price-row .mm-value{color:var(--on-dark);}
.cat-modal-price-row .mm-value.price{color:var(--gold);}
.cat-modal-scroll{padding:20px 22px 100px;}
.cat-modal-note{
  font-size:13.5px; color:var(--ink-soft);
  background:var(--paper-deep); border-radius:12px;
  padding:12px 14px; margin-bottom:20px;
}


.quick-modal-card{max-width:460px;}
.quick-modal-head{padding:28px 22px 14px;}
.quick-modal-head h3{margin-top:8px; font-size:22px;}
.modal-scroll.quick-modal-scroll{padding:6px 22px 26px;}
#quick-enquiry-form{display:flex; flex-direction:column; gap:16px;}


.testimonial{
  position:relative; padding:70px 0; overflow:hidden;
  background:var(--ink); color:var(--paper);
}
.testimonial .t-bg{position:absolute; inset:0; opacity:0.35;}
.testimonial .t-bg img{width:100%; height:100%; object-fit:cover;}
.testimonial .t-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, var(--ink) 0%, rgba(10,26,46,0.55) 45%, var(--ink) 100%);
}
.testimonial .wrap{position:relative; z-index:2;}
.testimonial blockquote{
  font-family:'Fraunces',serif; font-size:clamp(22px,5.5vw,28px);
  line-height:1.4; max-width:30ch;
}
.testimonial cite{
  display:block; margin-top:22px; font-size:13.5px; font-style:normal; color:var(--gold);
}

.t-head{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px 20px;
  margin-bottom:8px;
}
.testimonial .t-label{margin:0;}
.t-google-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:7px 14px 7px 10px; border-radius:999px;
  background:rgba(250,248,244,0.08); border:1px solid rgba(250,248,244,0.18);
  color:var(--paper); font-size:13px; text-decoration:none;
  transition:background .2s ease, border-color .2s ease;
}
.t-google-badge:hover{background:rgba(250,248,244,0.14); border-color:rgba(250,248,244,0.3);}
.t-google-badge strong{color:var(--gold);}
.t-stars{
  display:block; letter-spacing:3px; color:var(--gold); font-size:14px; margin-bottom:14px;
}


.t-slider{position:relative; margin-top:28px; overflow:hidden; transition:height .4s ease;}
.t-track{display:flex; align-items:flex-start; transition:transform .55s cubic-bezier(.65,0,.35,1); touch-action:pan-y;}
.t-slide{flex:0 0 100%; min-width:100%; box-sizing:border-box; padding-right:6vw;}
.t-controls{
  display:flex; align-items:center; justify-content:center; gap:18px;
  margin-top:30px;
}
.t-arrow{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%; flex:none;
  background:transparent; border:1px solid rgba(250,248,244,0.3); color:var(--paper);
  cursor:pointer; transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.t-arrow svg{width:18px; height:18px;}
.t-arrow:hover{background:rgba(250,248,244,0.12); border-color:rgba(250,248,244,0.5);}
.t-arrow:active{transform:scale(0.92);}
.t-dots{display:flex; align-items:center; gap:9px;}
.t-dot{
  width:8px; height:8px; border-radius:50%; padding:0; border:none;
  background:rgba(250,248,244,0.3); cursor:pointer; transition:background .2s ease, transform .2s ease;
}
.t-dot.is-active{background:var(--gold); transform:scale(1.2);}
@media (max-width:640px){
  .t-slide{padding-right:0;}
}


.faq{padding:56px 0;}
.faq-list{margin-top:24px; border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none;
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:18px 2px; cursor:pointer;
  font-family:'Fraunces',serif; font-size:16.5px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-plus{
  flex:none; width:26px; height:26px; border-radius:50%;
  border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.faq-plus::before, .faq-plus::after{
  content:""; position:absolute;
  background:var(--ink);
}
.faq-plus::before{width:10px; height:1.5px;}
.faq-plus::after{width:1.5px; height:10px; transition:transform .2s ease;}
.faq-item[open] .faq-plus::after{transform:rotate(90deg); opacity:0;}
.faq-item p{font-size:14.5px; color:var(--ink-soft); padding:0 2px 20px; max-width:56ch;}


.contact{padding:56px 0 40px;}
.contact-photo{
  border-radius:var(--radius-lg); overflow:hidden; position:relative;
  height:220px; margin-bottom:20px;
}
.contact-photo img{width:100%; height:100%; object-fit:cover;}
.contact-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,16,28,0.05), rgba(6,16,28,0.75));
}
.contact-photo .cp-copy{
  position:absolute; left:18px; bottom:16px; right:18px; z-index:2; color:var(--paper);
}
.contact-photo .cp-copy span{font-size:12.5px; color:var(--gold);}
.contact-photo .cp-copy strong{display:block; font-family:'Fraunces',serif; font-size:20px; margin-top:4px;}
.contact-quick{display:flex; gap:10px; margin-bottom:26px;}
.contact-quick a{flex:1;}

.form-heading{
  display:flex; align-items:center; gap:10px;
  font-size:14px; font-weight:600; color:var(--ink);
  margin:28px 0 16px;
  padding-top:20px;
  border-top:1px solid var(--line);
}
.form-heading::before{
  content:"";
  width:28px; height:28px; flex:none; border-radius:50%;
  background:var(--paper-deep);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F36A00' stroke-width='1.8'%3E%3Cpath d='M4 6h16v12H4z'/%3E%3Cpath d='M4 7l8 6 8-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center; background-size:15px;
}
.enquiry-form{display:flex; flex-direction:column; gap:22px;}
.form-group{display:flex; flex-direction:column; gap:14px;}
.form-group-label{font-size:12.5px; font-weight:600; color:var(--rust); text-transform:none;}
.field-row{display:flex; flex-direction:column; gap:14px;}
.field{display:flex; flex-direction:column; gap:6px; position:relative;}
.field label{font-size:13px; color:var(--ink-soft); font-weight:600;}
.field label .req{color:var(--rust); margin-left:2px;}
.field label .opt{color:var(--ink-soft); font-weight:400; font-size:12px;}
.field input, .field select, .field textarea{
  padding:13px 14px; border-radius:12px;
  border:1.5px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--rust);
  box-shadow:0 0 0 3px rgba(243,106,0,0.15);
}
.field textarea{min-height:88px; resize:vertical;}
.field.has-error input, .field.has-error select, .field.has-error textarea{
  border-color:var(--rust-deep);
  box-shadow:0 0 0 3px rgba(140,61,34,0.12);
}
.field-error{
  font-size:12.5px; color:var(--rust-deep);
  min-height:0; display:none;
}
.field.has-error .field-error{display:block;}

.field-stepper .stepper{
  display:flex; align-items:center; gap:0;
  border:1.5px solid var(--line); border-radius:12px; overflow:hidden;
}
.stepper input{
  border:none; text-align:center; flex:1; padding:13px 4px;
  -moz-appearance:textfield;
}
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button{
  -webkit-appearance:none; margin:0;
}
.stepper-btn{
  flex:none; width:42px; height:48px;
  font-size:18px; color:var(--ink);
  background:var(--paper-deep);
  display:flex; align-items:center; justify-content:center;
}
.stepper-btn:active{background:var(--line);}

.field-honeypot{position:absolute; left:-9999px; width:1px; height:1px; opacity:0;}

.form-actions{display:flex; flex-direction:column; gap:10px; margin-top:-4px;}
.form-note{font-size:12.5px; color:var(--ink-soft);}
.form-note .req{color:var(--rust);}
.form-status{font-size:13.5px; color:var(--teal); min-height:18px;}
.form-status.error{color:var(--rust-deep);}
#ef-submit{position:relative;}
#ef-submit:disabled{opacity:0.7; cursor:wait;}
#ef-submit.loading #ef-submit-label{visibility:hidden;}
#ef-submit.loading::after{
  content:""; position:absolute; left:50%; top:50%;
  width:18px; height:18px; margin:-9px 0 0 -9px;
  border-radius:50%;
  border:2px solid rgba(250,250,248,0.4);
  border-top-color:var(--paper);
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

.enquiry-success{
  text-align:center;
  padding:44px 20px;
  border:1.5px dashed var(--line);
  border-radius:var(--radius-lg);
}
.enquiry-success .success-check{
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  background:var(--teal); color:var(--paper);
  margin:0 auto 16px;
}
.enquiry-success .success-check svg{width:26px; height:26px;}
.enquiry-success h3{font-size:20px;}
.enquiry-success p{font-size:14px; color:var(--ink-soft); margin:8px auto 20px; max-width:36ch;}


footer{background:var(--ink); color:var(--on-dark-dim); padding:52px 0 110px;}
.footer-top{display:flex; flex-direction:column; gap:28px;}
.footer-brand img{height:34px;}
.footer-brand p{font-size:13.5px; margin-top:14px; max-width:34ch; color:var(--on-dark-dim);}
.footer-cols{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.footer-col h4{font-size:13px; color:var(--gold); margin-bottom:14px; font-weight:600;}
.footer-col li{margin-bottom:10px; font-size:13.5px;}
.footer-col a:hover{color:var(--paper);}
.footer-social{display:flex; gap:8px; margin-top:16px; flex-wrap:wrap;}
.footer-social a{
  display:flex; align-items:center; gap:6px;
  padding:9px 13px; border-radius:999px;
  border:1px solid var(--line-on-dark); font-size:12.5px;
}
.footer-social img{width:15px; height:15px;}
.footer-bottom{
  margin-top:36px; padding-top:20px; border-top:1px solid var(--line-on-dark);
  display:flex; flex-direction:column; gap:6px; font-size:12px; color:rgba(250,250,248,0.45);
}


.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:70;
  display:flex; gap:10px; padding:10px 14px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:rgba(250,250,248,0.97);
  backdrop-filter:blur(10px);
  border-top:1px solid var(--line);
}
.sticky-cta a{flex:1;}
.floating-wa{
  position:fixed; right:16px; bottom:calc(88px + env(safe-area-inset-bottom)); z-index:75;
  width:58px; height:58px; min-width:58px; min-height:58px;
  border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  padding:0; box-sizing:border-box; overflow:hidden;
  box-shadow:0 8px 22px rgba(0,0,0,0.24);
  border:0;
  outline:0;
}
.floating-wa img{display:block; width:34px; height:34px; max-width:34px; max-height:34px; object-fit:contain;}


.modal-overlay{
  position:fixed; inset:0; z-index:120;
  background:rgba(6,16,28,0.7);
  display:flex; align-items:flex-end; justify-content:center;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s ease, visibility 0s linear .28s, background .28s ease;
}
.modal-overlay.open{
  opacity:1; visibility:visible; pointer-events:auto;
  transition:opacity .28s ease, visibility 0s linear 0s, background .28s ease;
}
.modal-card{
  background:var(--paper);
  width:100%; max-width:720px;
  max-height:92vh;
  border-radius:24px 24px 0 0;
  overflow:hidden; position:relative;
  display:flex; flex-direction:column;
  transform:translateY(30px);
  opacity:0;
  transition:transform .32s cubic-bezier(.2,.8,.3,1), opacity .28s ease;
}
.modal-overlay.open .modal-card{
  transform:translateY(0);
  opacity:1;
}
.modal-close{
  position:absolute; top:14px; right:14px; z-index:20;
  width:36px; height:36px; border-radius:50%;
  background:rgba(6,16,28,0.55); color:var(--paper);
  display:flex; align-items:center; justify-content:center; font-size:16px;
}
.modal-gallery{position:relative; height:38vh; min-height:200px; flex:none; background:var(--ink); overflow:hidden;}
.gallery-slide{position:absolute; inset:0; opacity:0; transition:opacity .5s ease;}
.gallery-slide.active{opacity:1;}
.gallery-slide img{width:100%; height:100%; object-fit:cover;}
.gallery-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:10;
  width:36px; height:36px; border-radius:50%;
  background:rgba(6,16,28,0.5); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
}
.gallery-nav.prev{left:12px;} .gallery-nav.next{right:12px;}
.gallery-count{
  position:absolute; top:14px; left:14px; z-index:10;
  font-size:11px; color:var(--paper); background:rgba(6,16,28,0.5);
  padding:5px 10px; border-radius:999px;
}
.gallery-overlay{
  position:absolute; left:0; right:0; bottom:0; z-index:5; padding:20px;
  background:linear-gradient(180deg, transparent, rgba(6,16,28,0.9));
  color:var(--paper);
}
.gallery-overlay .region{font-size:12px; color:var(--gold);}
.gallery-overlay h3{color:var(--paper); font-size:24px; margin-top:2px;}
.modal-scroll{overflow-y:auto; flex:1; padding:22px 20px 100px;}
.modal-desc{font-size:15px; color:var(--ink-soft); margin-bottom:20px;}
.modal-meta{display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:22px;}
.mm-label{font-size:11.5px; color:var(--ink-soft);}
.mm-value{font-family:'Fraunces',serif; font-size:16px; margin-top:2px;}
.mm-value.price{color:var(--rust);}
.modal-block{margin-bottom:22px;}
.modal-block h4{font-size:14px; margin-bottom:10px;}
.modal-block ul{display:flex; flex-direction:column; gap:8px;}
.modal-block li{font-size:14px; padding-left:18px; position:relative; color:var(--ink-soft);}
.modal-block li::before{content:""; position:absolute; left:0; top:8px; width:5px; height:5px; border-radius:50%; background:var(--rust);}
.modal-itin{margin-bottom:6px;}
.modal-itin ol{display:flex; flex-direction:column;}
.modal-itin li{
  display:flex; gap:16px; align-items:baseline;
  padding:13px 0;
  border-bottom:1px solid var(--line);
  font-size:14.5px;
}
.modal-itin li:last-child{border-bottom:none; padding-bottom:0;}
.modal-block.modal-itin li{padding-left:0;}
.modal-block.modal-itin li::before{content:none;}
.itin-day{
  flex:none; width:54px;
  font-family:'Fraunces',serif; font-size:13.5px; color:var(--rust);
}
.itin-text{color:var(--ink-soft);}
.modal-footer{
  position:absolute; left:0; right:0; bottom:0; z-index:15;
  background:var(--paper); border-top:1px solid var(--line);
  padding:14px 20px; padding-bottom:calc(14px + env(safe-area-inset-bottom));
  display:flex; gap:10px;
}
.modal-footer .btn{flex:1;}
body.modal-open{overflow:hidden;}


.crumb-nav{padding:100px 0 0;}
.crumb-nav ol{display:flex; gap:6px; font-size:12.5px; color:var(--ink-soft); flex-wrap:wrap;}
.crumb-nav a{color:var(--ink-soft);}
.crumb-nav li:last-child{color:var(--ink);}
.crumb-nav li:not(:last-child)::after{content:"/"; margin-left:6px; color:var(--line);}
.crumb-nav{display:none;}


@media (min-width:700px){
  h1{font-size:clamp(52px,7vw,72px);}
  .wrap{padding:0 32px;}
  .nav-links{
    display:flex; gap:28px; list-style:none;
  }
  .nav-links a{color:var(--on-dark); font-size:14.5px; transition:color .3s ease, opacity .2s ease; opacity:0.9;}
  .nav-links a:hover{opacity:1;}
  header.scrolled .nav-links a{color:var(--ink);}
  .menu-btn{display:none;}
  .brand img{height:38px;}
  .nav-actions{gap:14px;}
  .nav-enquire-btn{padding:12px 22px; min-height:44px; font-size:14.5px;}
  .hero-content{padding:0 32px 56px;}
  .hero-dots{padding:0 32px 22px;}
  .floating-wa{bottom:24px;}
  .hero-scroll-cue{display:block;}
  .fact-row{grid-template-columns:repeat(4,1fr);}
  .rail-head{flex-direction:row; align-items:flex-end; justify-content:space-between;}
  .rail-head h2{font-size:clamp(28px,4vw,36px);}
  
  .rail-head, .rail{max-width:var(--container); margin-left:auto; margin-right:auto;}
  .why-list{max-width:none;}
  .experiences{max-width:820px;}
  .dest-card{width:340px;}
  .modal-overlay{align-items:center; padding:32px;}
  .modal-card{
    border-radius:var(--radius-lg);
    max-height:86vh;
    box-shadow:0 30px 70px -20px rgba(6,16,28,0.45);
    transform:translateY(16px) scale(0.98);
  }
  .modal-overlay.open .modal-card{transform:translateY(0) scale(1);}
  .modal-gallery{height:320px;}
  .cat-modal-head{height:260px; max-height:none;}
  
  .business > .wrap{max-width:1180px;}
  .business-cards{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:"visit contact" "hours services";
    gap:18px;
    align-items:start;
  }
  .business-cards .b-card{
    min-width:0;
    padding:22px;
  }
  .contact-row{
    min-width:0;
    gap:14px;
  }
  .contact-row > span:last-child{
    min-width:0;
    overflow-wrap:anywhere;
  }
  .contact-ico{width:38px;height:38px;border-radius:10px;}
  .contact-ico img{object-fit:contain;}
  .business-cards .b-card:nth-child(1){grid-area:visit;}
  .business-cards .b-card:nth-child(2){grid-area:contact;}
  .business-cards .b-card:nth-child(3){grid-area:hours; align-self:start;}
  .business-cards .b-card:nth-child(4){grid-area:services; display:flex; flex-direction:column;}
  .business-cards .b-card:nth-child(4) .service-tags{margin-top:4px;}
  .catalogue-grid{grid-template-columns:repeat(4,1fr);}
  .footer-top{flex-direction:row; justify-content:space-between; gap:40px;}
  .footer-cols{grid-template-columns:repeat(3,1fr); flex:1;}
  .sticky-cta{display:none;}
  .crumb-nav{display:block;}
}

@media (min-width:980px){
  
  .business-cards{
    grid-template-rows:repeat(2, minmax(250px, 1fr));
  }
  .business-cards .b-card{
    height:100%;
    box-sizing:border-box;
  }

  .intro-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:center;}
  .intro-grid .fact-row{margin-top:0; border-top:none; padding-top:0; grid-template-columns:1fr 1fr;}
  .why-grid-desktop{
    display:grid; grid-template-columns:repeat(3,1fr); gap:0;
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .why-grid-desktop .why-row{
    flex-direction:column; align-items:flex-start; gap:14px;
    padding:32px 32px 36px;
    border-top:none; border-left:1px solid var(--line);
  }
  .why-grid-desktop .why-row:first-child{border-left:none;}
  .why-grid-desktop .why-row:last-child{border-bottom:none;}
  .why-icon{width:48px; height:48px;}
  .why-icon svg{width:24px; height:24px;}
  .exp-list{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
  .experiences{max-width:none;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:flex-start;}
  .contact-photo{height:100%; min-height:520px; margin-bottom:0;}
  .field-row{flex-direction:row;}
  .field-row .field{flex:1;}
  .field-stepper{max-width:160px;}
}

@media (min-width:1180px){
  .dest-card{width:360px;}

  
  .exp-list{
    display:grid; grid-template-columns:repeat(4,1fr); gap:22px;
  }
  .exp-row{
    flex-direction:column; align-items:stretch; gap:0;
    padding:0; background:transparent; border-radius:0;
    position:relative;
  }
  .exp-row .thumb{
    width:100%; height:200px; border-radius:var(--radius-md);
    transition:transform .35s ease;
  }
  .exp-row:hover .thumb img{transform:scale(1.06);}
  .exp-row .thumb img{transition:transform .35s ease;}
  .exp-row .exp-body{margin-top:18px;}
  .exp-row h3{font-size:19px;}
  .exp-row p{font-size:14.5px; margin-top:5px; line-height:1.5;}
  .exp-row .exp-go{
    position:absolute; top:14px; right:14px; width:36px; height:36px;
    border-radius:50%; background:rgba(250,248,244,0.92); color:var(--rust);
    display:flex; align-items:center; justify-content:center;
    opacity:0; transform:translateY(-4px);
    transition:opacity .2s ease, transform .2s ease;
  }
  .exp-row:hover .exp-go{opacity:1; transform:translateY(0);}
}
