/* V-Studio — light, bold, flat colour blocks with ink outlines, taken from the camera logo */
:root{
  --paper:#FFFFFF;
  --sky:#EAF4F8;
  --ink:#161616;
  --ink-soft:#4A4A4A;
  --coral:#FF6961;
  --marigold:#F9AA3A;
  --teal:#519EBC;
  --lagoon:#1F5A6B;
  --display:"Unbounded", "Arial Black", system-ui, sans-serif;
  --body:"DM Sans", "Segoe UI", system-ui, sans-serif;
  --line:2.5px solid var(--ink);
  --r-lg:26px; --r-md:18px; --r-sm:12px;
  color-scheme: light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto !important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:-0.02em;margin:0;text-wrap:balance}
h2{font-size:clamp(32px,4.4vw,64px)}
h3{font-size:clamp(20px,1.7vw,24px);letter-spacing:-0.01em}
p{margin:0}
.container{width:min(1280px,100% - 40px);margin-inline:auto}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px;top:10px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px}
.skip:focus{left:12px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border:var(--line);border-radius:999px;font:700 16px var(--body);text-decoration:none;cursor:pointer;transition:box-shadow .25s,background .25s,transform .25s;will-change:transform}
.btn-solid{background:var(--marigold);color:var(--ink);box-shadow:4px 4px 0 var(--ink)}
.btn-solid:hover{background:#FFBC5C;box-shadow:6px 6px 0 var(--ink)}
.btn-line{background:var(--paper);color:var(--ink)}
.btn-line:hover{background:var(--sky)}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:150;display:none;place-items:center;pointer-events:none}
.js .loader{display:grid}
.aperture{position:absolute;inset:0;width:100%;height:100%}
#apHole{fill:var(--lagoon)}
#apBlades line{stroke:var(--marigold);stroke-width:2.5;stroke-linecap:round}
.loader-inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:18px;color:#fff}
.loader-mark{background:#fff;border-radius:50%;padding:18px;border:var(--line)}
.loader-mark{width:132px;height:auto}
.loader-count{font:700 20px var(--display);font-variant-numeric:tabular-nums}
.no-js .loader{display:none}

/* ---------- nav ---------- */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:100;width:min(1280px,100% - 24px);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 8px 8px 14px;background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border:var(--line);border-radius:999px;box-shadow:4px 4px 0 var(--ink)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:800 20px var(--display);letter-spacing:-0.02em}
.brand img{width:44px;height:auto}
.nav ul{display:flex;gap:28px;list-style:none;margin:0;padding:0}
.nav ul a{text-decoration:none;font-weight:500;font-size:16px;color:var(--ink-soft);transition:color .2s}
.nav ul a:hover{color:var(--ink)}
.nav .btn{min-height:46px;padding:0 20px;box-shadow:none}
@media (max-width:900px){.nav ul{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;padding:124px 0 0;overflow:hidden;background:var(--paper)}
.hero-text{position:relative;z-index:3}
.hero h1{font-size:clamp(38px,5.1vw,80px);max-width:16ch}
.hero-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:28px;margin-top:26px}
.lede{font-size:clamp(17px,1.35vw,20px);color:var(--ink-soft);max-width:52ch}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.rating{display:inline-flex;align-items:center;gap:10px;margin-top:30px;padding:8px 16px;border:var(--line);border-radius:999px;text-decoration:none;font-size:15px;background:var(--paper)}
.rating strong{font:800 17px var(--display)}
.stars{color:var(--marigold);letter-spacing:1px;-webkit-text-stroke:.6px var(--ink)}
.shape{position:absolute;z-index:1;border:var(--line);pointer-events:none}
.shape-coral{width:min(30vw,380px);height:min(17vw,220px);background:var(--coral);border-radius:22px;right:-70px;top:auto;bottom:22%}
.shape-marigold{width:min(14vw,170px);height:min(4.5vw,54px);background:var(--marigold);left:6%;bottom:30%;border-radius:6px}
.shape-teal{width:min(30vw,380px);aspect-ratio:1;background:var(--teal);border-radius:50%;left:-120px;bottom:-140px}
.ring-wrap{position:relative;z-index:2;height:clamp(360px,56vh,600px);margin-top:-24px;cursor:grab;touch-action:pan-y}
.ring-wrap:active{cursor:grabbing}
#ring{position:absolute;inset:0;width:100%;height:100%;display:block}
.ring-fallback{position:absolute;inset:0;display:none;gap:14px;align-items:center;justify-content:center;padding:20px}
.ring-fallback img{width:18%;aspect-ratio:3/4;object-fit:cover;border:var(--line);border-radius:var(--r-md)}
.no-webgl .ring-fallback{display:flex}
.ring-hint{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);font-size:14px;color:var(--ink-soft);background:rgba(255,255,255,.85);padding:6px 14px;border-radius:999px;border:1.5px solid var(--ink)}

/* ---------- marquee ---------- */
.marquee{background:var(--coral);border-block:var(--line);overflow:hidden;padding:22px 0}
.marquee-track{display:flex;align-items:center;gap:32px;width:max-content;font:800 clamp(28px,4vw,56px) var(--display);letter-spacing:-0.02em;white-space:nowrap;will-change:transform}
.dot{display:inline-block;width:.55em;height:.55em;border-radius:50%;border:var(--line);flex:none}
.d1{background:var(--marigold)}.d2{background:var(--teal)}.d3{background:var(--paper)}

/* ---------- occasions (pinned sideways scroll) ---------- */
.occasions{background:var(--sky);border-bottom:var(--line);overflow:hidden}
.occ-pin{height:100vh;display:flex;align-items:center}
.occ-track{display:flex;align-items:center;gap:28px;padding:0 6vw;will-change:transform}
.occ-intro{flex:none;width:min(520px,82vw);padding-right:30px}
.occ-intro p{margin-top:22px;color:var(--ink-soft);max-width:40ch}
.occ-card{flex:none;width:min(380px,74vw);background:var(--paper);border:var(--line);border-radius:var(--r-lg);padding:14px 14px 22px;text-decoration:none;transition:transform .35s}
.occ-card.c-coral{box-shadow:10px 10px 0 var(--coral)}
.occ-card.c-marigold{box-shadow:10px 10px 0 var(--marigold)}
.occ-card.c-teal{box-shadow:10px 10px 0 var(--teal)}
.occ-card:hover{transform:translateY(-8px) rotate(-1deg)}
.occ-img{aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;border:2px solid var(--ink);margin-bottom:18px}
.occ-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);will-change:transform}
.occ-card h3{padding:0 8px}
.occ-card p{padding:6px 8px 0;font-size:16px;color:var(--ink-soft)}

/* ---------- iris ---------- */
.iris{position:relative;background:var(--paper)}
.iris-stage{position:relative;height:100vh;overflow:hidden;display:grid;align-items:end}
.iris-photo{position:absolute;inset:0;clip-path:circle(14% at 50% 50%);will-change:clip-path}
.iris-photo img{width:100%;height:100%;object-fit:cover;transform:scale(1.25)}
.iris-copy{position:relative;z-index:2;padding-bottom:9vh;color:#fff}
.iris-copy h2{max-width:18ch;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.iris-copy p{margin-top:18px;max-width:46ch;font-size:19px;color:rgba(255,255,255,.92)}
.iris-copy::before{content:"";position:absolute;inset:-40vh -50vw 0;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent 70%);z-index:-1}

/* ---------- work ---------- */
.work{padding:clamp(90px,12vw,150px) 0}
.work-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:44px}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:46px;padding:0 18px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);font:500 15px var(--body);color:var(--ink);cursor:pointer;transition:background .2s,box-shadow .2s}
.chip:hover{background:var(--sky)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:3px 3px 0 var(--marigold)}
.grid{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:90px;gap:16px;perspective:1200px}
.tile{position:relative;border:var(--line);border-radius:var(--r-md);overflow:hidden;padding:0;background:var(--sky);cursor:zoom-in;transform-style:preserve-3d;grid-column:span 4;grid-row:span 4}
.tile.w{grid-column:span 8;grid-row:span 4}
.tile.t{grid-column:span 4;grid-row:span 8}
.tile img{width:100%;height:100%;object-fit:cover}
.tile.revealed img,.no-anim .tile img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.tile:hover img{transform:scale(1.06)}
.tile .tag{position:absolute;left:12px;bottom:12px;background:var(--paper);border:2px solid var(--ink);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:500}
.tile.hide{display:none}
.tile .shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 62%);transform:translateX(-120%);pointer-events:none}
@media (max-width:900px){.grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:70px}.tile{grid-column:span 3;grid-row:span 4}.tile.t{grid-column:span 3;grid-row:span 8}.tile.w{grid-column:span 6;grid-row:span 4}}
@media (max-width:520px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:60px;gap:10px}.tile{grid-column:span 1;grid-row:span 4}.tile.t{grid-column:span 1;grid-row:span 8}.tile.w{grid-column:span 2;grid-row:span 4}}

/* ---------- process (stacking cards) ---------- */
.process{background:var(--sky);border-block:var(--line);padding:clamp(90px,12vw,140px) 0}
.process-title{max-width:20ch;margin-bottom:60px}
.stack{display:grid;gap:28px}
.step{position:sticky;top:110px;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,.8fr);gap:32px;align-items:center;background:var(--paper);border:var(--line);border-radius:var(--r-lg);padding:30px;min-height:300px;transform-origin:50% 0}
.step.s1{box-shadow:10px 10px 0 var(--coral)}
.step.s2{box-shadow:10px 10px 0 var(--marigold);top:130px}
.step.s3{box-shadow:10px 10px 0 var(--teal);top:150px}
.step.s4{box-shadow:10px 10px 0 var(--coral);top:170px}
.step-n{width:84px;height:84px;border-radius:50%;border:var(--line);display:grid;place-items:center;font:800 34px var(--display);background:var(--marigold)}
.step.s2 .step-n{background:var(--teal)}.step.s3 .step-n{background:var(--coral)}.step.s4 .step-n{background:var(--paper)}
.step p{margin-top:10px;color:var(--ink-soft);max-width:40ch}
.step img{width:100%;height:240px;object-fit:cover;border-radius:var(--r-md);border:2px solid var(--ink)}
@media (max-width:820px){.step{grid-template-columns:auto 1fr;padding:22px;gap:18px}.step img{grid-column:1 / -1;height:180px}.step-n{width:60px;height:60px;font-size:24px}}

/* ---------- reviews (endless rows) ---------- */
.reviews{padding:clamp(90px,12vw,150px) 0;background:var(--paper);overflow:hidden}
.review-top{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:60px}
.review-top h2{max-width:17ch}
.score{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;border:var(--line);border-radius:var(--r-lg);padding:24px 26px;background:var(--sky);box-shadow:8px 8px 0 var(--ink)}
.score-big{display:grid;justify-items:start;gap:4px}
.score-big .num{font:800 clamp(56px,6vw,84px)/1 var(--display);letter-spacing:-0.04em;font-variant-numeric:tabular-nums}
.score-big .stars{font-size:22px}
.score-sub{font-size:15px;color:var(--ink-soft)}
.bars{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bars li{display:grid;grid-template-columns:28px 1fr 28px;gap:10px;align-items:center;font:600 14px var(--body)}
.bars .track{height:14px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);overflow:hidden}
.bars .fill{display:block;height:100%;width:0;background:var(--marigold);border-right:2px solid var(--ink)}
.bars li:nth-child(1) .fill{background:var(--coral)}
.bars .n{text-align:right;color:var(--ink-soft)}
.rv-rows{display:grid;gap:18px;padding:12px 0 28px}
.rv-row{display:flex;width:max-content;gap:18px;will-change:transform}
.rv{flex:none;width:clamp(260px,26vw,380px);border:var(--line);border-radius:var(--r-lg);padding:22px 22px 18px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;gap:18px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.rv.rv[class*="fill-"]{box-shadow:7px 7px 0 var(--ink)}
figure.rv{margin:0}
.rv.short{width:clamp(220px,19vw,290px)}
.rv:hover{transform:translateY(-6px) rotate(-1.2deg)}
.rv.k0{box-shadow:7px 7px 0 var(--coral)}.rv.k1{box-shadow:7px 7px 0 var(--marigold)}.rv.k2{box-shadow:7px 7px 0 var(--teal)}
.rv.fill-coral{background:var(--coral)}.rv.fill-marigold{background:var(--marigold)}.rv.fill-teal{background:var(--teal)}
.rv blockquote{margin:0;font:600 clamp(17px,1.35vw,20px)/1.38 var(--display);letter-spacing:-0.01em}
.rv .rv-stars{color:var(--marigold);-webkit-text-stroke:.6px var(--ink);letter-spacing:1px;font-size:15px}
.rv[class*="fill-"] .rv-stars{color:var(--ink);-webkit-text-stroke:0}
.rv footer{display:flex;align-items:center;gap:10px;font-size:14px}
.rv .av{width:38px;height:38px;border-radius:50%;border:2px solid var(--ink);display:grid;place-items:center;font:700 15px var(--display);background:var(--paper);flex:none}
.rv footer strong{display:block;font-size:15px}
.rv footer span{color:var(--ink-soft)}
.rv.fill-coral footer span,.rv.fill-teal footer span,.rv.fill-marigold footer span{color:var(--ink)}
.rv-foot{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:30px}
.rv-note{flex-basis:100%;font-size:14px;color:var(--ink-soft);margin-top:6px}
@media (max-width:900px){.review-top{grid-template-columns:1fr}.score{grid-template-columns:1fr}}

/* ---------- instagram ---------- */
.insta{background:var(--sky);border-block:var(--line);padding:clamp(90px,12vw,150px) 0;overflow:hidden}
.insta-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:60px;align-items:center}
.insta-copy h2{max-width:14ch}
.insta-copy .lede{margin-top:20px}
.ig-card{margin-top:34px;display:flex;align-items:center;gap:16px;max-width:460px;padding:14px 14px 14px 16px;border:var(--line);border-radius:var(--r-lg);background:var(--paper);text-decoration:none;box-shadow:6px 6px 0 var(--ink);transition:transform .25s,box-shadow .25s}
.ig-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--ink)}
.ig-ring{width:68px;height:68px;border-radius:50%;padding:3px;background:conic-gradient(var(--marigold),var(--coral),var(--teal),var(--marigold));display:grid;place-items:center;flex:none}
.ig-ring img{width:100%;height:100%;object-fit:contain;background:#fff;border-radius:50%;padding:8px}
.ig-ring.sm{width:40px;height:40px;padding:2px}.ig-ring.sm img{padding:4px}
.ig-name{display:grid;flex:1;line-height:1.3}
.ig-name strong{font:700 18px var(--display)}
.ig-name span{font-size:15px;color:var(--ink-soft)}
.ig-follow{background:var(--ink);color:#fff;border-radius:999px;padding:10px 18px;font-weight:700;font-size:15px}
.phone{display:block;justify-self:center;width:min(340px,80vw);aspect-ratio:9/18.5;border:var(--line);border-radius:44px;background:var(--ink);padding:12px;box-shadow:14px 14px 0 var(--coral);transform:rotate(4deg);text-decoration:none;color:var(--ink)}
.phone-screen{height:100%;border-radius:34px;background:#fff;overflow:hidden;display:flex;flex-direction:column}
.phone-head{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;border-bottom:1.5px solid #e6e6e6;font-size:15px}
.phone-feed{flex:1;overflow:hidden;position:relative}
.phone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;will-change:transform}
.phone-grid img{width:100%;aspect-ratio:1;object-fit:cover}
@media (max-width:900px){.insta-grid{grid-template-columns:1fr}.phone{transform:rotate(2deg)}}

/* ---------- visit / map ---------- */
.visit{padding:clamp(90px,12vw,150px) 0}
.visit-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.visit-copy h2{max-width:16ch}
.visit-copy .lede{margin-top:22px}
.near-title{margin-top:34px;font-size:18px}
.near{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.near li{border:2px solid var(--ink);border-radius:999px;padding:6px 14px;font-size:15px;background:var(--paper)}
.near li:nth-child(3n+1){background:var(--sky)}
.addr{margin-top:30px;font-style:normal;line-height:1.7;color:var(--ink-soft)}
.addr strong{color:var(--ink);font-family:var(--display)}
.map-card{border:var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--paper);box-shadow:10px 10px 0 var(--teal)}
.map-frame{position:relative;aspect-ratio:600/460;border-bottom:var(--line);overflow:hidden;background:var(--sky)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-art{position:absolute;inset:0;width:100%;height:100%}
.pin{position:absolute;left:50%;top:44%;width:78px;height:78px;margin:-78px 0 0 -39px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--marigold);border:var(--line);display:grid;place-items:center;box-shadow:4px 4px 0 var(--ink);z-index:2}
.pin img{transform:rotate(45deg);width:46px;height:auto}
.pin-pulse{position:absolute;left:50%;top:44%;width:30px;height:12px;margin:-4px 0 0 -15px;border-radius:50%;background:rgba(22,22,22,.25)}
.map-actions{display:flex;flex-wrap:wrap;gap:12px;padding:18px}
.has-live-map .map-art,.has-live-map .pin,.has-live-map .pin-pulse{display:none}
@media (max-width:900px){.visit-grid{grid-template-columns:1fr}}

/* ---------- faq ---------- */
.faq{background:var(--sky);border-top:var(--line);padding:clamp(90px,12vw,140px) 0}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.faq h2{max-width:13ch;position:sticky;top:120px}
.faq-list{display:grid;gap:12px}
.faq details{border:var(--line);border-radius:var(--r-md);background:var(--paper);transition:box-shadow .25s}
.faq details[open]{box-shadow:6px 6px 0 var(--marigold)}
.faq summary{list-style:none;cursor:pointer;padding:20px 60px 20px 22px;font:600 18px/1.35 var(--display);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;width:30px;height:30px;margin-top:-15px;border:2px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:700 20px/1 var(--body);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--marigold)}
.faq details p{padding:0 22px 22px;color:var(--ink-soft);max-width:60ch}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}.faq h2{position:static}}

/* ---------- film strip ---------- */
.strip{position:relative;height:clamp(380px,46vw,620px);overflow:hidden;background:var(--paper);border-top:var(--line)}
.film{position:absolute;left:-10%;width:120%;background:var(--ink);padding:26px 0;border-block:var(--line)}
.film::before,.film::after{content:"";position:absolute;left:0;right:0;height:12px;background:repeating-linear-gradient(90deg,transparent 0 14px,#fff 14px 30px,transparent 30px 44px);opacity:.9;border-radius:3px}
.film::before{top:7px}.film::after{bottom:7px}
.film-a{top:16%;transform:rotate(-5deg)}
.film-b{top:50%;transform:rotate(4deg);background:var(--lagoon)}
.film-track{display:flex;gap:12px;width:max-content;will-change:transform}
.film-track img{height:clamp(110px,13vw,190px);aspect-ratio:3/2;object-fit:cover;border-radius:6px}

/* ---------- contact ---------- */
.contact{background:var(--marigold);border-top:var(--line);padding:clamp(90px,12vw,150px) 0}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}
.contact h2{max-width:14ch}
.contact .lede{margin-top:20px;color:var(--ink)}
.reach{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:10px}
.reach a{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;padding:16px 20px;background:var(--paper);border:var(--line);border-radius:var(--r-md);text-decoration:none;transition:transform .25s,box-shadow .25s}
.reach a:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--ink)}
.reach strong{font:700 16px var(--display);min-width:110px}
.enq{background:var(--paper);border:var(--line);border-radius:var(--r-lg);padding:30px;display:grid;gap:16px;box-shadow:10px 10px 0 var(--ink)}
.enq label{display:grid;gap:6px;font-weight:500;font-size:15px}
.enq input,.enq select,.enq textarea{font:17px var(--body);color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:var(--r-sm);padding:12px 14px;min-height:50px;width:100%}
.enq textarea{min-height:100px;resize:vertical}
.enq .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:480px){.enq .two{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.footer{padding:60px 0 30px;border-top:var(--line)}
.footer-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:30px}
.footer-logo{width:160px;height:auto}
.footer p{color:var(--ink-soft);max-width:44ch}
.footer-fine{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:40px;padding-top:20px;border-top:1.5px solid #ddd;font-size:14px;color:var(--ink-soft)}

/* ---------- whatsapp, lightbox, cursor ---------- */
.wa-fab{position:fixed;right:18px;bottom:18px;z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;border:var(--line);display:grid;place-items:center;box-shadow:4px 4px 0 var(--ink)}
.wa-fab svg{width:30px;height:30px}
.lightbox{position:fixed;inset:0;z-index:140;background:rgba(255,255,255,.96);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:70px}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%;max-height:80vh;border:var(--line);border-radius:var(--r-md);object-fit:contain}
.lightbox p{font-weight:500}
.lb-btn{position:absolute;width:54px;height:54px;border-radius:50%;border:var(--line);background:var(--paper);font:700 28px/1 var(--body);cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
.lb-x{top:18px;right:18px}.lb-p{left:18px;top:50%}.lb-n{right:18px;top:50%}
@media (max-width:640px){.lightbox{padding:70px 14px}.lb-p,.lb-n{top:auto;bottom:18px}}
.cursor{position:fixed;left:0;top:0;z-index:160;pointer-events:none;width:88px;height:88px;margin:-44px 0 0 -44px;border-radius:50%;background:var(--marigold);border:var(--line);display:grid;place-items:center;font:700 14px var(--display);transform:scale(0)}
@media (hover:none){.cursor{display:none}}

/* split text helpers */
.split .word,.split-words .word{display:inline-block}
.split .char{display:inline-block;will-change:transform}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .loader{display:none}
  .iris-photo{clip-path:none}
  .occ-img img,.iris-photo img{transform:none}
}
