/* ===========================================================================
   Dee Visuals — deevisuals.com redesign · shared stylesheet
   Light theme. System font stack, editorial monochrome, soft radii, hairline structure.
   =========================================================================== */

:root {
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;
  /* light theme */
  --white:#ffffff; --ink:#1d1d1f; --ink2:#424245; --gray:#86868b; --gray2:#b0b0b6;
  --line:#d2d2d7; --line2:#e8e8ed; --line3:#f0f0f2; --surface:#f5f5f7; --card:#ffffff;
  --canvas:#ffffff; --hero-dark:#18181a; --chrome:rgba(255,255,255,0.72);
  --success:#1d7a4d; --success-bg:#eaf6ef; --warn:#8a6608; --warn-bg:#fbf3e1;
  --ring:rgba(29,29,31,0.06); --shadow:0 1px 3px rgba(0,0,0,.05); --shadow-pop:0 14px 40px rgba(0,0,0,.11);
  --cta-fg:#ffffff; --cta-muted:rgba(255,255,255,0.6);
  --nav-h:68px; --wrap:1240px;
  color-scheme:light;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--white); color:var(--ink); font-family:var(--font);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; line-height:1.5; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a.tlink { color:var(--ink); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gray2); }
a.tlink:hover { text-decoration-color:var(--ink); }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 40px; }
.eyebrow { font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gray); }
h1,h2,h3,h4 { margin:0; letter-spacing:-0.02em; font-weight:600; }

/* ---------- Buttons ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; white-space:nowrap;
  font-size:15px; font-weight:500; letter-spacing:-0.01em; padding:15px 26px; border-radius:14px;
  cursor:pointer; border:1px solid transparent; transition:opacity .15s, background .15s; }
.btn--ink { background:var(--ink); color:var(--white); border-color:var(--ink); }
.btn--ink:hover { opacity:.9; }
.btn--out { background:var(--card); color:var(--ink); border-color:var(--line); }
.btn--out:hover { background:var(--surface); }
.btn--white { background:var(--white); color:var(--ink); border-color:var(--white); }
.btn--white:hover { opacity:.9; }
.btn--ghost { background:transparent; color:var(--cta-fg); border-color:color-mix(in srgb, var(--cta-fg) 32%, transparent); }
.btn--sm { padding:10px 18px; font-size:14px; border-radius:12px; }

/* ---------- Header / nav ---------- */
header.nav { position:sticky; top:0; z-index:100; background:var(--chrome);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line2); }
.nav__in { display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); }
.brand { display:flex; align-items:baseline; gap:7px; flex:0 0 auto; }
.brand b { font-size:19px; font-weight:700; letter-spacing:.02em; }
.brand span { font-size:19px; font-weight:400; letter-spacing:.2em; }
.menu { display:flex; align-items:center; gap:2px; }
.menu > li { list-style:none; position:relative; }
.menu > li > a { display:inline-flex; align-items:center; gap:5px; padding:10px 14px; font-size:14px;
  font-weight:450; color:var(--ink2); border-radius:10px; transition:background .15s, color .15s; }
.menu > li > a:hover { color:var(--ink); background:var(--surface); }
.menu .car { width:8px; height:8px; opacity:.5; }
.nav__right { display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.booknow { display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:var(--white);
  font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; padding:11px 20px; border-radius:980px; transition:opacity .15s; }
.booknow:hover { opacity:.88; }

/* dropdowns */
.dd { position:absolute; top:calc(100% + 6px); left:0; min-width:230px; background:var(--card);
  border:1px solid var(--line2); border-radius:14px; box-shadow:var(--shadow-pop); padding:8px;
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity .16s, transform .16s, visibility .16s; }
.menu > li:hover .dd, .menu > li:focus-within .dd { opacity:1; visibility:visible; transform:translateY(0); }
.dd a { display:block; padding:10px 12px; font-size:14px; color:var(--ink2); border-radius:9px; transition:background .12s, color .12s; }
.dd a:hover { background:var(--surface); color:var(--ink); }
.dd .dd__all { color:var(--ink); font-weight:500; border-top:1px solid var(--line2); margin-top:6px; padding-top:12px; }

/* mobile nav */
.hamb { display:none; width:38px; height:38px; border:1px solid var(--line); border-radius:50%;
  background:transparent; color:var(--ink); align-items:center; justify-content:center; cursor:pointer; }
.mobile { display:none; position:fixed; inset:var(--nav-h) 0 0; background:var(--white); z-index:99; overflow-y:auto; padding:24px 24px 60px; }
.mobile.open { display:block; }
.mobile a { display:block; padding:14px 4px; font-size:18px; border-bottom:1px solid var(--line2); }
.mobile .sub a { font-size:15px; color:var(--gray); padding:10px 4px 10px 16px; border:none; }
.mobile__grp { font-size:12px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gray2); margin:22px 0 4px; }

/* ---------- Page hero (interior header, dark) ---------- */
.phero { background:var(--hero-dark); color:#f5f1e8; padding:84px 0 76px; position:relative; overflow:hidden; }
.phero .eyebrow { color:rgba(245,241,232,.55); }
.phero h1 { font-size:clamp(34px,5vw,56px); line-height:1.04; letter-spacing:-0.03em; margin:18px 0 0; max-width:20ch; }
.phero p { font-size:18px; line-height:1.55; color:rgba(245,241,232,.72); margin:22px 0 0; max-width:60ch; }
.phero .crumbs { font-size:13px; color:rgba(245,241,232,.5); margin-bottom:4px; }
.phero .crumbs a:hover { color:#f5f1e8; }
.phero__cta { display:flex; gap:12px; margin-top:34px; flex-wrap:wrap; }

/* ---------- Sections ---------- */
section { padding:100px 0; }
.sec__head { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:52px; flex-wrap:wrap; }
.sec__head h2 { font-size:clamp(28px,3.4vw,42px); line-height:1.06; margin:14px 0 0; max-width:18ch; }
.sec__head p { font-size:16px; color:var(--gray); line-height:1.55; margin:0; max-width:34ch; }
.tint { background:var(--surface); }
/* centered row of equal-width check items (about page credentials) */
.ticks { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:34px; }
.ticks > span { display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--line2);
  border-radius:16px; padding:14px 18px; font-size:14px; line-height:1.45; text-align:left; color:var(--ink2); }
.ticks > span > span:first-child { flex:none; display:flex; color:var(--success); }
@media (max-width:900px) { .ticks { grid-template-columns:1fr; max-width:460px; margin-left:auto; margin-right:auto; } }
.sec__head--center { justify-content:center; align-items:center; text-align:center; }
.sec__head--center h2 { max-width:none; text-wrap:balance; }
.sec__head--center p { max-width:52ch; margin:18px auto 0; text-wrap:balance; }
.sec__head--center .eyebrow { display:inline-block; margin-right:-.16em; }
/* Stacked spec list (replaces the wrapped pill row) */
.speclist { display:inline-flex; flex-direction:column; align-self:flex-start; background:var(--card); border:1px solid var(--line2); border-radius:18px; overflow:hidden; margin-top:22px; }
.speclist__i { display:flex; align-items:flex-start; gap:12px; padding:15px 26px 15px 20px; font-size:15px; line-height:1.5; color:var(--ink2); border-top:1px solid var(--line2); }
.speclist__i:first-child { border-top:none; }
.speclist__i > span:first-child { flex:none; margin-top:1px; }

/* ---------- Service grid ---------- */
.svc { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line2); border-radius:22px; overflow:hidden; background:var(--card); }
.svc__item { padding:34px 30px 38px; border-right:1px solid var(--line2); border-bottom:1px solid var(--line2); display:flex; flex-direction:column; gap:13px; transition:background .18s; }
.svc__item:hover { background:var(--surface); }
.svc__item:nth-child(3n) { border-right:none; }
.svc__item:nth-last-child(-n+3) { border-bottom:none; }
.svc__ic { width:46px; height:46px; border-radius:13px; background:var(--surface); display:flex; align-items:center; justify-content:center; flex:none; }
.svc__ic svg { stroke:var(--ink); }
.svc__item:hover .svc__ic { background:var(--card); }
.svc__name { font-size:19px; font-weight:600; margin-top:4px; }
.svc__desc { font-size:14.5px; line-height:1.55; color:var(--gray); }
.svc__more { font-size:13.5px; font-weight:500; color:var(--ink); margin-top:auto; padding-top:10px; }
/* media block: bleeds to the tile edges, 4:3. Empty until real photo/video is dropped in. */
.svc__media { position:relative; display:block; aspect-ratio:4/3; margin:-34px -30px 8px; background:var(--surface);
  border-bottom:1px solid var(--line2); overflow:hidden; }
.svc__media img, .svc__media video { width:100%; height:100%; object-fit:cover; display:block; }
/* an unfilled <video> paints an opaque black UA box — hide it until a src is set */
.svc__media video:not([src]) { display:none; }
.svc__slot { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray2); text-align:center; padding:0 18px; }
.svc__slot span:last-child { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:0; text-transform:none; font-weight:500; opacity:.75; }
.svc__ic--over { position:absolute; left:16px; bottom:16px; width:42px; height:42px; border-radius:12px; background:var(--card);
  box-shadow:0 1px 4px rgba(0,0,0,.1); z-index:2; }
.svc__item:hover .svc__ic--over { background:var(--card); }
/* the bundle tile: solid dark panel, no media */
.svc__item--dark { background:var(--hero-dark); }
.svc__item--dark:hover { background:var(--hero-dark); }
.svc__item--dark .svc__name, .svc__item--dark .svc__more { color:#f5f1e8; }
.svc__item--dark .svc__desc { color:rgba(245,241,232,.62); }
.svc__item--dark .svc__ic, .svc__item--dark:hover .svc__ic { background:rgba(245,241,232,.1); }
.svc__item--dark .svc__ic svg { stroke:#f5f1e8; }

/* ---------- Stat strip ---------- */
.strip { border-top:1px solid var(--line2); border-bottom:1px solid var(--line2); background:var(--white); }
.strip__in { display:flex; }
.strip__cell { flex:1; padding:28px 0; display:flex; flex-direction:column; gap:4px; }
.strip__cell + .strip__cell { border-left:1px solid var(--line2); padding-left:32px; }
.strip__k { font-size:26px; font-weight:600; letter-spacing:-0.02em; }
.strip__l { font-size:13px; color:var(--gray); }

/* ---------- Feature rows (icon + text) ---------- */
.feat { display:grid; grid-template-columns:repeat(4,1fr); gap:36px 28px; }
.feat__item h3 { font-size:19px; margin:0 0 8px; }
.feat__item p { font-size:14.5px; line-height:1.6; color:var(--gray); margin:0; }
.feat__n { font-size:13px; font-weight:600; color:var(--gray2); font-variant-numeric:tabular-nums; }

/* ---------- Gallery / masonry ---------- */
.filters { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
.filters button { padding:9px 18px; border-radius:980px; border:1px solid var(--line); background:var(--card);
  color:var(--ink2); font-size:13.5px; font-weight:500; cursor:pointer; transition:background .15s,color .15s,border-color .15s; }
.filters button.on { background:var(--ink); color:var(--white); border-color:var(--ink); }
.masonry { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.masonry__item { break-inside:avoid; margin-bottom:14px; border-radius:14px; overflow:hidden; cursor:pointer;
  border:1px solid var(--line2); background:var(--surface); display:block; width:100%; }
.masonry__item { aspect-ratio:3/2; overflow:hidden; border-radius:14px; display:block; }
.masonry__item img { width:100%; height:100%; object-fit:cover; transition:opacity .2s, transform .3s; }
.masonry__item:hover img { opacity:.92; transform:scale(1.02); }
.grid3 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
/* empty photo slot label — used anywhere a real photo has not been supplied yet */
.ph, .masonry__item, .phwrap { position:relative; }
.phslot { position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
  font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray2); text-align:center; padding:0 14px; }
.phslot span:last-child { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:0; text-transform:none; font-weight:500; opacity:.75; word-break:break-all; }
.grid3 .ph { aspect-ratio:4/3; border-radius:16px; overflow:hidden; border:1px solid var(--line2); background:var(--surface); cursor:pointer; }
.grid3 .ph img { width:100%; height:100%; object-fit:cover; }

/* lightbox */
.lb { position:fixed; inset:0; background:rgba(10,10,11,.94); z-index:200; display:none; align-items:center; justify-content:center; }
.lb.open { display:flex; }
.lb img { max-width:90vw; max-height:86vh; border-radius:8px; }
.lb__x, .lb__prev, .lb__next { position:absolute; background:rgba(255,255,255,.1); border:none; color:#fff; cursor:pointer;
  width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.lb__x { top:24px; right:24px; }
.lb__prev { left:24px; top:50%; transform:translateY(-50%); }
.lb__next { right:24px; top:50%; transform:translateY(-50%); }
.lb__prev:hover,.lb__next:hover,.lb__x:hover { background:rgba(255,255,255,.2); }

/* ---------- Pricing ---------- */
.ptabs { display:inline-flex; gap:4px; padding:5px; background:var(--surface); border-radius:980px; margin-bottom:44px; }
.ptabs button { padding:10px 22px; border-radius:980px; border:none; background:transparent; color:var(--ink2);
  font-size:14px; font-weight:500; cursor:pointer; transition:background .15s,color .15s; }
.ptabs button.on { background:var(--ink); color:var(--white); }
.pcards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pcard { border:1px solid var(--line2); border-radius:20px; padding:32px 28px; background:var(--card); display:flex; flex-direction:column; box-shadow:var(--shadow); }
.pcard.feat2 { border-color:var(--ink); box-shadow:0 0 0 1px var(--ink) inset, var(--shadow-pop); }
/* two-up service pricing (Airbnb page): light standard card + dark premium card */
.pcards--two { grid-template-columns:1fr 1fr; max-width:820px; margin:0 auto; }
.pcard__eyebrow { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gray); }
.pcard__eyebrow + .pcard__price { margin-top:14px; }
.pcard__sub { font-size:13.5px; color:var(--gray); margin:0; }
.pcard__price + .pcard__sub { margin-top:4px; }
.pcard--dark { background:var(--hero-dark); border-color:var(--hero-dark); color:#f5f1e8; }
.pcard--dark .pcard__eyebrow, .pcard--dark .pcard__sub { color:rgba(245,241,232,.6); }
.pcard--dark li { color:#fff; }
.pcard--dark .ck { color:#f5f1e8; }
.pcard--dark .pcard__tag { background:#f5f1e8; color:#1d1d1f; }
.pnote { max-width:820px; margin:22px auto 0; font-size:13px; line-height:1.6; color:var(--gray); text-align:center; }
.pnote b { color:var(--ink2); }
@media (max-width:760px) { .pcards--two { grid-template-columns:1fr; } }
.pcard__tag { align-self:flex-start; font-size:10.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  background:var(--ink); color:var(--white); padding:4px 11px; border-radius:980px; margin-bottom:16px; }
.pcard h3 { font-size:22px; }
.pcard__price { font-size:38px; font-weight:600; letter-spacing:-0.03em; margin:16px 0 2px; }
.pcard__price span { font-size:14px; font-weight:500; color:var(--gray); letter-spacing:0; }
.pcard ul { list-style:none; padding:0; margin:22px 0 26px; display:flex; flex-direction:column; gap:12px; }
.pcard li { display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:var(--ink2); line-height:1.4; }
.pcard--dark li { color:#cfcac0; }
.pcard li .ck { flex:0 0 auto; width:19px; height:19px; border-radius:50%; background:var(--surface); display:flex; align-items:center; justify-content:center; margin-top:1px; }
.pcard li .ck svg { stroke:var(--ink); }
.pcard .btn { margin-top:auto; }
.addons { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.addon { border:1px solid var(--line2); border-radius:16px; padding:22px 24px; background:var(--card); }
.addon h3 { font-size:17px; display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.addon h3 span { font-size:16px; font-weight:600; color:var(--ink); white-space:nowrap; }
.addon p { font-size:13.5px; color:var(--gray); margin:8px 0 0; line-height:1.5; }
.finehint { font-size:13px; color:var(--gray); margin-top:24px; line-height:1.6; }
/* add-ons / standalone price list */
.pricelist { border:1px solid var(--line2); border-radius:18px; overflow:hidden; background:var(--card); }
.pricelist__hd { font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); padding:15px 24px; background:var(--surface); border-bottom:1px solid var(--line2); }
.prow { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:18px 24px; border-bottom:1px solid var(--line2); }
.prow:last-child { border-bottom:none; }
.prow .nm { font-size:16px; font-weight:600; }
.prow .ds { font-size:13.5px; color:var(--gray); margin-top:4px; line-height:1.5; }
.prow .pr { font-size:15px; font-weight:600; white-space:nowrap; flex:0 0 auto; font-variant-numeric:tabular-nums; }
.pricecols { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
/* add-on cards (6-up bordered grid) */
.addoncards { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line2); border-radius:22px; overflow:hidden; background:var(--card); }
.aoc { padding:38px 34px 34px; border-right:1px solid var(--line2); border-bottom:1px solid var(--line2); display:flex; flex-direction:column; }
.aoc:nth-child(3n) { border-right:none; }
.aoc:nth-last-child(-n+3) { border-bottom:none; }
.aoc__ey { font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gray2); }
.aoc__price { margin:20px 0 4px; display:flex; align-items:baseline; gap:10px; }
.aoc__price .fr { font-size:24px; font-weight:400; color:var(--gray); letter-spacing:-0.01em; }
.aoc__price .amt { font-size:46px; font-weight:500; letter-spacing:-0.03em; line-height:1; }
.aoc__sub { font-size:14px; color:var(--gray); }
.aoc__list { list-style:none; padding:0; margin:26px 0 28px; display:flex; flex-direction:column; gap:14px; }
.aoc__list li { display:flex; gap:12px; font-size:14.5px; color:var(--ink2); line-height:1.45; }
.aoc__list li .ar { color:var(--gray2); flex:0 0 auto; }
.aoc .btn { margin-top:auto; width:100%; }

/* ---------- FAQ ---------- */
.faq { border-top:1px solid var(--line2); max-width:820px; margin-left:auto; margin-right:auto; }
.faq__q { border-bottom:1px solid var(--line2); }
.faq__q button { width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:22px 0;
  font-size:17px; font-weight:500; color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:20px; font-family:inherit; }
.faq__q .pm { flex:0 0 auto; width:22px; height:22px; position:relative; transition:transform .2s; }
.faq__q .pm::before,.faq__q .pm::after { content:""; position:absolute; background:var(--gray); border-radius:2px; }
.faq__q .pm::before { top:10px; left:3px; right:3px; height:2px; }
.faq__q .pm::after { left:10px; top:3px; bottom:3px; width:2px; transition:opacity .2s; }
.faq__q.open .pm::after { opacity:0; }
.faq__a { max-height:0; overflow:hidden; transition:max-height .25s ease; }
.faq__a p { font-size:15px; line-height:1.65; color:var(--gray); margin:0 0 22px; max-width:70ch; }

/* ---------- Reviews ---------- */
.revs { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rev { border:1px solid var(--line2); border-radius:18px; padding:28px; background:var(--card); display:flex; flex-direction:column; gap:14px; }
.rev__stars { font-size:13px; letter-spacing:3px; color:var(--ink); }
.rev__q { font-size:15px; line-height:1.6; color:var(--ink2); margin:0; flex:1; }
.rev__who b { display:block; font-size:14px; font-weight:600; }
.rev__who span { font-size:12.5px; color:var(--gray); }

/* ---------- Service areas ---------- */
.areagrid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.area { border:1px solid var(--line2); border-radius:14px; padding:18px 20px; display:flex; flex-direction:column; gap:3px; background:var(--card); transition:background .15s; }
.area:hover { background:var(--surface); }
.area b { font-size:15px; font-weight:600; }
.area span { font-size:12.5px; color:var(--gray); }
.area--ask { border-style:dashed; }
.region { margin-bottom:40px; }
.region h3 { font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); margin-bottom:16px; }
.region__list { display:flex; flex-wrap:wrap; gap:10px; }
.region__list a { padding:9px 16px; border-radius:980px; border:1px solid var(--line); font-size:14px; background:var(--card); transition:background .15s; }
.region__list a:hover { background:var(--surface); }

/* ---------- Flagship / split band ---------- */
.split { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line2); border-radius:24px; overflow:hidden; background:var(--card); }
.split__img { position:relative; background:var(--surface); min-height:440px; }
.split__img img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split__body { padding:56px 52px; display:flex; flex-direction:column; justify-content:center; }
.split__tag { align-self:flex-start; display:inline-flex; align-items:center; gap:7px; background:var(--surface); color:var(--ink);
  font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:6px 13px; border-radius:980px; }
.split__body h3 { font-size:32px; line-height:1.08; margin:20px 0 0; }
.split__list { list-style:none; padding:0; margin:24px 0 0; display:flex; flex-direction:column; gap:13px; }
.split__list li { display:flex; align-items:flex-start; gap:11px; font-size:15.5px; color:var(--ink2); }
.split__list .ck { flex:0 0 auto; width:21px; height:21px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; margin-top:1px; }
.split__list .ck svg { stroke:var(--white); }

/* iGUIDE page media slots */
.tourshot { aspect-ratio:1/1; align-self:center; max-width:520px; justify-self:center; border-radius:20px; overflow:hidden; border:1px solid var(--line2); background:var(--surface); }
.tourshot img { width:100%; height:100%; object-fit:cover; display:block; }
.tourshot img:not([src]), .planslot img:not([src]) { display:none; }
.embedslot { aspect-ratio:16/10; border-radius:20px; overflow:hidden; border:1px solid var(--line2); background:var(--surface); margin-top:8px; }
.planslot { aspect-ratio:4/3; border-radius:20px; overflow:hidden; border:1px solid var(--line2); background:var(--white); margin-top:8px; }
.planslot img { width:100%; height:100%; object-fit:contain; display:block; }
@media (max-width:900px){ .tourshot { aspect-ratio:4/3; } .embedslot { aspect-ratio:4/3; } }
/* video / reel placeholders (9:16, no device frame) */
.vsplit { display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:center; }
.reelrow { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; }
.reel { position:relative; width:100%; max-width:300px; margin:0 auto; aspect-ratio:9/16; border-radius:28px; overflow:hidden; border:1px solid var(--line2); background:var(--surface); }
.reel img, .reel video { width:100%; height:100%; object-fit:cover; display:block; }
.reel video:not([src]) { display:none; }
@media (max-width:900px){ .vsplit { grid-template-columns:1fr; gap:38px; } .reel { max-width:260px; } }

/* ---------- CTA band ---------- */
.cta { background:var(--ink); color:var(--cta-fg); border-radius:28px; padding:84px 64px; text-align:center; }
.cta h2 { font-size:clamp(30px,4.2vw,50px); line-height:1.04; letter-spacing:-0.03em; margin:0 auto; max-width:18ch; }
.cta p { font-size:18px; color:var(--cta-muted); margin:22px auto 0; max-width:48ch; line-height:1.5; }
.cta__btns { display:flex; gap:12px; justify-content:center; margin-top:38px; flex-wrap:wrap; }

/* ---------- Article (blog) ---------- */
.article { max-width:720px; margin:0 auto; }
.article p { font-size:17px; line-height:1.72; color:var(--ink2); margin:0 0 22px; }
.article h2 { font-size:26px; margin:44px 0 16px; letter-spacing:-0.02em; }
.article__meta { font-size:13px; color:var(--gray); margin-bottom:14px; display:flex; gap:10px; align-items:center; }
.article__lead { font-size:20px; line-height:1.6; color:var(--ink); margin-bottom:32px; }
.bloglist { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.bpost { border:1px solid var(--line2); border-radius:18px; overflow:hidden; background:var(--card); display:flex; flex-direction:column; box-shadow:var(--shadow); transition:box-shadow .2s, transform .2s; }
.bpost:hover { box-shadow:var(--shadow-pop); transform:translateY(-3px); }
.bpost__img { aspect-ratio:16/10; background:var(--surface); overflow:hidden; }
.bpost__img img { width:100%; height:100%; object-fit:cover; }
.bpost__body { padding:22px 24px 26px; display:flex; flex-direction:column; flex:1; }
.bpost__tag { font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray); }
.bpost__body h3 { font-size:19px; line-height:1.25; margin:10px 0 8px; }
.bpost__body p { font-size:14px; color:var(--gray); line-height:1.55; margin:0 0 16px; }
.bpost__more { font-size:13.5px; font-weight:500; margin-top:auto; }

/* ---------- Contact ---------- */
.contact { display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:start; }
.form label { display:block; margin-bottom:18px; }
.form .lab { display:block; font-size:13px; font-weight:600; letter-spacing:.02em; color:var(--ink2); margin-bottom:8px; }
.form input, .form select, .form textarea { width:100%; border:1px solid var(--line); border-radius:12px; padding:13px 14px;
  font-size:15px; font-family:inherit; color:var(--ink); background:var(--card); outline:none; transition:border-color .15s, box-shadow .15s; }
.form input:focus, .form select:focus, .form textarea:focus { border-color:var(--ink); box-shadow:0 0 0 4px var(--ring); }
.form textarea { resize:vertical; line-height:1.5; }
.form__status { padding:14px 16px; border-radius:12px; font-size:14px; margin-bottom:18px; display:none; }
.form__status.ok { display:block; background:var(--success-bg); color:var(--success); }
.contact__aside { background:var(--surface); border-radius:20px; padding:32px; }
.contact__aside h3 { font-size:20px; }
.contact__aside .row { display:flex; gap:12px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line2); }
.contact__aside .row:last-of-type { border-bottom:none; }

/* ---------- Footer ---------- */
footer.foot { border-top:1px solid var(--line2); padding:70px 0 40px; background:var(--white); }
.foot__top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.foot__brand > div:first-child { display:flex; align-items:baseline; gap:7px; }
.foot__brand b { font-size:20px; font-weight:700; letter-spacing:.02em; }
.foot__brand span { font-size:20px; font-weight:400; letter-spacing:.2em; }
.foot__brand p { font-size:14px; color:var(--gray); line-height:1.6; margin:16px 0 0; max-width:34ch; }
.foot__social { display:inline-flex; align-items:center; gap:8px; color:var(--ink2); transition:color .15s; }
.foot__social svg { stroke:var(--gray); transition:stroke .15s; }
.foot__social:hover { color:var(--ink); }
.foot__social:hover svg { stroke:var(--ink); }
.foot__col h4 { font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--gray); margin:0 0 14px; }
.foot__col a { display:block; font-size:14px; color:var(--ink2); padding:6px 0; transition:color .15s; }
.foot__col a:hover { color:var(--ink); }
.foot__bot { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:56px; padding-top:26px; border-top:1px solid var(--line2); font-size:13px; color:var(--gray); flex-wrap:wrap; }

/* ---------- Hero (home) ---------- */
.hero { display:grid; grid-template-columns:1.02fr 1fr; min-height:calc(100vh - var(--nav-h)); }
.hero__left { display:flex; flex-direction:column; justify-content:center; padding:64px 64px 64px 0; }
.hero__eyebrow { display:flex; align-items:center; gap:14px; margin-bottom:26px; }
.hero__eyebrow .eyebrow { font-size:10.5px; letter-spacing:.16em; }
.hero__eyebrow .rule { width:38px; height:1px; background:var(--gray2); }
.hero h1 { font-size:clamp(40px,5.2vw,68px); line-height:1.03; letter-spacing:-0.03em; }
.hero h1 .muted { color:var(--gray2); }
.hero__sub { font-size:19px; line-height:1.55; color:var(--gray); margin:28px 0 0; max-width:32em; }
.hero__cta { display:flex; gap:12px; margin-top:36px; flex-wrap:wrap; }
.hero__meta { display:flex; align-items:center; gap:16px; margin-top:38px; flex-wrap:wrap; font-size:13.5px; color:var(--gray); }
.hero__meta .dot { width:3px; height:3px; border-radius:50%; background:var(--gray2); }
.hero__meta b { color:var(--ink); font-weight:600; }
.hero__right { position:relative; background:var(--surface); }
.hero__right img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__right.full { background:var(--white); display:flex; align-items:center; justify-content:center; padding:32px max(40px,calc((100vw - 1240px)/2 + 40px)) 32px 32px; }
.hero__right.full .heroframe { position:relative; margin:0; display:inline-block; max-width:100%; }
.hero__right.full img { position:static; inset:auto; display:block; width:100%; height:auto; object-fit:contain; border-radius:24px; }
.hero__right.full .hero__credit { left:auto; right:18px; bottom:18px; }
.hero__credit { position:absolute; left:22px; bottom:22px; display:inline-flex; align-items:center; gap:8px;
  background:rgba(29,29,31,.55); backdrop-filter:blur(8px); color:#fff; font-size:12px; font-weight:500; padding:7px 13px; border-radius:980px; }

/* full-bleed immersive hero (home) */
.herof { position:relative; min-height:calc(100vh - var(--nav-h)); display:flex; align-items:center; overflow:hidden; }
.herof__img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.herof__scrim { position:absolute; inset:0; background:linear-gradient(90deg, rgba(12,12,13,.82) 0%, rgba(12,12,13,.55) 38%, rgba(12,12,13,.15) 72%, rgba(12,12,13,0) 100%); }
.herof__in { position:relative; color:#fff; padding:72px 0; }
.herof .hero__eyebrow { margin-bottom:24px; }
.herof .hero__eyebrow .rule { background:rgba(255,255,255,.6); }
.herof .eyebrow { color:rgba(255,255,255,.85); }
.herof h1 { font-size:clamp(40px,5.4vw,72px); line-height:1.03; letter-spacing:-0.03em; max-width:15ch; color:#fff; }
.herof h1 .amp { color:rgba(255,255,255,.5); }
.herof__sub { font-size:19px; line-height:1.55; color:rgba(255,255,255,.86); margin:26px 0 0; max-width:34em; }
.herof .hero__cta { margin-top:34px; }
.herof__meta { display:flex; align-items:center; gap:16px; margin-top:38px; flex-wrap:wrap; font-size:13.5px; color:rgba(255,255,255,.82); }
.herof__meta .dot { width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,.5); }
.herof__meta b { color:#fff; font-weight:600; }
.herof__credit { position:absolute; right:22px; bottom:22px; display:inline-flex; align-items:center; gap:8px;
  background:rgba(12,12,13,.5); backdrop-filter:blur(8px); color:#fff; font-size:12px; font-weight:500; padding:7px 13px; border-radius:980px; }
.btn--glass { background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.42); backdrop-filter:blur(6px); }
.btn--glass:hover { background:rgba(255,255,255,.24); }

/* banner hero (v3): centered intro + full uncropped photo band */
.herob { padding:0; }
.herob__intro { text-align:center; max-width:920px; margin:0 auto; padding:72px 40px 52px; }
.herob__intro .hero__eyebrow { justify-content:center; margin-bottom:22px; }
.herob__intro h1 { font-size:clamp(38px,5vw,64px); line-height:1.04; letter-spacing:-0.03em; }
.herob__intro h1 .muted { color:var(--gray2); }
.herob__sub { font-size:19px; line-height:1.55; color:var(--gray); margin:24px auto 0; max-width:60ch; }
.herob__intro .hero__cta { justify-content:center; margin-top:32px; }
.herob__intro .hero__meta { justify-content:center; }
.herob__banner { width:100%; background:var(--surface); }
.herob__banner img { width:100%; height:auto; display:block; }

@media (max-width:1000px) {
  .wrap { padding:0 22px; }
  .menu, .nav__right .booknow { display:none; }
  .hamb { display:flex; }
  .hero { grid-template-columns:1fr; }
  .hero__left { padding:52px 22px !important; }
  .hero__right { min-height:360px; position:relative; }
  .herof { min-height:auto; padding:0; }
  .herof__in { padding:120px 0 90px; }
  .herof h1 { max-width:none; }
  section { padding:72px 0; }
  .svc, .pcards, .revs, .bloglist, .grid3 { grid-template-columns:1fr 1fr; }
  .pricecols { grid-template-columns:1fr; }
  .addoncards { grid-template-columns:1fr 1fr; }
  .aoc:nth-child(3n) { border-right:1px solid var(--line2); }
  .aoc:nth-child(2n) { border-right:none; }
  .svc__item:nth-child(3n) { border-right:1px solid var(--line2); }
  .svc__item:nth-child(2n) { border-right:none; }
  .feat, .areagrid { grid-template-columns:1fr 1fr; }
  .masonry { grid-template-columns:repeat(2,1fr); }
  .split, .contact { grid-template-columns:1fr; }
  .foot__top { grid-template-columns:1fr 1fr; }
  .strip__in { flex-wrap:wrap; }
  .strip__cell { flex:1 1 45%; }
  .strip__cell:nth-child(odd) { border-left:none; padding-left:0; }
}
@media (max-width:640px) {
  .svc, .pcards, .revs, .bloglist, .grid3, .feat, .areagrid { grid-template-columns:1fr; }
  .addoncards { grid-template-columns:1fr; }
  .aoc { border-right:none !important; }
  .svc__item { border-right:none !important; }
  .masonry { grid-template-columns:1fr; }
  .cta { padding:56px 28px; }
  .split__body { padding:36px 28px; }
}

/* ---------- Booking embed ---------- */
.bookembed { padding:72px 0; }
.bookembed__head { max-width:60ch; margin:0 0 30px; }
.bookembed__head h2 { font-size:clamp(28px,3.4vw,40px); line-height:1.06; letter-spacing:-0.025em; margin:12px 0 12px; }
.bookembed__head p { font-size:17px; line-height:1.6; color:var(--gray); margin:0; }
.bookembed__frame { position:relative; width:100%; overflow:hidden; background:transparent; }
.bookembed__frame iframe { display:block; width:100%; height:1180px; border:0; background:transparent; }
@media (max-width:720px){ .bookembed { padding:52px 0; } }

/* v3.18 - hairline divider between sections (Cowork, Sangat request) */
section + section { border-top:1px solid var(--line2); }
.hero + section { border-top:0; }


/* v3.25 - stacked video blocks (Luxury + Cinematic Walkthroughs) */
.vstack { display:grid; grid-template-columns:1fr; gap:30px; max-width:900px; margin:0 auto; }
.vstack figure { margin:0; }
.vstack .vbox { aspect-ratio:16/9; border-radius:16px; overflow:hidden; border:1px solid var(--line2); background:#000; }
.vstack .vbox iframe, .vstack .vbox video { width:100%; height:100%; border:0; display:block; }
.vstack figcaption { margin-top:10px; font-size:14px; color:var(--gray); text-align:center; }

/* v3.25 - sound toggle on autoplaying reels */
.reel__sound { position:absolute; right:10px; bottom:10px; width:38px; height:38px; border-radius:50%; border:0; background:rgba(0,0,0,.55); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; z-index:2; transition:background .15s; }
.reel__sound:hover { background:rgba(0,0,0,.78); }
.reel__sound svg { width:18px; height:18px; display:block; fill:currentColor; }

/* v3.42 - when the wizard scrolls its frame into view, clear the sticky nav */
iframe[src^="/book"] { scroll-margin-top: 84px; }
