/* Theme layer on top of Tailwind. Colours come from THEME in config.php (--color-* variables). */

/* ---------- Layout & components (reusable on every page) ---------- */
.container-x { max-width: 80rem; margin-inline: auto; padding-inline: 1.5rem; }
.section { padding-block: clamp(4rem, 9vw, 7rem); }

.eyebrow { font-size: .7rem; letter-spacing: .4em; text-transform: uppercase; color: var(--color-gold-500); margin-bottom: .75rem; }
.section-title { font-family: "Playfair Display", serif; font-size: clamp(1.75rem, 2.6vw, 2.4rem); line-height: 1.15; font-weight: 500; color: var(--color-lake-900); }

.btn { border-radius: var(--radius-btn, .375rem); display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-size: .75rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .18em; padding: .85rem 1.5rem; transition: background .25s, color .25s, border-color .25s; }
.btn-primary { background: var(--color-orange-500); color: var(--color-lake-950); box-shadow: 0 8px 20px rgba(0,0,0,.2); }
.btn-primary:hover, .btn-primary:focus-visible { background: var(--color-orange-400); }
.btn-outline { border: 1px solid currentColor; color: var(--color-lake-900); }
.btn-outline:hover { background: var(--color-lake-900); color: #fff; }
.btn-ghost { color: var(--color-gold-600); }
.btn-ghost:hover { color: var(--color-lake-900); }

.card { background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 12px 30px -12px rgba(11,44,69,.18); transition: transform .3s, box-shadow .3s; }
.card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -14px rgba(11,44,69,.3); }
.card-media { aspect-ratio: 4 / 3; overflow: hidden; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s ease; }
.card:hover .card-media img { transform: scale(1.06); }

/* ---------- Header ---------- */
.nav-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--color-gold-400); transform: scaleX(0); transform-origin: left; transition: transform .3s ease;
}
.nav-link:hover::after, .nav-link.is-active::after { transform: scaleX(1); }

#site-header { background: #fff; }
#site-header.is-transparent { background: transparent; border-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; }
#site-header.is-scrolled {
  background: rgba(255,255,255,.9);
  -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
  border-color: rgba(11,44,69,.1);
  box-shadow: 0 10px 30px -20px rgba(11,44,69,.45);
}
body.menu-open { overflow: hidden; }

/* ---------- Cinematic hero ---------- */
.hero { --slide-ms: var(--hero-delay, 7000ms); }
.hero-slide { opacity: 0; visibility: hidden; transition: opacity 1.6s ease, visibility 0s linear 1.6s; }
.hero-slide.is-active { opacity: 1; visibility: visible; transition: opacity 1.6s ease; z-index: 2; }
/* The outgoing photo stays fully opaque underneath while the new one fades in: no dark dip mid-transition */
.hero-slide.is-leaving { opacity: 1; visibility: visible; transition: none; z-index: 1; }

/* Ken Burns: slides alternate between zooming in and zooming out. Pure CSS so it
   runs on every device; hero.js only toggles the .zoom-in / .zoom-out classes. */
.hero-img { transform: scale(1); transform-origin: 50% 50%; will-change: transform; backface-visibility: hidden; }
.hero-slide.zoom-in  .hero-img { animation: kb-in  calc(var(--hero-delay, 7000ms) + 4000ms) ease-out forwards; }
.hero-slide.zoom-out .hero-img { animation: kb-out calc(var(--hero-delay, 7000ms) + 4000ms) ease-out forwards; }
@keyframes kb-in  { from { transform: scale(1) translateZ(0); }                      to { transform: scale(var(--hero-zoom, 1.18)) translateZ(0); } }
@keyframes kb-out { from { transform: scale(var(--hero-zoom, 1.18)) translateZ(0); } to { transform: scale(1) translateZ(0); } }

.hero-slide .cap { opacity: 0; transform: translateY(28px); transition: opacity .3s ease, transform 0s linear .3s; }
.hero-slide.is-active .cap { opacity: 1; transform: none; transition: opacity .9s ease, transform .9s ease; }
.hero-slide.is-active .cap-1 { transition-delay: .6s; }
.hero-slide.is-active .cap-2 { transition-delay: .8s; }
.hero-slide.is-active .cap-3 { transition-delay: 1.05s; }
.hero-slide.is-active .cap-4 { transition-delay: 1.25s; }
.hero-vignette { background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,.45) 100%); }

.hero-dot.is-active .dot-fill { animation: dotfill var(--slide-ms) linear forwards; }
.hero-dot.is-done .dot-fill { width: 100%; }
.hero.is-paused .hero-dot.is-active .dot-fill { animation-play-state: paused; }
@keyframes dotfill { from { width: 0; } to { width: 100%; } }

/* ---------- Home page ---------- */
.js-reveal .reveal { opacity: 0; transform: translateY(32px); transition: opacity .9s ease, transform .9s ease; }
.js-reveal .reveal.is-in { opacity: 1; transform: none; }
.js-reveal .reveal[data-d="1"] { transition-delay: .12s; }
.js-reveal .reveal[data-d="2"] { transition-delay: .24s; }

.gold-rule { display: block; width: 3.5rem; height: 1px; background: var(--color-gold-500); margin-block: .85rem 1.25rem; }
.section-title + .gold-rule { margin-top: .6rem; }
.frame { position: relative; }
.frame::before { content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1px solid var(--color-gold-400); z-index: 0; }
.frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; }
.stat-num { font-family: "Playfair Display", serif; font-size: clamp(2.5rem, 5vw, 3.75rem); color: var(--color-gold-300); line-height: 1; }
.tile { position: relative; overflow: hidden; display: block; min-height: 22rem; }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.tile:hover img { transform: scale(1.07); }
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,28,46,.9), rgba(7,28,46,.1) 60%); }
.tile > div { position: absolute; inset-inline: 0; bottom: 0; padding: 1.75rem; z-index: 1; color: #fff; }

/* ---------- Ultra-luxury layer ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: 1rem; color: var(--color-gold-600); }
.eyebrow::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.text-center > .eyebrow::after, .eyebrow.both::after { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.on-dark .eyebrow { color: var(--color-gold-300); }
.section-title em, .display em { font-style: italic; color: var(--color-gold-600); font-weight: 500; }
.on-dark .section-title em, .on-dark .display em { color: var(--color-gold-300); }
.display { font-family: "Playfair Display", serif; font-size: clamp(1.9rem, 3.4vw, 2.8rem); line-height: 1.1; font-weight: 500; }
.lead { font-size: 1.05rem; line-height: 1.85; }
.ivory { background: #F2F8FC; }
.paper-grain { background-image: radial-gradient(rgba(11,44,69,.045) 1px, transparent 1px); background-size: 22px 22px; }
.num-big { font-family: "Playfair Display", serif; font-size: clamp(4rem, 9vw, 7.5rem); line-height: .8; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); }

.parallax { background-size: cover; background-position: center; }
@media (min-width: 1024px) and (hover: hover) { .parallax { background-attachment: fixed; } }

.glass { background: rgba(7,28,46,.55); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.14); }

.tile-tall { min-height: 34rem; }
.tile .tag { font-size: .65rem; letter-spacing: .32em; text-transform: uppercase; color: var(--color-gold-300); }
.tile h3 { transition: transform .5s; }
.tile:hover h3 { transform: translateY(-6px); }
.tile::before { content: ""; position: absolute; inset: .9rem; border: 1px solid rgba(255,255,255,.28); z-index: 2; opacity: 0; transform: scale(1.04); transition: opacity .5s, transform .5s; pointer-events: none; }
.tile:hover::before { opacity: 1; transform: none; }

.quote-mark { font-family: "Playfair Display", serif; font-size: 7rem; line-height: .6; color: var(--color-gold-500); opacity: .5; }

.mosaic { display: grid; gap: .75rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1024px) { .mosaic { grid-template-columns: repeat(6, 1fr); grid-auto-rows: 15rem; } }
.mosaic a, .mosaic div.m { position: relative; overflow: hidden; display: block; min-height: 12rem; }
.mosaic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.mosaic a:hover img { transform: scale(1.08); }

.marquee { display: flex; gap: 4rem; white-space: nowrap; animation: marquee 40s linear infinite; width: max-content; }
@keyframes marquee { to { transform: translateX(-50%); } }

.signature-row + .signature-row { margin-top: clamp(4rem, 9vw, 8rem); }

/* Headings & copy inside dark sections */
.on-dark .section-title { color: #fff; }
.on-dark .section-sub { color: rgba(255,255,255,.72); }

/* Google-style review card */
.greview { background: #fff; border-radius: .75rem; padding: 1.5rem; box-shadow: 0 1px 2px rgba(60,64,67,.3), 0 2px 6px 2px rgba(60,64,67,.15); font-family: Roboto, Inter, system-ui, sans-serif; }

/* Justified body copy (centred intros stay centred) */
.lead, .jt { text-align: justify; text-justify: inter-word; hyphens: auto; -webkit-hyphens: auto; }
.text-center .lead, .text-center.lead { text-align: center; hyphens: none; }
.faq p, .greview p { text-align: justify; text-justify: inter-word; }



/* One type scale: eyebrow .7rem / title 1.75-2.4rem / body 1rem */
.lead { font-size: 1rem; line-height: 1.85; }
.section-title em { font-weight: 500; }

/* ---------- Packages ---------- */
.pkg { background: #fff; border-radius: .5rem; overflow: hidden; box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 20px 40px -22px rgba(11,44,69,.35); border-bottom: 2px solid transparent; transition: transform .4s, box-shadow .4s, border-color .4s; }
.pkg:hover { transform: translateY(-6px); border-bottom-color: var(--color-gold-500); box-shadow: 0 30px 54px -24px rgba(11,44,69,.45); }
.pkg-media { aspect-ratio: 16 / 11; overflow: hidden; }
.pkg-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.pkg:hover .pkg-media img { transform: scale(1.07); }
.pkg-badge { position: relative; display: flex; align-items: center; gap: .6rem; margin: -1.35rem 1.75rem 0; padding: .7rem 1.1rem; background: #fff; border-radius: .375rem; font-size: .82rem; letter-spacing: .04em; color: var(--color-lake-800); box-shadow: 0 10px 24px -8px rgba(11,44,69,.3); border-left: 2px solid var(--color-gold-500); }

/* Packages: equal-height cards with aligned title, text and button rows */
.pkg { display: flex; flex-direction: column; height: 100%; }
.pkg-body { flex: 1; display: flex; flex-direction: column; padding: 1.5rem 1.75rem 1.9rem; }
.pkg-title { font-family: "Playfair Display", serif; font-size: 1.55rem; line-height: 1.15; color: var(--color-lake-900); min-height: 3.6rem; display: flex; align-items: flex-end; }
.pkg-desc { flex: 1; margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid rgba(11,44,69,.1); font-size: .95rem; line-height: 1.75; color: rgba(7,28,46,0.92); text-align: left; }
.pkg-foot { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid rgba(11,44,69,.1); }

/* Duration badge: text on the photo */
.pkg-media { position: relative; }
.pkg-media::after { content: ""; position: absolute; inset: 45% 0 0 0; background: linear-gradient(to top, rgba(7,28,46,.7), transparent); pointer-events: none; }
.pkg-media .pkg-badge { position: absolute; z-index: 2; left: 1.1rem; bottom: 1.1rem; margin: 0; padding: .5rem .95rem; gap: .55rem; background: rgba(7,28,46,.55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: #fff; border: 1px solid rgba(94,211,243,.55); border-left: 1px solid rgba(94,211,243,.55); border-radius: 9999px; font-size: .72rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; box-shadow: none; }
.pkg-media .pkg-badge svg { color: var(--color-gold-300); }

/* Packages (final): badge top-left, fixed rows, no blank gaps */
.pkg-media::after { inset: 0 0 50% 0; background: linear-gradient(to bottom, rgba(7,28,46,.6), transparent); }
.pkg-media .pkg-badge { top: 1rem; bottom: auto; left: 1rem; }
.pkg-title { min-height: 0; display: block; margin: 0; }
.pkg-desc { flex: none; min-height: 5.2rem; margin-top: 1.1rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pkg-points { flex: 1; list-style: none; margin: 1.25rem 0 0; padding: 1.25rem 0 0; border-top: 1px solid rgba(11,44,69,.1); display: grid; gap: .7rem; align-content: start; }
.pkg-points li { position: relative; padding-left: 1.5rem; font-size: .9rem; line-height: 1.5; color: var(--color-lake-800); }
.pkg-points li::before { content: ""; position: absolute; left: .1rem; top: .5rem; width: .4rem; height: .4rem; background: var(--color-gold-500); transform: rotate(45deg); }

/* Packages: title -> text -> button only */
.pkg-title { font-size: 1.25rem; line-height: 1.3; }
@media (min-width: 768px) and (max-width: 1279px) { .pkg-title { min-height: 2.6em; } }
.pkg-desc { flex: 1; min-height: 0; margin-top: 1rem; padding-top: 1rem; display: block; -webkit-line-clamp: unset; overflow: visible; }
.pkg-foot { margin-top: 1.5rem; }

/* ---------- One corner radius for every card and image ---------- */
:root { --radius-card: .875rem; }
.card, .pkg, .tile, .rv2-card, .glass, .mosaic a, .mosaic div.m { border-radius: var(--radius-card); }
.frame img, .frame::before { border-radius: var(--radius-card); }
.tile::before { border-radius: calc(var(--radius-card) - .35rem); }
.card, .pkg, .tile, .mosaic a { overflow: hidden; }
.mosaic { padding-inline: 1.5rem; max-width: 80rem; margin-inline: auto; gap: .9rem; }

/* ---------- FAQ ---------- */
.faq-aside { background: radial-gradient(ellipse at 0% 0%, rgba(32,192,232,.14), transparent 60%), var(--color-lake-950); border-radius: var(--radius-card); padding: clamp(1.75rem, 3vw, 2.75rem); border: 1px solid rgba(32,192,232,.4); box-shadow: 0 30px 60px -30px rgba(7,28,46,.6); }
.faq-aside .lead { text-align: left; }
.faq { background: #fff; border-radius: var(--radius-card); border: 1px solid rgba(11,44,69,.08); box-shadow: 0 1px 2px rgba(11,44,69,.04), 0 14px 30px -22px rgba(11,44,69,.3); transition: border-color .3s, box-shadow .3s; overflow: hidden; }
.faq:hover { border-color: rgba(32,192,232,.55); }
.faq[open] { border-color: var(--color-gold-500); box-shadow: 0 22px 44px -24px rgba(11,44,69,.4); }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 1.25rem; padding: 1.35rem 1.6rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq-num { font-family: "Playfair Display", serif; font-size: 1.6rem; line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); min-width: 2.2rem; }
.faq-q { flex: 1; font-family: "Playfair Display", serif; font-size: 1.3rem; line-height: 1.3; color: var(--color-lake-900); }
.faq-plus { position: relative; flex: none; width: 2.1rem; height: 2.1rem; border-radius: 9999px; border: 1px solid var(--color-gold-500); transition: background .3s, transform .4s; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: .8rem; height: 1px; background: var(--color-gold-600); transform: translate(-50%, -50%); transition: background .3s, transform .4s; }
.faq-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq[open] .faq-plus { background: var(--color-gold-500); }
.faq[open] .faq-plus::before, .faq[open] .faq-plus::after { background: var(--color-lake-950); }
.faq[open] .faq-plus::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq-a { padding: 0 1.6rem 1.6rem 4.85rem; font-size: .98rem; line-height: 1.85; color: rgba(7,28,46,0.95); text-align: left; animation: faq-in .45s ease; }
@keyframes faq-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 640px) { .faq-a { padding-left: 1.6rem; } .faq-num { display: none; } }

/* ---------- Enquiry (Book Now) dialog ---------- */
.enq[hidden] { display: none; }
.enq { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 1rem; opacity: 0; transition: opacity .25s ease; }
.enq.is-open { opacity: 1; }
.enq-backdrop { position: absolute; inset: 0; background: rgba(7,28,46,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.enq-dialog { position: relative; width: 100%; max-width: 40rem; max-height: calc(100vh - 2rem); overflow-y: auto; background: #fff; border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: 0 40px 90px -30px rgba(0,0,0,.7); transform: translateY(18px) scale(.98); transition: transform .3s ease; }
.enq.is-open .enq-dialog { transform: none; }
.enq-x { position: absolute; top: 1rem; right: 1rem; width: 2.4rem; height: 2.4rem; display: grid; place-items: center; color: var(--color-lake-800); border-radius: 9999px; transition: background .2s, color .2s; }
.enq-x:hover { background: var(--color-lake-50); color: var(--color-lake-950); }
.enq-title { font-family: "Playfair Display", serif; font-size: clamp(1.8rem, 3vw, 2.3rem); line-height: 1.1; color: var(--color-lake-900); margin-top: .4rem; }
.enq-title em { font-style: italic; color: var(--color-gold-600); }
.enq-sub { margin-top: .5rem; font-size: .92rem; color: rgba(7,28,46,0.87); }
.enq-pkg { display: inline-block; margin-top: 1rem; padding: .45rem .9rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--color-gold-600); background: rgba(32,192,232,.12); border: 1px solid rgba(32,192,232,.45); border-radius: 9999px; }
.enq-grid { display: grid; gap: 1rem 1.1rem; grid-template-columns: 1fr; margin-top: 1.4rem; }
@media (min-width: 560px) { .enq-grid { grid-template-columns: 1fr 1fr; } }
.enq-f label { display: block; margin-bottom: .4rem; font-size: .8rem; font-weight: 500; color: var(--color-lake-900); }
.enq-f label span { font-weight: 400; color: rgba(7,28,46,0.72); }
.enq-f input, .enq-f select, .enq-f textarea { width: 100%; padding: .8rem .95rem; font-size: .93rem; color: var(--color-lake-900); background: #fff; border: 1px solid rgba(11,44,69,.18); border-radius: .5rem; outline: none; transition: border-color .2s, box-shadow .2s; font-family: inherit; }
.enq-f textarea { resize: vertical; min-height: 2.9rem; }
.enq-f input::placeholder, .enq-f textarea::placeholder { color: rgba(7,28,46,0.52); }
.enq-f input:focus, .enq-f select:focus, .enq-f textarea:focus { border-color: var(--color-gold-500); box-shadow: 0 0 0 3px rgba(32,192,232,.22); }
.enq-f.is-bad input, .enq-f.is-bad select { border-color: #c0392b; }
.enq-dialog small { display: block; min-height: 0; margin-top: .3rem; font-size: .76rem; color: #c0392b; }
.enq-dialog small:empty { display: none; }
.enq-cap { display: flex; gap: .6rem; align-items: stretch; }
.enq-cap img { height: 2.9rem; width: auto; border: 1px solid rgba(11,44,69,.18); border-radius: .5rem; background: #F2F8FC; }
.enq-refresh { width: 2.9rem; flex: none; display: grid; place-items: center; color: var(--color-lake-800); border: 1px solid rgba(11,44,69,.18); border-radius: .5rem; transition: border-color .2s, color .2s; }
.enq-refresh:hover { border-color: var(--color-gold-500); color: var(--color-gold-600); }
.enq-cap input { flex: 1; min-width: 0; letter-spacing: .35em; text-transform: uppercase; }
.enq-consent { display: flex; gap: .7rem; align-items: flex-start; margin-top: 1.2rem; font-size: .84rem; line-height: 1.55; color: rgba(7,28,46,0.95); cursor: pointer; }
.enq-consent input { margin-top: .2rem; width: 1.1rem; height: 1.1rem; flex: none; accent-color: var(--color-gold-500); }
.enq-consent a { font-weight: 600; text-decoration: underline; text-decoration-color: var(--color-gold-500); text-underline-offset: 3px; }
.enq-formerr { margin-top: 1rem; padding: .7rem .9rem; font-size: .85rem; color: #9b2c1f; background: #fdeeea; border-radius: .5rem; }
.enq-note { margin-top: .9rem; font-size: .75rem; color: rgba(7,28,46,0.72); }
.enq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.enq-done { text-align: center; padding: 1.5rem 0 .5rem; }
.enq-done[hidden], [data-enq-form-wrap][hidden] { display: none; }
.enq-tick { width: 4.2rem; height: 4.2rem; margin: 0 auto 1rem; display: grid; place-items: center; color: var(--color-gold-300); background: var(--color-lake-950); border: 1px solid var(--color-gold-500); border-radius: 9999px; }

/* Enquiry dialog: compact so it fits the screen */
.enq { padding: .75rem; }
.enq-dialog { max-width: 38rem; max-height: calc(100vh - 1.5rem); max-height: calc(100dvh - 1.5rem); padding: 1.4rem 1.6rem 1.25rem; }
.enq-title { font-size: clamp(1.6rem, 2.6vw, 2rem); margin-top: 0; }
.enq-sub { margin-top: .3rem; font-size: .86rem; }
.enq-pkg { margin-top: .7rem; padding: .3rem .75rem; font-size: .66rem; }
.enq-grid { gap: .7rem .9rem; margin-top: 1rem; }
.enq-f label { margin-bottom: .25rem; font-size: .74rem; }
.enq-f input, .enq-f select, .enq-f textarea { padding: .6rem .8rem; font-size: .9rem; }
.enq-f textarea { min-height: 0; height: 2.5rem; resize: none; }
.enq-row { margin-top: .7rem; }
.enq-cap img { height: 2.5rem; }
.enq-refresh { width: 2.5rem; }
.enq-consent { margin-top: .8rem; font-size: .78rem; line-height: 1.45; }
.enq-dialog small { margin-top: .2rem; font-size: .72rem; line-height: 1.3; }
.enq-formerr { margin-top: .7rem; padding: .5rem .75rem; font-size: .8rem; }
.enq-dialog .btn[type=submit] { margin-top: .9rem; }
.enq-note { margin-top: .6rem; font-size: .7rem; text-align: center; }
.enq-x { top: .7rem; right: .7rem; }
.enq-f.is-bad input, .enq-f.is-bad select, .enq-f.is-bad textarea { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
.enq-f.is-ok input:not(:placeholder-shown) { border-color: rgba(46,125,50,.55); }
.enq-consent.is-bad span { color: #c0392b; }
@media (max-height: 640px) { .enq-sub { display: none; } }

/* ---------- Honeymoon panel (solid, no background photo) ---------- */
.hm-panel { position: relative; background: radial-gradient(120% 140% at 0% 0%, #134566 0%, var(--color-lake-950) 55%); border-radius: var(--radius-card); box-shadow: 0 40px 80px -40px rgba(7,28,46,.7); padding: clamp(2rem, 4.5vw, 4rem); }
.hm-panel::before { content: ""; position: absolute; inset: .7rem; border: 1px solid rgba(32,192,232,.4); border-radius: calc(var(--radius-card) - .3rem); pointer-events: none; }
.hm-grid { position: relative; display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .hm-grid { grid-template-columns: 1.15fr .85fr; gap: 4rem; } .hm-list { padding-left: 4rem; border-left: 1px solid rgba(32,192,232,.35); } }
.hm-items { list-style: none; margin: 1.25rem 0 0; padding: 0; }
.hm-items li { display: flex; align-items: baseline; gap: 1.1rem; padding: .85rem 0; border-bottom: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.9); font-size: .95rem; }
.hm-items li:last-child { border-bottom: 0; }
.hm-num { flex: none; min-width: 2.4rem; font-family: "Playfair Display", serif; font-size: 1.15rem; letter-spacing: .08em; color: var(--color-gold-400); }

/* Honeymoon: lake photo with the inclusions card overlapping its lower edge */
.honey-photo { position: relative; aspect-ratio: 16 / 11; border-radius: var(--radius-card); overflow: hidden; border: 1px solid rgba(94,211,243,.45); box-shadow: 0 30px 60px -28px rgba(0,0,0,.7); }
.honey-photo img { width: 100%; height: 100%; object-fit: cover; }
.honey-photo::after { content: ""; position: absolute; inset: 55% 0 0 0; background: linear-gradient(to top, rgba(7,28,46,.55), transparent); pointer-events: none; }
.honey-glass { position: relative; margin: -2.75rem 1.25rem 0; padding: 1.4rem 1.6rem 1.5rem; }
@media (max-width: 1023px) { .honey-glass { margin-inline: .75rem; } }

/* ---------- Guest reviews (theme + Google review card) ---------- */
.rv2-section { position: relative; overflow: hidden; background: radial-gradient(ellipse at 20% 0%, rgba(32,192,232,.12), transparent 55%), linear-gradient(180deg, var(--color-lake-950), var(--color-lake-900)); padding-block: clamp(3.5rem, 7vw, 6rem); }
.rv2-section::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size: 26px 26px; pointer-events: none; }
.rv2-section > * { position: relative; }
.rv2 { outline: none; }
.rv2-viewport { overflow: hidden; margin-inline: -.65rem; padding: .5rem 0 1.75rem; cursor: grab; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.rv2-viewport:active { cursor: grabbing; }
.rv2-track { display: flex; will-change: transform; }
.rv2-slide { flex: 0 0 100%; padding-inline: .65rem; display: flex; }
@media (min-width: 700px)  { .rv2-slide { flex-basis: 50%; } }
@media (min-width: 1024px) { .rv2-slide { flex-basis: 33.3333%; } }

.rv2-card { position: relative; width: 100%; display: flex; flex-direction: column; padding: 1.6rem 1.6rem 1.25rem; overflow: hidden; background: linear-gradient(180deg, #fff, #F2F8FC); border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); box-shadow: 0 28px 50px -24px rgba(0,0,0,.7); font-family: Roboto, Inter, system-ui, sans-serif; transition: transform .45s, box-shadow .45s; }
.rv2-card:hover { transform: translateY(-6px); box-shadow: 0 36px 60px -26px rgba(0,0,0,.8); }
.rv2-quote { position: absolute; right: 1.3rem; top: 3.6rem; font-family: "Playfair Display", serif; font-size: 8rem; line-height: 1; color: var(--color-gold-500); opacity: .13; pointer-events: none; }
.rv2-head { display: flex; align-items: center; gap: .85rem; }
.rv2-head svg { margin-left: auto; position: relative; z-index: 1; }
.rv2-avatar { flex: none; width: 2.9rem; height: 2.9rem; display: grid; place-items: center; border-radius: 9999px; color: #fff; font-size: 1.15rem; font-weight: 500; box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(32,192,232,.8); }
.rv2-name { display: block; font-size: .95rem; font-weight: 500; color: #202124; }
.rv2-meta { display: block; margin-top: .1rem; font-size: .75rem; color: #70757a; }
.rv2-stars { margin-top: 1rem; color: #fbbc04; font-size: 1.05rem; letter-spacing: .14em; line-height: 1; }
.rv2-text { flex: 1; margin-top: .85rem; font-family: "Playfair Display", serif; font-size: 1.2rem; line-height: 1.55; color: #202124; text-align: left; }
.rv2-foot { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.2rem; padding-top: .9rem; border-top: 1px solid rgba(11,44,69,.1); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-gold-600); }
.rv2-foot span:last-child { color: rgba(7,28,46,0.67); text-align: right; }

.rv2-dots { display: flex; justify-content: center; gap: .55rem; }
.rv2-dot { width: .6rem; height: .6rem; border-radius: 9999px; border: 1px solid rgba(94,211,243,.7); background: transparent; transition: background .3s, transform .3s, width .3s; }
.rv2-dot.is-active { background: var(--color-gold-400); width: 1.6rem; }
/* Closing call-to-action title */
.cta-title { font-family: "Playfair Display", serif; font-size: clamp(1.9rem, 3.2vw, 2.6rem); line-height: 1.12; font-weight: 500; color: var(--color-lake-900); margin-top: .5rem; }
.cta-title em { font-style: italic; color: var(--color-gold-600); }
/* ---------- Closing call-to-action (light) ---------- */
.cta-news { padding-block: clamp(3rem, 6vw, 4.5rem); }
.cta-single { max-width: 44rem; margin-inline: auto; }

/* ---------- Packages page ---------- */
.pkg[hidden] { display: none; }
.pkg-tall > .pkg { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; }
.pkg-tall > .pkg > .pkg-body { display: grid; grid-template-rows: subgrid; grid-row: 2 / span 3; row-gap: 0; }
.pkg-tall .pkg-title { min-height: 0; }
.page-hero { position: relative; overflow: hidden; padding-block: clamp(2.75rem, 6vw, 4.5rem); background: radial-gradient(ellipse at 50% 0%, rgba(32,192,232,.18), transparent 60%), linear-gradient(180deg, var(--color-lake-950), var(--color-lake-900)); border-bottom: 1px solid rgba(32,192,232,.35); }
.page-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px); background-size: 26px 26px; pointer-events: none; }
.crumbs { display: flex; justify-content: center; align-items: center; gap: .6rem; margin-bottom: 1.25rem; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.crumbs a { color: var(--color-gold-300); transition: color .2s; }
.crumbs a:hover { color: #fff; }
.pkg-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.chip { padding: .6rem 1.35rem; font-size: .72rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--color-lake-800); background: #fff; border: 1px solid rgba(11,44,69,.15); border-radius: 9999px; transition: background .25s, color .25s, border-color .25s; }
.chip:hover { border-color: var(--color-gold-500); color: var(--color-lake-900); }
.chip.is-active { background: var(--color-lake-900); border-color: var(--color-lake-900); color: var(--color-gold-300); }
.pkg-count { margin: 1.1rem 0 2rem; text-align: center; font-size: .8rem; color: rgba(7,28,46,0.72); }
.pkg-side { background: #fff; border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); padding: 1.75rem; box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 24px 44px -24px rgba(11,44,69,.35); }
.pkg-points { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.pkg-points li { position: relative; padding-left: 1.5rem; font-size: .92rem; line-height: 1.5; color: var(--color-lake-800); }
.pkg-points li::before { content: ""; position: absolute; left: .1rem; top: .5rem; width: .4rem; height: .4rem; background: var(--color-gold-500); transform: rotate(45deg); }
/* Image banner for inner pages: 1920x1080 (16:9), never taller than the screen */
.page-banner { position: relative; overflow: hidden; width: 100%; aspect-ratio: 16 / 9; max-height: calc(100vh - 5rem); min-height: 15rem; background: var(--color-lake-900); border-bottom: 1px solid rgba(32,192,232,.4); }
.page-banner img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.page-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(7,28,46,.12), rgba(7,28,46,.3)); pointer-events: none; }
/* ---------- Accommodation (detailed room sections) ---------- */
.acc-jump { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.75rem; }
.acc-jump a { padding: .55rem 1.1rem; font-size: .7rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--color-lake-800); background: #fff; border: 1px solid rgba(32,192,232,.55); border-radius: 9999px; transition: background .25s, color .25s, border-color .25s; }
.acc-jump a:hover { background: var(--color-lake-900); border-color: var(--color-lake-900); color: var(--color-gold-300); }

.rd { padding-block: clamp(3rem, 6vw, 5rem); scroll-margin-top: 5rem; }
.rd-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.rd-gallery figure { margin: 0; overflow: hidden; border-radius: var(--radius-card); aspect-ratio: 4 / 3; background: var(--color-lake-900); }
.rd-gallery .rd-main { grid-column: 1 / -1; aspect-ratio: 16 / 11; box-shadow: 0 28px 48px -28px rgba(11,44,69,.5); }
.rd-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s ease; }
.rd-gallery figure:hover img { transform: scale(1.06); }

.rd-specs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 1.6rem 0 0; border: 1px solid rgba(32,192,232,.45); border-radius: var(--radius-card); overflow: hidden; background: rgba(255,255,255,.6); }
.rd-specs > div { padding: .95rem 1.15rem; border-bottom: 1px solid rgba(32,192,232,.3); }
.rd-specs > div:nth-child(odd) { border-right: 1px solid rgba(32,192,232,.3); }
.rd-specs > div:nth-last-child(-n+2) { border-bottom: 0; }
.rd-specs dt { font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--color-gold-600); }
.rd-specs dd { margin: .25rem 0 0; font-family: "Playfair Display", serif; font-size: 1.2rem; line-height: 1.2; color: var(--color-lake-900); }

.rd-h3 { margin-top: 1.9rem; font-family: "Playfair Display", serif; font-size: 1.45rem; color: var(--color-lake-900); }
.rd-list { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem 1.5rem; }
.rd-list li { position: relative; padding-left: 1.5rem; font-size: .92rem; line-height: 1.5; color: var(--color-lake-800); }
.rd-list li::before { content: ""; position: absolute; left: .1rem; top: .5rem; width: .42rem; height: .42rem; background: var(--color-gold-500); transform: rotate(45deg); }
.rd-best { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(11,44,69,.1); font-size: .95rem; color: rgba(7,28,46,0.95); }
.rd-best span { margin-right: .5rem; font-size: .66rem; letter-spacing: .24em; text-transform: uppercase; color: var(--color-gold-600); }
@media (max-width: 560px) { .rd-list { grid-template-columns: 1fr; } }

.amen-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px)  { .amen-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .amen-grid { grid-template-columns: repeat(5, 1fr); } }
.amen { text-align: center; padding: 1.6rem 1rem; background: #F2F8FC; border: 1px solid rgba(32,192,232,.3); border-radius: var(--radius-card); transition: border-color .35s, transform .35s, box-shadow .35s; }
.amen:hover { border-color: var(--color-gold-500); transform: translateY(-4px); box-shadow: 0 20px 34px -22px rgba(11,44,69,.4); }
.amen-icon { width: 3.1rem; height: 3.1rem; margin: 0 auto 1rem; display: grid; place-items: center; color: var(--color-gold-300); background: var(--color-lake-950); border: 1px solid var(--color-gold-500); border-radius: 9999px; }
.amen h3 { font-family: "Playfair Display", serif; font-size: 1.2rem; line-height: 1.2; color: var(--color-lake-900); }
.amen p { margin-top: .35rem; font-size: .78rem; line-height: 1.5; color: rgba(7,28,46,0.82); text-align: center; }

/* Room sections: photos match the height of the text beside them (large screens) */
@media (min-width: 1024px) {
  .rd-gallery { position: absolute; inset: 0; grid-template-rows: 2fr 1fr; }
  .rd-gallery figure, .rd-gallery .rd-main { aspect-ratio: auto; min-height: 0; }
}

/* ---------- Blog ---------- */
.blog-list { display: grid; gap: 1.5rem; }
.bcard { position: relative; display: grid; grid-template-columns: 1fr; background: #fff; border-radius: var(--radius-card); overflow: hidden; box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 20px 40px -26px rgba(11,44,69,.35); transition: transform .45s, box-shadow .45s; }
@media (min-width: 640px) { .bcard { grid-template-columns: minmax(0, 38%) 1fr; } }
.bcard[hidden] { display: none; }
.bcard::before { content: ""; position: absolute; z-index: 2; left: 0; top: 0; bottom: 0; width: 3px; background: var(--color-gold-500); transform: scaleY(0); transform-origin: top; transition: transform .45s; }
.bcard:hover { transform: translateY(-4px); box-shadow: 0 30px 52px -28px rgba(11,44,69,.45); }
.bcard:hover::before { transform: scaleY(1); }
.bcard-media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; }
@media (min-width: 640px) { .bcard-media { aspect-ratio: auto; min-height: 15rem; } }
.bcard-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s ease; }
.bcard:hover .bcard-media img { transform: scale(1.07); }
.bcard-cat { position: absolute; z-index: 1; top: 1rem; left: 1rem; padding: .4rem .9rem; font-size: .64rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #fff; background: rgba(7,28,46,.55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(94,211,243,.55); border-radius: 9999px; }
.bcard-body { display: flex; flex-direction: column; justify-content: center; padding: 1.6rem 1.9rem; }
.bcard-meta { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--color-gold-600); }
.bcard-title { margin-top: .6rem; font-family: "Playfair Display", serif; font-size: clamp(1.4rem, 2vw, 1.7rem); line-height: 1.18; color: var(--color-lake-900); }
.bcard-title a { transition: color .25s; }
.bcard-title a:hover { color: var(--color-gold-600); }
.bcard-excerpt { margin-top: .8rem; font-size: .94rem; line-height: 1.7; color: rgba(7,28,46,0.92); text-align: left; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.bcard-more { display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start; margin-top: 1.1rem; padding-bottom: .2rem; font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-600); border-bottom: 1px solid var(--color-gold-500); transition: color .25s, gap .25s; }
.bcard-more:hover { color: var(--color-lake-900); gap: .7rem; }

.side-box { background: #fff; border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); padding: 1.5rem 1.6rem 1.25rem; box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 20px 40px -26px rgba(11,44,69,.35); }
.side-title { font-family: "Playfair Display", serif; font-size: 1.45rem; color: var(--color-lake-900); margin-bottom: .75rem; }
.cat-list { display: grid; }
.cat-list button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 0; font-size: .85rem; letter-spacing: .04em; text-align: left; color: var(--color-lake-800); border-top: 1px solid rgba(11,44,69,.1); transition: color .25s, padding .25s; }
.cat-list button:hover, .cat-list button.is-active { color: var(--color-gold-600); padding-left: .35rem; }
.cat-list button.is-active span { font-weight: 600; }
.cat-list em { font-style: normal; min-width: 1.7rem; padding: .1rem .5rem; font-size: .72rem; text-align: center; color: var(--color-lake-800); background: var(--color-lake-50); border-radius: 9999px; }
.cat-list button.is-active em { color: var(--color-lake-950); background: var(--color-gold-300); }

.art-h2 { margin: 2.2rem 0 .8rem; font-family: "Playfair Display", serif; font-size: clamp(1.5rem, 2.2vw, 1.95rem); line-height: 1.2; color: var(--color-lake-900); }
.art-h2::before { content: ""; display: block; width: 2.5rem; height: 1px; margin-bottom: .8rem; background: var(--color-gold-500); }
.art-cta { margin-top: 2.5rem; padding: 1.75rem 1.9rem; background: #fff; border-left: 3px solid var(--color-gold-500); border-radius: var(--radius-card); box-shadow: 0 20px 40px -26px rgba(11,44,69,.4); }
.art-more { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.art-more a { display: block; font-family: "Playfair Display", serif; font-size: 1.1rem; line-height: 1.3; color: rgba(255,255,255,.85); transition: color .25s; }
.art-more a:hover { color: var(--color-gold-300); }

/* ---------- Gallery: bento grid + lightbox ---------- */
.bento { display: grid; gap: .9rem; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 11rem; grid-auto-flow: dense; }
@media (min-width: 768px)  { .bento { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 13rem; gap: 1rem; } }
@media (min-width: 1200px) { .bento { grid-auto-rows: 14.5rem; } }
.bt { position: relative; display: block; padding: 0; overflow: hidden; cursor: zoom-in; border-radius: var(--radius-card); background: var(--color-lake-900); box-shadow: 0 1px 2px rgba(11,44,69,.08), 0 22px 40px -26px rgba(11,44,69,.5); }
.bt-s { grid-column: span 1; grid-row: span 1; }
.bt-w { grid-column: span 2; grid-row: span 1; }
.bt-t { grid-column: span 1; grid-row: span 2; }
.bt-b { grid-column: span 2; grid-row: span 2; }
.bt img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s ease; }
.bt:hover img, .bt:focus-visible img { transform: scale(1.08); }
.bt::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(7,28,46,.82), rgba(7,28,46,0) 55%); opacity: 0; transition: opacity .5s; }
.bt::after { content: ""; position: absolute; inset: .55rem; z-index: 1; border: 1px solid rgba(94,211,243,0); border-radius: calc(var(--radius-card) - .3rem); transition: border-color .5s; pointer-events: none; }
.bt:hover::before, .bt:focus-visible::before { opacity: 1; }
.bt:hover::after, .bt:focus-visible::after { border-color: rgba(94,211,243,.7); }
.bt-cap { position: absolute; z-index: 2; left: 1.25rem; right: 1.25rem; bottom: 1.15rem; text-align: left; transform: translateY(10px); opacity: 0; transition: transform .5s, opacity .5s; }
.bt:hover .bt-cap, .bt:focus-visible .bt-cap { transform: none; opacity: 1; }
.bt-line { display: block; width: 2.4rem; height: 1px; margin-bottom: .6rem; background: var(--color-gold-400); }
.bt-title { display: block; font-family: "Playfair Display", serif; font-size: 1.3rem; line-height: 1.15; color: #fff; }

.lb[hidden] { display: none; }
.lb { position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; padding: 1rem; background: rgba(7,28,46,.94); opacity: 0; transition: opacity .25s; }
.lb.is-open { opacity: 1; }
.lb-fig { margin: 0; max-width: min(92vw, 78rem); text-align: center; }
.lb-fig img { max-width: 100%; max-height: 80vh; margin-inline: auto; border-radius: var(--radius-card); box-shadow: 0 40px 90px -30px #000; opacity: 0; transform: scale(.98); transition: opacity .35s, transform .35s; }
.lb-fig img.is-in { opacity: 1; transform: none; }
.lb-fig figcaption { margin-top: 1rem; font-family: "Playfair Display", serif; font-size: 1.25rem; color: var(--color-gold-300); letter-spacing: .04em; }
.lb-x, .lb-nav { position: absolute; display: grid; place-items: center; width: 3rem; height: 3rem; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(94,211,243,.5); border-radius: 9999px; transition: background .25s, color .25s; }
.lb-x:hover, .lb-nav:hover { background: var(--color-gold-500); color: var(--color-lake-950); }
.lb-x { top: 1.25rem; right: 1.25rem; }
.lb-nav { top: 50%; transform: translateY(-50%); }
.lb-prev { left: 1.25rem; }
.lb-next { right: 1.25rem; }
@media (max-width: 640px) { .lb-nav { top: auto; bottom: 1.25rem; transform: none; } .lb-prev { left: calc(50% - 3.5rem); } .lb-next { right: calc(50% - 3.5rem); } }

/* ---------- Contact ---------- */
.cf-card { background: #fff; border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); padding: clamp(1.5rem, 3vw, 2.4rem); box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 28px 50px -30px rgba(11,44,69,.4); }
.cf-title { font-family: "Playfair Display", serif; font-size: clamp(1.5rem, 2.2vw, 1.9rem); line-height: 1.15; color: var(--color-lake-900); }
.cf-grid { margin-top: 0; }
.cf-card textarea { width: 100%; padding: .8rem .95rem; font-size: .93rem; color: var(--color-lake-900); background: #fff; border: 1px solid rgba(11,44,69,.18); border-radius: .5rem; outline: none; resize: vertical; min-height: 8rem; font-family: inherit; transition: border-color .2s, box-shadow .2s; }
.cf-card textarea::placeholder { color: rgba(7,28,46,0.52); }
.cf-card textarea:focus { border-color: var(--color-gold-500); box-shadow: 0 0 0 3px rgba(32,192,232,.22); }
.cf-card .enq-f.is-bad textarea { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,.12); }
.cf-card .enq-f input, .cf-card .enq-f textarea { font-size: .93rem; }
.cf-card .enq-done[hidden], .cf-card [data-cf-wrap][hidden] { display: none; }
.cf-card small { display: block; margin-top: .25rem; font-size: .74rem; color: #c0392b; }
.cf-card small:empty { display: none; }
.cf-info { background: var(--color-lake-950); color: #fff; border-radius: var(--radius-card); padding: clamp(1.5rem, 3vw, 2.2rem); border: 1px solid rgba(32,192,232,.4); box-shadow: 0 28px 50px -30px rgba(7,28,46,.7); }
.cf-info .cf-title { color: #fff; }
.cf-list { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: 1.15rem; }
.cf-list li { display: flex; gap: .9rem; align-items: flex-start; font-size: .9rem; line-height: 1.55; color: rgba(255,255,255,.78); }
.cf-list svg { flex: none; margin-top: .15rem; color: var(--color-gold-400); }
.cf-list strong { display: block; margin-bottom: .1rem; font-size: .66rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--color-gold-300); }
.cf-list a { color: #fff; border-bottom: 1px solid rgba(94,211,243,.6); }
.cf-map { overflow: hidden; border-radius: var(--radius-card); border: 1px solid rgba(32,192,232,.4); box-shadow: 0 20px 40px -26px rgba(11,44,69,.45); aspect-ratio: 4 / 3; background: var(--color-lake-100); }
.cf-map iframe { width: 100%; height: 100%; border: 0; display: block; }

/* ---------- Policy pages ---------- */
.toc { display: grid; }
.toc a { display: flex; align-items: baseline; gap: .8rem; padding: .7rem 0; font-size: .86rem; line-height: 1.4; color: var(--color-lake-800); border-top: 1px solid rgba(11,44,69,.1); transition: color .25s, padding .25s; }
.toc a span { font-family: "Playfair Display", serif; font-size: 1.05rem; color: var(--color-gold-600); min-width: 1.6rem; }
.toc a:hover { color: var(--color-gold-600); padding-left: .3rem; }
.legal { background: #fff; border-radius: var(--radius-card); border-top: 3px solid var(--color-gold-500); padding: clamp(1.5rem, 3.5vw, 3rem); box-shadow: 0 1px 2px rgba(11,44,69,.06), 0 28px 50px -30px rgba(11,44,69,.4); }
.legal-sec { scroll-margin-top: 6.5rem; padding-bottom: 1.8rem; margin-bottom: 1.8rem; border-bottom: 1px solid rgba(11,44,69,.1); }
.legal-sec h2 { display: flex; align-items: baseline; gap: .9rem; font-family: "Playfair Display", serif; font-size: clamp(1.4rem, 2vw, 1.75rem); line-height: 1.2; color: var(--color-lake-900); }
.legal-sec h2 span { color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); font-size: 1.5rem; }
.legal-sec p { margin-top: .9rem; font-size: .97rem; line-height: 1.85; color: rgba(7,28,46,0.95); text-align: left; }
.legal-list { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; gap: .6rem; }
.legal-list li { position: relative; padding-left: 1.5rem; font-size: .95rem; line-height: 1.7; color: rgba(7,28,46,0.95); }
.legal-list li::before { content: ""; position: absolute; left: .1rem; top: .65rem; width: .42rem; height: .42rem; background: var(--color-gold-500); transform: rotate(45deg); }
.legal .art-cta { margin-top: 0; box-shadow: none; background: #F2F8FC; }

/* Footer map */
.foot-map { overflow: hidden; border-radius: var(--radius-card); border: 1px solid rgba(94,211,243,.35); aspect-ratio: 4 / 3; background: var(--color-lake-900); }
.foot-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: saturate(.85) contrast(1.02); }

/* ---------- Floating action buttons: round WhatsApp / Mail / Call ---------- */
.fab { position: fixed; z-index: 40; right: 1rem; bottom: 1.25rem; display: flex; flex-direction: column; gap: .8rem; }
.fab-btn { position: relative; width: 3.4rem; height: 3.4rem; display: grid; place-items: center; border-radius: 9999px; color: #fff; box-shadow: 0 12px 26px -8px rgba(7,28,46,.65); transition: transform .3s, box-shadow .3s; }
.fab-btn svg { width: 1.5rem; height: 1.5rem; }
.fab-btn:hover, .fab-btn:focus-visible { transform: translateY(-3px) scale(1.06); box-shadow: 0 18px 32px -8px rgba(7,28,46,.75); }
.fab-wa { background: #1fa855; }
.fab-wa svg { width: 1.7rem; height: 1.7rem; }
.fab-mail { background: var(--color-gold-500); color: var(--color-lake-950); }
.fab-call { background: var(--color-lake-600); color: #fff; }
.fab-wa::before { content: ""; position: absolute; inset: -.35rem; border-radius: inherit; border: 2px solid rgba(31,168,85,.55); animation: fab-ping 2.4s ease-out infinite; pointer-events: none; }
@keyframes fab-ping { 0% { transform: scale(.92); opacity: .8; } 80%, 100% { transform: scale(1.3); opacity: 0; } }
.fab-tip { position: absolute; right: calc(100% + .8rem); top: 50%; transform: translate(6px, -50%); padding: .4rem .85rem; white-space: nowrap; font-size: .7rem; letter-spacing: .1em; color: #fff; background: var(--color-lake-950); border: 1px solid rgba(94,211,243,.5); border-radius: .4rem; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.fab-btn:hover .fab-tip, .fab-btn:focus-visible .fab-tip { opacity: 1; transform: translate(0, -50%); }
@media (max-width: 640px) { .fab { right: .75rem; bottom: .9rem; gap: .65rem; } .fab-btn { width: 3rem; height: 3rem; } .fab-tip { display: none; } }

/* ---------- Premium typography system ----------
   Display & headings : Playfair Display 500 (editorial luxury serif)
   Special text       : Playfair Display italic (taglines, quotes, <em> accents)
   Labels & nav       : DM Sans 500, uppercase, wide tracking (clean modern sans)
   Body               : DM Sans 400 / 300, airy line height */
body { font-family: "DM Sans", system-ui, sans-serif; font-weight: 400; letter-spacing: .005em; }
.section-title, .display, .cta-title, .enq-title, .bcard-title, .pkg-title, .room-title, .art-h2, .faq-q, .side-title, .cf-title, .rd-h3, .news-title { font-family: "Playfair Display", serif; font-weight: 500; letter-spacing: .005em; }
.section-title em, .display em, .cta-title em, .enq-title em { font-family: "Playfair Display", serif; font-style: italic; font-weight: 400; }
.eyebrow { font-family: "DM Sans", sans-serif; font-weight: 500; letter-spacing: .38em; font-size: .68rem; }
.lead, .section-sub { font-weight: 400; font-size: 1.02rem; line-height: 1.9; }
.btn, .chip, .nav-link, .tp-btn, .crumbs, .bcard-meta, .bcard-more { font-family: "DM Sans", sans-serif; font-weight: 500; }
blockquote, .rv2-text, .quote-mark { font-family: "Playfair Display", serif; }

/* Hero height: dynamic viewport on mobile, minus the 5rem header */
.hero-h { height: calc(100vh - 5rem); height: calc(100dvh - 5rem); }

/* Accessibility & interaction polish */
button, [role="button"], a { cursor: pointer; }
:focus-visible { outline: 2px solid #5ED3F3; outline-offset: 3px; }
.hero.is-paused .hero-dot.is-active .dot-fill { animation-play-state: paused; }

@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition-duration: .01s; }
  html { scroll-behavior: auto; }
}

/* Floating contact buttons: smaller on phones so they never crowd the page controls */
@media (max-width: 639px) {
  .fab { right: .75rem; bottom: .9rem; gap: .55rem; }
  .fab-btn { width: 3rem; height: 3rem; }
}

/* Comfortable tap targets on touch devices (44px minimum) without changing the look */
@media (max-width: 1023px), (pointer: coarse) {
  .rv2-dot { position: relative; }
  .rv2-dot::after { content: ""; position: absolute; inset: -.85rem -.45rem; }
  footer ul a, footer .flex a[href^="tel"], footer .flex a[href^="mailto"] { display: inline-flex; align-items: center; min-height: 44px; }
  footer a[aria-label="Facebook"], footer a[aria-label="Instagram"], footer a[aria-label="Youtube"] { width: 2.75rem; height: 2.75rem; }
  .card-link, a:has(> .arrow) { min-height: 44px; }
}


/* ---------- Highlights strip (overlaps the hero edge) ---------- */
.hl-strip { position: relative; z-index: 5; margin-top: -2.75rem; padding-bottom: 1rem; }
.hl-list { display: grid; grid-template-columns: repeat(2, 1fr); background: #fff; border-radius: .75rem; box-shadow: 0 24px 50px -20px rgba(7,28,46,.45); overflow: hidden; }
.hl-item { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.1rem; border-bottom: 1px solid rgba(11,44,69,.08); }
.hl-item:nth-child(odd) { border-right: 1px solid rgba(11,44,69,.08); }
.hl-item:last-child { grid-column: 1 / -1; border-bottom: 0; border-right: 0; }
.hl-ic { flex: none; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 9999px; background: rgba(32,192,232,.12); color: var(--color-gold-600); }
.hl-item strong { display: block; font-size: .88rem; font-weight: 600; color: var(--color-lake-900); line-height: 1.25; }
.hl-item small { display: block; margin-top: .15rem; font-size: .76rem; color: rgba(7,28,46,0.82); }
@media (min-width: 1024px) {
  .hl-list { grid-template-columns: repeat(5, 1fr); }
  .hl-item { border-bottom: 0; border-right: 1px solid rgba(11,44,69,.08); padding: 1.5rem 1.4rem; }
  .hl-item:nth-child(odd) { border-right: 1px solid rgba(11,44,69,.08); }
  .hl-item:last-child { grid-column: auto; border-right: 0; }
}

/* ---------- Image-first attraction tiles ---------- */
.tile { position: relative; display: block; overflow: hidden; border-radius: .75rem; aspect-ratio: 3 / 4; color: #fff; isolation: isolate; box-shadow: 0 18px 40px -18px rgba(7,28,46,.55); }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.1s cubic-bezier(.2,.7,.2,1); }
.tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(7,28,46,.92) 0%, rgba(7,28,46,.45) 45%, rgba(7,28,46,0) 75%); transition: background .5s; }
.tile:hover img, .tile:focus-visible img { transform: scale(1.08); }
.tile-num { position: absolute; top: 1.1rem; left: 1.25rem; font-family: "Playfair Display", serif; font-size: 1.1rem; letter-spacing: .12em; color: rgba(255,255,255,.85); }
.tile-body { position: absolute; inset: auto 0 0 0; padding: 1.6rem; }
.tile-body h3 { font-family: "Playfair Display", serif; font-size: 1.55rem; line-height: 1.2; }
.tile-body p { margin-top: .55rem; font-size: .92rem; line-height: 1.65; color: rgba(255,255,255,.82); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .5s ease, opacity .4s ease; }
.tile-cta { margin-top: .9rem; display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-300); }
.tile:hover .tile-body p, .tile:focus-visible .tile-body p { max-height: 8rem; opacity: 1; }
/* Touch screens have no hover: always show the description */
@media (hover: none), (max-width: 1023px) {
  .tile { aspect-ratio: 4 / 5; }
  .tile-body p { max-height: none; opacity: 1; }
}

/* ---------- Package buttons: never wrap on narrow cards ---------- */
.pkg-foot .btn { white-space: nowrap; letter-spacing: .12em; padding-inline: .5rem; justify-content: center; }


/* ---------- Packages v3: one clear action per card ---------- */
.pkg-media { display: block; }
.pkg-flag { position: absolute; z-index: 2; top: 1rem; right: 1rem; padding: .4rem .85rem; border-radius: 9999px; background: var(--color-gold-500); color: var(--color-lake-950); font-size: .66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; box-shadow: 0 8px 18px -6px rgba(7,28,46,.5); }
.pkg-body { padding: 1.5rem 1.6rem 1.7rem; }
.pkg-cat { font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--color-gold-600); }
.pkg-title { margin-top: .5rem; font-size: 1.4rem; line-height: 1.25; }
.pkg-title a { color: inherit; transition: color .25s; }
.pkg-title a:hover { color: var(--color-gold-600); }
.pkg-desc { min-height: 0; margin-top: .85rem; padding-top: 0; border-top: 0; font-size: .93rem; line-height: 1.7; -webkit-line-clamp: 3; flex: 1; }
.pkg-foot { display: flex; flex-direction: column; align-items: stretch; gap: .35rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgba(11,44,69,.1); }
.pkg-foot .pkg-cta { width: 100%; justify-content: center; white-space: normal; text-align: center; letter-spacing: .1em; padding-block: .95rem; }
.pkg-more { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; font-size: .72rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-lake-800); transition: color .25s, gap .25s; }
.pkg-more:hover { color: var(--color-gold-600); gap: .7rem; }

/* ---------- Reviews v3: scannable cards + arrows ---------- */
.rv2-rate { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.rv2-rate .rv2-stars { margin-top: 0; }
.rv2-tag { padding: .3rem .7rem; border-radius: 9999px; background: rgba(32,192,232,.12); color: var(--color-gold-600); font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.rv2-text { margin-top: 1rem; font-size: 1.08rem; line-height: 1.65; }
.rv2-nav { display: flex; align-items: center; justify-content: center; gap: 1.25rem; }
.rv2-arrow { width: 2.9rem; height: 2.9rem; display: grid; place-items: center; border-radius: 9999px; border: 1px solid rgba(255,255,255,.3); color: #fff; transition: background .3s, border-color .3s, color .3s; }
.rv2-arrow:hover, .rv2-arrow:focus-visible { background: var(--color-gold-500); border-color: var(--color-gold-500); color: var(--color-lake-950); }
@media (max-width: 480px) { .rv2-nav { gap: .6rem; } .rv2-arrow { width: 2.75rem; height: 2.75rem; } }

/* Fixes: description never overlaps the button; flag sits bottom-right of the photo; quote mark clear of the tag */
.pkg-desc { flex: 0 0 auto; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; min-height: 0; }
.pkg-foot { margin-top: auto; }
.pkg-body { flex: 1; }
.pkg-desc + .pkg-foot { margin-top: 1.25rem; }
.pkg-body > .pkg-desc { margin-bottom: auto; padding-bottom: 0; }
.pkg-flag { top: auto; bottom: 1rem; right: 1rem; }
.rv2-quote { top: auto; bottom: .4rem; right: 1.2rem; }

/* The old subgrid row layout expected 3 body rows; v3 cards use a simple flex column that aligns the footer to the bottom. */
.pkg-tall > .pkg { display: flex; flex-direction: column; grid-row: auto; grid-template-rows: none; }
.pkg-tall > .pkg > .pkg-body { display: flex; flex-direction: column; grid-row: auto; grid-template-rows: none; flex: 1; }

/* ---------- FAQ v2: search + smooth accordion ---------- */
.faq-search { position: relative; display: flex; align-items: center; gap: .75rem; padding: 0 1.25rem; height: 3.5rem; background: #fff; border: 1px solid rgba(11,44,69,.14); border-radius: var(--radius-card); transition: border-color .25s, box-shadow .25s; }
.faq-search:focus-within { border-color: var(--color-gold-500); box-shadow: 0 0 0 3px rgba(32,192,232,.2); }
.faq-search svg { flex: none; color: var(--color-gold-600); }
.faq-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; font: inherit; font-size: .95rem; color: var(--color-lake-900); }
.faq-search input::placeholder { color: rgba(7,28,46,0.67); }
.faq-count { min-height: 1.5rem; margin: .75rem .25rem 1rem; font-size: .8rem; color: rgba(7,28,46,0.82); }
.faq[hidden] { display: none; }
.faq-a { animation: none; }
.faq-empty { padding: 1.5rem; text-align: center; border: 1px dashed rgba(11,44,69,.2); border-radius: var(--radius-card); color: rgba(7,28,46,0.95); }
.faq-empty a { color: var(--color-gold-600); font-weight: 600; text-decoration: underline; }
.faq summary:focus-visible { outline: 2px solid var(--color-gold-500); outline-offset: -2px; }
.faq .faq-a, .hm-card p, .hm-facts + p { text-align: left; }

/* ---------- Home gallery (hgal) ---------- */
.hgal { display: grid; gap: .9rem; grid-template-columns: repeat(2, 1fr); grid-auto-rows: 11rem; }
.hgal-item, .hgal-cta { position: relative; overflow: hidden; display: block; border-radius: var(--radius-card); isolation: isolate; }
.hg-a { grid-column: span 2; grid-row: span 2; }
.hg-b { grid-column: span 2; }
.hg-e { grid-column: span 2; }
@media (min-width: 1024px) {
  .hgal { grid-template-columns: repeat(6, 1fr); grid-auto-rows: 15rem; }
  .hg-a { grid-column: span 3; grid-row: span 2; }
  .hg-b { grid-column: span 2; }
  .hg-c, .hg-d { grid-column: span 1; }
  .hg-e { grid-column: span 2; }
}
.hgal-item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.hgal-item::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(7,28,46,.75), rgba(7,28,46,0) 55%); opacity: .85; transition: opacity .4s; }
.hgal-item:hover img, .hgal-item:focus-visible img { transform: scale(1.07); }
.hgal-cap { position: absolute; left: 1.1rem; bottom: 1rem; right: 1.1rem; font-family: "Playfair Display", serif; font-size: 1.15rem; color: #fff; transform: translateY(0); transition: transform .4s; }
@media (hover: hover) and (min-width: 1024px) {
  .hgal-cap { transform: translateY(.6rem); opacity: 0; transition: transform .4s, opacity .4s; }
  .hgal-item:hover .hgal-cap, .hgal-item:focus-visible .hgal-cap { transform: none; opacity: 1; }
}
.hgal-cta { display: flex; flex-direction: column; justify-content: space-between; padding: 1.5rem; background: radial-gradient(ellipse at 100% 0%, rgba(32,192,232,.3), transparent 60%), var(--color-lake-950); color: #fff; transition: transform .35s, box-shadow .35s; }
.hgal-cta:hover, .hgal-cta:focus-visible { transform: translateY(-4px); box-shadow: 0 24px 44px -22px rgba(7,28,46,.7); }
.hgal-cta-num { font-size: .68rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--color-gold-300); }
.hgal-cta-text { font-family: "Playfair Display", serif; font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.2; }
.hgal-cta-arrow { align-self: flex-start; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 9999px; background: var(--color-orange-500); color: var(--color-lake-950); transition: transform .3s; }
.hgal-cta:hover .hgal-cta-arrow { transform: translateX(6px); }

/* ---------- Footer polish ---------- */
.foot-h { position: relative; margin-bottom: 1.4rem; padding-bottom: .8rem; font-family: "Playfair Display", serif; font-size: 1.2rem; color: #fff; }
.foot-h::after { content: ""; position: absolute; left: 0; bottom: 0; width: 2rem; height: 2px; background: var(--color-gold-500); }
.foot-links { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.foot-links a { position: relative; display: inline-block; padding-block: .3rem; transition: color .25s, transform .25s; }
.foot-links a:hover { transform: translateX(4px); }
.foot-map { position: relative; }
.foot-map-link { position: absolute; z-index: 2; left: .6rem; bottom: .6rem; display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .8rem; border-radius: 9999px; background: rgba(7,28,46,.82); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1px solid rgba(94,211,243,.5); font-size: .66rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--color-gold-300); transition: background .25s, color .25s; }
.foot-map-link:hover { background: var(--color-gold-500); color: var(--color-lake-950); }
.foot-top { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding-inline: .5rem; font-size: .7rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--color-gold-300); transition: color .25s; }
.foot-top:hover { color: #fff; }
footer .foot-links a { min-height: 44px; display: inline-flex; align-items: center; }
@media (min-width: 1024px) { footer .foot-links a { min-height: 0; display: inline-block; } }
.foot-map iframe { display: block; width: 100%; height: 11rem; border: 0; border-radius: var(--radius-card); }
@media (min-width: 640px) { .foot-top { margin-right: 4.5rem; } }
.foot-map { aspect-ratio: auto; height: 11rem; }
.foot-map iframe { height: 100%; border-radius: 0; }
.foot-map-link { min-height: 44px; }

/* Readability: left-aligned body copy (justified + hyphenated text produced rivers and broken words like "ac-tually") */
.lead, .jt, .faq p, .greview p { text-align: left; hyphens: manual; -webkit-hyphens: manual; text-wrap: pretty; }
.text-center .lead, .text-center.lead { text-align: center; }

/* Packages page: filter chips with counts */
.chip { min-height: 44px; display: inline-flex; align-items: center; gap: .55rem; }
.chip-n { display: inline-grid; place-items: center; min-width: 1.4rem; height: 1.4rem; padding-inline: .3rem; border-radius: 9999px; background: rgba(11,44,69,.08); font-size: .66rem; letter-spacing: 0; }
.chip.is-active .chip-n { background: rgba(255,255,255,.18); }
.pkg-count { margin-top: 1.75rem; text-align: center; font-size: .85rem; color: rgba(7,28,46,0.87); }
.pkg-count strong { color: var(--color-lake-900); font-weight: 600; }
.bt[hidden] { display: none; }

/* Article readability: comfortable size and line length */
article > p.lead:not(.font-medium) { font-size: 1.075rem; line-height: 1.9; max-width: 46rem; }
article > p.lead.font-medium { max-width: 46rem; }

/* Contact: outline buttons on the dark info card were dark-on-dark */
.cf-info .btn-outline { color: #fff; border-color: rgba(255,255,255,.55); }
.cf-info .btn-outline:hover, .cf-info .btn-outline:focus-visible { background: #fff; color: var(--color-lake-950); border-color: #fff; }

/* Inner pages: 44px tap targets on touch screens */
@media (max-width: 1023px), (pointer: coarse) {
  .acc-jump a { display: inline-flex; align-items: center; min-height: 44px; }
  .bcard-more { display: inline-flex; align-items: center; min-height: 44px; }
  .cf-list a, .legal a { display: inline-block; padding-block: .55rem; }
  .pkg-title a { display: inline-block; padding-block: .15rem; }
}

/* ---------- Attractions v2: readable list + image stage ---------- */
.att { display: grid; gap: 1.5rem; }
.att-list { display: grid; }
.att-item { display: block; padding-block: 1.25rem; border-top: 1px solid rgba(11,44,69,.12); color: var(--color-lake-900); }
.att-item:last-child { border-bottom: 1px solid rgba(11,44,69,.12); }
.att-inline { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-card); margin-bottom: 1.1rem; }
.att-row { display: flex; gap: 1.25rem; align-items: flex-start; }
.att-num { flex: none; min-width: 2.4rem; font-family: "Playfair Display", serif; font-size: 1.6rem; line-height: 1.2; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); transition: color .3s; }
.att-main { flex: 1; min-width: 0; }
.att-title { font-family: "Playfair Display", serif; font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.25; color: var(--color-lake-900); transition: color .3s; }
.att-more { display: block; }
.att-desc { display: block; margin-top: .6rem; font-size: .98rem; line-height: 1.75; color: rgba(7,28,46,0.95); max-width: 34rem; }
.att-cta { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; margin-top: .4rem; font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-600); }
.att-stage { display: none; }
@media (min-width: 1024px) {
  .att { grid-template-columns: 5fr 7fr; gap: 3.5rem; align-items: stretch; }
  .att-inline { display: none; }
  .att-item { padding-block: 1.6rem; transition: background .3s; }
  .att-title { color: rgba(11,44,69,.55); }
  .att-item.is-active .att-title, .att-item:hover .att-title, .att-item:focus-visible .att-title { color: var(--color-lake-900); }
  .att-item.is-active .att-num { color: var(--color-gold-600); -webkit-text-stroke-color: var(--color-gold-600); }
  .att-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s ease; }
  .att-more-in { overflow: hidden; min-height: 0; opacity: 0; transition: opacity .35s ease; }
  .att-item.is-active .att-more { grid-template-rows: 1fr; }
  .att-item.is-active .att-more-in { opacity: 1; }
  .att-stage { display: block; position: relative; min-height: 30rem; border-radius: var(--radius-card); overflow: hidden; box-shadow: 0 30px 60px -30px rgba(7,28,46,.55); }
  .att-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity .7s ease, transform 1.6s ease; }
  .att-stage img.is-active { opacity: 1; transform: scale(1); }
}

/* ---------- Location / how to reach ---------- */
.reach-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.reach-list li { display: flex; gap: 1.1rem; align-items: flex-start; padding: 1.25rem 1.4rem; background: #fff; border-radius: var(--radius-card); border: 1px solid rgba(11,44,69,.08); box-shadow: 0 14px 30px -24px rgba(11,44,69,.4); }
.reach-ic { flex: none; width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 9999px; background: rgba(32,192,232,.12); color: var(--color-gold-600); }
.reach-list strong { display: block; font-family: "Playfair Display", serif; font-size: 1.15rem; font-weight: 500; color: var(--color-lake-900); }
.reach-list span > span, .reach-list li > span:last-child { font-size: .95rem; line-height: 1.7; color: rgba(7,28,46,0.95); }
.reach-list-card { padding: 1.75rem; background: #fff; border-radius: var(--radius-card); border: 1px solid rgba(11,44,69,.08); box-shadow: 0 14px 30px -24px rgba(11,44,69,.4); }
.reach-list-card h3 { font-family: "Playfair Display", serif; font-size: 1.35rem; color: var(--color-lake-900); }
.reach-list-card p { margin-top: .7rem; font-size: .95rem; line-height: 1.75; color: rgba(7,28,46,0.95); text-align: left; }
.reach-list-card a { color: var(--color-gold-600); text-decoration: underline; text-underline-offset: 3px; }

/* Article table of contents */
.art-toc { margin: 0 0 2rem; padding: 1.4rem 1.6rem; background: #fff; border-radius: var(--radius-card); border: 1px solid rgba(11,44,69,.08); max-width: 46rem; }
.art-toc ol { margin: 0; padding-left: 1.2rem; display: grid; gap: .35rem; font-size: .93rem; }
.art-toc a { color: var(--color-lake-800); }
.art-toc a:hover { color: var(--color-gold-600); text-decoration: underline; }
.art-h2 { scroll-margin-top: 6rem; }

/* Sub headings (eyebrows) in a handwritten script */
.eyebrow { font-family: "Caveat", cursive; font-weight: 600; font-size: 1.65rem; letter-spacing: .01em; text-transform: none; line-height: 1.1; }

/* Italic accent words in headings (e.g. "on the quiet Tallital side of Naini Lake"): blue on light, sky blue on dark */
.section-title em, .display em, .cta-title em, .enq-title em { color: var(--color-sky-500); }
.on-dark .section-title em, .on-dark .display em, .on-dark .cta-title em, .on-dark .enq-title em { color: var(--color-sky-300); }

/* ---------- Honeymoon v5: intro + photo, included tiles, sample plan, booking band ---------- */
.hm4 { background: linear-gradient(180deg, #fff, var(--color-lake-50)); padding-block: clamp(3.5rem, 7vw, 6rem); }
.hm4-top { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .hm4-top { grid-template-columns: 1.05fr .95fr; gap: 4.5rem; } }
.hm4 .section-title { text-wrap: balance; }
.hm4-facts { list-style: none; margin: 1.6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.hm4-facts li { display: inline-flex; align-items: center; gap: .55rem; padding: .55rem 1rem; border-radius: 9999px; background: #fff; border: 1px solid rgba(11,44,69,.1); color: var(--color-gold-600); box-shadow: 0 8px 18px -14px rgba(11,44,69,.5); }
.hm4-facts strong { font-size: .84rem; font-weight: 600; color: var(--color-lake-900); }
.hm4-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.6rem; margin-top: 2rem; }
.hm4-link { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .75rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-600); transition: gap .25s, color .25s; }
.hm4-link:hover { gap: .85rem; color: var(--color-lake-900); }
.hm4-photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-card); box-shadow: 0 30px 60px -34px rgba(11,44,69,.55); }
.hm4-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.hm4-band { display: grid; gap: 1.5rem; align-items: center; margin-top: clamp(2.5rem, 5vw, 3.5rem); padding: clamp(1.75rem, 4vw, 2.75rem); border-radius: var(--radius-card); color: #fff; background: radial-gradient(ellipse at 100% 0%, rgba(32,192,232,.28), transparent 60%), var(--color-lake-900); }
@media (min-width: 900px) { .hm4-band { grid-template-columns: 1fr auto; gap: 2.5rem; } }
.hm4-band-title { font-family: "Playfair Display", serif; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.2; color: #fff; }
.hm4-band-text { margin-top: .6rem; max-width: 36rem; font-size: .95rem; line-height: 1.7; color: rgba(255,255,255,.85); text-align: left; }
.hm4-band-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.hm4-wa { color: #fff; border: 1px solid rgba(255,255,255,.55); }
.hm4-wa:hover, .hm4-wa:focus-visible { background: #fff; color: var(--color-lake-900); border-color: #fff; }


/* ---------- Safari near Nainital ---------- */
.saf { color: #fff; padding-block: clamp(3.5rem, 7vw, 6rem); background: radial-gradient(ellipse at 0% 0%, rgba(32,192,232,.16), transparent 55%), var(--color-lake-950); }
.saf-grid { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .saf-grid { grid-template-columns: 5fr 6fr; gap: 4.5rem; } }
.saf-photo { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--radius-card); box-shadow: 0 30px 60px -30px rgba(0,0,0,.7); }
@media (min-width: 1024px) { .saf-photo { aspect-ratio: 4 / 5; } }
.saf-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.saf .section-title { color: #fff; text-wrap: balance; }
.saf-list { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; gap: .8rem; }
@media (min-width: 640px) { .saf-list { grid-template-columns: 1fr 1fr; } }
.saf-list li { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.1rem; border-radius: var(--radius-card); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); }
.saf-ic { flex: none; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 9999px; background: rgba(32,192,232,.16); color: var(--color-gold-300); }
.saf-list strong { display: block; font-size: .95rem; font-weight: 600; color: #fff; line-height: 1.3; }
.saf-list small { display: block; margin-top: .25rem; font-size: .84rem; line-height: 1.6; color: rgba(255,255,255,.78); }
.saf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.6rem; margin-top: 2rem; }
.saf-link { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--color-gold-300); transition: gap .25s, color .25s; }
.saf-link:hover { gap: .85rem; color: #fff; }
.saf-note { margin-top: 1rem; max-width: 36rem; font-size: .85rem; line-height: 1.6; color: rgba(255,255,255,.7); text-align: left; }

/* Safari photo: exactly as tall as the text beside it */
@media (min-width: 1024px) {
  .saf-grid { align-items: stretch; }
  .saf-photo { position: relative; aspect-ratio: auto; min-height: 0; height: 100%; }
  .saf-photo img { position: absolute; inset: 0; }
}

/* No dark overlay on photos: package cards and inner-page banners show the plain image */
.pkg-media::after, .page-banner::after { content: none; background: none; display: none; }

/* Package cards: smaller Enquire button and "View itinerary" on one row */
.pkg-foot { flex-direction: row; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .25rem .75rem; }
.pkg-foot .pkg-cta { width: auto; flex: 0 0 auto; min-height: 44px; padding: .55rem 1.1rem; letter-spacing: .1em; }
.pkg-more { flex: 0 0 auto; min-height: 44px; padding: 0; font-size: .68rem; letter-spacing: .12em; }

/* "View itinerary" as an outline button next to Book Now */
.pkg-foot .pkg-more { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 44px; padding: .55rem 1rem; border: 1px solid currentColor; border-radius: var(--radius-btn, .375rem); font-size: .72rem; font-weight: 600; letter-spacing: .1em; color: var(--color-lake-900); background: transparent; }
.pkg-foot .pkg-more:hover, .pkg-foot .pkg-more:focus-visible { background: var(--color-lake-900); color: #fff; gap: .45rem; }

/* ---------- Section backgrounds: only theme colours (white, cream, lake-50, lake-100, lake-900, lake-950), never the same as a neighbour ---------- */
section[aria-labelledby="welcome-title"]   { background-color: var(--color-cream); }
section[aria-labelledby="story-title"]     { background: var(--color-lake-950); }
section[aria-label="Top attractions"]      { background: #fff; }
.saf                                       { background: radial-gradient(ellipse at 0% 0%, rgba(32,192,232,.18), transparent 55%), var(--color-lake-900); }
section[aria-labelledby="reach-title"]     { background-color: var(--color-lake-50); }
section[aria-label="Packages"]             { background-color: #fff; }
.hm4                                       { background: var(--color-lake-50); }
.rv2-section                               { background: radial-gradient(ellipse at 20% 0%, rgba(32,192,232,.14), transparent 55%), var(--color-lake-950); }
section[aria-label="Gallery"]              { background: #fff; }
section[aria-label="Frequently asked questions"] { background-color: var(--color-lake-50); }
.cta-news                                  { background-color: var(--color-lake-100); }

/* Running text: darker and a regular weight on light backgrounds (dark sections keep their light text) */
.lead, .section-sub { font-weight: 400; }

/* =====================================================================
   Site-wide justified text + mobile polish (keep this block last)
   ===================================================================== */

/* Every paragraph of running text is justified, with hyphenation so phones
   don't show wide gaps. Centred blocks keep a centred last line. */
main p, footer p, .enq-dialog p, .faq-aside p {
  text-align: justify !important;
  text-justify: inter-word;
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-wrap: break-word;
  text-wrap: wrap;
}
.text-center p, p.text-center, .section-sub, .cta-news .text-center p, .page-hero p,
.text-center > .lead, .text-center .lead { text-align-last: center; }

@media (max-width: 767px) {
  /* Comfortable reading size and side gutters on phones */
  .container-x { padding-inline: 1.15rem; }
  .lead, main p { line-height: 1.75; }
  .section-title { font-size: clamp(1.6rem, 6.4vw, 2rem); line-height: 1.2; }
  .display { font-size: clamp(1.75rem, 7.4vw, 2.3rem); line-height: 1.15; }
  .section { padding-block: 3rem; }
  section[style*="padding-block"] { padding-block: 2.75rem !important; }

  /* Highlights card under the hero: icon above text, two tidy columns */
  .hl-strip { margin-top: -1.75rem; }
  .hl-item { flex-direction: column; align-items: center; text-align: center; gap: .55rem; padding: 1rem .6rem; }
  .hl-item > span:last-child { display: block; }
  .hl-ic { width: 2.4rem; height: 2.4rem; }
  .hl-ic svg { width: 1.2rem; height: 1.2rem; }
  .hl-item strong { font-size: .84rem; }
  .hl-item small { font-size: .72rem; }
  .hl-item:last-child { flex-direction: row; justify-content: center; text-align: left; }

  /* Room fact boxes: smaller values so they don't break mid-word */
  .rd-specs dd { font-size: 1.02rem; }
  .rd-specs > div { padding: .8rem .9rem; }

  /* Cards: a little less padding so text gets more width */
  .pkg-body, .bcard-body, .room-body { padding: 1.25rem 1.2rem 1.4rem; }
  .faq summary { padding: 1.1rem 1.1rem; gap: .8rem; }
  .faq-q { font-size: 1.1rem; }
  .faq-a { padding: 0 1.1rem 1.2rem 1.1rem; }
  .cf-card, .legal, .side-box, .faq-aside, .pkg-side { padding: 1.35rem 1.2rem; }
  .art-cta { padding: 1.3rem 1.2rem; }

  /* Buttons wrap neatly and are easy to tap */
  .btn { padding: .85rem 1.25rem; }
  .flex.flex-wrap.gap-4 > .btn, .flex.flex-wrap.gap-3 > .btn { flex: 1 1 auto; justify-content: center; }

  /* Banners and galleries */
  .page-banner { min-height: 13rem; }
  .bento { grid-auto-rows: 9.5rem; gap: .6rem; }
}

/* Floating WhatsApp / Mail / Call: smaller on phones so they cover less text */
@media (max-width: 767px) {
  .fab { right: .6rem; bottom: .75rem; gap: .5rem; }
  .fab-btn { width: 2.65rem; height: 2.65rem; }
  .fab-btn svg { width: 1.2rem; height: 1.2rem; }
  .fab-wa svg { width: 1.4rem; height: 1.4rem; }
  .fab-wa::before { inset: -.25rem; }
}

/* Labels are not running text: keep their own alignment and never hyphenate them */
main p.eyebrow, footer p.eyebrow, .enq-dialog p.eyebrow, .faq-aside p.eyebrow,
main p.bcard-meta, main p.pkg-count, main p.faq-count, main .crumbs, main p.tag {
  text-align: inherit !important;
  text-align-last: auto;
  -webkit-hyphens: manual;
  hyphens: manual;
}

/* Never allow sideways scrolling on small screens (clip keeps sticky elements working) */
html, body { overflow-x: clip; }

/* Highlights card under the hero: hidden on phones only */
@media (max-width: 767px) {
  .hl-strip { display: none; }
}

/* =====================================================================
   Accommodation page (rs-*): intro, single-photo room showcases, care list
   ===================================================================== */
.rs-intro { max-width: 46rem; margin-inline: auto; text-align: center; }
.rs-intro .gold-rule { margin-inline: auto; }
.rs-intro p:not(.eyebrow) { margin-top: 1.1rem; font-size: 1.02rem; line-height: 1.9; color: rgba(7,28,46,.9); }

.rs-room { padding-block: clamp(3rem, 6vw, 5.5rem); }
.rs-room-white { background: #fff; }
.rs-room-mist { background: linear-gradient(180deg, var(--color-lake-50), #fff); }
.rs-grid { display: grid; gap: 2.25rem; align-items: center; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) {
  .rs-grid { grid-template-columns: 1fr 1fr; gap: 5.5rem; }
  .rs-room.is-flip .rs-photo { order: 2; }
}

.rs-photo { position: relative; margin: 0; max-width: 34rem; width: 100%; margin-inline: auto; }
.rs-photo img { position: relative; z-index: 1; display: block; width: 100%; aspect-ratio: 5 / 6; object-fit: cover; border-radius: var(--radius-card); box-shadow: 0 40px 70px -34px rgba(7,28,46,.6); }
.rs-frame { position: absolute; z-index: 0; inset: 1.25rem -1.25rem -1.25rem 1.25rem; border: 1px solid var(--color-gold-500); border-radius: var(--radius-card); }
.rs-room.is-flip .rs-frame { inset: 1.25rem 1.25rem -1.25rem -1.25rem; }
@media (max-width: 559px) { .rs-frame { inset: .8rem -.5rem -.8rem .8rem; } .rs-room.is-flip .rs-frame { inset: .8rem .8rem -.8rem -.5rem; } }

.rs-copy { position: relative; }
.rs-no { position: absolute; top: -1.6rem; right: 0; font-family: "Playfair Display", serif; font-size: clamp(4.5rem, 8vw, 7rem); line-height: 1; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); opacity: .55; pointer-events: none; }
.rs-line { margin-top: 1.4rem; font-family: "Playfair Display", serif; font-style: italic; font-size: 1.28rem; line-height: 1.45; color: var(--color-sky-500); }
.rs-p { margin-top: 1.05rem; font-size: .98rem; line-height: 1.9; color: rgba(7,28,46,.9); }
main .rs-line { text-align: left !important; }
.rs-best { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid rgba(11,44,69,.12); font-size: .95rem; color: var(--color-lake-800); }
main .rs-best { text-align: left !important; text-align-last: auto; }
.rs-best span { margin-right: .7rem; font-size: .64rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--color-gold-600); }
.rs-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.7rem; }
@media (max-width: 559px) { .rs-actions .btn { flex: 1 1 auto; justify-content: center; } .rs-no { top: -2rem; } }

/* ---- Care list ---- */
.rs-care { padding-block: clamp(3.25rem, 6vw, 5.5rem); background: radial-gradient(ellipse at 50% 0%, rgba(32,192,232,.18), transparent 60%), linear-gradient(180deg, var(--color-lake-900), var(--color-lake-950)); }
.rs-care-head { max-width: 40rem; margin: 0 auto clamp(2rem, 4vw, 3.5rem); text-align: center; }
.rs-care-head .gold-rule { margin-inline: auto; }
.rs-care-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid rgba(182,221,245,.22); }
@media (min-width: 768px) { .rs-care-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3.5rem; } }
@media (min-width: 1100px) { .rs-care-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rs-care-list li { padding: 1.8rem 0 1.9rem; border-bottom: 1px solid rgba(182,221,245,.22); }
.rs-care-n { display: block; font-family: "Playfair Display", serif; font-size: 1.05rem; letter-spacing: .12em; color: var(--color-gold-400); }
.rs-care-list h3 { margin-top: .5rem; font-family: "Playfair Display", serif; font-size: 1.4rem; font-weight: 500; color: #fff; }
.rs-care-list p { margin-top: .6rem; font-size: .94rem; line-height: 1.75; color: rgba(255,255,255,.75); }

/* ---- Accommodation intro (premium editorial) ---- */
.rs-intro-sec { position: relative; padding-block: clamp(3.5rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4rem); background: radial-gradient(ellipse at 100% 0%, rgba(32,192,232,.14), transparent 55%), radial-gradient(ellipse at 0% 100%, rgba(30,120,194,.1), transparent 55%), var(--color-cream, #F2F8FC); }
.rs-intro-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .rs-intro-grid { grid-template-columns: 1fr 1.1fr; gap: 5rem; } .rs-intro-body { padding-left: 3rem; border-left: 1px solid var(--color-gold-500); } }
.rs-intro-title { margin-top: .5rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(2.1rem, 4.4vw, 3.5rem); line-height: 1.1; letter-spacing: -.01em; color: var(--color-lake-900); }
.rs-intro-title em { color: var(--color-sky-500); }
.rs-intro-sign { margin-top: 1.4rem; font-size: .7rem; letter-spacing: .28em; text-transform: uppercase; color: var(--color-gold-600); }
main .rs-intro-sign { text-align: left !important; }
.rs-intro-body p { font-size: 1.02rem; line-height: 1.95; color: rgba(7,28,46,.9); }
.rs-intro-body p + p { margin-top: 1.1rem; }
.rs-dropcap::first-letter { float: left; margin: .3rem .75rem 0 0; font-family: "Playfair Display", serif; font-size: 4.6rem; line-height: .8; font-weight: 500; color: var(--color-gold-600); }
.rs-index { list-style: none; margin: clamp(2.5rem, 5vw, 4rem) 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(11,44,69,.18); }
@media (min-width: 900px) { .rs-index { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rs-index li { border-bottom: 1px solid rgba(11,44,69,.12); }
.rs-index li:nth-child(odd) { border-right: 1px solid rgba(11,44,69,.12); }
@media (min-width: 900px) { .rs-index li { border-bottom: 0; border-right: 1px solid rgba(11,44,69,.12); } .rs-index li:last-child { border-right: 0; } }
.rs-index a { position: relative; display: block; height: 100%; padding: 1.5rem 1.2rem 1.6rem; transition: background .35s; }
.rs-index a::before { content: ""; position: absolute; left: 0; top: -1px; width: 0; height: 2px; background: var(--color-gold-500); transition: width .45s; }
.rs-index a:hover { background: rgba(255,255,255,.7); }
.rs-index a:hover::before { width: 100%; }
.rs-index-no { display: block; font-family: "Playfair Display", serif; font-size: 1.9rem; line-height: 1; color: var(--color-gold-600); }
.rs-index-name { display: block; margin-top: .8rem; font-family: "Playfair Display", serif; font-size: 1.15rem; line-height: 1.25; color: var(--color-lake-900); }
.rs-index-kick { display: block; margin-top: .45rem; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(7,28,46,.65); }
@media (max-width: 559px) { .rs-dropcap::first-letter { font-size: 3.8rem; } .rs-index a { padding: 1.2rem .9rem; } }

/* ---- Room showcase: premium refinements (flat alternating light-blue / white like the home page) ---- */
.rs-room { position: relative; overflow: hidden; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.rs-room-white { background: #fff; }
.rs-room-mist { background: var(--color-lake-50); }
.rs-grid { gap: 2.5rem; }
@media (min-width: 1024px) { .rs-grid { grid-template-columns: 1.08fr 1fr; gap: 6rem; } .rs-room.is-flip .rs-grid { grid-template-columns: 1fr 1.08fr; } }
.rs-photo { max-width: 38rem; }
.rs-img { position: relative; z-index: 1; overflow: hidden; border-radius: var(--radius-card); box-shadow: 0 50px 80px -36px rgba(7,28,46,.65); }
.rs-img img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 0; box-shadow: none; transform: scale(1.001); transition: transform 2.4s cubic-bezier(.2,.7,.2,1); }
.rs-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,28,46,.5), transparent 38%); pointer-events: none; }
.rs-photo:hover .rs-img img { transform: scale(1.07); }
.rs-photo img { box-shadow: none; }
.rs-plaque { position: absolute; z-index: 2; left: 1.25rem; bottom: 1.25rem; display: flex; align-items: center; gap: .9rem; padding: .7rem 1.2rem .7rem .8rem; color: #fff; background: rgba(7,28,46,.45); border: 1px solid rgba(182,221,245,.45); border-radius: 999px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.rs-plaque b { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; font-family: "Playfair Display", serif; font-size: .95rem; font-weight: 500; color: var(--color-lake-950); background: var(--color-gold-400); border-radius: 50%; }
.rs-plaque span { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }
.rs-frame { inset: 1.5rem -1.5rem -1.5rem 1.5rem; }
.rs-room.is-flip .rs-frame { inset: 1.5rem 1.5rem -1.5rem -1.5rem; }
.rs-no { top: -3.2rem; right: -.5rem; font-size: clamp(7rem, 13vw, 12rem); opacity: .32; z-index: 0; }
.rs-copy > *:not(.rs-no) { position: relative; z-index: 1; }
.rs-suite { font-size: .68rem; font-weight: 600; letter-spacing: .32em; text-transform: uppercase; color: var(--color-gold-600); }
main .rs-suite { text-align: left !important; }
.rs-copy .section-title { margin-top: .7rem; font-size: clamp(2.1rem, 3.8vw, 3.2rem); line-height: 1.08; }
.rs-line { padding-left: 1.1rem; border-left: 2px solid var(--color-gold-500); font-size: 1.35rem; }
.rs-best { padding: 1rem 1.2rem; background: rgba(255,255,255,.75); border: 1px solid rgba(32,192,232,.3); border-radius: .75rem; }
.rs-room-white .rs-best { background: var(--color-lake-50); }

/* ---- Accommodation: match the site's type scale (no oversized lettering) ---- */
.rs-dropcap::first-letter { all: unset; }
.rs-intro-title { font-size: clamp(1.75rem, 2.6vw, 2.4rem); line-height: 1.15; letter-spacing: 0; }
.rs-copy .section-title { font-size: clamp(1.75rem, 2.6vw, 2.4rem); line-height: 1.15; }
.rs-line { font-size: 1.1rem; }
.rs-no { font-size: clamp(3.5rem, 6vw, 5rem); top: -1.2rem; opacity: .6; }
.rs-intro-body p, .rs-intro-sec .rs-intro-body p { font-size: 1rem; line-height: 1.85; }
.rs-index-no { font-size: 1.5rem; }
.rs-index-name { font-size: 1.05rem; }
.rs-care-list h3 { font-size: 1.2rem; }

/* ---- Accommodation: intro hub tiles + images sized to their content ---- */
.rs-intro-sec { padding-block: clamp(3rem, 6vw, 5rem); }
.rs-intro-grid { align-items: center; }
.rs-index { margin-top: clamp(2rem, 4vw, 3rem); gap: 1rem; border-top: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .rs-index { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; } }
.rs-index li, .rs-index li:nth-child(odd), .rs-index li:last-child { border: 0; }
.rs-index a { display: block; padding: 0; height: auto; background: none !important; }
.rs-index a::before { content: none; }
.rs-tile-img { position: relative; display: block; overflow: hidden; border-radius: var(--radius-card); aspect-ratio: 4 / 3; box-shadow: 0 24px 40px -26px rgba(7,28,46,.55); }
.rs-tile-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s ease; }
.rs-index a:hover .rs-tile-img img { transform: scale(1.08); }
.rs-tile-img::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,28,46,.55), transparent 55%); }
.rs-tile-img b { position: absolute; z-index: 1; left: .8rem; bottom: .7rem; font-family: "Playfair Display", serif; font-size: 1.1rem; font-weight: 500; color: #fff; }
.rs-tile-name { display: block; margin-top: .85rem; font-family: "Playfair Display", serif; font-size: 1.05rem; line-height: 1.25; color: var(--color-lake-900); }
.rs-tile-kick { display: inline-flex; align-items: center; gap: .4rem; margin-top: .35rem; font-size: .64rem; letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-600); }
.rs-index a:hover .rs-tile-kick { color: var(--color-lake-900); }

/* room images: stretch to the height of the text beside them */
@media (min-width: 1024px) {
  .rs-grid, .rs-room.is-flip .rs-grid { grid-template-columns: .82fr 1.18fr; gap: 5rem; align-items: stretch; }
  .rs-room.is-flip .rs-grid { grid-template-columns: 1.18fr .82fr; }
  .rs-photo { max-width: none; height: 100%; }
  .rs-img { height: 100%; }
  .rs-img img { height: 100%; aspect-ratio: auto; min-height: 22rem; }
  .rs-copy { align-self: center; }
}
@media (max-width: 1023px) { .rs-img img { aspect-ratio: 16 / 11; } .rs-photo { max-width: 32rem; } }

/* Phones: smaller header logo and a slimmer bar */
@media (max-width: 767px) {
  #site-header > .container-x { height: 3.75rem; }
  #site-header img[alt$="logo"] { height: 44px; width: auto; }
}

/* =====================================================================
   Package detail page: one calm layout, single colour theme (deep lake blue on a pale tint)
   ===================================================================== */
.pk-head { background: #F2F8FC; padding-block: clamp(1.5rem, 3vw, 2.25rem) 0; }
.pk-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1.75rem; font-size: .76rem; color: rgba(7,28,46,.6); }
.pk-crumbs a { color: rgba(7,28,46,.75); transition: color .2s; }
.pk-crumbs a:hover { color: var(--color-lake-600); }
main .pk-crumbs { text-align: left !important; }
.pk-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.pk-eyebrow { font-size: .68rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--color-lake-600); }
.pk-h1 { margin-top: .6rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.7rem, 3.2vw, 2.6rem); line-height: 1.15; color: var(--color-lake-900); max-width: 44rem; }
.pk-route { margin-top: .7rem; max-width: 42rem; font-size: .95rem; line-height: 1.6; color: rgba(7,28,46,.72); }
main .pk-eyebrow, main .pk-route { text-align: left !important; }
.pk-head-cta { flex: none; }
.pk-meta { display: flex; flex-wrap: wrap; gap: 1.2rem 3.5rem; margin: 1.6rem 0 0; padding: 1.3rem 0 1.6rem; border-top: 1px solid rgba(11,44,69,.14); }
.pk-meta dt { font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(7,28,46,.55); }
.pk-meta dd { margin: .4rem 0 0; font-size: 1rem; font-weight: 500; color: var(--color-lake-900); }
main .pk-meta dd { text-align: left !important; }

.pk-tabs { position: sticky; top: 4.9rem; z-index: 30; background: rgba(242,248,252,.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(11,44,69,.12); }
@media (max-width: 767px) { .pk-tabs { top: 3.7rem; } }
.pk-tabs-in { display: flex; gap: 2rem; overflow-x: auto; scrollbar-width: none; }
.pk-tabs-in::-webkit-scrollbar { display: none; }
.pk-tabs a { flex: none; position: relative; padding: 1rem 0; font-size: .86rem; font-weight: 500; color: rgba(7,28,46,.62); white-space: nowrap; transition: color .25s; }
.pk-tabs a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--color-lake-600); transform: scaleX(0); transition: transform .3s; }
.pk-tabs a:hover, .pk-tabs a.is-active { color: var(--color-lake-900); }
.pk-tabs a.is-active::after { transform: scaleX(1); }

.pk-body { padding-block: clamp(2rem, 4vw, 3.5rem); background: #F2F8FC; }
.pk-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .pk-grid { grid-template-columns: minmax(0, 1fr) 22rem; gap: 3.5rem; } }
.pk-main { display: grid; gap: clamp(2.25rem, 4vw, 3rem); }

.hp-sec { scroll-margin-top: 9.5rem; }
.hp-eyebrow { font-size: .66rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--color-lake-600); }
main .hp-eyebrow { text-align: left !important; }
.hp-h2 { margin-top: .4rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.45rem, 2.4vw, 1.9rem); line-height: 1.25; color: var(--color-lake-900); }
.hp-h3 { margin-top: 1.9rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.2rem; color: var(--color-lake-900); }
.hp-h4 { display: flex; align-items: center; gap: .5rem; font-size: .95rem; font-weight: 600; color: var(--color-lake-900); }
.hp-p { margin-top: 1rem; font-size: .97rem; line-height: 1.85; color: rgba(7,28,46,.85); }

.hp-split { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.hp-expand { padding: .5rem 1rem; font-size: .78rem; font-weight: 500; color: var(--color-lake-800); background: #fff; border: 1px solid rgba(11,44,69,.2); border-radius: 999px; transition: background .2s, color .2s; }
.hp-expand:hover { background: var(--color-lake-900); color: #fff; }
.hp-acc { margin-top: 1.4rem; display: grid; gap: .65rem; }
.hp-day { background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: .75rem; transition: border-color .25s; }
.hp-day[open] { border-color: var(--color-lake-600); }
.hp-day > summary, .hp-faq > summary { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.2rem; cursor: pointer; list-style: none; }
.hp-day > summary::-webkit-details-marker, .hp-faq > summary::-webkit-details-marker { display: none; }
.hp-day-n { flex: none; min-width: 3.4rem; font-size: .66rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-lake-600); }
.hp-day-t { flex: 1; font-size: .98rem; font-weight: 500; color: var(--color-lake-900); }
.hp-chev { flex: none; width: .6rem; height: .6rem; margin-left: auto; border-right: 1.5px solid var(--color-lake-600); border-bottom: 1.5px solid var(--color-lake-600); transform: rotate(45deg) translateY(-2px); transition: transform .25s; }
details[open] > summary > .hp-chev { transform: rotate(-135deg); }
.hp-day-b { padding: 0 1.2rem 1.2rem 5.6rem; }
.hp-day-b p { font-size: .93rem; line-height: 1.75; color: rgba(7,28,46,.85); }
.hp-places { margin-top: .7rem; font-size: .88rem !important; color: rgba(7,28,46,.7) !important; }
.hp-places b { font-weight: 600; color: var(--color-lake-900); }
main .hp-day-b p { text-align: left !important; }
@media (max-width: 559px) { .hp-day > summary { gap: .7rem; padding: .9rem 1rem; } .hp-day-n { min-width: 2.9rem; } .hp-day-b { padding: 0 1rem 1.1rem; } }

.hp-cover { display: grid; gap: 1.1rem; grid-template-columns: minmax(0, 1fr); margin-top: 1.4rem; }
@media (min-width: 720px) { .hp-cover { grid-template-columns: 1fr 1fr; } }
.hp-cover > div { padding: 1.4rem 1.3rem; background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: .75rem; }
.hp-yes, .hp-no { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .7rem; }
.hp-yes li, .hp-no li { display: flex; gap: .65rem; font-size: .9rem; line-height: 1.55; color: rgba(7,28,46,.88); }
.hp-yes svg { flex: none; margin-top: .2rem; color: var(--color-lake-600); }
.hp-no svg { flex: none; margin-top: .2rem; color: rgba(7,28,46,.4); }
.hp-h4 svg { color: var(--color-lake-600); }

.hp-faqs { margin-top: 1.2rem; display: grid; gap: .65rem; }
.hp-faq { background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: .75rem; }
.hp-faq[open] { border-color: var(--color-lake-600); }
.hp-faq > summary span:first-child { font-size: .96rem; font-weight: 500; color: var(--color-lake-900); }
.hp-faq > p { padding: 0 1.2rem 1.2rem; font-size: .93rem; line-height: 1.75; color: rgba(7,28,46,.85); }
main .hp-faq > p { text-align: left !important; }

/* right column */
.pk-aside { display: grid; gap: 1.75rem; }
@media (min-width: 1024px) { .pk-aside { position: sticky; top: 9rem; align-self: start; max-height: calc(100vh - 10rem); overflow-y: auto; scrollbar-width: thin; padding-bottom: 1rem; } }
.hp-form { display: grid; gap: .9rem; padding: 1.5rem 1.4rem; background: #fff; border: 1px solid rgba(11,44,69,.12); border-top: 3px solid var(--color-lake-600); border-radius: var(--radius-card); box-shadow: 0 24px 44px -32px rgba(7,28,46,.5); }
.hp-form-t { margin-top: -.3rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.35rem; line-height: 1.25; color: var(--color-lake-900); }
.hp-form label { display: grid; gap: .35rem; font-size: .74rem; font-weight: 500; color: rgba(7,28,46,.7); }
.hp-form label span { font-weight: 400; color: rgba(7,28,46,.5); }
.hp-form input, .hp-form select, .hp-form textarea { width: 100%; padding: .65rem .8rem; font: inherit; font-size: .9rem; color: var(--color-lake-900); background: #fff; border: 1px solid rgba(11,44,69,.2); border-radius: .5rem; transition: border-color .2s, box-shadow .2s; }
.hp-form textarea { resize: vertical; min-height: 4.5rem; }
.hp-form input:focus, .hp-form select:focus, .hp-form textarea:focus { outline: 0; border-color: var(--color-lake-600); box-shadow: 0 0 0 3px rgba(47,111,148,.15); }
.hp-two { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.hp-form-note { font-size: .74rem; line-height: 1.5; color: rgba(7,28,46,.6); }
main .hp-form-note { text-align: left !important; }

.hp-rec { display: grid; gap: 1rem; }
.hp-rec-t { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.2rem; color: var(--color-lake-900); }
.hp-rec-card { overflow: hidden; background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: var(--radius-card); }
.hp-rec-img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.hp-rec-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s; }
.hp-rec-card:hover .hp-rec-img img { transform: scale(1.05); }
.hp-rec-img span { position: absolute; left: .7rem; bottom: .7rem; padding: .25rem .65rem; font-size: .68rem; font-weight: 600; letter-spacing: .08em; color: #fff; background: rgba(7,28,46,.7); border-radius: 999px; }
.hp-rec-card > div:last-child { padding: 1rem 1.1rem 1.2rem; }
.hp-rec-cat { font-size: .64rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-lake-600); }
.hp-rec-card h3 { margin-top: .35rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.05rem; line-height: 1.3; color: var(--color-lake-900); }
.hp-rec-card h3 a:hover { color: var(--color-lake-600); }
.hp-rec-d { margin-top: .5rem; font-size: .84rem; line-height: 1.6; color: rgba(7,28,46,.75); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
main .hp-rec-d, main .hp-rec-cat { text-align: left !important; }
.hp-rec-btn { margin-top: .9rem; width: 100%; padding-block: .7rem; }

/* Package cards: no fill, border only, so they merge with the page tint */
.hp-day, .hp-faq, .hp-cover > div, .hp-rec-card, .hp-form { background: transparent; box-shadow: none; }
.hp-day, .hp-faq, .hp-cover > div, .hp-rec-card { border-color: rgba(11,44,69,.22); }
.hp-day[open], .hp-faq[open] { border-color: var(--color-lake-600); }
.hp-form { border-color: rgba(11,44,69,.22); border-top-color: var(--color-lake-600); }
.hp-expand { background: transparent; }
.hp-day:hover, .hp-faq:hover { border-color: var(--color-lake-600); }

/* Package sidebar: plain column, no inner scrolling, no sticky */
.pk-aside, .pk-aside * { scrollbar-width: auto; }
@media (min-width: 1024px) { .pk-aside { position: static; max-height: none; overflow: visible; padding-bottom: 0; } }
.pk-aside { max-height: none; overflow: visible; }

/* Desktop header logo: a little smaller */
@media (min-width: 768px) { #site-header img[alt$="logo"] { height: 56px; width: auto; } }

/* Package title block now sits in the left column, level with the enquiry form */
.pk-body { padding-top: clamp(1.75rem, 3.5vw, 2.75rem); }
.pk-main > .pk-head { padding: 0; background: none; }
.pk-main > .pk-tabs { margin-top: calc(-1 * clamp(1.25rem, 2.5vw, 1.75rem)); }
.pk-head .pk-h1 { margin-top: .7rem; font-size: clamp(1.8rem, 3.2vw, 2.7rem); max-width: none; }
.pk-head .pk-route { margin-top: .8rem; max-width: 40rem; }
.pk-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1rem; margin-top: 1.5rem; }
.pk-actions .btn svg { flex: none; }
.pk-callbtn { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem .4rem; font-size: .9rem; font-weight: 500; color: var(--color-lake-800); transition: color .2s; }
.pk-callbtn:hover { color: var(--color-lake-600); }
.pk-callbtn svg { color: var(--color-lake-600); }
.pk-head .pk-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 1.75rem 0 0; padding: 0; border-top: 1px solid rgba(11,44,69,.16); border-bottom: 1px solid rgba(11,44,69,.16); }
.pk-head .pk-meta > div { padding: 1.1rem 1.2rem; }
.pk-head .pk-meta > div:first-child { padding-left: 0; }
.pk-head .pk-meta > div + div { border-left: 1px solid rgba(11,44,69,.16); }
@media (max-width: 639px) {
  .pk-head .pk-meta { grid-template-columns: 1fr; }
  .pk-head .pk-meta > div, .pk-head .pk-meta > div:first-child { padding: .9rem 0; }
  .pk-head .pk-meta > div + div { border-left: 0; border-top: 1px solid rgba(11,44,69,.16); }
  .pk-actions .btn { flex: 1 1 100%; }
}
.pk-main > .pk-tabs { background: #F2F8FC; border-top: 0; }
.pk-tabs-in { padding-inline: 0; }
.pk-tabs-in { margin: 0; width: 100%; }

/* No elastic over-scroll at the top: the sticky header stays put instead of sliding down with the page */
html, body { overscroll-behavior-y: none; }

/* Package page: white background like the reference, and a column that can never grow wider than the screen */
.pk-body { background: #fff; }
.pk-main { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.pk-main > * { min-width: 0; }
.pk-main > .pk-tabs, .pk-tabs { background: rgba(255,255,255,.96); }
.pk-aside { min-width: 0; }
.pk-aside > * { min-width: 0; }
.hp-form input, .hp-form select, .hp-form textarea { min-width: 0; max-width: 100%; }
.hp-two > label { min-width: 0; }
.hp-day-t, .hp-faq > summary span:first-child { min-width: 0; overflow-wrap: anywhere; }
.pk-h1, .pk-route, .hp-p, .hp-h2 { overflow-wrap: break-word; }

/* Package highlight icons */
.pk-icons { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
@media (min-width: 640px) { .pk-icons { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pk-icons li { display: flex; align-items: center; gap: .75rem; font-size: .86rem; font-weight: 500; line-height: 1.3; color: var(--color-lake-900); }
.pk-icons span { flex: none; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; color: var(--color-lake-600); background: var(--color-lake-50); border: 1px solid rgba(47,111,148,.28); border-radius: 50%; }

/* Package highlight icons: smaller */
.pk-icons { margin-top: 1.25rem; gap: .8rem 1rem; }
.pk-icons li { gap: .55rem; font-size: .8rem; }
.pk-icons span { width: 2rem; height: 2rem; }
.pk-icons span svg { width: 1rem; height: 1rem; }

/* =====================================================================
   Blog article (ar-*): white page, banner, editorial header, prose, sticky contents
   ===================================================================== */
.ar-progress { position: fixed; left: 0; right: 0; top: 0; z-index: 60; height: 3px; pointer-events: none; }
.ar-progress span { display: block; height: 100%; background: var(--color-lake-600); transform-origin: left; transform: scaleX(0); }

.ar-body { background: #fff; padding-block: clamp(2rem, 4vw, 3.5rem) clamp(2.5rem, 5vw, 4rem); }
.ar-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .ar-grid { grid-template-columns: minmax(0, 1fr) 20rem; gap: 4.5rem; } }
.ar-main { min-width: 0; }
.ar-aside { min-width: 0; display: grid; gap: 1.5rem; }
@media (min-width: 1024px) { .ar-aside { position: sticky; top: 6.5rem; align-self: start; } }

.ar-head { max-width: 46rem; }
.ar-cat { display: flex; align-items: center; gap: .8rem; font-size: .68rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--color-lake-600); }
.ar-cat a { color: inherit; opacity: .75; transition: opacity .2s; }
.ar-cat a:hover { opacity: 1; }
.ar-cat i { width: 1.5rem; height: 1px; background: var(--color-lake-600); opacity: .5; }
main .ar-cat { text-align: left !important; }
.ar-h1 { margin-top: .9rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.8rem, 3.6vw, 2.9rem); line-height: 1.13; color: var(--color-lake-900); overflow-wrap: break-word; }
.ar-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; margin-top: 1.2rem; font-size: .8rem; color: rgba(7,28,46,.62); }
.ar-meta span + span { position: relative; padding-left: 1.4rem; }
.ar-meta span + span::before { content: ""; position: absolute; left: 0; top: 50%; width: .3rem; height: .3rem; border-radius: 50%; background: var(--color-lake-600); opacity: .55; transform: translateY(-50%); }
main .ar-meta { text-align: left !important; }
.ar-lead { margin-top: 1.5rem; padding-left: 1.1rem; border-left: 2px solid var(--color-lake-600); font-family: "Playfair Display", serif; font-style: italic; font-size: 1.2rem; line-height: 1.55; color: var(--color-lake-800); }
main .ar-lead { text-align: left !important; }

.ar-prose { max-width: 46rem; margin-top: 2.25rem; }
.ar-prose p { margin-top: 1rem; font-size: 1.02rem; line-height: 1.9; color: rgba(7,28,46,.88); }
.ar-prose a, .ar-prose p a { color: var(--color-lake-600); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(47,111,148,.4); transition: text-decoration-color .2s, color .2s; }
.ar-prose a:hover { color: var(--color-lake-900); text-decoration-color: currentColor; }
.ar-h2 { position: relative; margin-top: 2.75rem; padding-top: 1.1rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.4rem, 2.3vw, 1.75rem); line-height: 1.25; color: var(--color-lake-900); scroll-margin-top: 6.5rem; }
.ar-h2::before { content: ""; position: absolute; left: 0; top: 0; width: 2.2rem; height: 2px; background: var(--color-lake-600); }
.ar-prose .ar-h2:first-child { margin-top: 0; }

.ar-faq { max-width: 46rem; margin-top: 3rem; scroll-margin-top: 6.5rem; }
.ar-end { max-width: 46rem; margin-top: 3rem; padding: 1.8rem 1.7rem; border: 1px solid rgba(11,44,69,.22); border-top: 3px solid var(--color-lake-600); border-radius: var(--radius-card); }
.ar-end-btns { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.3rem; }
@media (max-width: 559px) { .ar-end { padding: 1.4rem 1.2rem; } .ar-end-btns .btn { flex: 1 1 100%; } }

/* contents */
.ar-toc { padding: 1.3rem 1.3rem 1.4rem; border: 1px solid rgba(11,44,69,.22); border-radius: var(--radius-card); }
.ar-toc-t { font-size: .66rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--color-lake-600); }
main .ar-toc-t { text-align: left !important; }
.ar-toc ol { list-style: none; counter-reset: toc; margin: .9rem 0 0; padding: 0; display: grid; gap: .15rem; }
.ar-toc li { counter-increment: toc; }
.ar-toc a { display: flex; gap: .7rem; padding: .4rem 0; font-size: .86rem; line-height: 1.4; color: rgba(7,28,46,.72); border-left: 2px solid transparent; transition: color .2s; }
.ar-toc a::before { content: counter(toc, decimal-leading-zero); flex: none; font-family: "Playfair Display", serif; color: var(--color-lake-600); opacity: .8; }
.ar-toc a:hover { color: var(--color-lake-900); }
.ar-toc a.is-active { color: var(--color-lake-900); font-weight: 600; }
.ar-toc-inline { max-width: 46rem; margin-top: 2rem; }
.ar-toc-inline ol { grid-template-columns: 1fr; }
@media (min-width: 1024px) { .ar-toc-inline { display: none; } }
@media (max-width: 1023px) { .ar-toc-side { display: none; } }

.ar-plan { padding: 1.4rem 1.3rem; border: 1px solid rgba(11,44,69,.22); border-top: 3px solid var(--color-lake-600); border-radius: var(--radius-card); }
.ar-plan h2 { margin-top: .4rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.3rem; line-height: 1.25; color: var(--color-lake-900); }
.ar-plan p:not(.hp-eyebrow) { margin-top: .6rem; font-size: .88rem; line-height: 1.65; color: rgba(7,28,46,.78); }
main .ar-plan p { text-align: left !important; }
.ar-plan-btns { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.1rem; }
.ar-more h2 { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.1rem; color: var(--color-lake-900); }
.ar-more ul { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; }
.ar-more li { border-top: 1px solid rgba(11,44,69,.12); }
.ar-more a { display: block; padding: .7rem 0; font-size: .86rem; line-height: 1.45; color: rgba(7,28,46,.8); transition: color .2s; }
.ar-more a:hover { color: var(--color-lake-600); }

.ar-related { padding-block: clamp(2.5rem, 5vw, 4rem); border-top: 1px solid rgba(11,44,69,.1); }

/* ---- Blog article v2: standard editorial format ---- */
.ar-body { padding-block: clamp(1.25rem, 2.5vw, 2rem) clamp(2.5rem, 5vw, 4rem); }
.ar-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1.75rem; font-size: .78rem; color: rgba(7,28,46,.6); }
.ar-crumbs a { color: rgba(7,28,46,.75); transition: color .2s; }
.ar-crumbs a:hover { color: var(--color-lake-600); }
main .ar-crumbs { text-align: left !important; }

.ar-article { min-width: 0; }
.ar-head { max-width: 52rem; }
.ar-cat { display: inline-block; font-size: .68rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; }
.ar-cat a { padding: .35rem .8rem; color: var(--color-lake-600); border: 1px solid rgba(47,111,148,.4); border-radius: 999px; opacity: 1; transition: background .2s, color .2s; }
.ar-cat a:hover { background: var(--color-lake-600); color: #fff; }
.ar-h1 { margin-top: 1rem; font-size: clamp(1.9rem, 4vw, 3.1rem); line-height: 1.12; }
.ar-lead { margin-top: 1.25rem; padding: 0; border: 0; font-family: "DM Sans", sans-serif; font-style: normal; font-size: 1.12rem; line-height: 1.7; color: rgba(7,28,46,.78); }

.ar-byline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.1rem 2rem; margin-top: 1.6rem; padding-block: 1.1rem; border-block: 1px solid rgba(11,44,69,.14); }
.ar-author { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.ar-avatar { flex: none; display: grid; place-items: center; width: 3rem; height: 3rem; overflow: hidden; background: var(--color-lake-50); border: 1px solid rgba(47,111,148,.3); border-radius: 50%; }
.ar-avatar img { width: 82%; height: auto; max-height: 82%; object-fit: contain; }
.ar-avatar-lg { width: 4rem; height: 4rem; }
.ar-by { font-size: .92rem; font-weight: 600; color: var(--color-lake-900); }
.ar-dates { margin-top: .15rem; font-size: .78rem; color: rgba(7,28,46,.62); }
main .ar-by, main .ar-dates { text-align: left !important; }
.ar-share { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.ar-share span { margin-right: .3rem; font-size: .66rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: rgba(7,28,46,.55); }
.ar-share a, .ar-share button { padding: .4rem .85rem; font-size: .76rem; font-weight: 500; color: var(--color-lake-800); background: transparent; border: 1px solid rgba(11,44,69,.22); border-radius: 999px; transition: background .2s, color .2s, border-color .2s; }
.ar-share a:hover, .ar-share button:hover { background: var(--color-lake-900); color: #fff; border-color: var(--color-lake-900); }

.ar-hero { margin: 2rem 0 0; }
.ar-hero img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-card); }
.ar-hero figcaption { margin-top: .7rem; font-size: .78rem; color: rgba(7,28,46,.55); }
main .ar-hero figcaption { text-align: left !important; }

.ar-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; margin-top: 2.25rem; }
@media (min-width: 1024px) { .ar-grid { grid-template-columns: minmax(0, 1fr) 19rem; gap: 4.5rem; } }
.ar-main { min-width: 0; }
.ar-prose { margin-top: 0; }
.ar-toc-inline { margin-top: 0; margin-bottom: 2rem; }
.ar-pn { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); margin-top: 2.5rem; }
@media (min-width: 640px) { .ar-pn { grid-template-columns: 1fr 1fr; } }
.ar-pn a { display: block; padding: 1.1rem 1.2rem; border: 1px solid rgba(11,44,69,.22); border-radius: var(--radius-card); transition: border-color .2s; }
.ar-pn a:hover { border-color: var(--color-lake-600); }
.ar-pn a.is-next { text-align: right; }
.ar-pn span { display: block; font-size: .64rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--color-lake-600); }
.ar-pn b { display: block; margin-top: .4rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1rem; line-height: 1.35; color: var(--color-lake-900); }
main .ar-pn a { text-align: left !important; }
main .ar-pn a.is-next { text-align: right !important; }

.ar-authorbox { display: flex; gap: 1.1rem; margin-top: 2.5rem; padding: 1.4rem 1.4rem; border: 1px solid rgba(11,44,69,.22); border-radius: var(--radius-card); }
.ar-ab-k { font-size: .62rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--color-lake-600); }
.ar-ab-n { margin-top: .2rem; font-family: "Playfair Display", serif; font-size: 1.2rem; color: var(--color-lake-900); }
.ar-ab-t { margin-top: .5rem; font-size: .9rem; line-height: 1.7; color: rgba(7,28,46,.78); }
.ar-ab-l { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .8rem; }
.ar-ab-l a { font-size: .66rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-lake-600); }
.ar-ab-l a:hover { color: var(--color-lake-900); }
main .ar-ab-k, main .ar-ab-n, main .ar-ab-t { text-align: left !important; }
.ar-end p:not(.hp-eyebrow) { margin-top: .6rem; font-size: .93rem; line-height: 1.7; color: rgba(7,28,46,.8); }
main .ar-end p { text-align: left !important; }
@media (max-width: 559px) { .ar-authorbox { flex-direction: column; } .ar-share a, .ar-share button { padding: .4rem .7rem; } }

/* ---- Blog article v3: same structure and tokens as the package page ---- */
.ar-body { padding-top: clamp(1.75rem, 3.5vw, 2.75rem); background: #fff; }
.ar-head { max-width: none; }
.ar-head .pk-h1 { max-width: none; font-size: clamp(1.8rem, 3.2vw, 2.7rem); }
.ar-head .pk-route { max-width: 44rem; font-size: 1rem; line-height: 1.7; }
.ar-meta3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 1.6rem 0 0; padding: 0; border-top: 1px solid rgba(11,44,69,.16); border-bottom: 1px solid rgba(11,44,69,.16); }
.ar-meta3 > div { padding: 1rem 1.1rem; }
.ar-meta3 > div:first-child { padding-left: 0; }
.ar-meta3 > div + div { border-left: 1px solid rgba(11,44,69,.16); }
.ar-meta3 dd { font-size: .95rem; }
@media (max-width: 639px) {
  .ar-meta3 { grid-template-columns: 1fr; }
  .ar-meta3 > div, .ar-meta3 > div:first-child { padding: .85rem 0; }
  .ar-meta3 > div + div { border-left: 0; border-top: 1px solid rgba(11,44,69,.16); }
}
.ar-share { margin-top: 1.1rem; }
.ar-prose { max-width: none; margin-top: .5rem; }
.ar-prose p { font-size: .98rem; line-height: 1.85; }
.ar-h2 { margin-top: 2.25rem; padding-top: 0; font-size: clamp(1.4rem, 2.3vw, 1.75rem); }
.ar-h2::before { content: none; }
.ar-prose .ar-h2:first-child { margin-top: 1.5rem; }
.ar-faq, .ar-end { max-width: none; }
.ar-toc-inline { max-width: none; margin: 1.75rem 0 0; }
.ar-toc, .ar-plan, .ar-authorbox, .ar-pn a, .ar-end { background: transparent; }
.ar-aside { position: static; display: grid; gap: 1.75rem; }
@media (min-width: 1024px) { .ar-aside { position: sticky; top: 6.5rem; align-self: start; } }
.pk-body.ar-body .pk-main { gap: 0; }
.pk-body.ar-body .pk-main > * + * { margin-top: 0; }
.ar-faq, .ar-end, .ar-authorbox, .ar-pn { margin-top: 2.5rem; }

/* Article meta on phones: compact two-column row instead of three stacked rows */
@media (max-width: 639px) {
  .ar-meta3 { grid-template-columns: 1fr 1fr; }
  .ar-meta3 > div:first-child { display: none; }
  .ar-meta3 > div, .ar-meta3 > div:nth-child(2) { padding: .85rem 0; }
  .ar-meta3 > div + div { border-top: 0; border-left: 0; }
  .ar-meta3 > div:nth-child(3) { padding-left: 1rem; border-left: 1px solid rgba(11,44,69,.16); }
}

/* Article end sections: clear spacing so FAQ, call to action, author box and prev/next never touch */
.pk-body.ar-body .pk-main > .ar-faq,
.pk-body.ar-body .pk-main > .ar-end,
.pk-body.ar-body .pk-main > .ar-authorbox,
.pk-body.ar-body .pk-main > .ar-pn { margin-top: 3rem; }
.pk-body.ar-body .pk-main > .ar-faq { padding-top: 2.5rem; border-top: 1px solid rgba(11,44,69,.14); }
.pk-body.ar-body .pk-main > .ar-pn { margin-top: 2rem; }
.ar-end { padding: 1.9rem 1.8rem; }
.ar-end .hp-h2 { margin-top: .5rem; }
.ar-end-list { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; gap: .55rem; }
.ar-end-list li { display: flex; align-items: center; gap: .6rem; font-size: .9rem; color: var(--color-lake-800); }
.ar-end-list svg { flex: none; color: var(--color-lake-600); }
.ar-end-btns { margin-top: 1.5rem; }
.ar-authorbox { align-items: flex-start; }
.ar-pn a { min-height: 5.2rem; }

/* =====================================================================
   TYPE SCALE (single source of truth, keep this block last)
   Families : Playfair Display = headings / quotes / numerals, DM Sans = everything else, Caveat = script eyebrows
   H1 page title  clamp(1.9rem, 3.2vw, 2.6rem)      H2 section   clamp(1.75rem, 2.6vw, 2.4rem)
   H3 card/sub    1.35rem                            H4 question  1.2rem            (all weight 500)
   Lead 1.0625rem (17px)   Body 1rem (16px, 1.8)     Small .875rem (14px)    Label .6875rem (11px, uppercase)
   Buttons .75rem (12px) weight 500, uppercase, letter-spaced
   ===================================================================== */
:root {
  --t-h1: clamp(1.9rem, 3.2vw, 2.6rem);
  --t-h2: clamp(1.75rem, 2.6vw, 2.4rem);
  --t-h3: 1.35rem;
  --t-h4: 1.2rem;
  --t-lead: 1.0625rem;
  --t-body: 1rem;
  --t-small: .875rem;
  --t-label: .6875rem;
}

/* headings: one weight, one family */
body main :is(h1, h2, h3, h4) { font-family: "Playfair Display", serif; font-weight: 500; }

/* H1 */
body main .pk-h1 { font-size: var(--t-h1); line-height: 1.15; }

/* H2: section headings */
body main :is(.section-title, .rs-intro-title, .hp-h2, .ar-h2) { font-size: var(--t-h2); line-height: 1.18; }

/* H3: card titles, sub headings, sidebar headings */
body main :is(h3, .pkg-title, .side-title, .att-title, .bcard-title, .cf-title, .hp-h3, .hp-h4, .rd-h3, .pk-stop h3,
  .ar-plan h2, .ar-more h2, .hp-rec-t, .hp-form-t, .legal-sec h2, .rs-care-list h3, .reach-list-card h3, .hp-glance-h) {
  font-family: "Playfair Display", serif; font-size: var(--t-h3); font-weight: 500; line-height: 1.25;
}
body main .legal-sec h2 span { font-size: var(--t-h3); }

/* H4: questions and day titles */
body main :is(.faq-q, .hp-faq > summary > span:first-child, .hp-day-t) { font-family: "Playfair Display", serif; font-size: var(--t-h4); font-weight: 500; line-height: 1.3; color: var(--color-lake-900); }
body main .faq-num { font-size: var(--t-h3); }

/* Lead paragraphs */
body main :is(.lead, .section-sub, .pk-route, .ar-lead, .hm4-copy p, .faq-aside p.lead, .cta-single > p, .cta-single p.lead) { font-size: var(--t-lead); line-height: 1.8; }

/* Body paragraphs and lists inside content */
body main :is(.hp-p, .rs-p, .rs-intro-body p, .rs-intro p, .ar-prose p, .hp-day-b p, .hp-faq > p, .faq-a, .legal-sec p,
  .ar-end p:not(.eyebrow), .hm4-band-text, .reach-list-card p, .rs-best, .rs-care-list p, .pk-stop > p:last-child) { font-size: var(--t-body); line-height: 1.8; }
body main :is(.hp-yes li, .hp-no li, .legal-list li, .ar-prose li, .rs-list li) { font-size: var(--t-body); line-height: 1.7; }

/* Small text: card excerpts, helper notes, compact lists */
body main :is(.pkg-desc, .bcard-excerpt, .hp-rec-d, .hp-places, .hp-form-note, .ar-plan p:not(.eyebrow), .ar-ab-t, .pkg-count,
  .hp-form label, .hp-form label span, .ar-meta3 dd, .pk-meta dd, .ar-more a, .ar-toc a, .ar-end-list li, .cf-list li, .pk-icons li, .ar-dates, .ar-hero figcaption) { font-size: var(--t-small); line-height: 1.7; }
body main :is(.pk-meta dd, .ar-meta3 dd) { font-size: var(--t-body); line-height: 1.5; }

/* Labels (small uppercase tags) */
body main :is(.pkg-cat, .hp-rec-cat, .bcard-meta, .hp-day-n, .pk-meta dt, .ar-meta3 dt, .rs-best span, .rs-intro-sign, .rs-index-kick, .rs-tile-kick, .ar-pn span, .ar-share span, .ar-ab-l a, .pk-stop-lbl) {
  font-family: "DM Sans", sans-serif; font-size: var(--t-label); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; line-height: 1.4;
}

/* Eyebrows: always the Caveat script, the same size everywhere */
body main :is(.eyebrow, .pk-eyebrow, .hp-eyebrow, .rs-suite, .ar-toc-t, .ar-ab-k) {
  font-family: "Caveat", cursive; font-size: 1.65rem; font-weight: 600; letter-spacing: .01em; text-transform: none; line-height: 1.1; color: var(--color-gold-600); margin-bottom: .5rem;
}
body main :is(.pk-eyebrow, .hp-eyebrow, .rs-suite) { display: inline-flex; align-items: center; gap: 1rem; }
body main :is(.pk-eyebrow, .hp-eyebrow, .rs-suite)::before { content: ""; width: 2.5rem; height: 1px; background: currentColor; }
.on-dark :is(.eyebrow, .hp-eyebrow) { color: var(--color-gold-300); }

/* Buttons */
.btn, .btn-primary, .btn-outline, .pkg-cta, .pkg-more, .hm4-wa, .chip, .hp-expand, .ar-share a, .ar-share button, .ar-share span + a {
  font-family: "DM Sans", sans-serif; font-size: .75rem; font-weight: 500;
}
.pkg-cta, .pkg-more { letter-spacing: .18em; }
.hp-expand, .ar-share a, .ar-share button { letter-spacing: .06em; }
body main .cat-list button, body main .cat-list a { font-size: var(--t-small); }

/* Mobile: keep sizes readable, never smaller than the tokens above */
@media (max-width: 559px) {
  :root { --t-h3: 1.25rem; --t-h4: 1.12rem; --t-lead: 1rem; }
}

/* ---- Type scale: stragglers ---- */
body main h1.section-title { font-size: var(--t-h1); line-height: 1.15; }
body main .btn, body main .pkg-cta, body main .pkg-more, body main .btn-outline.pkg-more { font-size: .75rem; font-weight: 500; }
body main .cta-single > p.eyebrow, body main .ar-plan p.hp-eyebrow, body main .ar-end p.hp-eyebrow, body main .pk-main p.hp-eyebrow { font-size: 1.65rem; line-height: 1.1; }
body main .hp-places { font-size: var(--t-small) !important; }
body main dl.pk-meta dd, body main dl.ar-meta3 dd { font-size: var(--t-body); }
body main .faq-num { font-weight: 500; }
body main :is(.rv2-text, .rs-line, .pk-quote) { font-family: "Playfair Display", serif; font-size: var(--t-lead); line-height: 1.6; }
body main :is(.art-cta p, .mt-8.font-serif, p.font-serif) { font-size: var(--t-h3); }
body main .hm4-band-title { font-size: var(--t-h2); }
body main .ar-ab-n { font-size: var(--t-h4); }
body main p[class*="tracking-[0.2em]"] { font-size: var(--t-label); letter-spacing: .2em; }

/* ---- SEO internal-link blocks ---- */
.hp-link { color: var(--color-lake-600); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(47,111,148,.4); transition: color .2s, text-decoration-color .2s; }
.hp-link:hover { color: var(--color-lake-900); text-decoration-color: currentColor; }
.ar-pk { margin-top: 2.5rem; padding: 1.7rem 1.6rem; border: 1px solid rgba(11,44,69,.22); border-top: 3px solid var(--color-lake-600); border-radius: var(--radius-card); }
.ar-pk ul { list-style: none; margin: 1.1rem 0 0; padding: 0; display: grid; }
.ar-pk li { border-top: 1px solid rgba(11,44,69,.12); }
.ar-pk a { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .2rem 1rem; padding: .85rem 0; transition: color .2s; }
.ar-pk a b { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.1rem; color: var(--color-lake-900); }
.ar-pk a span { font-size: .84rem; color: rgba(7,28,46,.65); }
.ar-pk a:hover b { color: var(--color-lake-600); }

/* =====================================================================
   About page (ab-*): white / pale-blue bands, same type scale and rounded cards as the rest of the site
   ===================================================================== */
.ab-story { padding-block: clamp(3rem, 6vw, 5rem); background: #fff; }
.ab-story-grid { display: grid; gap: 2.25rem; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
@media (min-width: 1024px) { .ab-story-grid { grid-template-columns: .85fr 1.15fr; gap: 4.5rem; } }
.ab-photo { position: relative; margin: 0; min-height: 22rem; }
.ab-photo img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--radius-card); box-shadow: 0 40px 70px -36px rgba(7,28,46,.55); }
@media (max-width: 1023px) { .ab-photo { min-height: 0; } .ab-photo img { aspect-ratio: 16 / 11; } }
.ab-story-copy { align-self: center; }
.ab-story-copy .lead { margin-top: 1.1rem; color: rgba(7,28,46,.88); }
.ab-story-copy .gold-rule + .lead { margin-top: 1.4rem; }
.ab-links { display: flex; flex-wrap: wrap; gap: .6rem 1.8rem; margin-top: 1.5rem; }
main .ab-links { text-align: left !important; }
.ab-links a { display: inline-flex; align-items: center; gap: .5rem; padding-bottom: .15rem; font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-600); border-bottom: 1px solid rgba(8,120,158,.35); transition: color .2s, gap .25s; }
.ab-links a:hover { color: var(--color-lake-900); gap: .8rem; }

.ab-services { padding-block: clamp(3rem, 6vw, 5rem); background: #fff; }
.ab-svc { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(11,44,69,.16); }
.ab-svc li { border-bottom: 1px solid rgba(11,44,69,.16); }
.ab-svc a { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.4rem .4rem; transition: background .3s, padding .3s; }
.ab-svc a:hover { background: var(--color-lake-50); padding-inline: 1.1rem; }
.ab-svc-n { font-family: "Playfair Display", serif; font-size: 1.5rem; color: var(--color-gold-600); }
.ab-svc-t b { display: block; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.35rem; line-height: 1.25; color: var(--color-lake-900); }
.ab-svc-t span { display: block; margin-top: .3rem; font-size: .875rem; line-height: 1.6; color: rgba(7,28,46,.75); }
.ab-svc a svg { color: var(--color-gold-600); transition: transform .25s; }
.ab-svc a:hover svg { transform: translateX(4px); }
main .ab-svc-t span { text-align: left !important; }

.ab-where { padding-block: clamp(3rem, 6vw, 5rem); background: #F2F8FC; }
.ab-where-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .ab-where-grid { grid-template-columns: 1fr 1fr; gap: 4.5rem; } }
.ab-where .lead { margin-top: 1rem; color: rgba(7,28,46,.88); }
.ab-where .gold-rule + .lead { margin-top: 1.3rem; }
.ab-map { overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--radius-card); border: 1px solid rgba(11,44,69,.14); box-shadow: 0 34px 60px -34px rgba(7,28,46,.5); }
.ab-map iframe { width: 100%; height: 100%; border: 0; display: block; }


/* About: the photo is exactly as tall as the text beside it */
@media (min-width: 1024px) { .ab-photo img { position: absolute; inset: 0; } }

/* How we host: a calm numbered list, no boxes */
.ab-host { padding-block: clamp(3.5rem, 7vw, 6rem); background: #fff; }
.ab-host-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .ab-host-grid { grid-template-columns: .8fr 1.2fr; gap: 5rem; } .ab-host-head { position: sticky; top: 7rem; } }
.ab-host-head .lead { margin-top: 1.3rem; max-width: 26rem; color: rgba(7,28,46,.78); }
main .ab-host-head .lead { text-align: left !important; }
.ab-host-list { list-style: none; margin: 0; padding: 0; counter-reset: host; }
.ab-host-list li { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 1rem 1.5rem; align-items: start; padding: 2rem 0; border-top: 1px solid rgba(11,44,69,.16); }
.ab-host-list li:last-child { border-bottom: 1px solid rgba(11,44,69,.16); }
.ab-host-n { font-family: "Playfair Display", serif; font-size: clamp(2.8rem, 5vw, 4rem); line-height: .9; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); }
.ab-host-list h3 { margin: 0; }
.ab-host-list p { margin-top: .7rem; font-size: 1rem; line-height: 1.8; color: rgba(7,28,46,.85); }
main .ab-host-list p { text-align: left !important; }
@media (max-width: 559px) { .ab-host-list li { grid-template-columns: 3.4rem minmax(0, 1fr); gap: .8rem 1rem; padding: 1.5rem 0; } .ab-host-n { font-size: 2.3rem; } }

/* Nature's Sprout: statement plus the family of places on one line */
.ab-brand { padding-block: clamp(3.5rem, 7vw, 6rem); background: radial-gradient(ellipse at 15% 0%, rgba(32,192,232,.22), transparent 55%), linear-gradient(170deg, var(--color-lake-900), var(--color-lake-950)); }
.ab-brand-top { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .ab-brand-top { grid-template-columns: .8fr 1.2fr; gap: 5rem; } }
.ab-brand .lead { color: rgba(255,255,255,.82); }
.ab-brand .lead + .lead { margin-top: 1rem; }
.ab-places { list-style: none; margin: clamp(2.5rem, 5vw, 4rem) 0 0; padding: 1.6rem 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 0; border-top: 1px solid rgba(182,221,245,.25); }
.ab-places li { position: relative; padding: .2rem 1.6rem; font-family: "Playfair Display", serif; font-style: italic; font-size: clamp(1.15rem, 2.2vw, 1.6rem); color: rgba(255,255,255,.7); }
.ab-places li + li::before { content: ""; position: absolute; left: 0; top: 50%; width: .32rem; height: .32rem; background: var(--color-gold-400); transform: translate(-50%, -50%) rotate(45deg); }
.ab-places li.is-now { color: var(--color-gold-300); }
@media (max-width: 559px) { .ab-places li { padding-inline: 1rem; } }

/* About FAQ: heading on the left, hairline question rows on the right (no boxes) */
.ab-faq { padding-block: clamp(3.5rem, 7vw, 6rem); background: #fff; }
.ab-faq-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .ab-faq-grid { grid-template-columns: .8fr 1.2fr; gap: 5rem; } .ab-faq-head { position: sticky; top: 7rem; } }
.ab-faq-head .lead { margin-top: 1.3rem; max-width: 26rem; color: rgba(7,28,46,.78); }
main .ab-faq-head .lead { text-align: left !important; }
.ab-q { border-top: 1px solid rgba(11,44,69,.16); }
.ab-qi { border-bottom: 1px solid rgba(11,44,69,.16); }
.ab-qi > summary { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr) 1.6rem; align-items: center; gap: 1rem; padding: 1.5rem .2rem; cursor: pointer; list-style: none; transition: padding .3s; }
.ab-qi > summary::-webkit-details-marker { display: none; }
.ab-qi > summary:hover { padding-left: .7rem; }
.ab-qn { font-family: "Playfair Display", serif; font-size: 1.35rem; color: transparent; -webkit-text-stroke: 1px var(--color-gold-500); transition: color .3s; }
.ab-qi[open] .ab-qn { color: var(--color-gold-600); -webkit-text-stroke: 0; }
.ab-qt { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.2rem; line-height: 1.35; color: var(--color-lake-900); }
.ab-qp { position: relative; width: 1.1rem; height: 1.1rem; justify-self: end; }
.ab-qp::before, .ab-qp::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: var(--color-gold-600); transition: transform .3s; }
.ab-qp::after { transform: rotate(90deg); }
.ab-qi[open] .ab-qp::after { transform: rotate(0); }
.ab-qi > p { padding: 0 2.6rem 1.7rem 4.4rem; font-size: 1rem; line-height: 1.8; color: rgba(7,28,46,.85); animation: ab-q-in .4s ease; }
main .ab-qi > p { text-align: left !important; }
@keyframes ab-q-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (max-width: 559px) { .ab-qi > summary { grid-template-columns: 2.6rem minmax(0, 1fr) 1.4rem; gap: .7rem; padding: 1.2rem 0; } .ab-qi > p { padding: 0 0 1.4rem 3.3rem; } .ab-qt { font-size: 1.1rem; } }

/* ---- About page v2: fuller sections, image rows, tighter spacing ---- */
.ab-story, .ab-host, .ab-brand, .ab-services, .ab-where, .ab-faq { padding-block: clamp(2.75rem, 5vw, 4.25rem); }
.ab-story-copy .lead { font-size: 1rem; }
.ab-story-copy .lead strong { font-weight: 600; color: var(--color-lake-900); }

/* rooms: image tiles (reuses the tile look from the rooms page) */
.ab-rooms { padding-block: clamp(2.75rem, 5vw, 4.25rem); background: #F2F8FC; }
.ab-room-tiles { margin-top: 0; }
.ab-more { margin-top: 2rem; text-align: center; font-size: .9rem; }
main .ab-more { text-align: center !important; }
.ab-rooms .max-w-2xl { margin-bottom: 2rem; }

/* what we offer: image rows */
.ab-svc a { grid-template-columns: 9rem minmax(0, 1fr) auto; padding: 1rem .4rem; gap: 1.5rem; }
.ab-svc-img { display: block; overflow: hidden; aspect-ratio: 16 / 10; border-radius: .75rem; }
.ab-svc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s; }
.ab-svc a:hover .ab-svc-img img { transform: scale(1.08); }
.ab-svc-t small { display: block; margin-bottom: .3rem; font-family: "Playfair Display", serif; font-size: 1rem; color: var(--color-gold-600); }
@media (max-width: 639px) { .ab-svc a { grid-template-columns: 5.2rem minmax(0, 1fr) auto; gap: .9rem; } .ab-svc-t b { font-size: 1.15rem; } .ab-svc-t > span { display: none; } }

/* guides list */
.ab-guides { padding-block: clamp(2.75rem, 5vw, 4.25rem); background: #F2F8FC; }
.ab-guides-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) { .ab-guides-grid { grid-template-columns: .8fr 1.2fr; gap: 5rem; } .ab-guides .ab-host-head { position: sticky; top: 7rem; } }
.ab-glist { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(11,44,69,.16); }
.ab-glist li { border-bottom: 1px solid rgba(11,44,69,.16); }
.ab-glist a { display: block; padding: 1.4rem .2rem; transition: padding .3s; }
.ab-glist a:hover { padding-left: .8rem; }
.ab-gk { display: block; font-size: .6875rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-600); }
.ab-glist b { display: block; margin-top: .45rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.2rem; line-height: 1.3; color: var(--color-lake-900); transition: color .2s; }
.ab-glist a:hover b { color: var(--color-gold-600); }
.ab-gx { display: block; margin-top: .4rem; font-size: .875rem; line-height: 1.7; color: rgba(7,28,46,.75); }
main .ab-glist a, main .ab-gx { text-align: left !important; }

/* background rhythm: white, blue, white, blue, dark, blue, white, blue, white */
.ab-where { background: #F2F8FC; }
.ab-faq { background: #fff; }
.ab-services { background: #fff; }

/* About: three guides in one quiet row (replaces the long list) */
.ab-guides .max-w-2xl { margin-bottom: 2.25rem; }
.ab-g3 { display: grid; grid-template-columns: minmax(0, 1fr); border-top: 1px solid rgba(11,44,69,.16); border-bottom: 1px solid rgba(11,44,69,.16); }
@media (min-width: 900px) { .ab-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ab-g3 a { display: flex; flex-direction: column; gap: .7rem; padding: 1.9rem 1.7rem 1.7rem; transition: background .3s; }
.ab-g3 a + a { border-top: 1px solid rgba(11,44,69,.16); }
@media (min-width: 900px) { .ab-g3 a + a { border-top: 0; border-left: 1px solid rgba(11,44,69,.16); } .ab-g3 a:first-child { padding-left: .4rem; } }
.ab-g3 a:hover { background: rgba(255,255,255,.7); }
.ab-g3 b { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.35rem; line-height: 1.3; color: var(--color-lake-900); transition: color .2s; }
.ab-g3 a:hover b { color: var(--color-gold-600); }
.ab-go { margin-top: auto; display: inline-flex; align-items: center; gap: .5rem; padding-top: .6rem; font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--color-gold-600); transition: gap .25s; }
.ab-g3 a:hover .ab-go { gap: .85rem; }
main .ab-g3 a, main .ab-g3 b, main .ab-gk { text-align: left !important; }

/* How we host v2: photo beside a 2x2 grid divided by thin cross lines */
.ab-host2 { padding-block: clamp(2.75rem, 5vw, 4.25rem); background: #fff; }
.ab-host2-grid { display: grid; gap: 2.25rem; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
@media (min-width: 1024px) { .ab-host2-grid { grid-template-columns: .78fr 1.22fr; gap: 4.5rem; } }
.ab-host2-img { position: relative; margin: 0; min-height: 18rem; order: 2; }
@media (min-width: 1024px) { .ab-host2-img { order: 0; } }
.ab-host2-img img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--radius-card); box-shadow: 0 40px 70px -36px rgba(7,28,46,.55); }
@media (max-width: 1023px) { .ab-host2-img img { aspect-ratio: 16 / 10; } .ab-host2-body { order: 1; } }
@media (min-width: 1024px) { .ab-host2-img img { position: absolute; inset: 0; } }
.ab-host2-body .lead { margin-top: 1.2rem; color: rgba(7,28,46,.78); }
main .ab-host2-body .lead { text-align: left !important; }
.ab-quad { display: grid; grid-template-columns: minmax(0, 1fr); margin-top: 2rem; border-top: 1px solid rgba(11,44,69,.16); }
@media (min-width: 640px) { .ab-quad { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ab-quad > div { padding: 1.7rem 1.5rem 1.8rem 0; border-bottom: 1px solid rgba(11,44,69,.16); }
@media (min-width: 640px) { .ab-quad > div:nth-child(even) { padding-left: 1.7rem; padding-right: 0; border-left: 1px solid rgba(11,44,69,.16); } }
.ab-quad h3 { margin-top: 1rem; }
.ab-quad p { margin-top: .55rem; font-size: .9375rem; line-height: 1.75; color: rgba(7,28,46,.82); }
main .ab-quad p, main .ab-quad h3 { text-align: left !important; }
.ab-ic { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; color: var(--color-gold-600); background: var(--color-lake-50); border: 1px solid rgba(32,192,232,.3); border-radius: 50%; }

/* How we host: text on the left, photo on the right */
@media (min-width: 1024px) { .ab-host2-grid { grid-template-columns: 1.22fr .78fr; } .ab-host2-img { order: 2; } .ab-host2-body { order: 1; } }

/* =====================================================================
   Footer: compact, one calm band (no map, no extra link block)
   ===================================================================== */
.ft { position: relative; color: rgba(214,232,245,.78); background: radial-gradient(ellipse at 0% 0%, rgba(32,192,232,.12), transparent 55%), var(--color-lake-950); border-top: 1px solid rgba(94,211,243,.45); }
.ft-grid { display: grid; gap: 2.25rem 2rem; grid-template-columns: minmax(0, 1fr); padding-block: clamp(2.25rem, 4vw, 3.25rem) clamp(1.75rem, 3vw, 2.5rem); }
@media (min-width: 640px) { .ft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ft-brand { grid-column: 1 / -1; } }
@media (min-width: 1024px) { .ft-grid { grid-template-columns: 1.35fr 1.1fr .8fr 1.25fr; gap: 3rem; align-items: start; } .ft-brand { grid-column: auto; } }
.ft-brand p { margin-top: 1rem; max-width: 22rem; font-size: .875rem; line-height: 1.7; }
main .ft-brand p, .ft-brand p { text-align: left !important; }
.ft-social { display: flex; gap: .55rem; margin-top: 1.1rem; }
.ft-social a { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; color: rgba(255,255,255,.85); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; transition: color .25s, border-color .25s, background .25s; }
.ft-social a:hover { color: var(--color-lake-950); background: var(--color-gold-400); border-color: var(--color-gold-400); }
.ft-col h3 { position: relative; margin: 0 0 1rem; padding-bottom: .7rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.1rem; color: #fff; }
.ft-col h3::after { content: ""; position: absolute; left: 0; bottom: 0; width: 1.8rem; height: 2px; background: var(--color-gold-500); }
.ft-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.ft-two { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.25rem; }
.ft-col a { display: inline-flex; align-items: center; min-height: 2.25rem; font-size: .875rem; transition: color .25s, transform .25s; }
.ft-col a:hover { color: var(--color-gold-300); transform: translateX(3px); }
.ft-visit ul { gap: .7rem; }
.ft-visit li { display: flex; align-items: flex-start; gap: .7rem; font-size: .875rem; line-height: 1.55; }
.ft-visit li svg { flex: none; margin-top: .2rem; color: var(--color-gold-400); }
.ft-visit li a { min-height: 0; align-items: flex-start; overflow-wrap: anywhere; }
.ft-visit li a:hover { color: var(--color-gold-300); }
.ft-dir { margin-top: .9rem; gap: .5rem; font-size: .68rem !important; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-300); }
.ft-dir:hover { color: #fff; }
.ft-bar { border-top: 1px solid rgba(255,255,255,.1); }
.ft-bar .container-x { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding-block: 1rem; font-size: .75rem; color: rgba(255,255,255,.6); }
.ft-bar p { margin: 0; text-align: center !important; }
.ft-bar strong { font-weight: 500; color: rgba(255,255,255,.85); }
.ft-top { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.25rem; font-size: .68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--color-gold-300); transition: color .2s; }
.ft-top:hover { color: #fff; }
@media (min-width: 900px) { .ft-bar .container-x { flex-direction: row; justify-content: space-between; } .ft-top { margin-right: 4.5rem; } }

/* Footer on phones: tighter so it does not run long */
@media (max-width: 639px) {
  .ft-grid { gap: 1.6rem 1.25rem; padding-block: 1.75rem 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ft-brand, .ft-visit { grid-column: 1 / -1; }
  .ft-col:nth-of-type(1) { grid-column: 1 / -1; }
  .ft-brand p { max-width: none; }
  .ft-col h3 { margin-bottom: .6rem; padding-bottom: .55rem; }
  .ft-col a { min-height: 2.4rem; }
  .ft-visit ul { gap: .55rem; }
}
@media (max-width: 639px) {
  .ft-col:nth-of-type(2) { grid-column: 1 / -1; }
  .ft-col:nth-of-type(2) ul { display: flex; flex-wrap: wrap; gap: 0 1.4rem; }
}

/* Footer: Explore is one list; the map sits under the contact details */
.ft-two { grid-template-columns: minmax(0, 1fr); }
.ft-map { margin-top: 1rem; }
.ft-map iframe { height: 9.5rem; }
@media (min-width: 1024px) { .ft-grid { grid-template-columns: 1.3fr .8fr .85fr 1.45fr; } }

/* What we offer v2: four photo tiles with the text on the picture (no empty side space) */
.ab-offer { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 760px) { .ab-offer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; } }
.ab-offer-tile { position: relative; isolation: isolate; display: block; overflow: hidden; aspect-ratio: 16 / 9; border-radius: var(--radius-card); background: var(--color-lake-900); box-shadow: 0 28px 48px -32px rgba(7,28,46,.6); }
@media (max-width: 759px) { .ab-offer-tile { aspect-ratio: 4 / 3; } }
.ab-offer-tile img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s ease; }
.ab-offer-tile:hover img { transform: scale(1.07); }
.ab-offer-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(7,28,46,.92) 0%, rgba(7,28,46,.55) 45%, rgba(7,28,46,.05) 78%); }
.ab-offer-body { position: absolute; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; gap: .35rem; padding: 1.4rem 1.6rem 1.5rem; }
.ab-offer-body small { font-family: "Playfair Display", serif; font-size: 1rem; color: var(--color-gold-300); }
.ab-offer-body b { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.5rem; line-height: 1.2; color: #fff; }
.ab-offer-body > span { max-width: 28rem; font-size: .875rem; line-height: 1.6; color: rgba(255,255,255,.85); }
.ab-offer-body em { display: inline-flex; align-items: center; gap: .5rem; margin-top: .4rem; font-style: normal; font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--color-gold-300); transition: gap .25s, color .25s; }
.ab-offer-tile:hover .ab-offer-body em { gap: .85rem; color: #fff; }
main .ab-offer-body > span, main .ab-offer-body b, main .ab-offer-body small { text-align: left !important; }
@media (max-width: 559px) { .ab-offer-body { padding: 1.1rem 1.2rem 1.2rem; } .ab-offer-body b { font-size: 1.3rem; } }

/* Header menu: normal capitalisation (Home, About Us ...) and closer spacing */
header nav[aria-label="Primary"] { gap: 1.7rem; }
.nav-link { font-size: .95rem; font-weight: 500; letter-spacing: .01em; text-transform: none; }
@media (min-width: 1024px) and (max-width: 1180px) { header nav[aria-label="Primary"] { gap: 1.2rem; } .nav-link { font-size: .88rem; } }

/* ============ Package page (pv2): framed photo, pill tabs, fact tiles, soft cards, sticky enquiry ============ */
.pv2 { background: #fff; padding-bottom: clamp(2.5rem, 5vw, 4rem); }
.pv2-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; padding-block: 1.1rem; font-size: .78rem; color: rgba(7,28,46,.6); }
.pv2-crumbs a { color: rgba(7,28,46,.75); transition: color .2s; }
.pv2-crumbs a:hover { color: var(--color-lake-600); }
.pv2-crumbs [aria-current] { color: var(--color-lake-900); font-weight: 500; }
.pv2-hero { position: relative; overflow: hidden; border-radius: 1.25rem; aspect-ratio: 21 / 9; min-height: 13rem; background: var(--color-lake-100); box-shadow: 0 18px 40px -24px rgba(7,28,46,.45); }
.pv2-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pv2-flag { position: absolute; left: 1rem; top: 1rem; padding: .35rem .8rem; border-radius: 999px; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #fff; background: var(--color-orange-500); }

.pv2-tabsbar { position: sticky; top: 4.9rem; z-index: 30; margin-top: 1.25rem; background: rgba(255,255,255,.95); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(11,44,69,.1); }
.pv2-tabs { display: flex; gap: .5rem; padding-block: .75rem; overflow-x: auto; scrollbar-width: none; }
.pv2-tabs::-webkit-scrollbar { display: none; }
.pv2-tabs a { flex: none; padding: .5rem 1.05rem; border-radius: 999px; font-size: .84rem; font-weight: 500; color: var(--color-lake-800); background: var(--color-lake-50); transition: background .2s, color .2s; white-space: nowrap; }
.pv2-tabs a::after { display: none; }
.pv2-tabs a:hover { background: var(--color-lake-100); }
.pv2-tabs a.is-active { background: var(--color-lake-900); color: #fff; }

.pv2-grid { display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; padding-top: clamp(1.75rem, 3.5vw, 2.75rem); }
@media (min-width: 1024px) { .pv2-grid { grid-template-columns: minmax(0, 1fr) 22rem; gap: 3rem; } }
.pv2-main { display: grid; gap: clamp(2.25rem, 4vw, 3.25rem); min-width: 0; }
.pv2-aside { display: grid; gap: 1.75rem; min-width: 0; }

.pv2-head .eyebrow { font-size: 1.5rem; }
.pv2-h1 { margin-top: .15rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.15; color: var(--color-lake-900); }
.pv2-rate { display: inline-flex; align-items: center; gap: .6rem; margin-top: .7rem; color: var(--color-orange-500); }
.pv2-rate span { display: inline-flex; gap: .1rem; } .pv2-rate b { font-size: .9rem; color: var(--color-lake-900); }
.pv2-lead { margin-top: .9rem; max-width: 44rem; font-size: 1rem; line-height: 1.75; color: rgba(7,28,46,.85); }
.pv2-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.pv2-facts li, .pv2-tiles li { display: flex; align-items: center; gap: .85rem; padding: .85rem 1rem; background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: .9rem; }
.pv2-facts small { display: block; font-size: .64rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(7,28,46,.55); }
.pv2-facts b { display: block; margin-top: .15rem; font-size: .95rem; font-weight: 600; color: var(--color-lake-900); }
.pv2-fi { flex: none; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: var(--color-gold-600); background: var(--color-lake-50); }
@media (max-width: 520px) { .pv2-facts { grid-template-columns: 1fr; } }

.pv2-sec { scroll-margin-top: 9.5rem; }
.pv2-sec > .eyebrow, .pv2-split .eyebrow { font-size: 1.4rem; }
.pv2-h2 { margin-top: .1rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.5rem, 2.5vw, 2rem); line-height: 1.25; color: var(--color-lake-900); }
.pv2-h3 { margin-top: 1.9rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.2rem; color: var(--color-lake-900); }
.pv2-h4 { font-size: 1rem; font-weight: 600; color: var(--color-lake-900); }
.pv2-prose { margin-top: .6rem; }
.pv2-prose .hp-h3 { margin-top: 1.7rem; }
.pv2-tiles { display: grid; gap: .75rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.pv2-tiles-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .pv2-tiles-2 { grid-template-columns: 1fr; } }
.pv2-tiles li { align-items: center; background: var(--color-lake-50); border-color: transparent; }
.pv2-tiles b { display: block; font-size: .92rem; font-weight: 600; color: var(--color-lake-900); }
.pv2-tiles span:not(.pv2-fi), .pv2-tiles small { display: block; margin-top: .15rem; font-size: .84rem; line-height: 1.55; color: rgba(7,28,46,.78); }
.pv2-hl .pv2-fi { background: #fff; }
.pv2-checks, .pv2-notes, .pv2-yes, .pv2-no { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .65rem; }
.pv2-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .pv2-checks { grid-template-columns: 1fr; } }
.pv2-checks li, .pv2-notes li, .pv2-yes li, .pv2-no li { display: flex; gap: .6rem; font-size: .92rem; line-height: 1.55; color: rgba(7,28,46,.88); }
.pv2-checks svg, .pv2-notes svg, .pv2-yes svg { flex: none; margin-top: .2rem; color: var(--color-gold-600); }
.pv2-no svg { flex: none; margin-top: .2rem; color: rgba(7,28,46,.4); }
.pv2-notes { margin-top: 1.4rem; font-size: .85rem; }
.pv2-notes li { font-size: .85rem; color: rgba(7,28,46,.75); }

.pv2-cover { display: grid; gap: 1rem; margin-top: 1.2rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .pv2-cover { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pv2-card { padding: 1.4rem 1.3rem; background: var(--color-lake-50); border-radius: 1rem; }
.pv2-card-no { background: #F7F9FB; }

.pv2-acc .hp-day, .pv2-acc .hp-faq { background: #fff; border: 1px solid rgba(11,44,69,.14); border-radius: .9rem; box-shadow: none; }
.pv2-acc .hp-day[open], .pv2-acc .hp-faq[open] { background: var(--color-lake-50); border-color: var(--color-gold-500); }
.pv2-acc .hp-day-n { padding: .25rem .6rem; min-width: 0; border-radius: .4rem; color: #fff; background: var(--color-lake-900); }
.pv2-acc .hp-day-b { padding-left: 5.9rem; }
@media (max-width: 560px) { .pv2-acc .hp-day-b { padding-left: 1.2rem; } }

.pv2-gal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin-top: 1.2rem; }
@media (min-width: 640px) { .pv2-gal { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pv2-gal a { display: block; overflow: hidden; border-radius: .8rem; background: var(--color-lake-100); }
.pv2-gal img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .6s; }
.pv2-gal a:hover img { transform: scale(1.05); }
@media (min-width: 640px) { .pv2-gal a:first-child { grid-column: span 2; grid-row: span 2; } .pv2-gal a:first-child img { aspect-ratio: auto; } }
.pv2-revs { display: grid; gap: 1rem; margin-top: 1.2rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .pv2-revs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pv2-rev { margin: 0; padding: 1.3rem; background: var(--color-lake-50); border-radius: 1rem; }
.pv2-stars { display: inline-flex; gap: .1rem; color: var(--color-orange-500); }
.pv2-rev blockquote { margin: .7rem 0 0; font-size: .93rem; line-height: 1.7; color: rgba(7,28,46,.88); }
.pv2-rev figcaption b { display: block; margin-top: .9rem; font-size: .9rem; color: var(--color-lake-900); }
.pv2-rev figcaption small { font-size: .76rem; color: rgba(7,28,46,.6); }

.pv2-form { display: grid; gap: .8rem; padding: 1.5rem 1.4rem; background: #fff; border: 1px solid rgba(11,44,69,.14); border-top: 3px solid var(--color-orange-500); border-radius: 1rem; box-shadow: 0 18px 36px -26px rgba(7,28,46,.45); }
.pv2-form-t { font-family: "Playfair Display", serif; font-weight: 500; font-size: 1.35rem; color: var(--color-lake-900); }
.pv2-form-s { margin-top: -.4rem; font-size: .82rem; color: rgba(7,28,46,.65); }
.pv2-aside .hp-rec-card { background: #fff; border: 1px solid rgba(11,44,69,.12); border-radius: 1rem; box-shadow: none; }

.pv2-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.4rem, 3vw, 2.5rem); border-radius: 1.25rem; color: #fff; background: radial-gradient(120% 140% at 0% 0%, var(--color-lake-600) 0%, var(--color-lake-900) 60%, var(--color-lake-950) 100%); }
.pv2-cta h2 { font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.35rem, 2.4vw, 1.8rem); color: #fff; }
.pv2-cta p { margin-top: .35rem; max-width: 34rem; font-size: .93rem; color: rgba(255,255,255,.85); }
.pv2-cta-btns { display: flex; flex-wrap: wrap; gap: .75rem; }
.pv2-cta-wa { display: inline-flex; align-items: center; gap: .5rem; color: #fff; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); }
.pv2-cta-wa:hover { background: rgba(255,255,255,.22); }
.pv2-tabs a { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 640px) { .pv2-hero { aspect-ratio: 16 / 10; border-radius: 1rem; } }

.pv2-tiles .pv2-fi { display: grid; margin: 0; color: var(--color-gold-600); }
/* smaller package tabs */
.pv2-tabs { gap: .4rem; padding-block: .5rem; }
.pv2-tabs a { min-height: 34px; padding: .3rem .85rem; font-size: .78rem; }
/* inclusions: green ticks, exclusions: red crosses */
#trip-inclusions .pv2-yes svg { color: #16A34A; }
#trip-inclusions .pv2-no svg { color: #DC2626; }
/* package tabs on phones: all pills fit on one line (no half-cut pill) */
@media (max-width: 640px) {
  .pv2-tabsbar .container-x { padding-inline: .5rem; }
  .pv2-tabs { gap: .25rem; justify-content: space-between; }
  .pv2-tabs a { padding: .3rem .55rem; font-size: .72rem; }
}

.pv2-tabsbar { top: var(--hdr-h, 4.9rem); }

/* the enquiry form used inline (package page sidebar): same fields as the dialog, one column */
.enq-inline { padding: 1.5rem 1.4rem; background: #fff; border: 1px solid rgba(11,44,69,.14); border-top: 3px solid var(--color-orange-500); border-radius: 1rem; box-shadow: 0 18px 36px -26px rgba(7,28,46,.45); }
.enq-inline .enq-grid { grid-template-columns: 1fr; gap: .7rem; margin-top: 1rem; }
.enq-inline .enq-f label { margin-bottom: .25rem; font-size: .74rem; }
.enq-inline .enq-f input, .enq-inline .enq-f select { padding: .6rem .8rem; font-size: .9rem; }
.enq-inline .enq-row { margin-top: .7rem; }
.enq-inline .enq-cap img { height: 2.5rem; }
.enq-inline .enq-refresh { width: 2.5rem; }
.enq-inline .enq-consent { margin-top: .8rem; font-size: .78rem; line-height: 1.45; }
.enq-inline small { display: block; margin-top: .2rem; font-size: .72rem; line-height: 1.3; color: #c0392b; }
.enq-inline small:empty { display: none; }
.enq-inline .btn[type=submit] { margin-top: .9rem; }
.enq-inline .enq-note { margin-top: .6rem; font-size: .7rem; text-align: center; }
.enq-inline .enq-formerr { margin-top: .7rem; padding: .5rem .75rem; font-size: .8rem; }
.enq-inline .enq-done[hidden], .enq-inline [data-enq-form-wrap][hidden] { display: none; }
.enq-inline .enq-title { font-size: 1.5rem; }

.enq-cap img:not([src]) { visibility: hidden; min-width: 8rem; }

/* enquiry form on phones: name and message full width, the other fields two to a row (mobile + email, date + travellers) */
@media (max-width: 559px) {
  .enq-grid, .enq-inline .enq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem .6rem; }
  .enq-grid > .enq-f:first-child, .enq-grid > .enq-f:last-child { grid-column: 1 / -1; }
  .enq-grid .enq-f input, .enq-grid .enq-f select { padding-inline: .6rem; font-size: .84rem; min-width: 0; }
  .enq-grid .enq-f label { font-size: .7rem; }
}
@media (max-width: 559px) { .enq-cap input { letter-spacing: .2em; } .enq-cap input::placeholder { letter-spacing: .06em; font-size: .78rem; } }

/* package sidebar form: same two-per-row layout as the phone form at every width */
.enq-inline .enq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem .6rem; }
.enq-inline .enq-grid > .enq-f:first-child, .enq-inline .enq-grid > .enq-f:last-child { grid-column: 1 / -1; }
.enq-inline .enq-grid .enq-f input, .enq-inline .enq-grid .enq-f select { padding-inline: .6rem; font-size: .84rem; min-width: 0; }
.enq-inline .enq-grid .enq-f label { font-size: .7rem; }
.enq-inline .enq-cap input { letter-spacing: .2em; }
.enq-inline .enq-cap input::placeholder { letter-spacing: .06em; font-size: .78rem; }

/* Packages page hero: text one side, photo the other */
.pkh { background: linear-gradient(180deg, var(--color-lake-50) 0%, #fff 100%); padding-block: clamp(1rem, 2vw, 1.75rem) clamp(.5rem, 1vw, 1rem); }
.pkh-grid { display: grid; gap: 2rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .pkh-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 3.5rem; } }
.pkh-title { margin-top: .2rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(2rem, 4vw, 3.1rem); line-height: 1.12; color: var(--color-lake-900); }
.pkh-title em { font-style: italic; color: var(--color-sky-500); }
.pkh-lead { margin-top: 1.1rem; max-width: 34rem; font-size: 1.02rem; line-height: 1.8; color: rgba(7,28,46,.85); }
.pkh-btns { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.pkh-media { overflow: hidden; border-radius: 1.25rem; aspect-ratio: 16 / 10; background: var(--color-lake-100); box-shadow: 0 24px 48px -28px rgba(7,28,46,.55); }
.pkh-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pkh-points { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: .5rem; }
.pkh-points li { display: flex; align-items: center; gap: .6rem; font-size: .93rem; color: rgba(7,28,46,.88); }
.pkh-points svg { flex: none; color: var(--color-gold-600); }
.pkh-lead { margin-top: .8rem; }
.pkh-btns { margin-top: 1.25rem; }
#all-packages { padding-top: clamp(1.25rem, 2.5vw, 2rem) !important; }

/* Contact page: full-width map at the end */
.cf-map-full { position: relative; width: 100%; height: clamp(18rem, 42vw, 30rem); background: var(--color-lake-100); }
.cf-map-full iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.cf-map-link { position: absolute; right: 1rem; top: 1rem; display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .9rem; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-lake-900); background: #fff; border-radius: 999px; box-shadow: 0 8px 20px -8px rgba(7,28,46,.5); transition: background .2s, color .2s; }
.cf-map-link:hover { background: var(--color-lake-900); color: #fff; }

/* taller package photo */
.pv2-hero { aspect-ratio: 16 / 9; max-height: 42rem; }
@media (max-width: 640px) { .pv2-hero { aspect-ratio: 4 / 3; } }

/* package photo fills the first screen: header + breadcrumb above it, tab bar just below */
.pv2-hero { aspect-ratio: auto; max-height: none; min-height: 18rem; height: calc(100vh - 14.5rem); height: calc(100svh - 14.5rem); }
@media (max-width: 640px) { .pv2-hero { aspect-ratio: auto; height: calc(100svh - 14rem); } }

/* Banner on every inner page: same framed photo as the package page (breadcrumb above, fills the screen height) */
.pb2 { background: #fff; }
.pb2 .pv2-hero { height: calc(100vh - 12.5rem); height: calc(100svh - 12.5rem); min-height: 18rem; }
.pb2:not(:has(.pv2-crumbs)) .pv2-hero { margin-top: 1.25rem; }
.pb2 + * { scroll-margin-top: 5rem; }
@media (max-width: 640px) { .pb2 .pv2-hero { height: calc(100svh - 12rem); } }

/* Home hero: same framed, rounded photo as the inner pages, filling the first screen */
.hero-frame { background: #fff; padding-block: 1rem .75rem; }
.hero-card { height: calc(100vh - 7rem); height: calc(100svh - 7rem); min-height: 28rem; border-radius: 1.25rem; box-shadow: 0 18px 40px -24px rgba(7,28,46,.45); }
@media (max-width: 640px) { .hero-frame { padding-block: .75rem .5rem; } .hero-card { height: calc(100svh - 6rem); border-radius: 1rem; } }
.hero-ctl { padding-inline: 1rem; } @media (min-width: 640px) { .hero-ctl { padding-inline: 2rem; } }
.hero-ctl-wrap { bottom: 3.75rem !important; } @media (max-width: 1023px) { .hero-ctl-wrap { bottom: 3rem !important; } }

/* home hero on phones: shorter, not the whole screen */
@media (max-width: 640px) { .hero-card { height: clamp(20rem, 56svh, 26rem); min-height: 0; } }
@media (max-width: 640px) { .hero-ctl-wrap { bottom: 1rem !important; } }

/* the highlights strip is gone, so the hero controls sit at the bottom edge again */
.hero-ctl-wrap { bottom: 1.5rem !important; }

/* every page banner on phones: same height as the home hero */
@media (max-width: 640px) { .pv2-hero, .pb2 .pv2-hero { aspect-ratio: auto; height: clamp(20rem, 56svh, 26rem); min-height: 0; } }

/* ===== Touch targets on phones: keep the look, give every control a ~44px hit area ===== */
@media (max-width: 1023px) {
  .pv2-tabs a, .hp-expand, .ar-share a, .ar-share button, .ft-top, .pv2-crumbs a, .ar-ab-l a, .ar-ab-n a { position: relative; }
  .pv2-tabs a::after, .hp-expand::after, .ar-share a::after, .ar-share button::after, .ft-top::after, .pv2-crumbs a::after, .ar-ab-l a::after, .ar-ab-n a::after { content: ""; position: absolute; inset: -6px -2px; }
  .pv2-tabs a::after { display: block; height: auto; background: transparent; transform: none; }   /* a hit area, not the old underline */
  .ar-toc a { min-height: 44px; align-items: center; }
  .ft-col li a, .ft-visit a { display: inline-block; padding-block: .5rem; }
  .ar-ab-l { gap: .25rem 1rem; }
}

/* tablets: banners and the home hero are tall enough to look good, but never a full portrait screen */
@media (min-width: 641px) and (max-width: 1023px) {
  .hero-card, .pv2-hero, .pb2 .pv2-hero { height: clamp(24rem, 52svh, 36rem); min-height: 0; }
}

/* keep the hero's animated layers inside its own box so nothing can paint over the dialog */
.hero-card { isolation: isolate; }
/* very small phones: let the two-per-row enquiry fields breathe */
@media (max-width: 380px) {
  .enq-grid .enq-f input, .enq-grid .enq-f select, .enq-inline .enq-grid .enq-f input, .enq-inline .enq-grid .enq-f select { font-size: .76rem; padding-inline: .45rem; }
  .enq-dialog { padding-inline: 1.1rem; }
}

/* very large screens: banners fill the screen height up to a sensible limit, so they never turn boxy */
@media (min-width: 1024px) { .hero-card { max-height: 46rem; } .pv2-hero, .pb2 .pv2-hero { max-height: 44rem; } }

/* Accommodation: the intro now sits under the hero */
.rs-intro-sec { padding-block: clamp(1.75rem, 3.5vw, 3rem) clamp(2.5rem, 5vw, 4rem); scroll-margin-top: 5rem; }
.rs-intro-lead { max-width: 46rem; margin: 0 auto 2rem; text-align: center; }
.rs-intro-lead p { font-size: 1rem; line-height: 1.85; color: rgba(7,28,46,.88); }
#rooms { scroll-margin-top: 5rem; }


/* Accommodation hero: the two room categories sit on the right instead of a photo */
.pkh-aside .rs-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin: 0; }
.rs-intro-sec .container-x { display: block; }
.rs-intro-lead { margin: 0 auto; max-width: 46rem; text-align: center; }

/* Accommodation hero: two proper room cards, as tall as the text beside them */
@media (min-width: 1024px) { .pkh-grid:has(.pkh-aside) { align-items: stretch; } .pkh-aside, .pkh-aside .rs-index { height: 100%; } }
.pkh-aside .rs-index { gap: 1.1rem; border: 0; }
.pkh-aside .rs-index li { display: flex; border: 0; }
.pkh-aside .rs-index li:nth-child(odd) { border-right: 0; }
.pkh-aside .rs-index a { display: flex; flex-direction: column; width: 100%; padding: 0; overflow: hidden; background: #fff; border: 1px solid rgba(11,44,69,.14); border-radius: 1.1rem; box-shadow: 0 18px 36px -26px rgba(7,28,46,.5); transition: box-shadow .3s, transform .3s; }
.pkh-aside .rs-index a:hover { background: #fff; transform: translateY(-3px); box-shadow: 0 24px 44px -24px rgba(7,28,46,.6); }
.pkh-aside .rs-index a::before { display: none; }
.pkh-aside .rs-tile-img { flex: 1 1 auto; min-height: 13rem; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.pkh-aside .rs-tile-img b { left: 1rem; bottom: .9rem; font-size: 1.3rem; }
.pkh-aside .rs-tile-name { margin: 0; padding: 1rem 1.15rem 0; font-size: 1.2rem; }
.pkh-aside .rs-tile-kick { margin: 0; padding: .35rem 1.15rem 1.1rem; font-size: .66rem; }
@media (max-width: 559px) { .pkh-aside .rs-tile-img { min-height: 10rem; } .pkh-aside .rs-tile-name { font-size: 1.02rem; padding-inline: .9rem; } .pkh-aside .rs-tile-kick { padding-inline: .9rem; letter-spacing: .12em; } }
.pkh-aside .rs-tile-name { min-height: 3.4em; } .pkh-aside .rs-tile-kick { min-height: 3.2em; align-items: flex-start; }

/* Accommodation: about block under the hero (text + photo) */
.rs-about { display: grid; gap: 1.75rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 900px) { .rs-about { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 3.5rem; } }
.rs-about-title { margin-top: .15rem; font-family: "Playfair Display", serif; font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.2; color: var(--color-lake-900); }
.rs-about-title em { font-style: italic; color: var(--color-sky-500); }
.rs-about-copy p { margin-top: 1rem; font-size: 1rem; line-height: 1.85; color: rgba(7,28,46,.88); }
.rs-about-media { margin: 0; overflow: hidden; border-radius: 1.25rem; aspect-ratio: 5 / 4; background: var(--color-lake-100); box-shadow: 0 24px 48px -28px rgba(7,28,46,.55); }
.rs-about-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 899px) { .rs-about-media { aspect-ratio: 16 / 10; } .rs-about-copy { order: 1; } .rs-about-media { order: 2; } }
@media (max-width: 480px) { .rs-about-media { aspect-ratio: 4 / 3; border-radius: 1rem; } }
.rs-intro-sec .container-x.rs-about { display: grid; }

/* ---- Room photo slider (same container as before, now with several photos) ---- */
.rs-slider { position: relative; }
.rs-track { display: flex; height: 100%; transition: transform .7s cubic-bezier(.2,.7,.2,1); will-change: transform; }
.rs-slider .rs-track img { flex: 0 0 100%; width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; transform: none !important; }
@media (max-width: 1023px) { .rs-slider { aspect-ratio: 16 / 11; } .rs-slider .rs-track img { aspect-ratio: auto; } }
@media (min-width: 1024px) { .rs-slider { height: 100%; min-height: 22rem; } }
.rs-arrow { position: absolute; z-index: 3; top: 50%; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; margin-top: -1.3rem; color: #fff; background: rgba(7,28,46,.45); border: 1px solid rgba(182,221,245,.5); border-radius: 50%; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: background .25s, color .25s, transform .25s; }
.rs-arrow:hover, .rs-arrow:focus-visible { background: var(--color-gold-400); color: var(--color-lake-950); transform: scale(1.06); }
.rs-prev { left: .8rem; } .rs-next { right: .8rem; }
.rs-count { position: absolute; z-index: 3; top: .9rem; right: .9rem; padding: .3rem .75rem; font-size: .72rem; letter-spacing: .12em; color: #fff; background: rgba(7,28,46,.5); border: 1px solid rgba(182,221,245,.4); border-radius: 999px; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.rs-count b { font-weight: 600; }
.rs-dots { position: absolute; z-index: 3; right: 1rem; bottom: 1.2rem; display: flex; gap: .4rem; }
.rs-dots button { width: .5rem; height: .5rem; padding: 0; border-radius: 50%; background: rgba(255,255,255,.5); transition: background .25s, transform .25s, width .25s; }
.rs-dots button[aria-selected="true"] { width: 1.3rem; border-radius: 999px; background: var(--color-gold-400); }
@media (max-width: 559px) { .rs-arrow { width: 2.3rem; height: 2.3rem; margin-top: -1.15rem; } .rs-dots { right: .8rem; bottom: .9rem; } }
.rs-dots { right: auto; bottom: auto; top: 1.15rem; left: 1rem; }
@media (max-width: 559px) { .rs-dots { right: auto; bottom: auto; top: 1.05rem; left: .8rem; } }

/* About: two room tiles, centred */
.ab-room-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: center; max-width: 46rem; margin-inline: auto; }
@media (min-width: 900px) { .ab-room-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* footer photo credit */
.ft-credit { font-size: .74rem; opacity: .75; }
.ft-credit a { text-decoration: underline; text-underline-offset: 3px; }
.ft-credit a:hover { opacity: 1; }
.gal-credit { margin-top: 1.5rem; font-size: .8rem; text-align: center; color: rgba(7,28,46,.65); } .gal-credit a { text-decoration: underline; text-underline-offset: 3px; color: var(--color-lake-600); }
