/* ==========================================================================
   Events on Boat — modern section design layer
   Loaded after style.css and cinematic.css. Same brand palette, upgraded
   surfaces: soft-shadow cards, gradient borders, pill labels, glass panels,
   textured section backgrounds and richer component details.
   ========================================================================== */

:root {
  --r-xl: 28px; --r-lg: 22px; --r-md: 16px;
  --shadow-soft: 0 1px 2px rgba(27,33,64,.04), 0 10px 28px -14px rgba(27,33,64,.16);
  --shadow-lift: 0 2px 6px rgba(27,33,64,.05), 0 30px 60px -26px rgba(27,33,64,.34);
  --grad-warm: linear-gradient(135deg,#F2B33D 0%,#E07A3F 55%,#B8321F 100%);
  --grad-ring: linear-gradient(135deg,#E8A33D,#C2603A 50%,#9A3524);
  --check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}

/* ---------- Rhythm & typography ---------- */
section { padding: 92px 0; }
.section-compact { padding: 2.5rem 0; }
.section-head { margin-bottom: 44px; }
.section-head h2 { font-size: clamp(2.05rem, 3.5vw, 2.9rem); line-height: 1.1; letter-spacing: -.035em; }
.section-head p { font-size: 1.04rem; line-height: 1.7; color: var(--muted); margin-top: 1rem; }
h2 em, h2 .text-grad { background: var(--grad-ring); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Kicker → glowing pill label */
.kicker {
  display: inline-flex; align-items: center; gap: .55rem; width: max-content; max-width: 100%;
  margin-bottom: 18px; padding: .42rem .95rem .42rem .75rem; border-radius: 999px;
  border: 1px solid transparent;
  background: linear-gradient(var(--card), var(--card)) padding-box, linear-gradient(135deg, rgba(232,163,61,.75), rgba(154,53,36,.35)) border-box;
  box-shadow: 0 8px 20px -12px rgba(194,96,58,.55);
  font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--rose-dark);
}
.kicker::before, .cine .kicker::before {
  content: ''; flex: none; width: 7px; height: 7px; border-radius: 50%;
  background: var(--gold); box-shadow: 0 0 0 4px rgba(232,163,61,.22);
  animation: kickerPulse 2.4s ease-in-out infinite;
}
.cine .kicker::before { transform: scale(0); }
@keyframes kickerPulse { 0%,100% { box-shadow: 0 0 0 3px rgba(232,163,61,.25); } 50% { box-shadow: 0 0 0 7px rgba(232,163,61,0); } }
.section-dark .kicker { color: var(--rose-dark); }

/* ---------- Buttons ---------- */
.btn { min-height: 50px; padding: .85rem 1.55rem; letter-spacing: .005em; }
.btn-sm { min-height: 42px; padding: .6rem 1.15rem; }
.btn-primary { background: linear-gradient(135deg,#F8CD6A 0%,#EDA83F 55%,#E38B3A 100%); color: var(--ink-deep) !important; box-shadow: 0 12px 26px -10px rgba(194,96,58,.6), inset 0 1px 0 rgba(255,255,255,.5); }
.btn-primary:hover { background: linear-gradient(135deg,#FAD781 0%,#F0B04A 55%,#E58F3C 100%); box-shadow: 0 18px 34px -10px rgba(194,96,58,.65), inset 0 1px 0 rgba(255,255,255,.55); }
.btn-wa { background: linear-gradient(135deg,#25B163,#0F6334); box-shadow: 0 12px 26px -10px rgba(15,99,52,.55), inset 0 1px 0 rgba(255,255,255,.25); }
.btn-wa:hover { background: linear-gradient(135deg,#2CC46F,#0B522A); }
.btn-outline { background: var(--card); border-color: var(--line-strong); box-shadow: var(--shadow-soft); }
.btn-outline:hover { border-color: var(--gold); background: var(--gold-soft); }
.card-links .btn-outline { background: transparent; box-shadow: none; }

/* ---------- Header ---------- */
.main-nav > ul > li > a { border-radius: 999px; transition: background .3s, color .3s; }
@media (min-width: 1101px) {
  .main-nav > ul > li > a:hover, .main-nav > ul > li > a.active { background: rgba(255,255,255,.1); }
  .main-nav > ul > li > a::after { bottom: .25rem; left: 1.1rem; right: 1.1rem; border-radius: 2px; }
  .dropdown { border-radius: 20px; padding: .7rem; box-shadow: 0 30px 60px -18px rgba(27,33,64,.35); border-color: rgba(232,220,200,.7); }
  .dd-icon { border-radius: 12px; background: linear-gradient(135deg,#FBEBCF,#F6E3D4); }
}

/* ---------- Textured, tinted sections ---------- */
.section-dark {
  background-color: #F8EBDA;
  background-image:
    radial-gradient(rgba(154,53,36,.075) 1px, transparent 1.4px),
    linear-gradient(180deg, #FCF4E7 0%, #F6E6D2 100%);
  background-size: 24px 24px, auto;
}

/* ---------- Credentials bar ---------- */
.credentials-bar { background: var(--card); }
.cred-icon { width: 44px; height: 44px; border-radius: 14px; }
.cred-item strong { font-size: .92rem; letter-spacing: -.01em; }
/* After a hero it floats as a glass card overlapping the banner */
.hero + .credentials-bar { position: relative; z-index: 9; margin-top: -42px; padding: 0 0 8px; background: transparent; border: 0; }
.hero + .credentials-bar .container {
  padding: 20px 28px; border-radius: 22px;
  background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
  border: 1px solid rgba(255,255,255,.8); box-shadow: var(--shadow-lift);
}
@media (min-width: 901px) {
  .credentials-bar .cred-item + .cred-item { border-left: 1px solid var(--line); padding-left: 1.1rem; }
}
@media (max-width: 760px) {
  .hero + .credentials-bar { margin-top: -14px; }
  .hero + .credentials-bar .container { padding: 16px; border-radius: 18px; }
}

/* ---------- Fact strip → feature tiles ---------- */

/* ---------- Occasion cards ---------- */
.home-intro { padding-top: 64px; }
.experience-grid { gap: 1.6rem; }
.experience-card {
  border-radius: var(--r-lg); border: 1px solid var(--line); background: var(--card);
  box-shadow: var(--shadow-soft); transition: border-color .3s, box-shadow .5s;
}
.experience-card:hover { box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.6); }
.experience-photo { position: relative; aspect-ratio: 4/3; }
.experience-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(18,24,44,.35)); pointer-events: none; }
.experience-body { padding: 22px 24px 24px; }
.experience-card h3 { font-size: 1.22rem; letter-spacing: -.02em; }
.experience-card p { color: var(--muted); }
.experience-card .text-link {
  margin-top: .4rem; padding: .55rem 1.05rem; border-radius: 999px; gap: .5rem;
  background: var(--gold-soft); color: var(--rose-dark); font-size: .8rem; text-decoration: none !important;
  transition: background .35s, color .35s, box-shadow .35s;
}
.experience-card:hover .text-link { background: var(--ink-deep); color: #F8D9A8; box-shadow: 0 10px 22px -10px rgba(194,96,58,.7); }

/* ---------- Generic cards (trust grid, boat cards) ---------- */
.card {
  border-radius: var(--r-lg); border: 1px solid transparent; box-shadow: var(--shadow-soft);
  background: linear-gradient(var(--card), var(--card)) padding-box, linear-gradient(var(--line), var(--line)) border-box;
}
.card:hover {
  border-color: transparent; box-shadow: var(--shadow-lift);
  background: linear-gradient(var(--card), var(--card)) padding-box, var(--grad-ring) border-box;
}
.card-body { padding: 28px; }
.card-body h3 { font-size: 1.14rem; letter-spacing: -.015em; }
.card-body p { color: var(--muted); }
.trust-icon { width: 54px; height: 54px; border-radius: 17px; margin-bottom: 1.2rem; }

/* ---------- Image + text stories ---------- */
.river-days { gap: 4.5rem; }
.river-image, .spotlight-frame, .feature-photo { position: relative; isolation: isolate; }
.river-image::before {
  content: ''; position: absolute; z-index: -1; top: 20px; left: 20px; right: -20px; bottom: 16px;
  border-radius: 26px; background: var(--grad); opacity: .2;
}
.river-days.reverse .river-image::before, .section-dark .river-image::before { left: -20px; right: 20px; }
.river-image img { border-radius: 24px; box-shadow: var(--shadow-lift); }
.river-image figcaption { margin-top: 1rem; }
.river-days h2, .feature-row h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); letter-spacing: -.03em; margin-bottom: 1rem; }
.local-note {
  border-left: 0 !important; padding: .95rem 1.15rem .95rem 3rem !important; position: relative;
  background: rgba(255,255,255,.75); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-soft);
}
.local-note::before {
  content: 'i'; position: absolute; left: 1rem; top: 1rem; width: 22px; height: 22px; border-radius: 50%;
  display: grid; place-items: center; background: var(--grad-ring); color: #fff; font: 800 .75rem/1 var(--font-body);
}
.spotlight-frame img { border-radius: 24px; box-shadow: var(--shadow-lift); }
.spotlight-frame::before {
  content: ''; position: absolute; z-index: -1; inset: -14px; border-radius: 34px;
  background: conic-gradient(from 200deg, #E8A33D, #C2603A, #9A3524, #1B2140, #E8A33D);
  opacity: .32; filter: blur(22px);
}
.spotlight-chip {
  padding: .85rem 1.2rem; border-radius: 16px; border: 1px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: var(--shadow-lift);
}
.spotlight-chip strong { font-size: 1.35rem; background: var(--grad-ring); -webkit-background-clip: text; background-clip: text; color: transparent; }
.feature-photo { border-radius: var(--r-lg); box-shadow: var(--shadow-lift); }

/* Check lists → gradient badges */
.checklist li { padding-left: 2rem; margin-bottom: .75rem; }
.checklist li::before {
  content: ''; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%;
  background: var(--check) center / 11px no-repeat, var(--grad-warm);
  box-shadow: 0 4px 10px -4px rgba(194,96,58,.6);
}

/* ---------- Info panels ---------- */
.info-panel {
  padding: 32px; border-radius: var(--r-lg); background-color: var(--card);
  background-image: radial-gradient(420px 220px at 100% 0, rgba(232,163,61,.13), transparent 70%);
  border: 1px solid var(--line); box-shadow: var(--shadow-soft);
}
.info-panel .panel-icon { width: 52px; height: 52px; border-radius: 16px; box-shadow: 0 12px 24px -10px rgba(154,53,36,.55); }

/* ---------- Booking checks (confirm cards) ---------- */
.confirm-section { background: linear-gradient(180deg, var(--paper), #FBF2E6 70%, var(--paper)); }
.confirm-grid { gap: 1.3rem; counter-reset: confirm; }
.confirm-card {
  counter-increment: confirm; overflow: hidden; padding: 28px 28px 26px;
  background: var(--card); border: 1px solid #EADBC4; border-radius: 22px; box-shadow: var(--shadow-soft);
}
.confirm-card::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--grad);
  transform: scaleX(0); transform-origin: left; transition: transform .6s cubic-bezier(.16,1,.3,1);
}
.confirm-card::after {
  content: counter(confirm, decimal-leading-zero); position: absolute; right: 18px; top: 4px;
  font: 800 4.6rem/1 var(--font-body); letter-spacing: -.05em; color: transparent;
  -webkit-text-stroke: 1.5px rgba(154,53,36,.13); pointer-events: none;
}
.confirm-card:hover { border-color: #DCC5A0; box-shadow: var(--shadow-lift); transform: translateY(-4px); }
.confirm-card:hover::before { transform: scaleX(1); }
.confirm-icon { width: 46px; height: 46px; border-radius: 14px; background: linear-gradient(135deg,#8A2F22,#1B2140); box-shadow: 0 10px 20px -8px rgba(27,33,64,.55); }
.confirm-icon svg { color: #F8D9A8; }
.confirm-card h3 { font-size: 1.12rem; color: var(--ink); }
.confirm-cta { border-top: 0; margin-top: 2.2rem; padding: 1.2rem 1.4rem; border-radius: 999px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); width: max-content; max-width: 100%; margin-inline: auto; }
.confirm-wave { color: #F3E6D0; }
@media (max-width: 760px) { .confirm-cta { border-radius: 20px; width: auto; } }

/* ---------- FAQ → card accordion ---------- */
.faq-list { display: grid; gap: 12px; }
.faq-item, .cine .faq-item {
  border: 1px solid var(--line); border-radius: 18px; background: var(--card);
  box-shadow: var(--shadow-soft); padding: 0 1.4rem;
  transition: border-color .35s, box-shadow .45s, background .45s;
}
.faq-item:hover { border-color: var(--line-strong); }
.faq-item.open, .cine .faq-item.open {
  padding-left: 1.4rem; border-color: rgba(232,163,61,.65);
  background: linear-gradient(180deg, #FFF8EC, var(--card) 70%);
  box-shadow: 0 22px 44px -26px rgba(194,96,58,.5);
}
.faq-q { padding: 1.3rem 3.2rem 1.3rem 0; font-size: .97rem; }
.faq-q::before {
  content: ''; position: absolute; right: 0; top: 50%; width: 34px; height: 34px; margin-top: -17px; border-radius: 50%;
  background: var(--gold-soft); transition: background .35s, transform .45s cubic-bezier(.16,1,.3,1);
}
.faq-q::after { right: 11.5px; z-index: 1; }
.faq-item.open .faq-q::before { background: var(--grad-warm); transform: scale(1.06); }
.faq-item.open .faq-q::after { color: #fff; }
.faq-a-inner { padding: 0 3rem 1.4rem 0; color: var(--body); }

/* ---------- CTA band ---------- */
.cta-band { padding: 60px 56px; border-radius: var(--r-xl); box-shadow: 0 40px 80px -36px rgba(27,33,64,.55); }
.cta-band::before {
  opacity: 1;
  background-image:
    radial-gradient(rgba(255,255,255,.13) 1px, transparent 1.5px),
    radial-gradient(circle at 12% 18%, rgba(232,163,61,.35), transparent 45%),
    radial-gradient(circle at 88% 88%, rgba(27,33,64,.35), transparent 50%);
  background-size: 20px 20px, auto, auto;
  -webkit-mask-image: linear-gradient(100deg, #000 0%, rgba(0,0,0,.6) 100%); mask-image: linear-gradient(100deg, #000 0%, rgba(0,0,0,.6) 100%);
}
.cta-band h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); letter-spacing: -.03em; }
.cta-chip { padding: .5rem 1rem; }
@media (max-width: 760px) { .cta-band { padding: 32px 24px; border-radius: 22px; } }

/* ---------- Packages ---------- */
.package-grid, .grid-3 { gap: 1.7rem; }
.pkg { border-radius: 24px; padding: 3.7rem 1.75rem 2rem; box-shadow: var(--shadow-soft); }
.pkg:hover { box-shadow: var(--shadow-lift); }
.pkg h3 { font-size: 1.38rem; letter-spacing: -.025em; }
.pkg-sub { font-size: .84rem; margin-bottom: .4rem; }
.pkg.featured {
  border: 2px solid transparent;
  background: linear-gradient(180deg, #FFF5E4, var(--card) 260px) padding-box, var(--grad-ring) border-box;
  box-shadow: 0 30px 60px -28px rgba(194,96,58,.6);
}
.pkg-flag { background: var(--grad); padding: .35rem .85rem; }
.pkg-price { background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 2rem; letter-spacing: -.03em; }
.pkg-price span { -webkit-text-fill-color: var(--muted); }
.pkg-tier { width: 38px; height: 38px; border-radius: 12px; }

/* ---------- Add-ons & themes ---------- */
.addon-grid { gap: 1.2rem; }
.addon-card, .theme-card {
  padding: 1.4rem; border: 1px solid var(--line); border-radius: 20px; background: var(--card); box-shadow: var(--shadow-soft);
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s, border-color .3s;
}
.addon-card:hover, .theme-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.addon-icon { width: 46px; height: 46px; border-radius: 14px; background: linear-gradient(135deg,#FBEBCF,#F6D9C4); }
.addon-card h4 { font-size: 1rem; }
.theme-card h3 { font-size: 1.16rem; }
.theme-swatch { width: 50px; height: 50px; border-radius: 16px; }

/* ---------- Steps ---------- */
.steps { gap: 1.5rem; }
.step {
  position: relative; padding: 30px 28px; border: 1px solid var(--line); border-radius: 22px;
  background: var(--card); box-shadow: var(--shadow-soft); overflow: hidden;
}
.step::after { content: ''; position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; border-radius: 50%; background: radial-gradient(circle, rgba(232,163,61,.18), transparent 70%); }
.step-num { font-size: 2.6rem; line-height: 1; letter-spacing: -.04em; margin-bottom: 1rem; }

/* ---------- Timeline ---------- */
.timeline-item { border-top: 0; padding: .55rem 0; }
.timeline-time { padding-top: .95rem; }
.timeline-item::before { top: 1.35rem; }
.timeline-body {
  flex: 1; padding: .95rem 1.2rem; border: 1px solid var(--line); border-radius: 16px;
  background: var(--card); box-shadow: var(--shadow-soft); transition: transform .45s cubic-bezier(.16,1,.3,1), border-color .3s;
}
.timeline-item:hover .timeline-body { transform: translateX(6px); border-color: rgba(232,163,61,.55); }

/* ---------- Tables ---------- */
.specs-table {
  border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: 20px;
  overflow: hidden; box-shadow: var(--shadow-soft);
}
.specs-table tr:last-child > * { border-bottom: 0; }
.specs-table th { background: linear-gradient(90deg, #FBF1E1, #FCF6EE); }
.specs-table tr { transition: background .25s; }
.specs-table tr:hover td { background: #FFF9F0; }
.table-scroll { border-radius: 20px; }

/* ---------- Trust chips ---------- */
.trustbar { background: var(--card); padding: 1.1rem 0; }
.trustbar .container { justify-content: center; gap: .7rem 1rem; }
.trust-item, .trust-strip > * {
  display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .95rem .45rem .5rem;
  border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-weight: 700; color: var(--ink);
}
.trust-item::before, .trust-strip > *::before {
  content: ''; flex: none; width: 18px; height: 18px; border-radius: 50%;
  background: var(--check) center / 10px no-repeat, var(--grad-warm);
}
.trust-strip { gap: .6rem; }
@media (max-width: 760px) { .trust-item { font-size: .72rem; } }

/* ---------- Gallery ---------- */
.gallery-filters {
  display: inline-flex; padding: 6px; gap: 4px; border-radius: 22px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft);
}
.gallery-filter { border: 0; min-height: 42px; font-weight: 700; }
.gallery-filter:hover { background: var(--gold-soft); transform: none; }
.img-slot { border-radius: 20px; box-shadow: var(--shadow-soft); }
.lightbox-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(18,24,44,.25)); opacity: 0; transition: opacity .4s; pointer-events: none; }
.lightbox-item:hover::after { opacity: 1; }

/* ---------- Contact ---------- */
.contact-card {
  padding: 30px; border: 1px solid var(--line); border-radius: 22px; background: var(--card); box-shadow: var(--shadow-soft);
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s, border-color .3s;
}
.contact-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.cc-icon { width: 54px; height: 54px; border-radius: 17px; display: grid; place-items: center; background: var(--grad-ring); color: #fff; box-shadow: 0 12px 24px -10px rgba(194,96,58,.6); }
.cc-icon svg { width: 24px; height: 24px; }

/* ---------- Misc content blocks ---------- */
.highlight-box { border-left: 0; padding: 1.1rem 1.3rem 1.1rem 1.5rem; position: relative; border-radius: 16px; background: linear-gradient(90deg, var(--gold-soft), #FFF9F0); overflow: hidden; }
.highlight-box::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--grad-warm); }
.media-request { padding: 1.3rem 1.5rem; border: 1px dashed var(--line-strong); border-radius: 18px; background: rgba(255,255,255,.6); }
.urgency-note { box-shadow: var(--shadow-soft); }
.cd-unit { border-radius: 16px; min-width: 66px; padding: .6rem .8rem; }

/* ---------- Compact page heroes ---------- */
.hero-compact { padding: 84px 0 96px; }
.hero-compact h1 { font-size: clamp(2.4rem, 4.6vw, 3.6rem); letter-spacing: -.035em; }
.hero-compact p.lead { font-size: 1.08rem; }
.hero-badge { box-shadow: 0 10px 24px -14px rgba(0,0,0,.5); }

/* ---------- Footer ---------- */
.footer-cols { padding: 3.2rem 0 2.4rem; gap: 2.4rem; }
.footer-logo svg { width: 38px; height: 38px; }
.footer-logo strong { font-size: 1.15rem; }
.site-footer h4 { margin-bottom: 1.1rem; }
.site-footer h4::after { content: ''; display: block; width: 26px; height: 2px; margin-top: .55rem; border-radius: 2px; background: linear-gradient(90deg, var(--gold), #E07A3F); }
.footer-contact-plain .footer-icon-line { width: 30px; height: 30px; padding: 6px; border-radius: 10px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.1); }
.footer-bottom { background: rgba(8,12,26,.35); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }

/* ---------- Mobile bar ---------- */
.mobile-bar { border-radius: 20px 20px 0 0; box-shadow: 0 -14px 34px -16px rgba(27,33,64,.3); overflow: hidden; }
.mb-wa { background: linear-gradient(135deg,#25B163,#0F6334); }

/* ---------- Responsive rhythm ---------- */
@media (max-width: 760px) {
  section { padding: 60px 0; }
  .section-head { margin-bottom: 30px; }
  .section-head h2 { font-size: clamp(1.8rem, 7vw, 2.2rem); }
  .river-days { gap: 2.4rem; }
  .river-image::before { top: 12px; left: 12px; right: -10px; }
  .section-dark .river-image::before { left: -10px; right: 12px; }
  .hero-compact { padding: 56px 0 72px; }
  .confirm-card::after { font-size: 3.6rem; }
  .step, .contact-card, .info-panel { padding: 24px; }
}

/* ==========================================================================
   HEADER — layered top bar, glowing brand badge, floating "island" nav
   ========================================================================== */
.topbar {
  position: relative; padding: .5rem 0; font-size: .74rem;
  background: linear-gradient(90deg, #0E1428 0%, #182036 50%, #0E1428 100%);
  border-bottom: 1px solid rgba(248,217,168,.12);
}
.cine .topbar { animation: none; }
.topbar .tb-loc, .topbar .tb-right a { display: inline-flex; align-items: center; gap: .45rem; }
.topbar .tb-loc::before, .topbar .tb-right a::before {
  content: ''; flex: none; width: 14px; height: 14px; background: var(--gold);
  -webkit-mask: var(--tb-ico) center / contain no-repeat; mask: var(--tb-ico) center / contain no-repeat;
}
.topbar .tb-loc { --tb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.topbar .tb-right a:first-child { --tb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }
.topbar .tb-right a:last-child { --tb-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.4 7.4L3 21l2.1-5.6A8.4 8.4 0 1 1 21 11.5z'/%3E%3C/svg%3E"); }
.topbar a { transition: color .3s; }

/* Header gradient lives on a pseudo layer so it can fade away into the floating island */
.site-header { background: transparent; isolation: isolate; display: flow-root; }
.cine .site-header { animation: none; }
.site-header::before {
  content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, #1B2140 0%, #2E3058 40%, #7E2C22 75%, #8A2618 100%);
  background-size: 200% 100%; animation: gradFlow 14s ease-in-out infinite;
  transition: opacity .5s ease;
}
.site-header::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(248,217,168,.55), transparent);
  transition: opacity .5s ease;
}
.nav-wrap { border: 1px solid transparent; border-radius: 999px; }

@media (min-width: 1101px) {
  .site-header { transition: box-shadow .5s ease; }
  .site-header .nav-wrap { transition: background .5s ease, margin .5s cubic-bezier(.16,1,.3,1), padding .5s cubic-bezier(.16,1,.3,1), border-color .5s, box-shadow .5s; }
  /* .85rem padding top/bottom normally; .4rem margin + .45rem padding when floating: same height, no layout jump */
  .site-header.scrolled { box-shadow: none; }
  .site-header.scrolled::before, .site-header.scrolled::after { opacity: 0; }
  .site-header.scrolled .nav-wrap {
    margin-block: .4rem; padding: .45rem .5rem .45rem 1.1rem;
    background: rgba(22,30,58,.84); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6);
    border-color: rgba(248,217,168,.18);
    box-shadow: 0 22px 44px -20px rgba(13,19,40,.7), inset 0 1px 0 rgba(255,255,255,.08);
  }
}

/* Brand badge */
.brand-icon {
  width: 48px; height: 48px; border-radius: 15px;
  background: linear-gradient(145deg, rgba(255,255,255,.2), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 10px 22px -10px rgba(0,0,0,.6), 0 0 24px -6px rgba(232,163,61,.45);
}
.brand-icon svg { width: 31px; height: 31px; color: #F8D9A8; }
.brand-name { background: linear-gradient(90deg, #fff 30%, #F8D9A8); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.25rem; }
.brand-tag { text-transform: uppercase; letter-spacing: .14em; font-size: .6rem; font-weight: 700; color: rgba(248,217,168,.75); }

/* Nav links */
.main-nav a { font-weight: 700; }
.main-nav > ul > li.has-drop > a::after {
  content: ''; position: static; display: inline-block; width: 6px; height: 6px; margin-left: .2rem;
  border: 0; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; border-radius: 0;
  background: none; transform: rotate(45deg) translateY(-2px); transition: transform .35s cubic-bezier(.16,1,.3,1);
}
.main-nav > ul > li.has-drop:hover > a::after { transform: rotate(225deg) translate(-1px, -1px); }

/* Phone pill + CTA */
.header-contact { gap: .6rem; }
.header-phone {
  display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .95rem; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.2); background: rgba(255,255,255,.07); font-size: .78rem;
  transition: background .3s, border-color .3s;
}
.header-phone::before {
  content: ''; flex: none; width: 15px; height: 15px; background: var(--gold);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E") center / contain no-repeat;
}
.header-phone:hover { background: rgba(255,255,255,.14); border-color: rgba(248,217,168,.5); color: #fff; }
.header-contact .btn-sm { min-height: 42px; }
@media (min-width: 1101px) and (max-width: 1280px) {
  .header-phone { font-size: 0; gap: 0; padding: .7rem; }
}

/* Dropdown with a pointer notch */
@media (min-width: 1101px) {
  .dropdown { top: calc(100% + 6px); }
  .dropdown::after { content: ''; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
  .dropdown::before {
    content: ''; position: absolute; top: -7px; left: 34px; width: 13px; height: 13px; transform: rotate(45deg);
    background: var(--card); border-left: 1px solid rgba(232,220,200,.7); border-top: 1px solid rgba(232,220,200,.7); border-radius: 3px 0 0 0;
  }
  .dropdown a { border-radius: 14px; }
  .dropdown a:hover { background: linear-gradient(90deg, var(--gold-soft), #FFF8EE); }
}

/* Mobile menu: warm full-screen sheet with large links and card sub-items */
@media (max-width: 1100px) {
  .brand-icon { width: 42px; height: 42px; border-radius: 13px; }
  .brand-icon svg { width: 27px; height: 27px; }
  .nav-toggle { border-radius: 14px; background: rgba(255,255,255,.12); }
  .main-nav {
    padding: 6.5rem 6% 3rem;
    background:
      radial-gradient(520px 380px at 100% 0%, rgba(232,163,61,.28), transparent 62%),
      radial-gradient(480px 380px at 0% 100%, rgba(154,53,36,.16), transparent 62%),
      var(--paper);
  }
  .main-nav > ul { gap: 0; }
  .main-nav > ul > li:not(.header-contact-mobile) { border-bottom: 1px solid var(--line); }
  .main-nav > ul > li > a { width: 100%; justify-content: space-between; padding: 1rem .2rem; font-size: 1.28rem; font-weight: 800; letter-spacing: -.02em; color: var(--ink); border-radius: 0; }
  .main-nav > ul > li > a.active { color: var(--rose); }
  .main-nav > ul > li > a::after { display: none; }
  .main-nav > ul > li.has-drop > a::after { display: inline-block; width: 9px; height: 9px; border-right-width: 2px; border-bottom-width: 2px; margin-right: .4rem; }
  .main-nav > ul > li.has-drop.open > a::after { transform: rotate(225deg); }
  .dropdown { border-left: 0; margin: 0 0 1rem; padding: 0; }
  .has-drop.open .dropdown { display: grid; gap: .5rem; }
  .dropdown a { padding: .75rem .85rem; border-radius: 14px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
  .header-contact-mobile { display: grid !important; grid-template-columns: 1fr 1fr; gap: .7rem; margin-top: 1.8rem; }
  .header-contact-mobile .btn { width: 100%; min-height: 50px; font-size: .9rem; }
  .header-contact-mobile .btn-outline-light { background: var(--card); border-color: var(--line-strong); }
}

/* ==========================================================================
   FOOTER — sunset CTA, glowing night sky, glass brand card, wordmark
   ========================================================================== */
.site-footer {
  background:
    radial-gradient(760px 420px at 0% 35%, rgba(154,53,36,.42), transparent 62%),
    radial-gradient(680px 420px at 100% 55%, rgba(194,96,58,.2), transparent 62%),
    url('../images/footer-ghats-illustration.webp') bottom center / 100% auto no-repeat,
    #141B34;
}

/* Pre-footer CTA: a sun setting into the animated river */
@keyframes sunBreathe { from { transform: scale(.94); opacity: .85; } to { transform: scale(1.06); opacity: 1; } }

/* Columns */
.site-footer > .container { position: relative; padding-bottom: clamp(4rem, 10vw, 9rem); }
.footer-cols { grid-template-columns: 1.35fr 1fr 1fr 1.1fr; gap: 2.6rem; padding: 3.6rem 0 2rem; }
.footer-brand-col {
  align-self: start; padding: 26px; border-radius: 22px;
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.12); box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.footer-logo { gap: .8rem; margin-bottom: 1rem; }
.footer-logo svg { width: 46px; height: 46px; padding: 8px; border-radius: 14px; background: rgba(232,163,61,.14); border: 1px solid rgba(232,163,61,.3); }
.footer-logo strong { font-size: 1.25rem; background: linear-gradient(90deg, #fff, #F8D9A8); -webkit-background-clip: text; background-clip: text; color: transparent; }
.footer-logo span { text-transform: uppercase; letter-spacing: .14em; font-size: .62rem; font-weight: 700; }
.footer-brand-col p { font-size: .86rem; line-height: 1.7; color: #D6CCB8; max-width: none; }
.site-footer h4 { font-size: .76rem; letter-spacing: .14em; color: #F8D9A8; }
.site-footer li { margin-bottom: .7rem; }
.site-footer a { color: #ECE6DA; }

/* Links: a gold dash slides in on hover */
.footer-cols ul:not(.footer-contact-plain) a { display: inline-flex; align-items: center; }
.footer-cols ul:not(.footer-contact-plain) a::before {
  content: ''; width: 0; height: 2px; margin-right: 0; border-radius: 2px; background: var(--gold);
  transition: width .35s cubic-bezier(.16,1,.3,1), margin .35s cubic-bezier(.16,1,.3,1);
}
.footer-cols ul:not(.footer-contact-plain) a:hover::before { width: 14px; margin-right: .55rem; }
.cine .footer-cols ul a:hover { padding-left: 0; }
.footer-contact-plain li { gap: .75rem; }
.footer-contact-plain .footer-icon-line { width: 34px; height: 34px; padding: 8px; border-radius: 11px; transition: background .3s, border-color .3s, color .3s; }
.footer-contact-plain li:hover .footer-icon-line { background: var(--gold); border-color: var(--gold); color: var(--ink-deep); }

/* Giant outlined wordmark sitting on the ghats */
.site-footer > .container::after {
  content: 'EVENTS ON BOAT' / ''; position: absolute; left: 0; right: 0; bottom: .1em; z-index: 1; pointer-events: none;
  text-align: center; white-space: nowrap; font: 800 clamp(2.8rem, 10.5vw, 9.4rem) / 1 var(--font-body); letter-spacing: -.045em;
  color: transparent; -webkit-text-stroke: 1px rgba(248,217,168,.22);
  -webkit-mask-image: linear-gradient(180deg, #000 20%, transparent 100%); mask-image: linear-gradient(180deg, #000 20%, transparent 100%);
}

/* Bottom bar */
.footer-bottom { background: rgba(8,12,26,.55); border-top: 1px solid rgba(248,217,168,.14); padding: 1.15rem 0; text-align: center; }
.footer-bottom p { font-size: .74rem; color: #C9BEA9; }
.footer-bottom a { color: #ECE6DA; padding: .15rem .1rem; }
.footer-bottom a:hover { color: var(--gold); }

/* Back-to-top: floating round button */
.back-to-top {
  position: fixed; right: 28px; bottom: 100px; z-index: 955; margin: 0; width: 48px; height: 48px; min-height: 0; padding: 0;
  border-radius: 50%; font-size: 0; color: #fff; background: linear-gradient(135deg, #8A2F22, #1B2140);
  border: 1px solid rgba(248,217,168,.3); box-shadow: 0 14px 30px -10px rgba(27,33,64,.6);
  opacity: 0; visibility: hidden; transform: translateY(14px) scale(.9);
  transition: opacity .4s, visibility .4s, transform .5s cubic-bezier(.16,1,.3,1);
}
.back-to-top::before {
  content: ''; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; background: #F8D9A8;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.back-to-top.visible { opacity: 1; visibility: visible; transform: none; }
.back-to-top:hover { transform: translateY(-3px); }

@media (max-width: 1100px) {
  .footer-cols { grid-template-columns: 1fr 1fr; }
  .footer-brand-col { grid-column: 1 / -1; }
  .back-to-top { right: 16px; bottom: calc(72px + env(safe-area-inset-bottom)); }
}
@media (max-width: 760px) {
  .footer-cols { grid-template-columns: 1fr; gap: 2rem; }
  .footer-brand-col { padding: 20px; }
}

/* ==========================================================================
   HERO — night-river stage, framed banner with a travelling light ring,
   story-style slideshow controls, quick-nav dock, compact-hero collage
   ========================================================================== */
@property --hf-ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

.hero.hero-banner-full {
  padding: 26px 0 96px; overflow: hidden;
  background:
    radial-gradient(900px 520px at 10% -12%, rgba(232,163,61,.32), transparent 60%),
    radial-gradient(820px 520px at 96% 18%, rgba(154,53,36,.58), transparent 62%),
    radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px),
    linear-gradient(180deg, #0F1529 0%, #1C2648 55%, #26315A 100%);
  background-size: auto, auto, 24px 24px, auto;
}

/* The banner sits in a rounded frame (fallback rules cover the no-JS case) */
.hero-banner-full > .hero-banner-photo { width: min(1360px, calc(100% - 48px)); margin: 0 auto; border-radius: 28px; }
.hero-frame {
  position: relative; z-index: 3; width: min(1360px, calc(100% - 48px)); margin: 0 auto;
  border-radius: 28px; overflow: hidden; isolation: isolate; transform: translateZ(0);
  box-shadow: 0 50px 90px -40px rgba(0,0,0,.9), 0 0 0 1px rgba(248,217,168,.2), 0 0 70px -24px rgba(232,163,61,.5);
}
.hero-frame > .hero-banner-photo { display: block; width: 100%; margin: 0; border-radius: 0; box-shadow: none; }
.hero-frame::after {
  content: ''; position: absolute; inset: 0; z-index: 10; border-radius: inherit; padding: 2px; pointer-events: none;
  background: conic-gradient(from var(--hf-ang), transparent 0 58%, rgba(248,217,168,.0) 62%, #FCE3B5 74%, #E8A33D 80%, transparent 90%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;
  animation: hfSpin 7s linear infinite;
}
@keyframes hfSpin { to { --hf-ang: 360deg; } }

/* Slideshow: each new slide wipes across the previous one */

/* Story-style progress bars + round arrows, bottom right of the banner */

/* Quick-navigation dock under the banner */
.hero-dock {
  position: relative; z-index: 6; width: min(1360px, calc(100% - 48px)); margin: 18px auto 0;
  display: flex; align-items: center; gap: .75rem; padding: 8px 8px 8px 22px; border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,255,255,.09), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.13); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 24px 44px -26px rgba(0,0,0,.7);
}
.hero-dock-label { flex: none; padding-right: 1rem; border-right: 1px solid rgba(255,255,255,.16); font-size: .64rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #F8D9A8; }
.hero-dock-links {
  display: flex; gap: .3rem; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none;
  -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent);
}
.hero-dock-links::-webkit-scrollbar { display: none; }
.hero-dock-links a {
  flex: none; display: inline-flex; align-items: center; gap: .55rem; padding: .5rem .95rem; border-radius: 999px;
  color: #F4EEE4; font-size: .8rem; font-weight: 700; white-space: nowrap; transition: background .3s, color .3s;
}
.hero-dock-links a:has(.hero-dock-ico) { padding-left: .45rem; }
.hero-dock-links a:hover { background: rgba(255,255,255,.13); color: #fff; }
.hero-dock-ico { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 10px; background: rgba(232,163,61,.2); color: #F8D9A8; transition: background .3s, color .3s; }
.hero-dock-ico svg { width: 16px; height: 16px; }
.hero-dock-links a:hover .hero-dock-ico { background: var(--gold); color: var(--ink-deep); }
.hero-dock-cta { flex: none; }

/* ---------- Compact page heroes ---------- */
.hero.hero-compact { padding: 96px 0 124px; }
.hero.hero-compact::before {
  background:
    radial-gradient(760px 460px at 88% 8%, rgba(232,163,61,.34), transparent 62%),
    radial-gradient(640px 420px at 0% 100%, rgba(194,96,58,.3), transparent 62%),
    linear-gradient(120deg, #121A30 0%, #1B2140 42%, #6E2A2A 78%, #8A2618 100%);
}
.hero-compact h1 { color: #fff; }
.cw-accent { background: linear-gradient(90deg, #FCE3B5, #E8A33D 55%, #F0A27A); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hero .breadcrumb { display: inline-flex; padding: .38rem .85rem; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.13); }
.hero .breadcrumb a:hover { color: #F8D9A8; }
.hero-badge { gap: .55rem; }
.hero-badge::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); animation: kickerPulse 2.4s ease-in-out infinite; }
.hero-jumps { gap: .5rem; }
.hero-jumps a { padding: .45rem .95rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.07); transition: background .3s, border-color .3s, color .3s; }
.hero-jumps a:hover { background: var(--gold); border-color: var(--gold); color: var(--ink-deep); }

.hero-collage { display: none; }
@media (min-width: 960px) {
  .hero-compact > .container { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 3.5rem; align-items: center; }
  .hero-compact .hero-inner { max-width: 640px; }
  .hero-collage { display: block; position: relative; height: 400px; }
}
.hc-card { position: absolute; margin: 0; border-radius: 22px; overflow: hidden; border: 4px solid rgba(255,255,255,.92); background: #26315A; box-shadow: 0 34px 60px -26px rgba(0,0,0,.75); }
.hc-card img { width: 100%; height: 100%; object-fit: cover; }
.hc-1 { left: 16%; top: 2%; width: 58%; height: 70%; rotate: -4deg; z-index: 2; }
.hc-2 { right: 0; top: 26%; width: 42%; height: 48%; rotate: 6deg; z-index: 3; }
.hc-3 { left: 0; bottom: 2%; width: 40%; height: 40%; rotate: 3deg; z-index: 3; }
.hc-chip { position: absolute; z-index: 4; display: flex; flex-direction: column; padding: .7rem 1.05rem; border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: 0 22px 40px -18px rgba(0,0,0,.6); }
.hc-chip b { font-size: 1.25rem; font-weight: 800; line-height: 1.1; background: var(--grad-ring); -webkit-background-clip: text; background-clip: text; color: transparent; }
.hc-chip span { font-size: .7rem; font-weight: 700; color: var(--muted); }
.hc-chip-a { right: 4%; bottom: 4%; }
.hc-chip-b { left: 4%; top: 0; }
.cine .hc-card, .cine .hc-chip { animation: hcIn 1.2s cubic-bezier(.16,1,.3,1) both, hcFloat 7s ease-in-out infinite alternate; }
.cine .hc-1 { animation-delay: .25s, 1.4s; }
.cine .hc-2 { animation-delay: .45s, 0s; animation-duration: 1.2s, 8s; }
.cine .hc-3 { animation-delay: .6s, .8s; animation-duration: 1.2s, 6s; }
.cine .hc-chip-a { animation-delay: .9s, .3s; animation-duration: 1.2s, 5s; }
.cine .hc-chip-b { animation-delay: 1.05s, 1s; animation-duration: 1.2s, 5.5s; }
.cine-has-intro .hc-card, .cine-has-intro .hc-chip { animation-delay: 1.8s, 2s; }
@keyframes hcIn { from { opacity: 0; transform: translateY(40px) scale(.9); } to { opacity: 1; transform: none; } }
@keyframes hcFloat { from { translate: 0 0; } to { translate: 0 -12px; } }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .hero.hero-banner-full { padding: 12px 0 70px; }
  .hero-frame, .hero-banner-full > .hero-banner-photo { width: calc(100% - 24px); border-radius: 18px; }
  .hero-dock { width: calc(100% - 24px); margin-top: 12px; flex-wrap: wrap; padding: 8px; border-radius: 20px; }
  .hero-dock-label { display: none; }
  .hero-dock-links { flex-basis: 100%; }
  .hero-dock-links a { font-size: .76rem; }
  .hero-dock-cta { width: 100%; }
  .hero.hero-compact { padding: 60px 0 92px; }
}
@media (min-width: 761px) and (max-width: 1320px) {
  .hero-dock { padding-left: 8px; }
  .hero-dock-label { display: none; }
}

/* ==========================================================================
   GALLERY — sticky filter bar, editorial numbered sections, asymmetric and
   bento grids, cinematic tiles, immersive dark lightbox
   ========================================================================== */

/* Sticky filter bar */
.gallery-controls {
  position: sticky; top: 78px; z-index: 60; padding: 14px 0 18px;
  background: linear-gradient(180deg, var(--paper) 72%, rgba(255,251,245,0));
}
.gallery-controls .container { display: flex; align-items: center; justify-content: space-between; gap: 1rem 1.5rem; flex-wrap: wrap; }
.gallery-filters { max-width: 100%; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.gallery-filters::-webkit-scrollbar { display: none; }
.gallery-filter { flex: none; display: inline-flex; align-items: center; padding: .55rem .7rem .55rem 1.05rem; color: var(--ink); }
.gallery-filter.active, .cine .gallery-filter.active { background: var(--ink-deep); color: #F8D9A8; animation: none; box-shadow: 0 10px 22px -12px rgba(27,33,64,.7); }
.gf-count {
  display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left: .55rem;
  border-radius: 999px; background: var(--gold-soft); color: var(--rose-dark); font-size: .68rem; font-weight: 800;
  transition: background .3s, color .3s;
}
.gallery-filter.active .gf-count { background: var(--gold); color: var(--ink-deep); }
.gallery-status { margin: 0; display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; }
.gallery-status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px rgba(232,163,61,.2); }

/* Numbered, editorial section heads */
main { counter-reset: gsec; }
[data-gallery-section] { counter-increment: gsec; padding: 48px 0 56px; }
[data-gallery-section] .section-head { position: relative; max-width: none; padding-right: 150px; padding-bottom: 22px; margin-bottom: 30px; border-bottom: 1px solid var(--line); }
[data-gallery-section] .section-head::after {
  content: counter(gsec, decimal-leading-zero); position: absolute; right: 0; bottom: 6px;
  font: 800 6.4rem/1 var(--font-body); letter-spacing: -.06em; color: transparent;
  -webkit-text-stroke: 1.5px rgba(154,53,36,.16); pointer-events: none;
}
[data-gallery-section] .section-head p { max-width: 640px; }

/* Asymmetric two-up grids that alternate direction section by section */
.gallery-grid { gap: 20px; }
.gallery-grid:not(.gallery-bento) { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
[data-gallery-section]:nth-of-type(even) .gallery-grid:not(.gallery-bento) { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); }
.gallery-grid:not(.gallery-bento) .img-slot { aspect-ratio: auto; height: clamp(260px, 32vw, 450px); }
.gallery-grid.gallery-bento { gap: 20px; }

/* Tiles */
.gallery-grid .img-slot {
  border-radius: 22px; isolation: isolate; box-shadow: var(--shadow-soft);
  transition: transform .6s cubic-bezier(.16,1,.3,1), box-shadow .6s cubic-bezier(.16,1,.3,1);
}
.gallery-grid .img-slot:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); }
.cine [data-gallery-category].cine-pop { animation-fill-mode: backwards; }
.gallery-grid .slot-photo { transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .6s ease; }
.gallery-grid .lightbox-item:hover .slot-photo { transform: scale(1.08); filter: saturate(1.12) contrast(1.04); }
.gallery-grid .lightbox-item:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

/* Expand button appears on hover */
.gallery-grid .lightbox-item::after {
  content: ''; inset: auto; top: 14px; right: 14px; width: 42px; height: 42px; border-radius: 50%; z-index: 2;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B2140' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / 17px no-repeat, rgba(255,255,255,.94);
  box-shadow: 0 10px 22px -8px rgba(0,0,0,.45);
  opacity: 0; transform: scale(.6) rotate(-45deg);
  transition: opacity .4s ease, transform .5s cubic-bezier(.16,1,.3,1);
}
.gallery-grid .lightbox-item:hover::after, .gallery-grid .lightbox-item:focus-visible::after { opacity: 1; transform: none; }

/* Caption lifts on hover with a gold rule */
.gallery-grid .slot-caption {
  z-index: 1; padding: 3.2rem 1.25rem 1.1rem; font-size: .84rem; font-weight: 700; letter-spacing: -.005em;
  background: linear-gradient(180deg, transparent, rgba(13,19,38,.86));
  transform: translateY(6px); transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.gallery-grid .slot-caption::before {
  content: ''; display: block; width: 26px; height: 2px; margin-bottom: .55rem; border-radius: 2px; background: var(--gold);
  transform: scaleX(0); transform-origin: left; transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.gallery-grid .lightbox-item:hover .slot-caption { transform: none; }
.gallery-grid .lightbox-item:hover .slot-caption::before { transform: scaleX(1); }
.gallery-bento .img-slot:nth-child(3n+1) .slot-caption { font-size: .95rem; padding: 4rem 1.5rem 1.35rem; }

/* Category tag */
.slot-tag {
  position: absolute; top: 14px; left: 14px; z-index: 2; display: inline-flex; align-items: center; gap: .4rem;
  padding: .32rem .72rem; border-radius: 999px; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
  color: #fff; background: rgba(13,19,38,.5); border: 1px solid rgba(255,255,255,.25);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.slot-tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.slot-tag-evening::before { background: #F0884A; }
.slot-tag-inspiration::before { background: #9FB0EE; }

/* ---------- Lightbox ---------- */
.photo-dialog {
  width: min(1180px, 96vw); max-height: 96dvh; padding: 18px 18px 14px; overflow: hidden;
  border: 1px solid rgba(248,217,168,.16); border-radius: 26px; color: #F4EEE4;
  background: radial-gradient(700px 300px at 50% 0%, rgba(154,53,36,.35), transparent 70%), linear-gradient(180deg, #141B34, #0D1325);
  box-shadow: 0 50px 120px -30px rgba(0,0,0,.9);
}
.photo-dialog[open] { display: flex; flex-direction: column; animation: pdIn .45s cubic-bezier(.16,1,.3,1); }
@keyframes pdIn { from { opacity: 0; transform: translateY(24px) scale(.97); } }
.photo-dialog::backdrop { background: rgba(8,12,24,.82); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.photo-toolbar { margin-bottom: 12px; }
.photo-toolbar h2 { flex: 1; color: #fff; font-size: .95rem; }
.photo-position { padding: .3rem .8rem; border-radius: 999px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); color: #F8D9A8; font-size: .74rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.photo-dialog .photo-close {
  display: grid; place-items: center; width: 42px; height: 42px; min-width: 0; min-height: 0; padding: 0; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.06); color: #fff; font-size: 1.5rem; line-height: 1;
  transition: background .3s, transform .4s cubic-bezier(.16,1,.3,1);
}
.photo-dialog .photo-close:hover { background: var(--gold); color: var(--ink-deep); transform: rotate(90deg); }
.photo-stage { position: relative; flex: 1; min-height: 0; display: grid; place-items: center; border-radius: 18px; overflow: hidden; background: #0A0F1E; touch-action: pan-y; }
.photo-full { width: 100%; max-height: min(66dvh, 720px); object-fit: contain; background: transparent; }
.photo-full.is-in { animation: photoIn .55s cubic-bezier(.16,1,.3,1) both; }
@keyframes photoIn { from { opacity: 0; transform: scale(1.035); filter: blur(6px); } }
.photo-dialog .photo-prev, .photo-dialog .photo-next {
  position: absolute; top: 50%; z-index: 2; width: 50px; height: 50px; min-width: 0; min-height: 0; padding: 0; margin-top: -25px;
  border-radius: 50%; border: 1px solid rgba(255,255,255,.3); background: rgba(13,19,38,.55);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background .3s, transform .4s cubic-bezier(.16,1,.3,1), opacity .3s;
}
.photo-dialog .photo-prev { left: 14px; }
.photo-dialog .photo-next { right: 14px; }
.photo-prev::before, .photo-next::before {
  content: ''; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px; background: #fff;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.photo-prev::before { transform: rotate(180deg); }
.photo-dialog .photo-prev:hover:not(:disabled), .photo-dialog .photo-next:hover:not(:disabled) { background: var(--gold); transform: scale(1.08); }
.photo-dialog .photo-prev:hover:not(:disabled)::before, .photo-dialog .photo-next:hover:not(:disabled)::before { background: var(--ink-deep); }
.photo-dialog .photo-prev:disabled, .photo-dialog .photo-next:disabled { opacity: .2; }
.photo-caption { margin: .85rem 0 .75rem; text-align: center; font-size: .84rem; color: #D6CCB8; }
.photo-thumbs { display: flex; gap: 8px; justify-content: safe center; overflow-x: auto; padding: 4px 2px 2px; scrollbar-width: none; }
.photo-thumbs::-webkit-scrollbar { display: none; }
.photo-dialog .photo-thumbs button {
  flex: none; width: 78px; height: 52px; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border-radius: 10px;
  border: 2px solid transparent; background: #1C2546; opacity: .5; transition: opacity .3s, border-color .3s, transform .4s cubic-bezier(.16,1,.3,1);
}
.photo-dialog .photo-thumbs button:hover { opacity: .85; }
.photo-dialog .photo-thumbs button.active { opacity: 1; border-color: var(--gold); transform: translateY(-2px); }
.photo-thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) { .gallery-controls { top: 66px; } }
@media (max-width: 760px) {
  .gallery-controls { padding: 10px 0 14px; }
  .gallery-controls .container { gap: .6rem; }
  .gallery-filters { width: 100%; border-radius: 18px; }
  .gallery-status { font-size: .74rem; }
  [data-gallery-section] { padding: 32px 0 40px; }
  [data-gallery-section] .section-head { padding-right: 80px; }
  [data-gallery-section] .section-head::after { font-size: 4rem; }
  .gallery-grid:not(.gallery-bento),
  [data-gallery-section]:nth-of-type(even) .gallery-grid:not(.gallery-bento) { grid-template-columns: 1fr; }
  .gallery-grid:not(.gallery-bento) .img-slot { height: auto; aspect-ratio: 16 / 10; }
  .gallery-grid { gap: 14px; }
  .gallery-grid .lightbox-item::after { opacity: 1; transform: none; width: 36px; height: 36px; background-size: 15px, auto; }
  .gallery-grid .slot-caption { transform: none; }
  .photo-dialog { width: calc(100vw - 12px); max-height: 96dvh; border-radius: 18px; padding: 12px 10px; }
  .photo-dialog .photo-prev, .photo-dialog .photo-next { width: 40px; height: 40px; margin-top: -20px; }
  .photo-dialog .photo-prev { left: 8px; }
  .photo-dialog .photo-next { right: 8px; }
  .photo-dialog .photo-thumbs button { width: 60px; height: 42px; }
}

/* ==========================================================================
   CONTACT — overlapping channel cards (featured WhatsApp), live hours,
   copy chips, map + fact tiles, stepped checklist, boat chooser
   ========================================================================== */
.contact-hub { position: relative; z-index: 5; padding: 0 0 80px; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(0, 1fr); gap: 1.4rem; margin-top: -88px; }
.contact-hub .contact-card { display: flex; flex-direction: column; padding: 30px; box-shadow: var(--shadow-lift); }
.contact-hub .contact-card h3 { margin: 0 0 .45rem; font-size: 1.32rem; letter-spacing: -.02em; }
.contact-hub .contact-card p { flex: 0 0 auto; color: var(--muted); }
.contact-hub .card-links { padding-top: 1.1rem; }
.cc-top { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.2rem; }
.cc-top .cc-icon { margin: 0; }

/* Copyable value row */
.cc-value {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin: 1.1rem 0 .2rem;
  padding: .6rem .6rem .6rem 1rem; border-radius: 14px; background: var(--paper); border: 1px dashed var(--line-strong);
}
.cc-value a { min-width: 0; color: var(--ink); font-size: .92rem; font-weight: 800; text-decoration: none !important; overflow-wrap: anywhere; }
.cc-value a:hover { color: var(--rose); }
.cc-copy {
  flex: none; min-height: 32px; padding: .35rem .85rem; border: 0; border-radius: 999px;
  background: var(--gold-soft); color: var(--rose-dark); font-size: .72rem; font-weight: 800; transition: background .3s, color .3s;
}
.cc-copy:hover { background: var(--gold); color: var(--ink-deep); }
.cc-copy.is-copied { background: #DDF5E6; color: var(--wa-dark); }

/* Live hours pill */
.cc-status { display: inline-flex; align-items: center; gap: .45rem; padding: .32rem .75rem; border-radius: 999px; font-size: .68rem; font-weight: 800; letter-spacing: .01em; white-space: nowrap; }
.cc-status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.cc-status.is-open { background: #E2F6E9; color: #0F6334; }
.cc-status.is-open::before { animation: openPing 2s ease-out infinite; }
.cc-status.is-closed { background: var(--rose-soft); color: var(--rose-dark); }
@keyframes openPing { 0% { box-shadow: 0 0 0 0 rgba(23,128,70,.55); } 80%, 100% { box-shadow: 0 0 0 7px rgba(23,128,70,0); } }

/* Featured WhatsApp card */
.contact-hub .contact-card--wa {
  position: relative; overflow: hidden; border-color: transparent; color: #E6F7EC;
  background:
    radial-gradient(420px 260px at 100% 0%, rgba(52,224,126,.32), transparent 65%),
    radial-gradient(rgba(255,255,255,.08) 1px, transparent 1.4px),
    linear-gradient(160deg, #13804A 0%, #0B4A27 100%);
  background-size: auto, 20px 20px, auto;
  box-shadow: 0 34px 64px -28px rgba(11,74,39,.75);
}
.contact-hub .contact-card--wa:hover { border-color: transparent; }
.contact-card--wa h3 { color: #fff; }
.contact-hub .contact-card--wa p { color: rgba(230,247,236,.86); }
.contact-card--wa .cc-icon { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); box-shadow: none; }
.cc-badge { padding: .34rem .8rem; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); color: #fff; font-size: .64rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cc-meta { list-style: none; display: grid; gap: .55rem; margin: 1.1rem 0 .3rem; }
.cc-meta li { position: relative; padding-left: 1.75rem; font-size: .86rem; font-weight: 600; color: #F1FBF4; }
.cc-meta li::before { content: ''; position: absolute; left: 0; top: .15em; width: 18px; height: 18px; border-radius: 50%; background: var(--check) center / 10px no-repeat, rgba(255,255,255,.22); }
.contact-card--wa .btn-wa { background: #fff; color: #0B4A27 !important; box-shadow: 0 14px 28px -12px rgba(0,0,0,.45); }
.contact-card--wa .btn-wa:hover { background: #F0FFF5; }

/* ---------- Find us ---------- */
.contact-find .section-head { max-width: 720px; }
.find-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 1.6rem; align-items: stretch; }
.find-map {
  position: relative; min-height: 400px; overflow: hidden; border-radius: 24px; border: 6px solid #fff;
  background: #EFE6DA; box-shadow: var(--shadow-lift);
}
.find-map iframe { display: block; width: 100%; height: 100%; min-height: 400px; border: 0; filter: saturate(.9) contrast(1.02); }
.find-map-link {
  position: absolute; left: 16px; bottom: 16px; padding: .6rem 1.05rem; border-radius: 999px;
  background: var(--ink-deep); color: #F8D9A8 !important; font-size: .78rem; font-weight: 800; text-decoration: none !important;
  box-shadow: 0 12px 26px -10px rgba(27,33,64,.6); transition: background .3s, transform .4s cubic-bezier(.16,1,.3,1);
}
.find-map-link:hover { background: #283B63; transform: translateY(-2px); }
.find-side { display: grid; gap: 1rem; align-content: start; }
.find-fact {
  display: flex; align-items: flex-start; gap: 1rem; padding: 20px 22px; border-radius: 20px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft);
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s, border-color .3s;
}
.find-fact:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.find-ico { flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: var(--grad-ring); color: #fff; box-shadow: 0 10px 20px -8px rgba(194,96,58,.6); }
.find-ico svg { width: 22px; height: 22px; }
.find-fact h3 { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; margin-bottom: .3rem; font-size: 1.02rem; }
.find-fact p { margin: 0; font-size: .9rem; }
.find-fact small { display: block; margin-top: .25rem; font-size: .78rem; color: var(--muted); }
.ghat-chips { display: flex; flex-wrap: wrap; gap: .4rem; padding-top: .15rem; }
.ghat-chips span { padding: .3rem .75rem; border-radius: 999px; background: var(--gold-soft); color: var(--rose-dark); font-size: .78rem; font-weight: 700; }

/* Stepped checklist */
.steps-panel { margin-top: 1.6rem; padding: 30px 34px; }
.check-steps { list-style: none; counter-reset: cs; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; margin: 1.3rem 0 1rem; }
.steps-panel .check-steps li { position: relative; counter-increment: cs; padding: 0; border: 0; font-size: .88rem; color: var(--muted); }
.check-steps li::before {
  content: counter(cs); position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: .9rem;
  border-radius: 50%; background: var(--grad-warm); color: #fff; font-weight: 800; box-shadow: 0 10px 22px -8px rgba(194,96,58,.6);
}
.check-steps li:not(:last-child)::after {
  content: ''; position: absolute; top: 21px; left: 56px; right: calc(-1.6rem + 12px); height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--gold), rgba(194,96,58,.25));
}
.steps-panel .check-steps strong { margin-bottom: .3rem; font-size: 1rem; color: var(--ink); }

/* ---------- Boat chooser ---------- */
.boat-chooser .section-head { max-width: 780px; }
.chooser-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.2rem; }
.chooser-card {
  position: relative; display: flex; flex-direction: column; gap: .35rem; padding: 24px 22px 24px; overflow: hidden; isolation: isolate;
  border-radius: 22px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); color: var(--ink);
  text-decoration: none !important; transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s, border-color .3s;
}
.chooser-card::before {
  content: ''; position: absolute; z-index: -1; right: -70px; bottom: -90px; width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(232,163,61,.2), transparent 70%); transition: transform .7s cubic-bezier(.16,1,.3,1);
}
.chooser-card:hover { color: var(--ink); transform: translateY(-6px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.6); }
.chooser-card:hover::before { transform: scale(1.5); }
.chooser-ico { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: .85rem; border-radius: 17px; background: linear-gradient(135deg, #FBEBCF, #F6D9C4); color: var(--rose); transition: background .4s, color .4s; }
.chooser-ico svg { width: 27px; height: 27px; }
.chooser-card:hover .chooser-ico { background: var(--grad-ring); color: #fff; }
.chooser-card strong { font-size: 1.08rem; letter-spacing: -.015em; }
.chooser-card small { font-size: .82rem; color: var(--muted); }
.chooser-arrow { position: absolute; top: 22px; right: 22px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); transition: background .35s, border-color .35s, transform .5s cubic-bezier(.16,1,.3,1); }
.chooser-arrow::before {
  content: ''; position: absolute; inset: 0; margin: auto; width: 15px; height: 15px; background: var(--ink);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.chooser-card:hover .chooser-arrow { background: var(--ink-deep); border-color: var(--ink-deep); transform: rotate(-45deg); }
.chooser-card:hover .chooser-arrow::before { background: #F8D9A8; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-grid .contact-card--wa { grid-column: 1 / -1; }
  .chooser-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .find-grid { grid-template-columns: 1fr; }
  .find-map, .find-map iframe { min-height: 320px; }
}
@media (max-width: 760px) {
  .contact-hub { padding-bottom: 56px; }
  .contact-grid { grid-template-columns: 1fr; margin-top: -56px; gap: 1rem; }
  .contact-hub .contact-card { padding: 24px; }
  .steps-panel { padding: 24px; }
  .check-steps { grid-template-columns: 1fr; gap: 1.1rem; }
  .steps-panel .check-steps li { display: grid; grid-template-columns: 44px 1fr; column-gap: 1rem; align-items: start; }
  .check-steps li::before { grid-row: 1 / span 2; margin: 0; }
  .check-steps li:not(:last-child)::after { top: 48px; bottom: -1.1rem; left: 21px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--gold), rgba(194,96,58,.25)); }
}
@media (max-width: 480px) {
  .chooser-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   FAQ — help-centre layout: hero search, sticky topic list, topic cards,
   numbered questions with highlighted search matches
   ========================================================================== */

/* Hero search */
.faq-search { position: relative; max-width: 580px; margin: 0 0 1.5rem; }
.faq-search-ico { position: absolute; left: 20px; top: 50%; width: 20px; height: 20px; margin-top: -10px; color: var(--rose); pointer-events: none; }
.faq-search-ico svg { width: 20px; height: 20px; }
.faq-search input {
  width: 100%; height: 60px; padding: 0 140px 0 54px; border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35); background: rgba(255,255,255,.96); color: var(--ink);
  font-size: .96rem; font-weight: 600; box-shadow: 0 24px 44px -22px rgba(0,0,0,.7), 0 0 0 0 rgba(232,163,61,0);
  transition: box-shadow .35s, border-color .35s;
}
.faq-search input::placeholder { color: #9A8B7C; font-weight: 500; }
.faq-search input:focus { outline: none; border-color: var(--gold); box-shadow: 0 24px 44px -22px rgba(0,0,0,.7), 0 0 0 5px rgba(232,163,61,.35); }
.faq-search input::-webkit-search-cancel-button { margin-right: .3rem; cursor: pointer; }
.faq-search-count {
  position: absolute; right: 8px; top: 8px; height: 44px; padding: 0 1.05rem; display: grid; place-items: center;
  border-radius: 999px; background: var(--ink-deep); color: #F8D9A8; font-size: .74rem; font-weight: 800; white-space: nowrap; pointer-events: none;
}

/* Layout */
.faq-shell { padding: 60px 0 40px; }
.faq-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 2.4rem; align-items: start; }
.faq-aside { position: sticky; top: 100px; display: grid; gap: 1rem; }
.faq-toc { display: grid; gap: .3rem; padding: 10px; border-radius: 22px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.faq-toc a {
  display: flex; align-items: center; gap: .7rem; padding: .62rem .7rem; border-radius: 14px;
  color: var(--ink); font-size: .87rem; font-weight: 700; text-decoration: none !important;
  transition: background .3s, color .3s, opacity .3s;
}
.faq-toc a:hover { background: var(--gold-soft); color: var(--ink); }
.toc-ico { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: linear-gradient(135deg, #FBEBCF, #F6D9C4); color: var(--rose); transition: background .3s, color .3s; }
.toc-ico svg { width: 18px; height: 18px; }
.toc-text { flex: 1; min-width: 0; }
.toc-count { flex: none; min-width: 24px; height: 24px; padding: 0 7px; display: grid; place-items: center; border-radius: 999px; background: var(--paper); border: 1px solid var(--line); font-size: .7rem; font-weight: 800; color: var(--muted); }
.faq-toc a.is-active { background: var(--ink-deep); color: #fff; box-shadow: 0 12px 24px -14px rgba(27,33,64,.8); }
.faq-toc a.is-active .toc-ico { background: var(--grad-ring); color: #fff; }
.faq-toc a.is-active .toc-count { background: var(--gold); border-color: var(--gold); color: var(--ink-deep); }
.faq-toc a.is-empty { opacity: .4; }

.faq-help-card {
  position: relative; overflow: hidden; padding: 24px; border-radius: 22px; color: #E6F7EC;
  background: radial-gradient(260px 180px at 100% 0%, rgba(52,224,126,.32), transparent 65%), linear-gradient(160deg, #13804A, #0B4A27);
  box-shadow: 0 24px 44px -24px rgba(11,74,39,.75);
}
.faq-help-card strong { display: block; margin-bottom: .4rem; font-size: 1.05rem; color: #fff; }
.faq-help-card p { margin-bottom: 1rem; font-size: .84rem; color: rgba(230,247,236,.86); }
.faq-help-card .btn-wa { background: #fff; color: #0B4A27 !important; }
.faq-help-card .btn-wa:hover { background: #F0FFF5; }

/* Topic cards */
.faq-groups > .faq-group {
  padding: 0; margin-bottom: 26px; scroll-margin-top: 100px; overflow: clip;
  background: var(--card); border: 1px solid var(--line); border-radius: 26px; box-shadow: var(--shadow-soft);
}
.faq-groups > .faq-group > .container { width: auto; margin: 0; padding: 28px 30px 24px; }
.faq-group-head { display: flex; align-items: center; gap: 1.1rem; max-width: none; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.faq-group-ico { flex: none; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: var(--grad-ring); color: #fff; box-shadow: 0 14px 26px -12px rgba(194,96,58,.65); }
.faq-group-ico svg { width: 27px; height: 27px; }
.faq-group-title { min-width: 0; }
.faq-group-head .kicker { margin-bottom: 8px; }
.faq-group-head h2 { font-size: clamp(1.45rem, 2.3vw, 1.85rem); }
.faq-group-count { flex: none; margin-left: auto; padding: .38rem .85rem; border-radius: 999px; background: var(--gold-soft); color: var(--rose-dark); font-size: .74rem; font-weight: 800; }

/* Numbered questions inside the cards */
.faq-groups .faq-list { max-width: none; counter-reset: fq; gap: 10px; }
.faq-groups .faq-item, .cine .faq-groups .faq-item { counter-increment: fq; position: relative; background: #FFFCF7; box-shadow: none; padding: 0 1.2rem; }
.faq-groups .faq-item.open, .cine .faq-groups .faq-item.open { padding-left: 1.2rem; box-shadow: 0 18px 36px -24px rgba(194,96,58,.5); }
.faq-groups .faq-item::before {
  content: counter(fq, decimal-leading-zero); position: absolute; left: 1.2rem; top: 1.28rem;
  padding: .18rem .42rem; border-radius: 8px; background: var(--gold-soft); color: var(--gold-dark);
  font-size: .7rem; font-weight: 800; line-height: 1.3; transition: background .3s, color .3s;
}
.faq-groups .faq-item.open::before { background: var(--ink-deep); color: #F8D9A8; }
.faq-groups .faq-q { padding-left: 2.7rem; }
.faq-groups .faq-a-inner { padding-left: 2.7rem; }
.faq-q mark { padding: 0 .08em; border-radius: 3px; color: inherit; background: linear-gradient(180deg, transparent 50%, rgba(232,163,61,.5) 50%); }

/* Empty search state */
.faq-empty {
  display: grid; justify-items: center; gap: .6rem; padding: 48px 24px; text-align: center;
  border: 1px dashed var(--line-strong); border-radius: 26px; background: rgba(255,255,255,.6);
}
.faq-empty::before {
  content: ''; width: 64px; height: 64px; border-radius: 20px; margin-bottom: .4rem; background: var(--gold-soft) center / 30px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8321F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4M8.5 11h5'/%3E%3C/svg%3E");
}
.faq-empty strong { font-size: 1.15rem; color: var(--ink); }
.faq-empty p { max-width: 420px; color: var(--muted); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) { .faq-aside { top: 84px; } }
@media (max-width: 900px) {
  .faq-layout { display: block; }
  .faq-aside { position: sticky; top: 66px; z-index: 40; margin: 0 -20px 18px; padding: 10px 20px 12px; background: linear-gradient(180deg, var(--paper) 78%, rgba(255,251,245,0)); }
  .faq-toc { display: flex; gap: .4rem; padding: 6px; overflow-x: auto; scrollbar-width: none; border-radius: 18px; }
  .faq-toc::-webkit-scrollbar { display: none; }
  .faq-toc a { flex: none; padding: .45rem .7rem .45rem .45rem; font-size: .8rem; }
  .toc-ico { width: 28px; height: 28px; border-radius: 9px; }
  .toc-ico svg { width: 15px; height: 15px; }
  .faq-help-card { display: none; }
  .faq-groups > .faq-group { scroll-margin-top: 140px; }
}
@media (max-width: 760px) {
  .faq-shell { padding-top: 36px; }
  .faq-search input { height: 54px; padding-right: 112px; font-size: .9rem; }
  .faq-search-count { height: 38px; padding: 0 .8rem; font-size: .68rem; }
  .faq-groups > .faq-group > .container { padding: 20px 16px 16px; }
  .faq-group-head { flex-wrap: wrap; gap: .8rem; }
  .faq-group-ico { width: 48px; height: 48px; border-radius: 15px; }
  .faq-group-count { margin-left: 0; }
  .faq-groups .faq-item, .cine .faq-groups .faq-item, .faq-groups .faq-item.open, .cine .faq-groups .faq-item.open { padding: 0 .9rem; }
  .faq-groups .faq-item::before { left: .9rem; }
  .faq-groups .faq-q { padding-left: 2.5rem; }
  .faq-groups .faq-a-inner { padding-left: 0; padding-right: 0; }
}

/* ==========================================================================
   ABOUT — editorial story with photo collage + stats, team steps band,
   numbered value cards, split "before you board" panel, fleet cards
   ========================================================================== */
.about-story { padding: 96px 0 76px; }
.about-story-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 4.5rem; align-items: center; }

/* Photo collage */
.about-collage { position: relative; height: 520px; isolation: isolate; }
.about-collage::before {
  content: ''; position: absolute; z-index: -1; inset: 8% 4% 4% 12%; border-radius: 42px;
  background: var(--grad); opacity: .16; transform: rotate(-4deg);
}
.ac-card { position: absolute; margin: 0; overflow: hidden; border-radius: 24px; border: 5px solid #fff; background: var(--cream-soft); box-shadow: var(--shadow-lift); }
.ac-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.ac-card:hover img { transform: scale(1.06); }
.ac-main { left: 0; top: 0; width: 72%; height: 74%; }
.ac-side { right: 0; top: 30%; width: 46%; height: 44%; rotate: 3deg; z-index: 2; }
.ac-small { left: 9%; bottom: 0; width: 40%; height: 34%; rotate: -3deg; z-index: 3; }
.ac-badge {
  position: absolute; right: 3%; bottom: 5%; z-index: 4; display: flex; flex-direction: column; padding: .85rem 1.15rem .85rem 3.1rem;
  border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: var(--shadow-lift);
}
.ac-badge::before { content: ''; position: absolute; left: .9rem; top: 50%; width: 26px; height: 26px; margin-top: -13px; border-radius: 50%; background: var(--check) center / 13px no-repeat, var(--grad-warm); }
.ac-badge b { font-size: .95rem; font-weight: 800; color: var(--ink); }
.ac-badge span { font-size: .7rem; font-weight: 700; color: var(--muted); }
.cine .ac-card, .cine .ac-badge { animation: hcIn 1.2s cubic-bezier(.16,1,.3,1) both, hcFloat 7s ease-in-out infinite alternate; animation-play-state: paused; }
.cine .about-collage.is-in .ac-card, .cine .about-collage.is-in .ac-badge { animation-play-state: running; }
.cine .ac-side { animation-delay: .2s, 0s; animation-duration: 1.2s, 8s; }
.cine .ac-small { animation-delay: .35s, 1s; animation-duration: 1.2s, 6s; }
.cine .ac-badge { animation-delay: .55s, .4s; animation-duration: 1.2s, 5s; }

/* Story text + stats */
.about-story-text h2 { margin-bottom: 1.1rem; font-size: clamp(2rem, 3.4vw, 2.8rem); letter-spacing: -.035em; line-height: 1.1; }
.about-story-text p { font-size: 1.02rem; line-height: 1.75; }
.about-stats { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin-top: 1.9rem; }
.about-stats li { padding: 16px 14px; border-radius: 18px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.about-stats strong { display: block; font-size: 1.45rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.2; background: var(--grad-ring); -webkit-background-clip: text; background-clip: text; color: transparent; }
.about-stats span { display: block; margin-top: .2rem; font-size: .72rem; font-weight: 700; line-height: 1.35; color: var(--muted); }

/* Team steps band (reuses the contact checklist steps) */
.about-team { margin-top: 3.8rem; }
.about-team-head { display: flex; align-items: center; gap: 1rem; }
.about-team-head .panel-icon { margin: 0; }
.about-team-head h3 { margin: 0; font-size: 1.35rem; letter-spacing: -.02em; }

/* Numbered value cards */
.value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; counter-reset: vc; }
.value-card {
  position: relative; overflow: hidden; counter-increment: vc; padding: 30px 28px 28px; border-radius: 24px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s, border-color .3s;
}
.value-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--grad); transform: scaleX(0); transform-origin: left; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.value-card::after { content: counter(vc, decimal-leading-zero); position: absolute; right: 18px; top: 8px; font: 800 4.4rem/1 var(--font-body); letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px rgba(154,53,36,.12); pointer-events: none; }
.value-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.value-card:hover::before { transform: scaleX(1); }
.value-ico { display: grid; place-items: center; width: 54px; height: 54px; margin-bottom: 1.2rem; border-radius: 17px; background: var(--grad-ring); color: #fff; box-shadow: 0 12px 24px -10px rgba(194,96,58,.6); transition: transform .5s cubic-bezier(.16,1,.3,1); }
.value-ico svg { width: 26px; height: 26px; }
.value-card:hover .value-ico { transform: rotate(-6deg) scale(1.06); }
.value-card h3 { margin-bottom: .5rem; font-size: 1.12rem; letter-spacing: -.015em; }
.value-card p { font-size: .9rem; color: var(--muted); }

/* Split "before you step aboard" panel */
.about-before .before-booking { grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); gap: 1.6rem; align-items: stretch; padding: 0; border-top: 0; }
.about-before .before-booking > div:first-child {
  position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 280px; padding: 34px; border-radius: 26px; color: #fff;
  background: radial-gradient(360px 260px at 100% 0%, rgba(232,163,61,.4), transparent 65%), linear-gradient(150deg, #1B2140 0%, #8A2F22 60%, #8A2618 100%);
  box-shadow: 0 30px 60px -28px rgba(27,33,64,.6);
}
.about-before .before-booking > div:first-child::after {
  content: ''; position: absolute; inset: 0; z-index: -1; opacity: .5;
  background-image: radial-gradient(rgba(255,255,255,.18) 1px, transparent 1.5px); background-size: 20px 20px;
  -webkit-mask-image: linear-gradient(200deg, #000, transparent 70%); mask-image: linear-gradient(200deg, #000, transparent 70%);
}
.about-before .before-booking h3 { color: #fff; font-size: clamp(1.7rem, 2.6vw, 2.25rem); letter-spacing: -.03em; line-height: 1.12; }
.about-before .before-booking ul { gap: 1rem; }
.about-before .before-booking li {
  position: relative; padding: 22px 22px 22px 66px; border-radius: 20px; background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow-soft); font-size: .88rem; color: var(--muted);
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s, border-color .3s;
}
.about-before .before-booking li::before { content: ''; position: absolute; left: 20px; top: 22px; width: 30px; height: 30px; border-radius: 10px; background: var(--check) center / 14px no-repeat, var(--grad-warm); box-shadow: 0 8px 16px -6px rgba(194,96,58,.6); }
.about-before .before-booking li:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.about-before .before-booking strong { font-size: .98rem; color: var(--ink); }

/* Fleet */
.about-fleet-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 3.5rem; align-items: center; }
.about-fleet-text h2 { margin-bottom: 1rem; font-size: clamp(1.9rem, 3vw, 2.5rem); letter-spacing: -.03em; }
.about-fleet-text .hero-ctas { margin-top: 1.6rem; }
.about-fleet-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .about-story-grid { grid-template-columns: 1fr; gap: 3rem; }
  .about-collage { width: min(100%, 560px); height: 440px; margin-inline: auto; }
  .about-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .about-fleet-grid { grid-template-columns: 1fr; gap: 2rem; }
  .value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .about-story { padding: 56px 0 48px; }
  .about-collage { height: 340px; }
  .about-team { margin-top: 2.6rem; }
  .about-before .before-booking { grid-template-columns: 1fr; }
  .about-before .before-booking > div:first-child { min-height: 0; padding: 26px; }
}
@media (max-width: 600px) {
  .value-grid { grid-template-columns: 1fr; }
  .about-fleet-cards { grid-template-columns: 1fr; }
}

/* ==========================================================================
   BOAT PAGES — dark "at a glance" card with stat rows, chip checklist,
   photo-request banner, sticky spec sidebar with icon table, photo occasion
   cards, icon cards for other boats, two-column FAQs
   ========================================================================== */

/* Overview */
.boat-overview .feature-row { align-items: start; gap: 3.5rem; }
.boat-overview .boat-summary {
  padding: 34px; border: 0; color: #ECE6DA;
  background: radial-gradient(420px 260px at 100% 0%, rgba(232,163,61,.32), transparent 65%), linear-gradient(155deg, #1B2140 0%, #283B63 55%, #7E2C22 100%);
  box-shadow: 0 34px 64px -30px rgba(27,33,64,.75);
}
.boat-overview .boat-summary h3 { color: #fff; font-size: 1.4rem; letter-spacing: -.02em; }
.boat-overview .boat-summary .panel-icon { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.22); box-shadow: none; }
.boat-overview .boat-summary ul { display: grid; gap: .75rem; }
.boat-overview .boat-summary li, .boat-overview .boat-summary li:last-child {
  position: relative; padding: 14px 16px 14px 64px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px;
  background: rgba(255,255,255,.06); color: #fff; font-size: .95rem; font-weight: 700;
}
.boat-overview .boat-summary li strong { color: #F8D9A8; font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.boat-overview .boat-summary li::before {
  content: ''; position: absolute; left: 14px; top: 50%; width: 36px; height: 36px; margin-top: -18px; border-radius: 11px;
  background: var(--sum-ico) center / 18px no-repeat, linear-gradient(135deg, #F2B33D, #C2603A);
}
.boat-overview .boat-summary li:nth-child(1) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20a6 6 0 0 1 12 0M16 5a3 3 0 0 1 0 6M21 20a6 6 0 0 0-4-5.6'/%3E%3C/svg%3E"); }
.boat-overview .boat-summary li:nth-child(2) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.boat-overview .boat-summary li:nth-child(3) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 11V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v6M4 11h16v4H4zM6 15v6M18 15v6'/%3E%3C/svg%3E"); }
.boat-overview .boat-summary .panel-note { margin-top: 1.1rem; color: rgba(236,230,218,.72); font-size: .8rem; }
.boat-overview .feature-row h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); }

/* Checklist as chips */
.boat-overview .checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin-top: 1.4rem; }
.boat-overview .checklist li {
  margin: 0; padding: .75rem .9rem .75rem 2.75rem; border-radius: 14px; background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow-soft); font-size: .86rem; font-weight: 600; color: var(--ink);
}
.boat-overview .checklist li::before { left: .8rem; top: 50%; margin-top: -10px; }

/* Photo-request banner */
.boat-overview .media-request {
  position: relative; margin-top: 2.6rem; padding: 22px 26px 22px 92px; border: 0; border-radius: 22px;
  background: linear-gradient(90deg, var(--gold-soft), #FFF6EA); box-shadow: var(--shadow-soft);
}
.boat-overview .media-request::before {
  content: ''; position: absolute; left: 24px; top: 50%; width: 50px; height: 50px; margin-top: -25px; border-radius: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h3l2-3h6l2 3h3v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E") center / 24px no-repeat, var(--grad-ring);
  box-shadow: 0 12px 24px -10px rgba(194,96,58,.6);
}
.boat-overview .media-request strong { font-size: 1.02rem; }

/* Specs: sticky side column + icon table */
.specs-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 3rem; align-items: start; }
.specs-side { position: sticky; top: 110px; }
.specs-side .section-head { margin-bottom: 1rem; }
.specs-side .table-hint { margin: 0; }
.specs-ask {
  margin-top: 1.5rem; padding: 24px; border-radius: 22px; color: #E6F7EC;
  background: radial-gradient(260px 180px at 100% 0%, rgba(52,224,126,.32), transparent 65%), linear-gradient(160deg, #13804A, #0B4A27);
  box-shadow: 0 24px 44px -24px rgba(11,74,39,.75);
}
.specs-ask strong { display: block; margin-bottom: .4rem; font-size: 1.05rem; color: #fff; }
.specs-ask p { margin-bottom: 1rem; font-size: .85rem; color: rgba(230,247,236,.86); }
.specs-ask .btn-wa { background: #fff; color: #0B4A27 !important; }
.specs-ask .btn-wa:hover { background: #F0FFF5; }
.boat-specs .specs-table th, .boat-specs .specs-table td { padding: 1.05rem 1.25rem; vertical-align: middle; }
.boat-specs .specs-table th { width: 40%; white-space: nowrap; }
.boat-specs .specs-table td { font-weight: 600; color: var(--ink); }
.spec-ico { display: inline-grid; place-items: center; width: 34px; height: 34px; margin-right: .75rem; border-radius: 11px; background: var(--grad-ring); color: #fff; vertical-align: middle; box-shadow: 0 8px 16px -8px rgba(194,96,58,.6); }
.spec-ico svg { width: 17px; height: 17px; }

/* Occasion photo cards */
.occ-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.3rem; }
.occ-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: 22px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s, border-color .3s;
}
.occ-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift); border-color: rgba(232,163,61,.55); }
.occ-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--cream-soft); }
.occ-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.occ-card:hover .occ-media img { transform: scale(1.07); }
.occ-body { display: flex; flex-direction: column; flex: 1; padding: 0 20px 20px; }
.occ-ico {
  position: relative; display: grid; place-items: center; width: 50px; height: 50px; margin: -25px 0 .9rem;
  border-radius: 15px; border: 3px solid #fff; background: var(--grad-ring); color: #fff; box-shadow: 0 10px 20px -8px rgba(194,96,58,.6);
}
.occ-ico svg { width: 22px; height: 22px; }
.occ-body h3 { margin-bottom: .4rem; font-size: 1.06rem; letter-spacing: -.015em; }
.occ-body p { flex: 1; font-size: .85rem; color: var(--muted); }
.occ-link { margin-top: .9rem; font-size: .8rem; font-weight: 800; color: var(--rose); text-decoration: none !important; }
.occ-link::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.occ-link span { display: inline-block; transition: transform .4s cubic-bezier(.16,1,.3,1); }
.occ-card:hover .occ-link span { transform: translateX(5px); }
.occ-card:focus-within { outline: 3px solid var(--gold); outline-offset: 3px; }

/* Other boats + FAQs */
@media (min-width: 1101px) { .boat-others { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 901px) {
  .boat-faqs .container { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); gap: 3rem; align-items: start; }
  .boat-faqs .section-head { position: sticky; top: 110px; margin-bottom: 0; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .occ-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .specs-layout { grid-template-columns: 1fr; gap: 1.5rem; }
  .specs-side { position: static; }
}
@media (max-width: 760px) {
  .boat-overview .boat-summary { padding: 24px; }
  .boat-overview .checklist { grid-template-columns: 1fr; }
  .boat-overview .media-request { padding: 84px 20px 20px; }
  .boat-overview .media-request::before { top: 20px; margin-top: 0; left: 20px; }
  .boat-specs .specs-table th { white-space: normal; }
  .boat-specs .specs-table th, .boat-specs .specs-table td { padding: .85rem .9rem; }
  .spec-ico { width: 28px; height: 28px; margin-right: .5rem; border-radius: 9px; }
  .spec-ico svg { width: 15px; height: 15px; }
}
@media (max-width: 560px) { .occ-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   EVENT PAGES (birthday, anniversary, surprise, Dev Diwali)
   ========================================================================== */

/* Packages sit on a soft spotlight */
.page-event #packages:not(.section-dark) { background: radial-gradient(900px 420px at 50% 0%, rgba(232,163,61,.16), transparent 70%), var(--paper); }

/* "Make it yours" planning block: dark card with icon rows + photo-led text column */
.page-event .feature-row > .info-panel {
  padding: 34px; border: 0; color: #ECE6DA;
  background: radial-gradient(420px 260px at 100% 0%, rgba(232,163,61,.32), transparent 65%), linear-gradient(155deg, #1B2140 0%, #283B63 55%, #7E2C22 100%);
  box-shadow: 0 34px 64px -30px rgba(27,33,64,.75);
}
.page-event .feature-row > .info-panel h3 { color: #fff; font-size: clamp(1.4rem, 2.2vw, 1.75rem); letter-spacing: -.025em; line-height: 1.2; margin-bottom: 1.3rem; }
.page-event .feature-row > .info-panel ul { display: grid; gap: .75rem; }
.page-event .feature-row > .info-panel li, .page-event .feature-row > .info-panel li:last-child {
  position: relative; padding: 14px 16px 14px 64px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px;
  background: rgba(255,255,255,.06); color: rgba(255,255,255,.9); font-size: .88rem;
}
.page-event .feature-row > .info-panel li strong { color: #F8D9A8; font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.page-event .feature-row > .info-panel li::before {
  content: ''; position: absolute; left: 14px; top: 50%; width: 36px; height: 36px; margin-top: -18px; border-radius: 11px;
  background: var(--sum-ico) center / 18px no-repeat, linear-gradient(135deg, #F2B33D, #C2603A);
}
.page-event .feature-row > .info-panel li:nth-child(1) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Cpath d='M3 20a6 6 0 0 1 12 0M16 5a3 3 0 0 1 0 6M21 20a6 6 0 0 0-4-5.6'/%3E%3C/svg%3E"); }
.page-event .feature-row > .info-panel li:nth-child(2) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l1.8 4.2L18 9l-4.2 1.8L12 15l-1.8-4.2L6 9l4.2-1.8z'/%3E%3Cpath d='M19 15l.8 1.7 1.7.8-1.7.8L19 20l-.8-1.7-1.7-.8 1.7-.8z'/%3E%3C/svg%3E"); }
.page-event .feature-row > .info-panel li:nth-child(3) { --sum-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.page-event .feature-photo { display: block; }
.page-event .feature-row .checklist:not(#boarding *) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.page-event .feature-row .checklist li {
  margin: 0; padding: .75rem .9rem .75rem 2.75rem; border-radius: 14px; background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow-soft); font-size: .86rem; font-weight: 600; color: var(--ink);
}
.page-event .feature-row .checklist li::before { left: .8rem; top: 50%; margin-top: -10px; }

/* Boarding: ghat cards with pins + framed map */
.page-event #boarding .feature-row { align-items: stretch; }
.page-event #boarding .checklist { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.page-event #boarding .checklist li { padding: .9rem 1rem .9rem 3.6rem; font-weight: 500; color: var(--muted); }
.page-event #boarding .checklist li strong { color: var(--ink); font-weight: 800; }
.page-event #boarding .checklist li::before {
  left: .85rem; width: 34px; height: 34px; margin-top: -17px; border-radius: 11px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.1-7-11.5a7 7 0 0 1 14 0C19 14.9 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E") center / 17px no-repeat, var(--grad-ring);
}
.page-event #boarding .table-scroll {
  overflow: hidden; min-height: 420px; border-radius: 24px; border: 6px solid #fff; background: #EFE6DA; box-shadow: var(--shadow-lift);
}
.page-event #boarding .table-scroll iframe { display: block; width: 100%; height: 100%; min-height: 420px; border-radius: 0 !important; }

/* Timeline: time pills on a glowing guide line */
.page-event .timeline { max-width: 880px; }
.page-event .timeline::before, .cine .page-event .timeline::after { left: 82px; }
.page-event .timeline-item { gap: 2.4rem; }
.page-event .timeline-item::before { left: 83px; top: 1.55rem; width: 14px; height: 14px; border: 3px solid var(--paper); box-shadow: 0 0 0 3px rgba(232,163,61,.3); }
.page-event .timeline-time {
  align-self: flex-start; width: 64px; margin-top: .55rem; padding: .5rem 0; border-radius: 12px; text-align: center;
  background: var(--ink-deep); color: #F8D9A8; font-size: .74rem; font-weight: 800; line-height: 1.25;
  box-shadow: 0 10px 20px -10px rgba(27,33,64,.6);
}

/* Theme cards: bigger swatches that tilt on hover */
.page-event #themes .theme-card { align-items: center; }
.page-event #themes .theme-swatch { width: 66px; height: 66px; border-radius: 20px; border: 3px solid #fff; box-shadow: 0 14px 26px -12px rgba(27,33,64,.5); }
.page-event #themes .theme-card:hover .theme-swatch { transform: rotate(-8deg) scale(1.08); }
.page-event #themes .gallery-note { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.6rem; padding: .6rem 1rem; border-radius: 999px; background: var(--gold-soft); color: var(--rose-dark); font-weight: 600; }

/* Dev Diwali countdown */
.countdown-band { position: relative; overflow: hidden; padding: 1.6rem 0; }
.countdown-band::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .45;
  background-image: radial-gradient(rgba(255,226,170,.55) 1px, transparent 1.6px); background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent); mask-image: linear-gradient(90deg, transparent, #000 30%, #000 70%, transparent);
}
.countdown-band .container { position: relative; gap: 1.6rem; }
.countdown-label { font-size: 1.05rem; letter-spacing: -.01em; }
.countdown-band .countdown { gap: .7rem; }
.countdown-band .cd-unit {
  min-width: 80px; padding: .75rem .9rem; border-radius: 18px; background: rgba(13,19,38,.35); border: 1px solid rgba(255,255,255,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 14px 26px -14px rgba(0,0,0,.55);
}
.countdown-band .cd-unit span { font-size: 2rem; color: #FCE3B5; text-shadow: 0 0 18px rgba(232,163,61,.65); }

/* FAQs: sticky heading column */
@media (min-width: 901px) {
  .event-faqs .container { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); column-gap: 3rem; align-items: start; }
  .event-faqs .section-head { grid-column: 1; grid-row: 1 / span 3; position: sticky; top: 110px; margin-bottom: 0; }
  .event-faqs .container > :not(.section-head) { grid-column: 2; }
}
.event-faqs .faq-more { max-width: none; margin-top: 1rem; }
.event-faqs .faq-more summary {
  display: inline-flex; align-items: center; gap: .6rem; padding: .7rem 1.15rem; border-radius: 999px; list-style: none;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); transition: border-color .3s, background .3s;
}
.event-faqs .faq-more summary::-webkit-details-marker { display: none; }
.event-faqs .faq-more summary::after { content: '+'; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--gold-soft); color: var(--rose-dark); font-weight: 800; transition: transform .35s; }
.event-faqs .faq-more[open] summary::after { transform: rotate(45deg); }
.event-faqs .faq-more summary:hover { border-color: var(--gold); background: #FFF8EC; }
.event-faqs .faq-more .faq-list { margin-top: 1rem; }

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .page-event .feature-row > .info-panel { padding: 24px; }
  .page-event .feature-row .checklist:not(#boarding *) { grid-template-columns: 1fr; }
  .page-event #boarding .table-scroll, .page-event #boarding .table-scroll iframe { min-height: 320px; }
  .countdown-band .cd-unit { min-width: 64px; padding: .6rem .7rem; }
  .countdown-band .cd-unit span { font-size: 1.5rem; }
}

/* ==========================================================================
   HOME — full-bleed occasion cards, crossed marquee ribbons, numbered
   spotlights with spec grids, sunrise glow, starry Aarti night, FAQ columns
   ========================================================================== */

/* Occasion cards: photo fills the card, text rides on a gradient */
.page-home .experience-grid { counter-reset: occ; }
.page-home .experience-card {
  counter-increment: occ; position: relative; isolation: isolate; min-height: 440px; justify-content: flex-end;
  border: 0; background: #141B34; box-shadow: 0 24px 48px -26px rgba(27,33,64,.55);
}
.page-home .experience-photo { position: absolute; inset: 0; z-index: -1; aspect-ratio: auto; }
.page-home .experience-photo img { transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .6s; }
.page-home .experience-photo::after { background: linear-gradient(180deg, rgba(13,19,38,.05) 25%, rgba(13,19,38,.55) 55%, rgba(13,19,38,.94) 100%); }
.page-home .experience-card:hover .experience-photo img { transform: scale(1.08); filter: saturate(1.12); }
.page-home .experience-card::before { content: counter(occ, decimal-leading-zero); }
.js-tilt .page-home .experience-card::before, .page-home .experience-card::before {
  position: absolute; top: 16px; left: 16px; inset: 16px auto auto 16px; z-index: 2; width: auto; height: auto; opacity: 1;
  padding: .3rem .65rem; border-radius: 999px; mix-blend-mode: normal;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .08em;
}
.page-home .experience-body { position: relative; flex: 0 0 auto; padding: 24px 22px 22px; transition: transform .6s cubic-bezier(.16,1,.3,1); }
.page-home .experience-card:hover .experience-body { transform: translateY(-6px); }
.page-home .experience-card h3 { color: #fff; font-size: 1.3rem; }
.page-home .experience-card p { min-height: 0; color: rgba(255,255,255,.82); }
.page-home .experience-card .text-link { background: rgba(255,255,255,.16); color: #fff; border: 1px solid rgba(255,255,255,.28); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.page-home .experience-card:hover .text-link { background: var(--gold); color: var(--ink-deep); border-color: var(--gold); box-shadow: 0 12px 24px -10px rgba(232,163,61,.7); }

/* Crossed marquee ribbons */
.home-marquee-wrap { position: relative; height: 170px; margin: 8px 0 20px; overflow: hidden; }
.home-marquee { position: absolute; left: -5%; right: -5%; top: 50%; padding: 18px 0; overflow: hidden; }
.hm-front { z-index: 2; transform: translateY(-50%) rotate(-2.2deg); background: linear-gradient(90deg, #1B2140, #8A2F22 50%, #8A2618); box-shadow: 0 20px 40px -20px rgba(27,33,64,.6); }
.hm-back { z-index: 1; transform: translateY(-50%) rotate(2.2deg); background: linear-gradient(90deg, #F6C564, #E8A33D 50%, #E07A3F); }
.hm-track { display: flex; align-items: center; gap: 1.6rem; width: max-content; animation: hmScroll 40s linear infinite; }
.hm-back .hm-track { animation-direction: reverse; animation-duration: 48s; }
.hm-track span { font: 800 clamp(1.3rem, 2.6vw, 2.05rem) / 1 var(--font-body); letter-spacing: -.02em; white-space: nowrap; color: #fff; }
.hm-front .hm-track span:nth-of-type(even) { color: transparent; -webkit-text-stroke: 1.2px rgba(248,217,168,.9); }
.hm-back .hm-track span { color: var(--ink-deep); }
.hm-track i { font-style: normal; font-size: 1.1rem; color: var(--gold); }
.hm-back .hm-track i { color: var(--ink-deep); }
.home-marquee-wrap:hover .hm-track { animation-play-state: paused; }
@keyframes hmScroll { to { transform: translateX(-50%); } }

/* Spotlights: big outlined number + spec grid */
.home-spotlight .spot-text { position: relative; }
.home-spotlight .spot-text::before {
  content: attr(data-num); position: absolute; right: 0; top: -36px; z-index: -1; pointer-events: none;
  font: 800 clamp(5rem, 9vw, 8.5rem) / 1 var(--font-body); letter-spacing: -.06em;
  color: transparent; -webkit-text-stroke: 1.5px rgba(154,53,36,.13);
}
.home-spotlight .feature-row { isolation: isolate; }
.home-spotlight .checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 1.5rem 0 1.6rem; }
.home-spotlight .checklist li {
  margin: 0; padding: .85rem 1rem .85rem 2.9rem; border-radius: 16px; background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow-soft); font-size: .84rem; color: var(--muted);
}
.home-spotlight .checklist li::before { left: .9rem; top: 1rem; }
.home-spotlight .checklist li strong { display: block; margin-bottom: .1rem; color: var(--rose-dark); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.home-spotlight .checklist li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.home-spotlight .spotlight-media figcaption { margin-top: 2rem; }

/* Sunrise: warm sun glow */
#sunrise-boat { position: relative; overflow: clip; isolation: isolate; }
#sunrise-boat::before {
  content: ''; position: absolute; z-index: -1; right: -8%; top: -30%; width: 640px; height: 640px; border-radius: 50%;
  background: radial-gradient(circle, rgba(252,206,120,.5) 0%, rgba(242,179,61,.18) 40%, transparent 68%);
  animation: sunBreathe 8s ease-in-out infinite alternate; pointer-events: none;
}

/* Evening Aarti: starry night section */
#evening-boat.section-dark {
  color: #ECE6DA;
  background:
    radial-gradient(1.5px 1.5px at 12% 18%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1px 1px at 28% 62%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 46% 12%, rgba(255,244,214,.9), transparent 60%),
    radial-gradient(1px 1px at 63% 38%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 78% 22%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1px 1px at 90% 70%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1px 1px at 8% 82%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(700px 360px at 80% 110%, rgba(232,163,61,.35), transparent 65%),
    linear-gradient(180deg, #0D1326 0%, #19203B 60%, #26315A 100%);
}
#evening-boat.section-dark::before { background: radial-gradient(circle, rgba(232,163,61,.22), transparent 62%); }
#evening-boat h2 { color: #fff; }
#evening-boat p { color: rgba(236,230,218,.86); }
#evening-boat .kicker { background: linear-gradient(#19203B, #19203B) padding-box, linear-gradient(135deg, rgba(232,163,61,.85), rgba(248,217,168,.35)) border-box; color: #F8D9A8; }
#evening-boat .local-note { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); color: rgba(236,230,218,.86); box-shadow: none; }
#evening-boat .text-link { color: #F8D9A8; }
#evening-boat .text-link:hover { color: #fff; }
#evening-boat figcaption, #evening-boat figcaption a { color: #C9BEA9; }
#evening-boat .river-image::before { background: linear-gradient(135deg, #E8A33D, #9A3524); opacity: .35; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) { .page-home .experience-card { min-height: 400px; } }
@media (max-width: 760px) {
  .home-marquee-wrap { height: 130px; }
  .home-marquee { padding: 13px 0; }
  .home-spotlight .checklist { grid-template-columns: 1fr; }
  .home-spotlight .spot-text::before { top: -24px; }
  #sunrise-boat::before { width: 380px; height: 380px; }
}
@media (max-width: 480px) { .page-home .experience-card { min-height: 380px; } }

/* ==========================================================================
   AIR SHOW GUIDE — visible sky hero, overlapping fact tiles, Namo Ghat chips
   + framed map, sky aircraft cards, status-badged closures, sources card
   ========================================================================== */
:root { --sky: linear-gradient(135deg, #2F7A8C, #0E2A4A); }

/* Hero */
.hero.hero-airshow { min-height: 0; padding: 92px 0 160px; }
.hero-airshow .hero-inner { max-width: 620px; }
.hero-airshow h1 { font-size: clamp(2.5rem, 5vw, 4rem); letter-spacing: -.04em; text-shadow: 0 6px 30px rgba(14,42,74,.55); }
.hero-airshow h1::after { content: ''; display: block; width: 84px; height: 4px; margin-top: 1rem; border-radius: 4px; background: linear-gradient(90deg, #fff, rgba(255,255,255,0)); }
.hero-airshow p.lead { max-width: 540px; text-shadow: 0 2px 14px rgba(14,42,74,.5); }

/* Fact tiles overlapping the sky */
.as-facts-section { position: relative; z-index: 5; padding: 0 0 48px; }
.as-facts-head { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.as-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: -100px 0 2.6rem; }
.as-fact {
  position: relative; min-height: 98px; padding: 20px 20px 20px 76px; border-radius: 20px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-lift);
  transition: transform .45s cubic-bezier(.16,1,.3,1), border-color .3s;
}
.as-fact:hover { transform: translateY(-4px); border-color: rgba(47,122,140,.45); }
.as-fact-ico { position: absolute; left: 18px; top: 20px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--sky); color: #fff; box-shadow: 0 10px 20px -8px rgba(14,42,74,.6); }
.as-fact-ico svg { width: 21px; height: 21px; }
.as-fact dt { font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--river); }
.as-fact dd { margin: .25rem 0 0; font-size: .92rem; font-weight: 700; line-height: 1.45; color: var(--ink); }

/* Namo Ghat: number chips + framed map */
.as-chips { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; margin: 1.4rem 0 1.3rem; }
.as-chips li { padding: .8rem .85rem; border-radius: 16px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); font-size: .72rem; font-weight: 700; color: var(--muted); }
.as-chips b { display: block; font-size: 1.12rem; font-weight: 800; letter-spacing: -.02em; background: var(--sky); -webkit-background-clip: text; background-clip: text; color: transparent; }
#namo-ghat .feature-row { align-items: stretch; }
#namo-ghat .table-scroll { overflow: hidden; min-height: 420px; border-radius: 24px; border: 6px solid #fff; background: #E3EEF1; box-shadow: var(--shadow-lift); }
#namo-ghat .table-scroll iframe { display: block; width: 100%; height: 100%; min-height: 420px; border-radius: 0 !important; }

/* Aircraft: night-sky cards with a contrail */
#aircraft .grid-2 { gap: 1.2rem; }
#aircraft .theme-card {
  position: relative; overflow: hidden; isolation: isolate; align-items: center; padding: 26px; border: 0; border-radius: 22px; color: #DCEEF4;
  background: radial-gradient(260px 160px at 100% 0%, rgba(248,217,168,.25), transparent 70%), linear-gradient(160deg, #0E2A4A 0%, #1F5D6C 70%, #2F7A8C 100%);
  box-shadow: 0 26px 50px -26px rgba(14,42,74,.75);
}
#aircraft .theme-card::after {
  content: ''; position: absolute; z-index: -1; right: -12%; top: 26px; width: 62%; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.65)); transform: rotate(-10deg);
  transition: transform .8s cubic-bezier(.16,1,.3,1);
}
#aircraft .theme-card:hover { transform: translateY(-5px); box-shadow: 0 32px 60px -26px rgba(14,42,74,.85); }
#aircraft .theme-card:hover::after { transform: rotate(-10deg) translateX(-30px); }
#aircraft .theme-card h3 { color: #fff; font-size: 1.18rem; }
#aircraft .theme-card p { color: rgba(220,238,244,.85); }
#aircraft .theme-swatch { width: 60px; height: 60px; border-radius: 18px; border: 2px solid rgba(255,255,255,.35); }
#aircraft .gallery-note { display: inline-flex; margin-top: 1.6rem; padding: .6rem 1rem; border-radius: 999px; background: #E3EEF1; color: var(--river-dark); font-weight: 600; }

/* Closures: status cards */
.as-closures { padding: 0; background: none; border: 0; box-shadow: none; }
.as-closures > h3 { margin-bottom: 1.2rem; font-size: 1.3rem; }
.as-status-list { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.as-closures li.as-status, .as-closures li.as-status:last-child {
  position: relative; overflow: hidden; padding: 22px 22px 20px 26px; border: 1px solid var(--line); border-radius: 20px;
  background: var(--card); box-shadow: var(--shadow-soft); font-size: .86rem; color: var(--muted);
}
.as-closures li.as-status::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--st, var(--gold)); }
.as-status-list li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.as-status strong { margin: .75rem 0 .3rem; font-size: 1rem; color: var(--ink); }
.as-badge { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .75rem; border-radius: 999px; background: var(--st-bg); color: var(--st-fg); font-size: .68rem; font-weight: 800; letter-spacing: .02em; }
.as-badge::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.as-status--closed { --st: #E5533D; --st-bg: #FDE7E4; --st-fg: #B42318; }
.as-status--open { --st: #22A55B; --st-bg: #E2F6E9; --st-fg: #0F6334; }
.as-status--paused { --st: #E8A33D; --st-bg: #FFF1D6; --st-fg: #8A5206; }
.as-closures .panel-note { margin-top: 1.2rem; padding: 18px 20px; border-radius: 18px; background: var(--card); border: 1px dashed var(--line-strong); color: var(--body); }

/* Sources card */
.as-sources .prose { padding: 32px 34px; border-radius: 24px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.as-sources .prose h2 { font-size: 1.5rem; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .as-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .as-chips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .hero.hero-airshow { padding: 56px 0 120px; }
  .as-facts { grid-template-columns: 1fr; margin-top: -70px; }
  .as-status-list { grid-template-columns: 1fr; }
  #namo-ghat .table-scroll, #namo-ghat .table-scroll iframe { min-height: 320px; }
  .as-sources .prose { padding: 24px; }
}

/* ==========================================================================
   GALLERY II — collection cover cards, per-collection atmospheres,
   inspiration notice, cursor sheen on tiles, gallery hero credit line
   ========================================================================== */

/* Collection cover cards */
.gallery-collections { padding: 56px 0 6px; }
.gc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.gc-card {
  position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 300px; border-radius: 24px; color: #fff; text-decoration: none !important;
  box-shadow: 0 24px 48px -26px rgba(27,33,64,.6); transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s;
}
.gc-card:hover { color: #fff; transform: translateY(-6px); box-shadow: 0 32px 60px -26px rgba(27,33,64,.7); }
.gc-card:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.gc-media { position: absolute; inset: 0; z-index: -2; background: #1C2546; }
.gc-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .6s; }
.gc-card:hover .gc-media img { transform: scale(1.07); filter: saturate(1.1); }
.gc-card::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(13,19,38,0) 28%, rgba(13,19,38,.9) 100%); }
.gc-card::before, .gallery-grid .lightbox-item::before {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .4s ease;
  background: radial-gradient(280px circle at var(--mx, 50%) var(--my, 50%), rgba(255,255,255,.22), transparent 62%);
}
.gc-card:hover::before, .gallery-grid .lightbox-item:hover::before { opacity: 1; }
.gc-body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: .3rem; padding: 22px; }
.gc-count {
  align-self: flex-start; margin-bottom: .45rem; padding: .28rem .72rem; border-radius: 999px;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  font-size: .66rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.gc-body strong { font-size: 1.3rem; letter-spacing: -.02em; line-height: 1.2; }
.gc-line { font-size: .86rem; color: rgba(255,255,255,.84); }
.gc-credit { margin-top: .35rem; font-size: .64rem; color: rgba(255,255,255,.58); }
.gc-arrow { position: absolute; top: 18px; right: 18px; z-index: 2; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 10px 22px -8px rgba(0,0,0,.45); transition: transform .5s cubic-bezier(.16,1,.3,1), background .3s; }
.gc-arrow::before {
  content: ''; position: absolute; inset: 0; margin: auto; width: 16px; height: 16px; background: var(--ink-deep);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M6 13l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.gc-card:hover .gc-arrow { background: var(--gold); transform: translateY(3px); }

/* Morning: warm sunrise glow */
.gs-morning { position: relative; isolation: isolate; overflow: clip; }
.gs-morning::before {
  content: ''; position: absolute; z-index: -1; right: -10%; top: -20%; width: 620px; height: 620px; border-radius: 50%;
  background: radial-gradient(circle, rgba(252,206,120,.45) 0%, rgba(242,179,61,.14) 42%, transparent 68%);
  animation: sunBreathe 8s ease-in-out infinite alternate; pointer-events: none;
}

/* Evening Aarti: starry night */
.gs-evening {
  color: #ECE6DA;
  background:
    radial-gradient(1.5px 1.5px at 10% 14%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1px 1px at 26% 58%, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(1.5px 1.5px at 44% 10%, rgba(255,244,214,.9), transparent 60%),
    radial-gradient(1px 1px at 62% 34%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 80% 18%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1px 1px at 92% 64%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(760px 360px at 20% 110%, rgba(232,163,61,.3), transparent 65%),
    linear-gradient(180deg, #0D1326 0%, #19203B 60%, #24305A 100%);
}
.gs-evening .section-head { border-bottom-color: rgba(255,255,255,.14); }
.gs-evening .section-head h2 { color: #fff; }
.gs-evening .section-head::after { -webkit-text-stroke-color: rgba(248,217,168,.22); }
.gs-evening .kicker { background: linear-gradient(#19203B, #19203B) padding-box, linear-gradient(135deg, rgba(232,163,61,.85), rgba(248,217,168,.35)) border-box; color: #F8D9A8; }
.gs-evening .img-slot { box-shadow: 0 26px 50px -24px rgba(0,0,0,.75); }

/* Inspiration: warm tint + concept notice card */
.gs-inspiration {
  background-color: #F8EBDA;
  background-image: radial-gradient(rgba(154,53,36,.07) 1px, transparent 1.4px), linear-gradient(180deg, #FCF4E7 0%, #F6E6D2 100%);
  background-size: 24px 24px, auto;
}
.gs-inspiration .section-head p {
  position: relative; max-width: 780px; margin-top: 1.1rem; padding: 14px 18px 14px 54px; border-radius: 16px;
  background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); font-size: .88rem; color: var(--body);
}
.gs-inspiration .section-head p::before {
  content: 'i'; position: absolute; left: 16px; top: 14px; width: 24px; height: 24px; border-radius: 50%;
  display: grid; place-items: center; background: var(--grad-ring); color: #fff; font: 800 .78rem/1 var(--font-body);
}

/* Gallery hero collage credit */

/* ---------- Responsive ---------- */
@media (max-width: 900px) { .gc-card { min-height: 260px; } .gc-body { padding: 18px; } .gc-body strong { font-size: 1.12rem; } }
@media (max-width: 760px) {
  .gallery-collections { padding-top: 36px; }
  .gc-grid { grid-template-columns: 1fr; gap: 1rem; }
  .gc-card { min-height: 220px; }
  .gs-morning::before { width: 360px; height: 360px; }
  .gs-inspiration .section-head p { padding-left: 50px; }
}
/* Gallery: jumps land below the sticky header + filter bar; the notice spans under the section number */
section[data-gallery-section] { scroll-margin-top: 176px; }
@media (max-width: 760px) {
  section[data-gallery-section] { scroll-margin-top: 184px; }
  .gs-inspiration .section-head p { margin-right: -80px; }
}

/* ==========================================================================
   HOME — "Choose your occasion" coverflow carousel
   Centre card at full size, neighbours at 82%, outer cards at 66%.
   Positions are set by js/main.js; this file handles size, depth and polish.
   ========================================================================== */
.home-intro { overflow-x: clip; }
.occ-carousel {
  --occ-w: clamp(250px, 30vw, 380px);
  display: block !important; position: relative; height: 480px; margin-top: .5rem;
}
.occ-carousel::after {
  content: ''; position: absolute; left: 50%; bottom: 0; width: calc(var(--occ-w) * 2.4); height: 40px; margin-left: calc(var(--occ-w) * -1.2);
  background: radial-gradient(ellipse at center, rgba(27,33,64,.22), transparent 70%); pointer-events: none; z-index: 0;
}
.page-home .occ-carousel .occ-slide {
  position: absolute; top: 10px; left: 50%; width: var(--occ-w); height: 440px; min-height: 0; margin-left: calc(var(--occ-w) / -2);
  transform-origin: center center; will-change: transform;
  transition: transform .85s cubic-bezier(.22,.8,.2,1), opacity .6s ease, filter .6s ease, box-shadow .6s ease;
}
.occ-slide.is-near { filter: brightness(.8) saturate(.92); }
.occ-slide.is-far { filter: brightness(.62) saturate(.8); }
.occ-slide:not(.is-active) { cursor: pointer; }
.occ-slide.is-active { box-shadow: 0 44px 80px -30px rgba(27,33,64,.8), 0 0 0 1px rgba(248,217,168,.25); }
.occ-slide:not(.is-active):hover { filter: brightness(.95); }

/* Only the centre card shows its description and button; side cards keep the title */
.occ-slide .experience-body p, .occ-slide .text-link { transition: opacity .45s ease, transform .55s cubic-bezier(.16,1,.3,1); }
.occ-slide:not(.is-active) .experience-body p, .occ-slide:not(.is-active) .text-link { opacity: 0; transform: translateY(10px); }
.occ-slide:not(.is-active) .experience-body { transform: translateY(54px); }
.occ-slide .experience-body { transition: transform .6s cubic-bezier(.16,1,.3,1); }
.page-home .occ-slide:not(.is-active):hover .experience-body { transform: translateY(54px); }

/* Badge numbers follow the original order, including on the repeated cards */
.page-home .experience-card[data-num]::before { content: attr(data-num); }

/* Controls */

/* ---------- Responsive ---------- */
@media (max-width: 760px) {
  .occ-carousel { --occ-w: min(72vw, 300px); height: 420px; }
  .page-home .occ-carousel .occ-slide { height: 390px; }
  .occ-slide.is-far { opacity: 0 !important; }
  .occ-slide:not(.is-active) .experience-body, .page-home .occ-slide:not(.is-active):hover .experience-body { transform: translateY(40px); }
}
/* "Concept image" label on occasion cards that use illustrative images */
.occ-concept {
  position: absolute; top: 16px; right: 16px; z-index: 1; padding: .28rem .65rem; border-radius: 999px;
  background: rgba(13,19,38,.55); border: 1px solid rgba(255,255,255,.28); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  color: #fff; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
/* Occasion carousel: no number badges, slimmer cards so five fit side by side with gaps */
.page-home .experience-grid .experience-card::before { content: none; }
.occ-carousel { --occ-w: clamp(240px, 22vw, 300px); height: 460px; }
.page-home .occ-carousel .occ-slide { height: 420px; }
@media (max-width: 760px) {
  .occ-carousel { --occ-w: min(72vw, 290px); height: 410px; }
  .page-home .occ-carousel .occ-slide { height: 380px; }
}

/* ==========================================================================
   SECTION SPACING — one rhythm everywhere: 40px top/bottom, 25px on phones.
   Heroes, the gallery's sticky filter bar and FAQ topic cards keep their own
   spacing (overlap layouts / card internals). !important also beats the old
   inline style="padding-top:0" attributes.
   ========================================================================== */
main section:not(.hero):not(.gallery-controls):not(.faq-group),
.faq-shell { padding-top: 40px !important; padding-bottom: 40px !important; }
/* The booking-checks wave sat in a 120px bottom gap; keep it slim inside 40px */
.confirm-wave { height: 26px; }
@media (max-width: 760px) {
  main section:not(.hero):not(.gallery-controls):not(.faq-group),
  .faq-shell { padding-top: 25px !important; padding-bottom: 25px !important; }
  .confirm-wave { height: 16px; }
}

/* ==========================================================================
   KASHI THEME (home) — ghat skyline at the river's edge, marigold toran,
   "Board from Kashi's ghats" stone steps, floating diyas, Devanagari accents
   ========================================================================== */
:root { --saffron: #F28C1E; --marigold: #F7B32B; --sindoor: #C8361E; --sandstone: #E9D3B0; --ganga: #2F7A8C; --deva: 'Tiro Devanagari Hindi', 'Nirmala UI', 'Mangal', serif; }

/* Hero: temples and ghats silhouetted against a saffron river glow */
.page-home .hero.hero-banner-full {
  padding-bottom: 168px;
  background:
    radial-gradient(900px 220px at 50% 100%, rgba(242,140,30,.42), transparent 70%),
    radial-gradient(900px 520px at 10% -12%, rgba(232,163,61,.32), transparent 60%),
    radial-gradient(820px 520px at 96% 18%, rgba(154,53,36,.58), transparent 62%),
    radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px),
    linear-gradient(180deg, #0F1529 0%, #1C2648 55%, #26315A 100%);
  background-size: auto, auto, auto, 24px 24px, auto;
}
.page-home .hero.hero-banner-full::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,16,32,.78), rgba(8,12,24,.96));
  -webkit-mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
          mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
}
.page-home .hero.hero-banner-full::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: radial-gradient(60% 120% at 50% 100%, rgba(255,190,90,.22), transparent 70%);
}

/* Marigold toran strung across the page */
.kashi-toran {
  position: relative; z-index: 3; height: 60px; margin: 10px 0 -12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 60'%3E %3Cpath d='M0 4 Q36 14 72 4' stroke='%238A5A1A' stroke-width='1.6' fill='none'/%3E %3Cpath d='M18 7 c6 7 5 16 0 23 c-5 -7 -6 -16 0 -23z' fill='%233E8E41'/%3E%3Cpath d='M18 9 V28' stroke='%232C6B2F' stroke-width='.8'/%3E %3Cpath d='M54 7 c6 7 5 16 0 23 c-5 -7 -6 -16 0 -23z' fill='%232F7A35'/%3E%3Cpath d='M54 9 V28' stroke='%23245A28' stroke-width='.8'/%3E %3Cpath d='M36 9 V50' stroke='%238A5A1A' stroke-width='1'/%3E %3Ccircle cx='36' cy='16' r='5.6' fill='%23F28C1E'/%3E%3Ccircle cx='36' cy='16' r='3.6' fill='none' stroke='%23C8601A' stroke-width='1.3' stroke-dasharray='1.6 1.2'/%3E%3Ccircle cx='36' cy='16' r='1.4' fill='%23B5461A'/%3E%3Ccircle cx='36' cy='27' r='5.6' fill='%23F7B32B'/%3E%3Ccircle cx='36' cy='27' r='3.6' fill='none' stroke='%23D98A12' stroke-width='1.3' stroke-dasharray='1.6 1.2'/%3E%3Ccircle cx='36' cy='27' r='1.4' fill='%23B5461A'/%3E%3Ccircle cx='36' cy='38' r='5.6' fill='%23F28C1E'/%3E%3Ccircle cx='36' cy='38' r='3.6' fill='none' stroke='%23C8601A' stroke-width='1.3' stroke-dasharray='1.6 1.2'/%3E%3Ccircle cx='36' cy='38' r='1.4' fill='%23B5461A'/%3E%3Ccircle cx='36' cy='48.5' r='5.6' fill='%23F7B32B'/%3E%3Ccircle cx='36' cy='48.5' r='3.6' fill='none' stroke='%23D98A12' stroke-width='1.3' stroke-dasharray='1.6 1.2'/%3E%3Ccircle cx='36' cy='48.5' r='1.4' fill='%23B5461A'/%3E %3Ccircle cx='36' cy='56' r='2.2' fill='%23C8361E'/%3E %3C/svg%3E") repeat-x top center / 72px 60px;
  filter: drop-shadow(0 6px 6px rgba(122,74,20,.18));
}

/* Devanagari watermark behind "Choose your occasion" */
.page-home .home-intro .section-head { position: relative; isolation: isolate; }
.page-home .home-intro .section-head::after {
  content: 'काशी' / ''; position: absolute; left: 50%; top: 50%; z-index: -1; transform: translate(-50%, -50%);
  font: 400 clamp(5rem, 12vw, 10rem) / 1 var(--deva); white-space: nowrap; pointer-events: none;
  color: transparent; -webkit-text-stroke: 1.5px rgba(200,54,30,.13);
}

/* Board from Kashi's ghats: sandstone steps rising from the Ganga */
.kashi-ghats {
  position: relative; overflow: clip; isolation: isolate;
  background: radial-gradient(700px 260px at 85% 0%, rgba(242,140,30,.16), transparent 70%), linear-gradient(180deg, #FBF1E1 0%, #F4E3C6 62%, #EAD5B2 100%);
}
.kashi-ghats::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 64px; z-index: -1;
  background: linear-gradient(180deg, #3F8C9C, #1F5D6C);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 22px no-repeat, linear-gradient(#000, #000) 0 21px / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 22px no-repeat, linear-gradient(#000, #000) 0 21px / 100% 100% no-repeat;
}
.kashi-ghats .section-head { position: relative; isolation: isolate; }
.kashi-ghats .section-head::after {
  content: 'घाट' / ''; position: absolute; right: 0; top: 50%; z-index: -1; transform: translateY(-50%);
  font: 400 clamp(5rem, 11vw, 9rem) / 1 var(--deva); pointer-events: none;
  color: transparent; -webkit-text-stroke: 1.5px rgba(200,54,30,.15);
}
.kashi-ghats .kicker { color: var(--sindoor); }
.ghat-steps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: end; padding: 26px 0 40px; }
.ghat-card {
  position: relative; margin-bottom: calc(var(--step) * 26px); padding: 30px 22px 24px; border-radius: 20px 20px 6px 6px;
  background: linear-gradient(180deg, #FFFAF1 0%, #F6E7CD 100%); border: 1px solid #E3CBA3;
  box-shadow: 0 20px 36px -22px rgba(122,74,20,.55);
  transition: transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s;
}
.ghat-card::after {
  content: ''; position: absolute; left: -9px; right: -9px; bottom: -13px; height: 9px; border-radius: 3px;
  background: #D9BC8E; box-shadow: 0 9px 0 -1px #CBAA77, 0 18px 0 -2px #BD9C68;
}
.ghat-card:hover { transform: translateY(-6px); box-shadow: 0 28px 44px -22px rgba(122,74,20,.6); }
.ghat-hi { display: block; margin-bottom: .55rem; font: 400 1.6rem / 1.3 var(--deva); color: var(--sindoor); }
.ghat-ico {
  position: absolute; top: -22px; right: 18px; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px;
  background: linear-gradient(135deg, var(--saffron), var(--sindoor)); color: #fff; box-shadow: 0 12px 22px -8px rgba(200,54,30,.6);
}
.ghat-ico svg { width: 23px; height: 23px; }
.ghat-card h3 { margin-bottom: .35rem; font-size: 1.08rem; }
.ghat-card p { font-size: .86rem; color: var(--muted); }
.ghat-note { display: table; margin: .4rem auto 0; padding: .55rem 1.1rem; border-radius: 999px; background: rgba(255,255,255,.85); border: 1px solid #E3CBA3; font-size: .84rem; font-weight: 600; color: var(--rose-dark); }

/* Floating diyas along the Evening Aarti section */
#evening-boat { position: relative; }
.diya-row { position: absolute; left: 0; right: 0; bottom: 4px; z-index: 1; height: 34px; display: flex; justify-content: space-around; align-items: flex-end; pointer-events: none; }
.diya {
  position: relative; width: 28px; height: 12px; border-radius: 0 0 16px 16px / 0 0 12px 12px;
  background: linear-gradient(180deg, #C46A2B, #6E2F10); box-shadow: 0 0 22px 6px rgba(242,140,30,.32);
  animation: diyaFloat calc(3.6s + var(--d) * .37s) ease-in-out infinite alternate;
}
.diya::before { content: ''; position: absolute; left: -2px; right: -2px; top: -3px; height: 5px; border-radius: 50%; background: #E39046; }
.diya i {
  position: absolute; left: 50%; bottom: 9px; width: 9px; height: 17px; margin-left: -4.5px; transform-origin: 50% 100%;
  border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%;
  background: radial-gradient(ellipse at 50% 72%, #FFF8D6 0%, #FFD25A 38%, #F28C1E 72%, rgba(242,140,30,0) 100%);
  animation: flameFlicker 1.3s ease-in-out infinite alternate; animation-delay: calc(var(--d) * -.17s);
}
@keyframes flameFlicker { 0% { transform: scale(1, 1) rotate(-3deg); } 50% { transform: scale(.9, 1.1) rotate(2deg); } 100% { transform: scale(1.05, .93) rotate(-1deg); } }
@keyframes diyaFloat { from { translate: 0 0; } to { translate: 0 -4px; } }

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
  .ghat-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }
  .ghat-card { margin-bottom: calc(var(--step) * 0px); }
  .ghat-card:nth-child(even) { margin-bottom: 18px; }
}
@media (max-width: 760px) {
  .page-home .hero.hero-banner-full { padding-bottom: 112px; }
  .page-home .hero.hero-banner-full::before, .page-home .hero.hero-banner-full::after { height: 92px; bottom: 10px; }
  .kashi-toran { height: 46px; background-size: 56px 46px; margin-bottom: -8px; }
  .diya-row .diya:nth-child(n+6) { display: none; }
}
@media (max-width: 480px) {
  .ghat-steps { grid-template-columns: 1fr; row-gap: 30px; padding-bottom: 46px; }
  .ghat-card, .ghat-card:nth-child(even) { margin-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) { .diya, .diya i { animation: none; } }

/* ==========================================================================
   KASHI THEME (event pages) — same skyline hero and toran as home, Devanagari
   occasion watermark, Ganga-night timeline with diyas, sandstone ghat boarding
   ========================================================================== */

/* Hero skyline + saffron river glow */
.page-event .hero.hero-banner-full {
  padding-bottom: 168px;
  background:
    radial-gradient(900px 220px at 50% 100%, rgba(242,140,30,.42), transparent 70%),
    radial-gradient(900px 520px at 10% -12%, rgba(232,163,61,.32), transparent 60%),
    radial-gradient(820px 520px at 96% 18%, rgba(154,53,36,.58), transparent 62%),
    radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px),
    linear-gradient(180deg, #0F1529 0%, #1C2648 55%, #26315A 100%);
  background-size: auto, auto, auto, 24px 24px, auto;
}
.page-event .hero.hero-banner-full::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,16,32,.78), rgba(8,12,24,.96));
  -webkit-mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
          mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
}
.page-event .hero.hero-banner-full::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: radial-gradient(60% 120% at 50% 100%, rgba(255,190,90,.22), transparent 70%);
}

/* Occasion word in Devanagari behind the packages heading */
.kashi-mark { position: relative; isolation: isolate; }
.kashi-mark::after {
  content: attr(data-deva); content: attr(data-deva) / '';
  position: absolute; right: 0; top: 50%; z-index: -1; transform: translateY(-50%); white-space: nowrap; pointer-events: none;
  font: 400 clamp(4rem, 9vw, 7.5rem) / 1 var(--deva); color: transparent; -webkit-text-stroke: 1.5px rgba(200,54,30,.14);
}

/* Sample evening -> a night on the Ganga with floating diyas */
.kashi-night.section-dark {
  position: relative; color: #ECE6DA;
  background:
    radial-gradient(1.5px 1.5px at 8% 16%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1px 1px at 24% 62%, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(1.5px 1.5px at 41% 9%, rgba(255,244,214,.9), transparent 60%),
    radial-gradient(1px 1px at 63% 30%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 82% 14%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1px 1px at 93% 58%, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(760px 300px at 50% 112%, rgba(242,140,30,.32), transparent 65%),
    linear-gradient(180deg, #0D1326 0%, #19203B 60%, #24305A 100%);
}
.kashi-night .section-head h2 { color: #fff; }
.kashi-night .section-head p { color: rgba(236,230,218,.86); }
.kashi-night .kicker { background: linear-gradient(#19203B, #19203B) padding-box, linear-gradient(135deg, rgba(232,163,61,.85), rgba(248,217,168,.35)) border-box; color: #F8D9A8; }
.kashi-night .timeline::before { background: rgba(255,255,255,.18); }
.kashi-night .timeline-item::before { border-color: #19203B; }
.page-event .kashi-night .timeline-time { background: linear-gradient(135deg, var(--saffron), var(--sindoor)); color: #fff; }
.kashi-night .timeline-body { box-shadow: 0 16px 30px -18px rgba(0,0,0,.6); }

/* Where you'll board -> sandstone ghat steps above the Ganga */
.page-event .kashi-boarding.section-dark {
  position: relative; overflow: clip; isolation: isolate;
  background: radial-gradient(700px 260px at 85% 0%, rgba(242,140,30,.16), transparent 70%), linear-gradient(180deg, #FBF1E1 0%, #F4E3C6 62%, #EAD5B2 100%);
}
.page-event .kashi-boarding.section-dark::after {
  content: ''; position: absolute; left: 0; right: 0; top: auto; bottom: 0; width: auto; max-width: none; aspect-ratio: auto; height: 32px;
  border-radius: 0; animation: none; z-index: -1; opacity: 1;
  background: linear-gradient(180deg, #3F8C9C, #1F5D6C);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 12px no-repeat, linear-gradient(#000, #000) 0 11px / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 12px no-repeat, linear-gradient(#000, #000) 0 11px / 100% 100% no-repeat;
}
.kashi-boarding .kicker { color: var(--sindoor); }
.kashi-boarding .feature-row > div:first-child { position: relative; isolation: isolate; }
.kashi-boarding .feature-row > div:first-child::before {
  content: 'घाट'; content: 'घाट' / ''; position: absolute; right: 0; top: -10px; z-index: -1; pointer-events: none;
  font: 400 clamp(4rem, 8vw, 7rem) / 1 var(--deva); color: transparent; -webkit-text-stroke: 1.5px rgba(200,54,30,.15);
}
.page-event .kashi-boarding .checklist li {
  padding: .95rem 1rem .95rem 3.7rem; border-radius: 16px 16px 6px 6px; color: var(--muted);
  background: linear-gradient(180deg, #FFFAF1, #F6E7CD); border: 1px solid #E3CBA3; box-shadow: 0 14px 26px -18px rgba(122,74,20,.5);
  transition: transform .45s cubic-bezier(.16,1,.3,1);
}
.page-event .kashi-boarding .checklist li:hover { transform: translateX(6px); }
.page-event .kashi-boarding .checklist li::before {
  left: .85rem; width: 36px; height: 36px; margin-top: -18px; border-radius: 12px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21h16M6 21v-5h12v5M8 16c0-5 2.5-8 4-10 1.5 2 4 5 4 10'/%3E%3Cpath d='M12 6V2l3 1-3 1'/%3E%3C/svg%3E") center / 19px no-repeat, linear-gradient(135deg, var(--saffron), var(--sindoor));
  box-shadow: 0 10px 18px -8px rgba(200,54,30,.6);
}
.kashi-boarding .checklist .ghat-hi { display: block; margin-bottom: .1rem; font: 400 1.15rem / 1.35 var(--deva); color: var(--sindoor); }
.page-event .kashi-boarding .table-scroll { border-color: #FFF6E6; }

@media (max-width: 760px) {
  .page-event .hero.hero-banner-full { padding-bottom: 112px; }
  .page-event .hero.hero-banner-full::before, .page-event .hero.hero-banner-full::after { height: 92px; bottom: 10px; }
  .kashi-mark::after { font-size: 3.4rem; }
}
@media (max-width: 760px) {
  .page-event .kashi-boarding.section-dark::after { height: 18px; -webkit-mask-size: 100% 8px, 100% 100%; mask-size: 100% 8px, 100% 100%; -webkit-mask-position: top, 0 7px; mask-position: top, 0 7px; }
}

/* ==========================================================================
   KASHI THEME (boat pages) — skyline hero, toran, Devanagari boat word,
   Ganga-night occasions with diyas, sandstone specifications over the river
   ========================================================================== */
.page-boat .hero.hero-banner-full {
  padding-bottom: 168px;
  background:
    radial-gradient(900px 220px at 50% 100%, rgba(242,140,30,.42), transparent 70%),
    radial-gradient(900px 520px at 10% -12%, rgba(232,163,61,.32), transparent 60%),
    radial-gradient(820px 520px at 96% 18%, rgba(154,53,36,.58), transparent 62%),
    radial-gradient(rgba(255,255,255,.07) 1px, transparent 1.4px),
    linear-gradient(180deg, #0F1529 0%, #1C2648 55%, #26315A 100%);
  background-size: auto, auto, auto, 24px 24px, auto;
}
.page-boat .hero.hero-banner-full::before {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(10,16,32,.78), rgba(8,12,24,.96));
  -webkit-mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
          mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
}
.page-boat .hero.hero-banner-full::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 18px; height: 150px; z-index: 1; pointer-events: none;
  background: radial-gradient(60% 120% at 50% 100%, rgba(255,190,90,.22), transparent 70%);
}

/* Occasion photo cards read well on the night sky */
.page-boat .kashi-night .occ-card { box-shadow: 0 26px 50px -24px rgba(0,0,0,.75); border-color: rgba(255,255,255,.12); }

/* Specifications on sandstone, with the Ganga along the bottom */
section.kashi-sand {
  position: relative; overflow: clip; isolation: isolate;
  background: radial-gradient(700px 260px at 85% 0%, rgba(242,140,30,.16), transparent 70%), linear-gradient(180deg, #FBF1E1 0%, #F4E3C6 62%, #EAD5B2 100%);
}
section.kashi-sand::after {
  content: ''; position: absolute; left: 0; right: 0; top: auto; bottom: 0; width: auto; max-width: none; aspect-ratio: auto; height: 32px;
  border-radius: 0; animation: none; z-index: -1; opacity: 1;
  background: linear-gradient(180deg, #3F8C9C, #1F5D6C);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 12px no-repeat, linear-gradient(#000, #000) 0 11px / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 40' preserveAspectRatio='none'%3E%3Cpath d='M0 16 C 240 0 480 0 720 16 S 1200 32 1440 16 V40 H0Z' fill='%23000'/%3E%3C/svg%3E") top / 100% 12px no-repeat, linear-gradient(#000, #000) 0 11px / 100% 100% no-repeat;
}
.kashi-sand .kicker { color: var(--sindoor); }
.kashi-sand .specs-table { border-color: #E3CBA3; }
.kashi-sand .specs-table th { background: linear-gradient(90deg, #FBEFD9, #FFF8EC); }
.page-boat .spec-ico { background: linear-gradient(135deg, var(--saffron), var(--sindoor)); box-shadow: 0 8px 16px -8px rgba(200,54,30,.6); }

@media (max-width: 760px) {
  .page-boat .hero.hero-banner-full { padding-bottom: 112px; }
  .page-boat .hero.hero-banner-full::before, .page-boat .hero.hero-banner-full::after { height: 92px; bottom: 10px; }
  section.kashi-sand::after { height: 18px; -webkit-mask-size: 100% 8px, 100% 100%; mask-size: 100% 8px, 100% 100%; -webkit-mask-position: top, 0 7px; mask-position: top, 0 7px; }
}

/* ==========================================================================
   HOME — Ganga riverfront map (south → north), falling marigold petals,
   sunrise / Aarti Devanagari watermarks
   ========================================================================== */
.ganga-map { margin: 0 0 34px; }
.ganga-map-canvas {
  position: relative; aspect-ratio: 1200 / 260; overflow: hidden; border-radius: 24px;
  background: #F4E3C6; border: 6px solid #FFF8EC; box-shadow: var(--shadow-lift);
}
.ganga-map-art { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.gm-skyline {
  position: absolute; left: 0; right: 0; top: 0; height: 23%; pointer-events: none;
  background: linear-gradient(180deg, rgba(122,74,20,.22), rgba(122,74,20,.42));
  -webkit-mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
          mask: url('../images/kashi-ghat-skyline.svg') bottom center / 100% 100% no-repeat;
}
.gm-river-name { position: absolute; left: 50%; top: 47%; transform: translate(-50%, -50%); font: 400 clamp(1.4rem, 3vw, 2.4rem) / 1 var(--deva); letter-spacing: .12em; color: rgba(255,255,255,.55); pointer-events: none; }
.gm-pin {
  position: absolute; z-index: 2; display: flex; flex-direction: column-reverse; align-items: center; gap: 6px;
  transform: translate(-50%, calc(-100% + 9px)); text-decoration: none !important;
}
.gm-pin[data-ghat="ravidas"] { flex-direction: column; transform: translate(-50%, -9px); }
.gm-dot { flex: none; width: 18px; height: 18px; border-radius: 50%; background: var(--sindoor); border: 3px solid #fff; animation: pinPulse 2.4s ease-out infinite; transition: transform .35s cubic-bezier(.16,1,.3,1); }
@keyframes pinPulse { 0% { box-shadow: 0 0 0 0 rgba(200,54,30,.55); } 80%, 100% { box-shadow: 0 0 0 12px rgba(200,54,30,0); } }
.gm-label {
  display: flex; flex-direction: column; align-items: center; padding: .35rem .75rem; border-radius: 12px; white-space: nowrap;
  background: rgba(255,255,255,.96); box-shadow: 0 10px 22px -10px rgba(27,33,64,.45); transition: background .3s, transform .35s cubic-bezier(.16,1,.3,1);
}
.gm-hi { font: 400 .98rem / 1.2 var(--deva); color: var(--sindoor); transition: color .3s; }
.gm-en { font-size: .66rem; font-weight: 800; letter-spacing: .02em; color: var(--ink); transition: color .3s; }
.gm-pin:hover .gm-label, .gm-pin.is-on .gm-label { background: var(--ink-deep); transform: translateY(-3px); }
.gm-pin:hover .gm-hi, .gm-pin.is-on .gm-hi { color: #F8D9A8; }
.gm-pin:hover .gm-en, .gm-pin.is-on .gm-en { color: #fff; }
.gm-pin:hover .gm-dot, .gm-pin.is-on .gm-dot { transform: scale(1.25); }
.gm-pin:focus-visible { outline: none; }
.gm-pin:focus-visible .gm-label { box-shadow: 0 0 0 3px var(--gold); }
.ganga-map figcaption { display: flex; justify-content: space-between; gap: 1rem; margin-top: .65rem; font-size: .74rem; font-weight: 600; color: var(--muted); }
.ghat-card.is-on { transform: translateY(-6px); border-color: var(--saffron); box-shadow: 0 28px 44px -22px rgba(200,54,30,.45); }
.ghat-card.is-flash { animation: ghatFlash 1.4s ease; }
@keyframes ghatFlash { 0%, 100% { box-shadow: 0 20px 36px -22px rgba(122,74,20,.55); } 30% { box-shadow: 0 0 0 4px rgba(242,140,30,.55), 0 26px 44px -20px rgba(200,54,30,.5); } }
.ghat-card { scroll-margin-top: 120px; }

/* Marigold petals drifting down from the toran */
.kashi-toran { pointer-events: none; }
.kashi-toran .petal {
  position: absolute; top: 44px; left: calc(var(--p) * 8.1% + 3%); width: 9px; height: 6px; border-radius: 60% 40% 60% 40%;
  background: var(--saffron); opacity: 0; animation: petalFall calc(7s + var(--p) * .45s) linear infinite; animation-delay: calc(var(--p) * -1.1s);
}
.kashi-toran .petal:nth-child(even) { background: var(--marigold); width: 8px; }
@keyframes petalFall {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0; }
  12% { opacity: .85; }
  80% { opacity: .55; }
  100% { transform: translate(34px, 150px) rotate(320deg); opacity: 0; }
}

/* Watermarks on the river stories */
#evening-boat .kashi-mark::after { -webkit-text-stroke-color: rgba(248,217,168,.18); }

@media (max-width: 760px) {
  .ganga-map { display: none; }
  .kashi-toran .petal:nth-child(n+7) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .kashi-toran .petal { display: none; }
  .gm-dot { animation: none; }
}
@media (max-width: 1150px) {
  .gm-label { padding: .22rem .55rem; border-radius: 10px; }
  .gm-hi { font-size: .82rem; }
  .gm-en { font-size: .58rem; }
  .gm-pin { gap: 4px; }
  .gm-dot { width: 14px; height: 14px; border-width: 2px; }
}
@media (max-width: 900px) { .gm-en { display: none; } }

/* ==========================================================================
   HOME — booking hero: ghat photograph, clear headline, trust stats and a
   "Plan your boat celebration" card that opens a ready WhatsApp message
   ========================================================================== */
.hero.home-hero { display: block; min-height: 0; padding: 96px 0 124px; overflow: hidden; isolation: isolate; }
.home-hero .hh-bg { position: absolute; inset: 0; z-index: 0; background: #1C2546; }
.home-hero .hh-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; animation: kenburns 26s ease-in-out infinite alternate; }
.hero.home-hero::before {
  background:
    linear-gradient(100deg, rgba(14,20,40,.94) 0%, rgba(27,33,64,.82) 36%, rgba(110,42,34,.5) 62%, rgba(13,19,38,.38) 100%),
    linear-gradient(0deg, rgba(10,15,30,.72) 0%, transparent 42%);
}
.hh-grid { position: relative; z-index: 3; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 3.5rem; align-items: center; }
.hh-copy h1 { margin-bottom: 20px; font-size: clamp(2.4rem, 5vw, 4.1rem); line-height: 1.05; letter-spacing: -.04em; color: #fff; }
.hh-accent { display: block; background: linear-gradient(90deg, #FCE3B5, #F7B32B 45%, #F28C1E); -webkit-background-clip: text; background-clip: text; color: transparent; }
.home-hero p.lead { max-width: 560px; font-size: 1.08rem; }
.hh-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin-top: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.18); }
.hh-stats strong { display: block; font-size: 1.55rem; font-weight: 800; letter-spacing: -.02em; color: #fff; line-height: 1.1; }
.hh-stats span { font-size: .74rem; font-weight: 600; color: rgba(255,255,255,.72); }

/* Booking card */
.hh-book {
  position: relative; display: grid; gap: 14px; padding: 30px 28px 24px; border-radius: 24px; overflow: hidden;
  background: rgba(255,255,255,.97); box-shadow: 0 40px 80px -30px rgba(0,0,0,.7);
}
.hh-book::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: linear-gradient(90deg, var(--marigold), var(--saffron), var(--sindoor)); }
.hh-book-kicker { margin: 0; font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--sindoor); }
.hh-book h2 { margin: -6px 0 4px; font-size: 1.45rem; letter-spacing: -.02em; }
.hh-book label { display: block; min-width: 0; }
.hh-book select, .hh-book input {
  display: block; width: 100%; min-width: 0; min-height: 48px; padding: .65rem .85rem; border-radius: 12px;
  border: 1px solid var(--line-strong); background: #FFFCF7; color: var(--ink); font-size: .92rem;
  transition: border-color .25s, box-shadow .25s;
}
.hh-book select:focus, .hh-book input:focus { outline: none; border-color: var(--saffron); box-shadow: 0 0 0 4px rgba(242,140,30,.2); }
.hh-row { display: grid; grid-template-columns: 1.25fr .75fr; gap: 12px; }
.hh-book .btn { min-height: 54px; margin-top: 4px; font-size: .95rem; }
.hh-note { margin: 0; text-align: center; font-size: .74rem; color: var(--muted); }

/* Photo credit sits above the floating trust card */

@media (max-width: 1000px) {
  .hh-grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .hh-book { max-width: 560px; }
}
@media (max-width: 760px) {
  .hero.home-hero { padding: 48px 0 96px; }
  .hh-copy h1 { font-size: clamp(2rem, 8.4vw, 2.5rem); }
  .home-hero p.lead { font-size: .96rem; }
  .hh-stats { gap: .8rem 1.4rem; margin-top: 1.4rem; }
  .hh-stats strong { font-size: 1.25rem; }
  .hh-book { padding: 24px 18px 20px; }
}

/* Home review fixes: Devanagari must not be letter-spaced (it breaks conjuncts);
   the Evening Aarti story mirrors the Sunrise one so the four stories alternate sides. */
.gm-river-name { letter-spacing: 0; }
@media (min-width: 761px) {
  #evening-boat .river-days { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
  #evening-boat .river-days > figure { order: 2; }
}
/* Phones: keep the top bar to one tidy line (location hidden, links never wrap) */
@media (max-width: 760px) {
  .topbar .tb-loc { display: none; }
  .topbar .tb-right a { white-space: nowrap; }
  .topbar .tb-right { gap: 1.2rem; }
}

/* ==========================================================================
   KASHI PALETTE — final unification
   Night-Ganga navy · saffron · marigold · sindoor · Ganga teal · sandstone
   ========================================================================== */
:root {
  --night: #1B2140; --saffron: #E8762B; --marigold: #F4B23E; --sindoor: #B8321F;
  --ganga: #1F7A80; --sandstone: #F3E6D0;
  --river: #1F7A80; --river-dark: #145A60;
  accent-color: var(--saffron);
}

/* Selection, focus, scrollbar */
::selection { background: rgba(232,118,43,.88); color: #fff; }
:focus-visible { outline-color: var(--saffron); }
html { scrollbar-color: #D2702E #F3E6D0; }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: #F3E6D0; }
::-webkit-scrollbar-thumb { border: 3px solid #F3E6D0; border-radius: 10px; background: linear-gradient(180deg, var(--saffron), var(--sindoor)); }

/* Trust icons: five Kashi colours instead of a random set */
.cred-teal { background: linear-gradient(135deg, #6FB8BC, var(--ganga)); }
.cred-gold { background: linear-gradient(135deg, #F8D27A, var(--marigold)); }
.cred-rose { background: linear-gradient(135deg, #E07A5A, var(--sindoor)); }
.cred-purple { background: linear-gradient(135deg, #4A5A8C, var(--night)); }
.cred-green { background: linear-gradient(135deg, var(--marigold), var(--saffron)); }

/* Package tiers: sandstone → marigold → Ganga → sindoor */
.pkg:nth-of-type(1) .pkg-tier { background: linear-gradient(135deg, #F6EAD6, #D9BC8E); color: #5E4A2A; }
.pkg:nth-of-type(2) .pkg-tier { background: linear-gradient(135deg, #F8D27A, var(--marigold)); color: var(--night); }
.pkg:nth-of-type(3) .pkg-tier { background: linear-gradient(135deg, #A9D6D8, var(--ganga)); color: #fff; }
.pkg:nth-of-type(4) .pkg-tier { background: linear-gradient(135deg, #E9A08A, var(--sindoor)); color: #fff; }

/* Gallery category dots */
.slot-tag-inspiration::before { background: #6FB8BC; }

/* ==========================================================================
   HOME — "Dusk on the ghats" panorama band (illustrated: sky, temples,
   chhatri umbrellas on the steps, the Ganga with boats and diyas)
   ========================================================================== */
.ghat-panorama {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-start;
  min-height: clamp(440px, 44vw, 620px); color: #fff; text-align: center;
  background: #141A33 url('../images/kashi-ghat-panorama.svg') center bottom / cover no-repeat;
}
.ghat-panorama::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(180deg, rgba(14,20,40,.6) 0%, rgba(14,20,40,.15) 42%, transparent 60%);
}
.gp-inner { position: relative; max-width: 760px; margin-inline: auto; }
.ghat-panorama .kicker { background: linear-gradient(#1B2140, #1B2140) padding-box, linear-gradient(135deg, rgba(244,178,62,.9), rgba(232,118,43,.4)) border-box; color: #F8D9A8; }
.ghat-panorama h2 { margin: .2rem 0 .9rem; font-size: clamp(2rem, 4.2vw, 3.2rem); line-height: 1.1; letter-spacing: -.035em; color: #fff; text-shadow: 0 6px 30px rgba(14,20,40,.6); }
.ghat-panorama p { max-width: 600px; margin: 0 auto 1.6rem; font-size: 1.04rem; color: rgba(255,255,255,.86); }
.ghat-panorama .hero-ctas { justify-content: center; }
.ghat-panorama .btn-outline-light { border-color: rgba(255,255,255,.45); color: #fff !important; background: rgba(14,20,40,.25); }
.ghat-panorama .btn-outline-light:hover { background: rgba(255,255,255,.14); }
@media (max-width: 760px) {
  .ghat-panorama { min-height: 520px; background-size: auto 100%; }
  .ghat-panorama p { font-size: .95rem; }
}
/* Panorama: the illustration sits at the bottom at full width; the night sky continues above it for the text */
.ghat-panorama { min-height: clamp(560px, 50vw, 720px); background-size: 100% auto; background-color: #141A33; }
.ghat-panorama::before { background: linear-gradient(180deg, rgba(14,20,40,.35) 0%, transparent 40%); }
@media (max-width: 760px) {
  .ghat-panorama { min-height: 600px; background-size: auto 330px; }
}
@media (max-width: 760px) { .ghat-panorama { min-height: 700px; } }

/* ==========================================================================
   GHAT PHOTOGRAPHS — gallery "Ghats of Kashi" collection + home "Life on the ghats"
   ========================================================================== */
/* Gallery: wide dawn photo across the top, four photos beneath */
section#gallery-ghats .gallery-grid.gallery-ghats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
section#gallery-ghats .gallery-ghats-grid .img-slot { height: auto; aspect-ratio: 4 / 3; }
section#gallery-ghats .gallery-ghats-grid .img-slot.gk-wide { grid-column: 1 / -1; aspect-ratio: 1920 / 609; }
.slot-tag-ghats::before { background: var(--saffron); }
/* Four collection cards in a row */
@media (min-width: 1101px) { .gc-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } .gc-card { min-height: 280px; } }
@media (min-width: 761px) and (max-width: 1100px) { .gc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  section#gallery-ghats .gallery-grid.gallery-ghats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  section#gallery-ghats .gallery-grid.gallery-ghats-grid { grid-template-columns: 1fr; }
  section#gallery-ghats .gallery-ghats-grid .img-slot.gk-wide { aspect-ratio: 16 / 7; }
}

/* Home: Life on the ghats — a justified photo strip (equal height, natural proportions) */
.life-on-ghats .log-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; max-width: none; }
.life-on-ghats .log-head p { max-width: 460px; margin: 0; }
.life-on-ghats .log-head a { color: var(--sindoor); font-weight: 700; }
.log-strip { display: flex; gap: 12px; height: clamp(220px, 24vw, 320px); }
.log-item { position: relative; flex: var(--ar) 1 0; min-width: 0; margin: 0; overflow: hidden; border-radius: 18px; background: #E9DBC4; box-shadow: var(--shadow-soft); }
.log-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16,1,.3,1); }
.log-item:hover img { transform: scale(1.06); }
.log-item figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: .1rem;
  padding: 2.6rem .95rem .75rem; color: #fff; background: linear-gradient(180deg, transparent, rgba(13,19,38,.86));
}
.log-item figcaption strong { font-size: .88rem; }
.log-item figcaption a { font-size: .62rem; color: rgba(255,255,255,.72); text-decoration: none; }
.log-item figcaption a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 900px) {
  .life-on-ghats .log-head { display: block; }
  .life-on-ghats .log-head p { margin-top: .8rem; }
}
@media (max-width: 760px) {
  .log-strip { height: 230px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: -20px; padding-inline: 20px; }
  .log-strip::-webkit-scrollbar { display: none; }
  .log-item { flex: 0 0 auto; width: min(calc(230px * var(--ar)), 85vw); scroll-snap-align: start; }
}

/* Photo credits page + plain-text photo credits in captions */
.credits-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.credit-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 20px; background: var(--card); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.credit-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.credit-body { padding: 18px 20px 20px; }
.credit-body h3 { margin-bottom: .55rem; font-size: 1rem; line-height: 1.35; }
.credit-body p { margin: .2rem 0; font-size: .84rem; }
.credit-body a { color: var(--sindoor); font-weight: 700; }
.credit-use { margin-top: .5rem !important; font-size: .76rem !important; color: var(--muted); }
.credits-note { margin-top: 1.6rem; text-align: center; font-size: .84rem; color: var(--muted); }
@media (max-width: 1000px) { .credits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .credits-grid { grid-template-columns: 1fr; } }

/* ===== HEADER V2: phone header, toggle & menu sheet ===== */
.nav-call { display: none; }
@keyframes navCallRing { 0% { transform: scale(.92); opacity: .85; } 70%, 100% { transform: scale(1.38); opacity: 0; } }

@media (max-width: 1100px) {
  /* --- bar --- */
  .nav-wrap { gap: .55rem; }
  .brand { margin-right: auto; min-width: 0; }
  .brand-text { min-width: 0; }
  .site-header.scrolled { box-shadow: 0 14px 30px -16px rgba(10,14,30,.85); }

  /* --- round call button --- */
  .nav-call {
    display: inline-flex; align-items: center; justify-content: center; position: relative; flex: none;
    width: 46px; height: 46px; border-radius: 50%; color: #fff;
    background: radial-gradient(circle at 30% 25%, #F7C25A, #E8762B 55%, #B8321F);
    box-shadow: 0 10px 22px -10px rgba(232,118,43,.95), inset 0 1px 0 rgba(255,255,255,.4);
    transition: transform .25s cubic-bezier(.16,1,.3,1), opacity .3s;
  }
  .nav-call svg { width: 20px; height: 20px; }
  .nav-call::after {
    content: ''; position: absolute; inset: -4px; border-radius: 50%; pointer-events: none;
    border: 1.5px solid rgba(244,178,62,.6); animation: navCallRing 2.8s ease-out infinite;
  }
  .nav-call:active { transform: scale(.92); }
  body.nav-open .nav-call { opacity: 0; pointer-events: none; }

  /* --- menu toggle: glass tile, staggered lines -> saffron X --- */
  .nav-toggle {
    width: 46px; height: 46px; padding: 0 12px 0 0; gap: 5px; align-items: flex-end; border-radius: 15px;
    background: linear-gradient(145deg, rgba(255,255,255,.17), rgba(255,255,255,.04));
    border: 1px solid rgba(248,217,168,.34);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.22), 0 10px 22px -12px rgba(0,0,0,.75);
    transition: background .4s ease, border-color .4s ease, box-shadow .4s ease, transform .2s ease;
  }
  .nav-toggle span {
    height: 2px; border-radius: 2px; background: #F8EEDD;
    transition: transform .5s cubic-bezier(.16,1,.3,1), width .35s cubic-bezier(.16,1,.3,1), opacity .25s, background .3s;
  }
  .nav-toggle span:nth-child(1) { width: 20px; }
  .nav-toggle span:nth-child(2) { width: 12px; background: #F4B23E; }
  .nav-toggle span:nth-child(3) { width: 16px; }
  .nav-toggle:hover span { width: 20px; }
  .nav-toggle:active { transform: scale(.93); }
  .nav-toggle:focus-visible { outline: 2px solid #F4B23E; outline-offset: 3px; }
  body.nav-open .nav-toggle {
    background: linear-gradient(135deg, #F4B23E, #E8762B 45%, #B8321F); border-color: rgba(255,222,170,.65);
    box-shadow: 0 14px 28px -12px rgba(184,50,31,.9), inset 0 1px 0 rgba(255,255,255,.35);
  }
  body.nav-open .nav-toggle span { width: 20px; background: #fff; }
  body.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; transform: translateX(10px); }
  body.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  /* brand + toggle stay visible above the sheet */
  body.nav-open .brand, body.nav-open .nav-toggle { position: relative; z-index: 1001; }

  /* --- the sheet: Ganga at dusk --- */
  .main-nav {
    isolation: isolate; color: #F8EEDD; scrollbar-width: none;
    padding: calc(var(--nav-top, 100px) + 1.3rem) 6% 8.5rem;
    background:
      radial-gradient(420px 320px at 100% 0%, rgba(232,118,43,.30), transparent 65%),
      radial-gradient(440px 380px at 0% 100%, rgba(184,50,31,.30), transparent 65%),
      linear-gradient(180deg, #1B2140 0%, #181D3A 55%, #12162D 100%);
  }
  .main-nav::before {
    content: ''; position: fixed; top: 0; left: 0; right: 0; height: var(--nav-top, 100px); z-index: 2; pointer-events: none;
    background: rgba(22,27,54,.92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(248,217,168,.18), 0 18px 30px -18px rgba(0,0,0,.7);
  }
  .main-nav::after {
    content: ''; position: fixed; left: 0; right: 0; bottom: 0; height: 110px; z-index: -1; pointer-events: none;
    background: linear-gradient(0deg, rgba(232,118,43,.55), rgba(244,178,62,.18));
    -webkit-mask: url("../images/kashi-ghat-skyline.svg") bottom / 100% 100% no-repeat;
            mask: url("../images/kashi-ghat-skyline.svg") bottom / 100% 100% no-repeat;
    opacity: .45;
  }
  .main-nav > ul { position: relative; }
  .main-nav > ul::before {
    content: 'Explore Kashi by boat'; display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem;
    font-size: .66rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #F4B23E;
  }
  .main-nav > ul::after {
    content: 'काशी'; position: absolute; right: -.2rem; top: -.9rem; z-index: -1; pointer-events: none;
    font-family: var(--deva); font-size: 5.2rem; line-height: 1; letter-spacing: 0; color: rgba(244,178,62,.07);
  }

  /* links with icon tiles */
  .main-nav > ul > li:not(.header-contact-mobile) { border-bottom: 1px solid rgba(248,217,168,.1); }
  .main-nav > ul > li > a {
    justify-content: flex-start; gap: .9rem; padding: .78rem .15rem; min-height: 0;
    font-size: 1.1rem; font-weight: 700; letter-spacing: -.01em; color: #F8EEDD; background: none;
  }
  .main-nav > ul > li > a::before {
    content: ''; flex: none; width: 40px; height: 40px; border-radius: 13px;
    background: var(--ni) center / 20px no-repeat, rgba(255,255,255,.06);
    box-shadow: inset 0 0 0 1px rgba(248,217,168,.16);
    transition: background .35s ease, box-shadow .35s ease, transform .35s cubic-bezier(.16,1,.3,1);
  }
  .main-nav > ul > li > a:hover, .main-nav > ul > li > a:focus-visible { color: #fff; background: none; }
  .main-nav > ul > li > a:hover::before { transform: rotate(-6deg) scale(1.06); }
  .main-nav > ul > li > a.active { color: #F4B23E; }
  .main-nav > ul > li > a.active::before, .main-nav > ul > li.has-drop.open > a::before {
    background: var(--ni-on) center / 20px no-repeat, linear-gradient(135deg, #F4B23E, #E8762B 50%, #B8321F);
    box-shadow: 0 10px 20px -10px rgba(232,118,43,.9);
  }
  .main-nav > ul > li > a[href="index.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 10v10h5v-6h4v6h5V10'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11 12 4l9 7'/%3E%3Cpath d='M5 10v10h5v-6h4v6h5V10'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href$="#events"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c1.6 2.1 2.2 3.5 2.2 4.8A2.2 2.2 0 0 1 12 10a2.2 2.2 0 0 1-2.2-2.2C9.8 6.5 10.4 5.1 12 3Z'/%3E%3Cpath d='M3 15c2 2 5 2.6 9 2.6s7-.6 9-2.6c-1 3.2-5 6-9 6s-8-2.8-9-6Z'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c1.6 2.1 2.2 3.5 2.2 4.8A2.2 2.2 0 0 1 12 10a2.2 2.2 0 0 1-2.2-2.2C9.8 6.5 10.4 5.1 12 3Z'/%3E%3Cpath d='M3 15c2 2 5 2.6 9 2.6s7-.6 9-2.6c-1 3.2-5 6-9 6s-8-2.8-9-6Z'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href="normal-motor-boat.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h18l-2.2 5H5.2L3 14Z'/%3E%3Cpath d='M6 14V9a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v5M12 7V3'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14h18l-2.2 5H5.2L3 14Z'/%3E%3Cpath d='M6 14V9a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v5M12 7V3'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href="gallery.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m21 16-5-5-8 8'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.5'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m21 16-5-5-8 8'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href="about-us.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 8h16L12 3Z'/%3E%3Cpath d='M6 8v9M10 8v9M14 8v9M18 8v9M3 20h18'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 8h16L12 3Z'/%3E%3Cpath d='M6 8v9M10 8v9M14 8v9M18 8v9M3 20h18'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href="faq.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.6 9.4a2.5 2.5 0 1 1 3.4 2.4c-.7.3-1 .8-1 1.5v.4M12 17h.01'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.6 9.4a2.5 2.5 0 1 1 3.4 2.4c-.7.3-1 .8-1 1.5v.4M12 17h.01'/%3E%3C/svg%3E"); }
  .main-nav > ul > li > a[href="contact-us.html"] { --ni: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F4B23E' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.4 7.4L3 21l2.1-5.6A8.4 8.4 0 1 1 21 11.5z'/%3E%3C/svg%3E"); --ni-on: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-12.4 7.4L3 21l2.1-5.6A8.4 8.4 0 1 1 21 11.5z'/%3E%3C/svg%3E"); }
  /* right-hand arrow / chevron */
  .main-nav > ul > li:not(.has-drop):not(.header-contact-mobile) > a::after {
    content: ''; display: block; position: static; margin-left: auto; margin-right: .45rem; width: 8px; height: 8px;
    background: none; border: 0; border-top: 2px solid currentColor; border-right: 2px solid currentColor; border-radius: 1px;
    transform: rotate(45deg); opacity: .3; transition: opacity .3s, transform .3s;
  }
  .main-nav > ul > li > a.active::after, .main-nav > ul > li > a:hover::after { opacity: .9; }
  .main-nav > ul > li.has-drop > a::after { margin-left: auto; margin-right: .5rem; opacity: .7; }

  /* sub-menu cards on navy */
  .dropdown { margin: 0 0 .9rem; background: none; border: 0; border-radius: 0; box-shadow: none; }
  .dropdown::before, .dropdown::after { display: none; }
  .has-drop.open .dropdown { gap: .45rem; }
  .dropdown a {
    padding: .65rem .75rem; border-radius: 15px; color: #F8EEDD;
    background: rgba(255,255,255,.05); border: 1px solid rgba(248,217,168,.12); box-shadow: none;
  }
  .dropdown a:hover, .dropdown a.active { background: rgba(244,178,62,.1); border-color: rgba(244,178,62,.35); color: #fff; }
  .dropdown .dd-icon { width: 36px; height: 36px; border-radius: 11px; background: rgba(244,178,62,.14); color: #F4B23E; }
  .dropdown .dd-text strong { color: #F8EEDD; font-size: .9rem; }
  .dropdown .dd-text small { color: rgba(248,238,221,.58); }

  /* actions */
  .header-contact-mobile { margin-top: 1.5rem; gap: .65rem; }
  .header-contact-mobile .btn {
    min-height: 52px; border-radius: 16px; gap: .55rem; font-size: .9rem; font-weight: 800; border: 1px solid transparent;
  }
  .header-contact-mobile .btn::before {
    content: ''; flex: none; width: 18px; height: 18px; background: currentColor;
    -webkit-mask: var(--bi) center / contain no-repeat; mask: var(--bi) center / contain no-repeat;
  }
  .header-contact-mobile .btn-outline-light {
    --bi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
    background: rgba(255,255,255,.07); border-color: rgba(248,217,168,.32); color: #F8EEDD !important;
  }
  .header-contact-mobile .btn-wa {
    --bi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18'/%3E%3C/svg%3E");
    background: linear-gradient(135deg, #F4B23E, #E8762B 45%, #B8321F); color: #fff !important;
    box-shadow: 0 16px 30px -14px rgba(232,118,43,.95), inset 0 1px 0 rgba(255,255,255,.3);
  }
  .header-contact-mobile::after {
    content: 'Private boat celebrations from the ghats of Varanasi'; grid-column: 1 / -1; text-align: center;
    margin-top: .4rem; font-size: .74rem; color: rgba(248,238,221,.55);
  }
}
@media (min-width: 560px) and (max-width: 1100px) {
  .has-drop.open .dropdown { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .nav-wrap { padding: .6rem 0; }
  .brand { gap: .55rem; }
  .brand-icon { width: 40px; height: 40px; border-radius: 13px; }
  .brand-icon svg { width: 25px; height: 25px; }
  .brand-name { font-size: 1.12rem; }
  .brand-tag { font-size: .55rem; letter-spacing: .12em; }
}
@media (max-width: 380px) {
  .nav-wrap { gap: .45rem; }
  .nav-call, .nav-toggle { width: 42px; height: 42px; }
  .nav-toggle { border-radius: 13px; padding-right: 10px; }
  .brand-icon { width: 36px; height: 36px; border-radius: 12px; }
  .brand-icon svg { width: 22px; height: 22px; }
  .brand-name { font-size: 1rem; }
  .brand-tag { font-size: .5rem; letter-spacing: .1em; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-call::after { animation: none; opacity: 0; }
}

/* ===== Phone bottom bar: navy glass + saffron action (matches header v2) ===== */
.mobile-bar {
  background: rgba(22,27,54,.95); -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  border-top: 1px solid rgba(248,217,168,.22); box-shadow: 0 -16px 34px -16px rgba(10,14,30,.75);
}
.mobile-bar a { gap: .55rem; letter-spacing: .01em; }
.mobile-bar a::after {
  content: ''; flex: none; width: 18px; height: 18px; background: currentColor; order: -1;
  -webkit-mask: var(--mbi) center / contain no-repeat; mask: var(--mbi) center / contain no-repeat;
}
.mb-call {
  color: #F8EEDD !important; border-right: 1px solid rgba(248,217,168,.14);
  --mbi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E");
}
.mb-call::after { background: #F4B23E; }
.mb-call:active { background: rgba(255,255,255,.06); }
.mb-wa {
  background: linear-gradient(135deg, #F4B23E, #E8762B 45%, #B8321F); color: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
  --mbi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18'/%3E%3C/svg%3E");
}
.mb-wa:active { filter: brightness(1.06); }
.mb-wa::before { box-shadow: 0 0 0 0 rgba(232,118,43,.55); animation-name: mbSaffronPulse; }
@keyframes mbSaffronPulse { 0% { box-shadow: inset 0 0 0 0 rgba(255,226,170,.55); } 70%, 100% { box-shadow: inset 0 0 0 14px rgba(255,226,170,0); } }

/* ===== HEADER & FOOTER V3: Dev Diwali top-bar chip, shimmering hairline, marigold garland footer ===== */
/* Top bar announcement */
.tb-news {
  display: inline-flex; align-items: center; gap: .55rem; padding: .2rem .8rem .2rem .22rem; border-radius: 999px;
  background: rgba(244,178,62,.08); border: 1px solid rgba(244,178,62,.26); color: #F8EEDD !important; font-weight: 600;
  white-space: nowrap; transition: background .3s, border-color .3s;
}
.tb-news-tag {
  padding: .14rem .55rem; border-radius: 999px; font-size: .6rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #fff;
  background: linear-gradient(135deg, #F4B23E, #E8762B 55%, #B8321F); box-shadow: 0 0 14px -2px rgba(232,118,43,.7);
}
.tb-news-arrow { color: #F4B23E; transition: transform .35s cubic-bezier(.16,1,.3,1); }
.tb-news:hover { background: rgba(244,178,62,.16); border-color: rgba(244,178,62,.5); color: #fff !important; }
.tb-news:hover .tb-news-arrow { transform: translateX(4px); }
@media (max-width: 1180px) { .topbar .tb-loc { display: none; } }
@media (max-width: 860px) { .tb-news { display: none; } }

/* Header: a glint of marigold light travels along the gold hairline */
.site-header::after {
  height: 1.5px;
  background: linear-gradient(90deg, rgba(248,217,168,.18) 0%, rgba(248,217,168,.18) 35%, #F4B23E 50%, rgba(248,217,168,.18) 65%, rgba(248,217,168,.18) 100%);
  background-size: 250% 100%; background-position: 100% 0;
}
.cine .site-header::after { animation: hairGlint 6s ease-in-out infinite; }
@keyframes hairGlint { 0% { background-position: 120% 0; } 60%, 100% { background-position: -20% 0; } }
/* Desktop nav: the current page reads in marigold */
@media (min-width: 1101px) {
  .main-nav > ul > li > a.active { color: #F8D9A8; }
  .brand:hover .brand-icon { transform: rotate(-6deg) scale(1.05); }
  .brand-icon { transition: transform .45s cubic-bezier(.16,1,.3,1); }
}

/* Footer: marigold garland along the top edge */
.site-footer::before {
  top: -6px; height: 12px; z-index: 3; pointer-events: none;
  background:
    radial-gradient(circle, #F7C25A 0 3px, #E8762B 3.4px 4.2px, transparent 4.7px) 0 50% / 28px 12px repeat-x,
    radial-gradient(circle, #E8762B 0 3px, #B8321F 3.4px 4.2px, transparent 4.7px) 14px 50% / 28px 12px repeat-x,
    linear-gradient(#6B4A1E, #6B4A1E) 0 50% / 100% 1px no-repeat;
  filter: drop-shadow(0 3px 4px rgba(10,14,30,.45));
}

/* Brand card: blessing + quick contact pills */
.footer-brand-col .footer-deva {
  margin: .9rem 0 1rem; font-family: var(--deva); font-size: 1.35rem; line-height: 1.2; letter-spacing: 0;
  background: linear-gradient(90deg, #F7C25A, #E8762B); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.footer-quick { display: flex; flex-wrap: wrap; gap: .5rem; }
.fq {
  display: inline-flex; align-items: center; gap: .42rem; padding: .5rem .85rem; border-radius: 999px;
  font-size: .78rem; font-weight: 700; color: #F8EEDD !important;
  background: rgba(255,255,255,.07); border: 1px solid rgba(248,217,168,.24);
  transition: background .3s, border-color .3s, transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s;
}
.fq svg { width: 15px; height: 15px; color: #F4B23E; transition: color .3s; }
.fq:hover, .fq:focus-visible {
  color: #fff !important; border-color: transparent; transform: translateY(-2px);
  background: linear-gradient(135deg, #F4B23E, #E8762B 55%, #B8321F); box-shadow: 0 12px 24px -12px rgba(232,118,43,.9);
}
.fq:hover svg, .fq:focus-visible svg { color: #fff; }

/* Column headings: a small diya flame before the label */
.site-footer h4::before {
  content: ''; display: inline-block; vertical-align: 1px; margin-right: .5rem; width: 7px; height: 9px; border-radius: 50% 50% 50% 50% / 65% 65% 35% 35%;
  background: radial-gradient(circle at 50% 70%, #FFE3A3, #F4B23E 55%, #E8762B); box-shadow: 0 0 10px 1px rgba(244,178,62,.6);
}

/* Wordmark gets a faint warm fill */
.site-footer > .container::after {
  background: linear-gradient(180deg, rgba(244,178,62,.14), rgba(244,178,62,0) 80%);
  -webkit-background-clip: text; background-clip: text;
}

/* Bottom bar: copyright | links | developer */
.footer-bottom { text-align: left; }
.fb-row { display: flex; align-items: center; justify-content: space-between; gap: .6rem 2rem; flex-wrap: wrap; }
.fb-row p { margin: 0; }
.fb-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .25rem; }
.fb-links a {
  padding: .35rem .85rem; border-radius: 999px; font-size: .74rem; font-weight: 600; color: #ECE6DA;
  border: 1px solid transparent; transition: background .3s, border-color .3s, color .3s;
}
.fb-links a:hover, .fb-links a:focus-visible { color: #F4B23E; background: rgba(255,255,255,.05); border-color: rgba(248,217,168,.28); }
.fb-dev { opacity: .75; }
@media (max-width: 900px) {
  .fb-row { flex-direction: column; justify-content: center; text-align: center; }
}

/* ===== DESKTOP MENU V2: no hover pill — marigold underline, bead separators, Kashi dropdowns ===== */
@media (min-width: 1101px) {
  .main-nav > ul { gap: 0; }
  .main-nav > ul > li { position: relative; }
  /* tiny marigold beads between the items */
  .main-nav > ul > li + li::before {
    content: ''; position: absolute; left: -2px; top: 50%; width: 4px; height: 4px; margin-top: -2px; border-radius: 50%;
    background: rgba(244,178,62,.45); pointer-events: none;
  }
  /* links: no pill — a saffron underline grows from the centre */
  .main-nav > ul > li > a,
  .main-nav > ul > li > a:hover,
  .main-nav > ul > li > a.active {
    border-radius: 0; padding: .65rem .85rem;
    background: linear-gradient(90deg, #F4B23E, #E8762B) no-repeat 50% calc(100% - .2rem) / 0 2px;
    transition: background-size .45s cubic-bezier(.16,1,.3,1), color .3s, text-shadow .3s;
  }
  .main-nav > ul > li > a:hover,
  .main-nav > ul > li > a:focus-visible,
  .main-nav > ul > li.has-drop:hover > a,
  .main-nav > ul > li.has-drop:focus-within > a { color: #fff; background-size: calc(100% - 1.7rem) 2px; }
  .main-nav > ul > li > a.active {
    color: #F8D9A8; background-size: calc(100% - 1.7rem) 2px; text-shadow: 0 0 18px rgba(244,178,62,.45);
  }
  .main-nav > ul > li:not(.has-drop) > a::after { display: none; }
  .main-nav > ul > li > a:focus-visible { outline: 2px solid rgba(244,178,62,.7); outline-offset: 2px; border-radius: 6px; }

  /* dropdown: warm card with a saffron crown and sliding arrows */
  .dropdown {
    min-width: 310px; padding: .75rem .6rem .6rem; border-radius: 18px; border: 1px solid rgba(232,200,160,.55);
    background: linear-gradient(90deg, #F4B23E, #E8762B 55%, #B8321F) top / 100% 3px no-repeat, #FFFBF4;
    box-shadow: 0 34px 60px -22px rgba(27,33,64,.45), 0 0 0 1px rgba(255,255,255,.6) inset;
  }
  .dropdown::before { background: #F4B23E; border: 0; top: -6px; }
  .dropdown li + li { border-top: 1px dashed rgba(184,50,31,.12); }
  .dropdown a { padding: .65rem .7rem; border-radius: 12px; }
  .dropdown a::after {
    content: '→'; margin-left: auto; padding-left: .5rem; color: #E8762B; font-weight: 800;
    opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .35s cubic-bezier(.16,1,.3,1);
  }
  .dropdown a:hover, .dropdown a:focus-visible, .dropdown a.active {
    background: linear-gradient(90deg, rgba(244,178,62,.18), rgba(244,178,62,.04)); color: var(--ink);
  }
  .dropdown a:hover::after, .dropdown a:focus-visible::after, .dropdown a.active::after { opacity: 1; transform: none; }
  .dropdown .dd-icon { background: linear-gradient(135deg, #FBE6C4, #F7D9C8); color: #B8321F; }
  .dropdown a:hover .dd-icon, .dropdown a.active .dd-icon, .cine .dropdown a:hover .dd-icon { background: linear-gradient(135deg, #F4B23E, #E8762B 55%, #B8321F); color: #fff; }
  .dropdown .dd-text strong { color: var(--night); }
  .dropdown a:hover .dd-text strong { color: #8A2618; }
}

/* ===== Dropdown arrows: crisp centred chevron icon (replaces the rotated-border arrow) ===== */
.main-nav > ul > li.has-drop > a::after,
.main-nav > ul > li.has-drop:hover > a::after,
.main-nav > ul > li.has-drop.open > a::after {
  content: ''; display: inline-block; position: static; flex: none; align-self: center;
  width: 11px; height: 11px; margin: 1px 0 0; padding: 0; box-sizing: content-box;
  border: 0; border-radius: 0; opacity: .75; background: currentColor; transform-origin: 50% 50%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: none; transition: transform .4s cubic-bezier(.16,1,.3,1), opacity .3s, color .3s;
}
@media (min-width: 1101px) {
  .main-nav > ul > li.has-drop:hover > a::after,
  .main-nav > ul > li.has-drop:focus-within > a::after { transform: rotate(180deg); opacity: 1; color: #F4B23E; }
}
@media (max-width: 1100px) {
  .main-nav > ul > li.has-drop > a::after,
  .main-nav > ul > li.has-drop:hover > a::after,
  .main-nav > ul > li.has-drop.open > a::after { width: 16px; height: 16px; margin: 0 .35rem 0 auto; opacity: .7; }
  .main-nav > ul > li.has-drop.open > a::after { transform: rotate(180deg); opacity: 1; color: #F4B23E; }
}
/* phone menu: the plain-row arrows use the same chevron, turned to point right, so all arrows line up */
@media (max-width: 1100px) {
  .main-nav > ul > li:not(.has-drop):not(.header-contact-mobile) > a::after {
    content: ''; display: inline-block; position: static; flex: none; align-self: center;
    width: 16px; height: 16px; margin: 0 .35rem 0 auto; padding: 0; box-sizing: content-box;
    border: 0; border-radius: 0; background: currentColor; opacity: .35;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
    transform: rotate(-90deg); transform-origin: 50% 50%;
  }
  .main-nav > ul > li:not(.has-drop):not(.header-contact-mobile) > a.active::after,
  .main-nav > ul > li:not(.has-drop):not(.header-contact-mobile) > a:hover::after { opacity: .9; }
}

/* ===== WhatsApp booking planner dialog — enhanced design ===== */
.planner-dialog { width: min(780px, 94vw); padding: 0; border-radius: 22px; overflow-x: hidden; box-shadow: 0 40px 90px -30px rgba(18,24,44,.55), 0 0 0 1px rgba(216,199,171,.5); }
.planner-dialog::backdrop { background: rgba(18,24,44,.62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.planner-dialog[open] { animation: plannerIn .38s var(--ease) both; }
.planner-dialog[open]::backdrop { animation: plannerFade .3s ease both; }
@keyframes plannerIn { from { opacity: 0; transform: translateY(18px) scale(.975); } to { opacity: 1; transform: none; } }
@keyframes plannerFade { from { opacity: 0; } to { opacity: 1; } }

.planner-toolbar { margin: 0; padding: 1rem 1.25rem 1rem 2rem; background: var(--grad-header); position: relative; overflow: hidden; }
.planner-toolbar::after { content: ""; position: absolute; inset: auto -40px -60px auto; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(232,163,61,.35), transparent 70%); pointer-events: none; }
.planner-toolbar .kicker { display: inline-flex; align-items: center; gap: .55rem; color: #fff; font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 800; position: relative; z-index: 1; }
.planner-toolbar .kicker::before { content: ""; width: 26px; height: 26px; border-radius: 50%; background: var(--wa) center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1l-.9 1.1c-.2.2-.3.2-.6.1a7.4 7.4 0 0 1-3.7-3.2c-.3-.5.3-.5.8-1.5.1-.2 0-.4 0-.5l-.9-2.1c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3 1.8.8 2.5.8 3.4.7.5-.1 1.7-.7 1.9-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.4Z'/%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15L2 22l5.2-1.4A10 10 0 1 0 12 2Zm0 18.2c-1.5 0-3-.4-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Z'/%3E%3C/svg%3E"); box-shadow: 0 0 0 4px rgba(255,255,255,.14); }
.planner-toolbar .dialog-close { position: relative; z-index: 1; border-color: rgba(255,255,255,.3); color: #fff; background: rgba(255,255,255,.1); border-radius: 50%; min-width: 40px; width: 40px; min-height: 40px; height: 40px; padding: 0; font-size: 1.3rem; line-height: 1; transition: background var(--dur-fast), transform var(--dur-base) var(--ease); }
.planner-toolbar .dialog-close:hover { background: rgba(255,255,255,.22); transform: rotate(90deg); }
.planner-toolbar .dialog-close:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

.planner-dialog > h2 { margin: 1.7rem 0 .5rem; padding: 0 2rem; font-size: 1.85rem; line-height: 1.2; max-width: none; color: var(--ink-deep); }
.planner-dialog > p { padding: 0 2rem; max-width: 560px; font-size: .92rem; color: var(--muted); }
.planner-form { margin: 0; padding: 1.5rem 2rem 2rem; gap: 1.1rem 1.25rem; }
.planner-form label { display: block; }
.field-label { font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-deep); }
.planner-form input, .planner-form select { min-height: 50px; border-radius: 12px; border: 1.5px solid var(--line-strong); background-color: var(--paper); font: 600 .92rem var(--font-body); transition: border-color var(--dur-fast), box-shadow var(--dur-fast), background-color var(--dur-fast); }
.planner-form select { appearance: none; -webkit-appearance: none; padding-right: 2.4rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A2F22' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 16px; }
.planner-form input:hover, .planner-form select:hover { border-color: var(--gold-dark); }
.planner-form input:focus, .planner-form select:focus { background-color: #fff; border-color: var(--gold-dark); box-shadow: 0 0 0 4px rgba(232,163,61,.25); }
.planner-form input:invalid:not(:placeholder-shown):not(:focus) { border-color: var(--error); }

.planner-summary { border: 1px solid var(--line); border-left: 4px solid var(--gold); background: linear-gradient(135deg, var(--gold-soft), #fff 140%); border-radius: 14px; padding: 1.1rem 1.25rem; }
.planner-summary strong { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rose-dark); }
.planner-summary .planner-plan { font-weight: 700; font-size: .95rem; color: var(--ink); margin-bottom: .2rem; }
.planner-summary .capacity-note { padding: .5rem .7rem; border-radius: 8px; background: #FDECEA; font-weight: 600; }

.planner-submit { gap: .9rem 1.25rem; }
.planner-submit .planner-whatsapp { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 52px; padding: .8rem 1.6rem; border-radius: 999px; background: linear-gradient(135deg, #25C25E 0%, var(--wa) 60%, var(--wa-dark) 100%); color: #fff !important; font-weight: 800; box-shadow: 0 14px 28px -12px rgba(15,99,52,.7), inset 0 1px 0 rgba(255,255,255,.3); }
.planner-submit .planner-whatsapp::before { content: ""; width: 22px; height: 22px; background: center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M17.5 14.4c-.3-.1-1.7-.8-2-.9-.3-.1-.5-.1-.7.1l-.9 1.1c-.2.2-.3.2-.6.1a7.4 7.4 0 0 1-3.7-3.2c-.3-.5.3-.5.8-1.5.1-.2 0-.4 0-.5l-.9-2.1c-.2-.6-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3 1.8.8 2.5.8 3.4.7.5-.1 1.7-.7 1.9-1.4.2-.7.2-1.2.2-1.4-.1-.1-.3-.2-.6-.4Z'/%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15L2 22l5.2-1.4A10 10 0 1 0 12 2Zm0 18.2c-1.5 0-3-.4-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Z'/%3E%3C/svg%3E"); }
.planner-submit .planner-whatsapp:hover { background: linear-gradient(135deg, #2BD369 0%, #1A9150 60%, var(--wa-dark) 100%); transform: translateY(-2px); box-shadow: 0 20px 34px -12px rgba(15,99,52,.75), inset 0 1px 0 rgba(255,255,255,.3); }
.planner-submit .planner-whatsapp:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.planner-submit .btn[aria-disabled=true] { opacity: .45; filter: grayscale(.5); }
.planner-submit small { max-width: 300px; line-height: 1.45; }

@media (max-width: 640px) {
  .planner-dialog { width: 100vw; max-width: 100vw; max-height: 100dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }
  .planner-dialog[open] { animation-name: plannerUp; }
  .planner-toolbar { padding: .85rem 1rem .85rem 1.25rem; }
  .planner-dialog > h2 { padding: 0 1.25rem; font-size: 1.5rem; margin-top: 1.2rem; }
  .planner-dialog > p { padding: 0 1.25rem; }
  .planner-form { padding: 1.1rem 1.25rem 1.5rem; gap: .9rem; }
  .planner-submit .planner-whatsapp { width: 100%; }
}
@keyframes plannerUp { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .planner-dialog[open], .planner-dialog[open]::backdrop { animation: none; } }
.planner-toolbar .kicker { background: none !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; color: #fff !important; }
.planner-toolbar .kicker::after { content: none !important; }

/* ===== Planner dialog: no scrollbar, tighter fit, extra polish ===== */
.planner-dialog { scrollbar-width: none; -ms-overflow-style: none; max-height: 98dvh; }
.planner-dialog::-webkit-scrollbar { display: none; width: 0; height: 0; }
.planner-dialog > h2 { margin: clamp(.9rem, 2.4dvh, 1.5rem) 0 .3rem; font-size: clamp(1.45rem, 3.2dvh, 1.85rem); }
.planner-dialog > h2::before { content: "Takes 30 seconds"; display: inline-flex; align-items: center; gap: .4rem; margin-bottom: .55rem; padding: .22rem .7rem; border-radius: 999px; background: #E6F4EC; color: var(--wa-dark); font: 800 .68rem var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.planner-dialog > h2 { display: flex; flex-direction: column; align-items: flex-start; }
.planner-dialog > p { font-size: .88rem; line-height: 1.5; }
.planner-form { padding-top: clamp(.8rem, 2dvh, 1.3rem); padding-bottom: clamp(1rem, 2.4dvh, 1.6rem); gap: clamp(.6rem, 1.6dvh, 1rem) 1.25rem; }
.planner-form input, .planner-form select { min-height: 46px; }
.planner-summary { padding: .85rem 1.1rem; }
.planner-summary p { line-height: 1.45; }
.planner-submit .planner-whatsapp { min-height: 50px; animation: waPulse 2.6s ease-out 1s infinite; }
.planner-submit .planner-whatsapp[aria-disabled=true] { animation: none; }
@keyframes waPulse { 0% { box-shadow: 0 14px 28px -12px rgba(15,99,52,.7), 0 0 0 0 rgba(37,194,94,.45); } 70%,100% { box-shadow: 0 14px 28px -12px rgba(15,99,52,.7), 0 0 0 14px rgba(37,194,94,0); } }
.planner-submit small { display: flex; gap: .4rem; align-items: flex-start; }
.planner-submit small::before { content: "🔒"; font-size: .8rem; line-height: 1.3; }
@media (max-width: 640px) {
  .planner-toolbar { padding-block: .6rem; }
  .planner-dialog > p { display: none; }
  .planner-form { gap: .6rem .8rem; }
  .field-label { margin-bottom: .25rem; }
  .planner-submit small { font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) { .planner-submit .planner-whatsapp { animation: none; } }

/* ===== Planner dialog: two-panel desktop layout that uses the full width ===== */
@media (min-width: 900px) {
  .planner-dialog { width: min(980px, 94vw); background: linear-gradient(90deg, #1B2140 0, #2a2347 330px, var(--card) 330px); }
  .planner-dialog[open] { display: grid; grid-template-columns: 330px 1fr; grid-template-rows: auto auto 1fr; }
  .planner-toolbar { grid-column: 1 / -1; grid-row: 1; padding-left: 2.2rem; }
  .planner-dialog > h2 { grid-column: 1; grid-row: 2; margin: 2rem 0 .6rem; padding: 0 2rem 0 2.2rem; color: #fff; font-size: 1.9rem; align-self: start; }
  .planner-dialog > h2::before { background: rgba(37,194,94,.18); color: #7CE5A3; }
  .planner-dialog > p { grid-column: 1; grid-row: 3; display: block; padding: 0 2rem 2rem 2.2rem; color: rgba(255,255,255,.78); font-size: .92rem; max-width: none; white-space: pre-line; align-self: start; }
  .planner-dialog > p::after { content: "✓  Boat, decoration & price confirmed for you\A✓  Reply in about 30 minutes\A✓  No payment to start the enquiry\A✓  Private boat, only your group"; display: block; margin-top: 1.4rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.18); color: #fff; font-weight: 600; font-size: .84rem; line-height: 2; }
  .planner-form { grid-column: 2; grid-row: 2 / 4; align-content: center; padding: 2rem 2.2rem; gap: 1.1rem 1.1rem; background: var(--card); }
  .planner-submit .planner-whatsapp { width: 100%; }
  .planner-submit small { max-width: none; }
}

/* ===== Hero booking card — enhanced, top border removed ===== */
.hh-book::before { content: none !important; }
.hh-book { gap: 15px; padding: 28px 28px 22px; border-radius: 26px; background: linear-gradient(180deg, #fff 0%, #FFFAF1 100%); box-shadow: 0 50px 90px -34px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.6), inset 0 1px 0 #fff; }
.hh-book::after { content: ""; position: absolute; right: -70px; top: -70px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(247,179,43,.28), transparent 70%); pointer-events: none; }
.hh-book > * { position: relative; z-index: 1; }
.hh-book-kicker { display: inline-flex; align-items: center; gap: .5rem; justify-self: start; padding: .3rem .75rem .3rem .6rem; border-radius: 999px; background: #E6F4EC; color: var(--wa-dark); font-size: .68rem; }
.hh-book-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #25C25E; box-shadow: 0 0 0 0 rgba(37,194,94,.6); animation: hhLive 2s ease-out infinite; }
@keyframes hhLive { 70%,100% { box-shadow: 0 0 0 8px rgba(37,194,94,0); } }
.hh-book h2 { margin: -4px 0 2px; font-size: 1.6rem; line-height: 1.2; color: var(--ink-deep); }
.hh-book .field-label { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-deep); margin-bottom: .35rem; }
.hh-book select, .hh-book input { min-height: 50px; border: 1.5px solid var(--line-strong); background-color: #fff; font-weight: 600; box-shadow: 0 1px 0 rgba(26,29,46,.03); }
.hh-book select { appearance: none; -webkit-appearance: none; padding-right: 2.4rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238A2F22' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .85rem center; background-size: 16px; }
.hh-book select:hover, .hh-book input:hover { border-color: var(--gold-dark); }
.hh-book select:focus, .hh-book input:focus { border-color: var(--gold-dark); box-shadow: 0 0 0 4px rgba(232,163,61,.28); }
.hh-book .btn { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; min-height: 56px; border-radius: 999px; background: linear-gradient(135deg, #25C25E 0%, var(--wa) 60%, var(--wa-dark) 100%); color: #fff !important; font-weight: 800; box-shadow: 0 16px 30px -12px rgba(15,99,52,.75), inset 0 1px 0 rgba(255,255,255,.3); }
.hh-book .btn:hover { background: linear-gradient(135deg, #2BD369 0%, #1A9150 60%, var(--wa-dark) 100%); transform: translateY(-2px); }
.hh-note { padding-top: .7rem; border-top: 1px dashed var(--line-strong); line-height: 1.5; }
@media (max-width: 760px) { .hh-book { padding: 22px 18px 18px; border-radius: 22px; } .hh-book h2 { font-size: 1.4rem; } }

/* Sunrise story: warm offset frame, framed crop on the rising sun, glass badge */
#sunrise-boat .river-image::before { background: linear-gradient(135deg, #F2B35A, #C2542D); opacity: .4; top: 22px; left: 0; right: 0; transform: translate(14px, 12px); bottom: 18px; border-radius: 30px; }
#sunrise-boat .river-image img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 55% 40%; border: 6px solid #fff; border-radius: 26px; transition: transform .6s ease; }
#sunrise-boat .river-image { overflow: visible; }
#sunrise-boat .river-image:hover img { transform: scale(1.015); }
#sunrise-boat .river-image::after { content: ''; position: absolute; inset: 6px; border-radius: 20px; pointer-events: none; background: linear-gradient(180deg, rgba(255,170,80,.14), transparent 40%, rgba(20,10,5,.28)); }
.frame-badge { position: absolute; left: 22px; bottom: 22px; z-index: 2; padding: .45rem .95rem; border-radius: 999px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: #fff; background: rgba(30,18,10,.45); border: 1px solid rgba(255,255,255,.35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
@media (max-width: 760px) { #sunrise-boat .river-image::before { left: -10px; right: 10px; top: 14px; } .frame-badge { left: 16px; bottom: 16px; } }
@media (prefers-reduced-motion: reduce) { #sunrise-boat .river-image img { transition: none; } }

/* Evening Aarti story: glowing amber frame, crop on the lamps, glass badge */
#evening-boat .river-image::before { background: linear-gradient(135deg, #F2B35A, #9A3524); opacity: .5; top: 22px; left: 0; right: 0; bottom: 18px; border-radius: 30px; transform: translate(-14px, 12px); filter: blur(.5px); }
#evening-boat .river-image img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 55%; border: 6px solid rgba(255,255,255,.14); border-radius: 26px; box-shadow: 0 24px 60px rgba(232,163,61,.22), var(--shadow-lift); transition: transform .6s ease; }
#evening-boat .river-image:hover img { transform: scale(1.015); }
#evening-boat .river-image::after { content: ''; position: absolute; inset: 6px; border-radius: 20px; pointer-events: none; background: linear-gradient(180deg, rgba(20,8,30,.12), transparent 40%, rgba(15,8,5,.4)); }
@media (max-width: 760px) { #evening-boat .river-image::before { transform: translate(-8px, 8px); } }
@media (prefers-reduced-motion: reduce) { #evening-boat .river-image img { transition: none; } }
