@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@800&display=swap'); /* the 800 weight the headings use; the site loads 300-700 */
/* Lu 2026-10-29 · /lombok round 1 (Paul feedback). The approved mock vd.html, block styles + the laptop-only rules. Source: working-files/lombok-landing-2026-10-24/webflow-round1/gen.py */
/* land.css */
/* ---- block 1 · the surf. Column, heading, sub-line and lead are the live classes (.lkt-wrap .lkt-sec .lkt-h2 .wk-sub .lkt-p.lvs-lead) ---- */
.lsf-t{position:relative;display:block;margin:0;min-width:0;overflow:hidden;background:#e9e6df}
.lsf-t img,.lsf-t video{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover}
/* the door to the surf page: a frosted tab on the big picture; the whole picture clicks through */
.lsf-go{position:static;color:#101010!important;text-decoration:none!important}
.lsf-go::after{content:"";position:absolute;inset:0;z-index:1}
.lsf-tab{position:absolute;left:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;gap:10px;padding:12px 18px;border-radius:100vw;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 6px 22px rgba(10,14,24,.16);font-size:14px;line-height:17px;font-weight:600;transition:background-color .2s ease}
.lsf-ar{display:inline-block;transition:transform .2s ease}
.lsf-go:hover .lsf-tab{background:#fff}
.lsf-go:hover .lsf-ar{transform:translateX(3px)}
.lsf-go:focus-visible{outline:none}
.lsf-go:focus-visible .lsf-tab{outline:2px solid #101010;outline-offset:3px}
/* A · one big picture: a big clip (2 x 2) and four squares, 10 px gaps like the villa photos */
.lsf-bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lsf-bento .lsf-t{aspect-ratio:1/1}
.lsf-bento .lsf-big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
/* B · split: the villa photo mosaic mirrored (same 12-column grid, same 618 px height), text on the right */
.lsf-split{display:grid;grid-template-columns:7fr 5fr;column-gap:48px;align-items:center}
.lsf-mos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:3fr 2fr;gap:10px;height:618px}
.lsf-a{grid-column:span 8}
.lsf-p,.lsf-b{grid-column:span 4}
.lsf-txt{min-width:0}
.lsf-txt .lvs-lead{margin-bottom:0;text-wrap:balance}
.lsf-rows{margin-top:28px;border-top:1px solid #10101024}
.lsf-row{display:grid;grid-template-columns:24px minmax(0,1fr);column-gap:16px;align-items:start;padding:16px 0;border-bottom:1px solid #10101024}
.lsf-row svg{display:block;width:24px;height:24px;margin-top:-1px;color:#101010}
.lsf-row b{display:block;color:#101010;font-size:15px;line-height:20px;font-weight:600}
.lsf-row span{display:block;margin-top:3px;color:#10101094;font-size:13px;line-height:18px}
/* B next round: the text sits in a dusk card, the exact look of the live "bring three friends" band and the referral mails */
.lsf-vc .lsf-split{column-gap:10px;align-items:stretch}
.lsf-dusk{position:relative;overflow:hidden;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:44px 48px;background:#1e2b45;color:#fff}
.lsf-dusk-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;z-index:0}
.lsf-dusk-tint{position:absolute;inset:0;z-index:1;background:linear-gradient(160deg,rgba(20,28,48,.88),rgba(40,40,62,.7) 55%,rgba(150,90,60,.55))}
.lsf-dusk-in{position:relative;z-index:2}
.lsf-dusk .lkt-h2,.lsf-dusk .lvs-lead{color:#fff}
.lsf-dusk .lkt-h2{text-wrap:balance}
.lsf-dusk .lsf-rows{border-top-color:rgba(255,255,255,.22)}
.lsf-dusk .lsf-row{border-bottom-color:rgba(255,255,255,.22)}
.lsf-dusk .lsf-row svg,.lsf-dusk .lsf-row b{color:#fff}
.lsf-dusk .lsf-row span{color:rgba(255,255,255,.78)}
/* ---- block 2 · the villa ---- */
/* A · film + rooms: the drone clip wide with the heading inside it, four rooms below with a label in each picture */
.lvf{display:grid;gap:10px}
.lvf-film{aspect-ratio:1136/520}
.lvf-veil{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(20,28,48,.72) 0%,rgba(20,28,48,.32) 38%,rgba(20,28,48,0) 66%),linear-gradient(to right,rgba(20,28,48,.38) 0%,rgba(20,28,48,0) 55%)}
.lvf-txt{position:absolute;left:40px;right:40px;bottom:36px;z-index:2;color:#fff}
.lvf-txt .lkt-h2{color:#fff}
.lvf-line{margin:14px 0 0;max-width:44ch;font-size:18px;line-height:28px;color:rgba(255,255,255,.92);text-wrap:balance}
.lvf-rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lvf-rooms .lsf-t{aspect-ratio:4/5}
.lvf-lab{position:absolute;left:12px;bottom:12px;z-index:2;box-sizing:border-box;max-width:calc(100% - 24px);padding:8px 12px;border-radius:100vw;background:rgba(255,255,255,.84);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);color:#101010;font-size:13px;line-height:16px;font-weight:600;text-wrap:balance}
/* B · the surf block mirrored: dusk card on the left, the villa mosaic on the right (tall room, then the drone clip) */
.lvb{grid-template-columns:5fr 7fr;column-gap:10px;align-items:stretch}
.lsf-play{position:absolute;right:10px;bottom:10px;z-index:3;width:44px;height:44px;border-radius:50%;border:0;padding:0;cursor:pointer;display:grid;place-items:center;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lsf-play[hidden]{display:none}
.lsf-play svg{width:18px;height:18px;margin-left:2px}
.lsf-play:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media screen and (max-width:991px){
  .lsf-split{grid-template-columns:minmax(0,1fr);row-gap:24px}
  .lsf-txt{order:-1}
  .lsf-mos{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:none;height:auto}
  .lsf-a{grid-column:span 6;aspect-ratio:3/2}
  .lsf-p{grid-column:span 6;aspect-ratio:4/3}
  .lsf-b{grid-column:span 2;aspect-ratio:3/2}
}
@media screen and (max-width:991px){.lsf-vc .lsf-split,.lvb{row-gap:10px}.lvb-mos .lsf-a{order:-1}}
@media screen and (max-width:767px){
  .lvf-film{aspect-ratio:4/5}
  .lvf-txt{left:20px;right:20px;bottom:22px}
  .lvf-line{font-size:16px;line-height:24px}
  .lvf-rooms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lvf-lab{left:10px;bottom:10px;max-width:calc(100% - 20px);padding:7px 11px;font-size:12px;line-height:15px}
}
@media screen and (max-width:767px){
  .lsf-dusk{padding:28px 20px}
  .lsf-bento{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lsf-bento .lsf-big{grid-column:1/-1;grid-row:auto;aspect-ratio:1/1}
  .lsf-p,.lsf-b{grid-column:span 3;aspect-ratio:1/1}
  .lsf-tab{left:12px;bottom:12px;padding:11px 16px}
  .lsf-rows{margin-top:24px}
}
@media (prefers-reduced-motion:reduce){.lsf-ar,.lsf-tab{transition:none}}
/* ---- marks: the viewer switches them on; they sit outside the content and never move it ---- */
html.lu-marks [data-mark]{position:relative;outline:2px solid #2f6bff;outline-offset:14px}
html.lu-marks [data-mark]::before{content:attr(data-mark);position:absolute;left:-16px;top:-46px;padding:5px 10px;border-radius:100vw;background:#2f6bff;color:#fff;font:600 12px/14px 'DM Sans',sans-serif;letter-spacing:.02em;white-space:nowrap;z-index:5;pointer-events:none}
html.lu-marks [data-mi]::before{content:"";position:absolute;inset:0;z-index:5;border:3px solid #2f6bff;pointer-events:none}
html.lu-marks [data-mi]::after{content:attr(data-mi);position:absolute;right:12px;top:12px;z-index:6;padding:5px 10px;border-radius:100vw;background:#2f6bff;color:#fff;font:600 12px/14px 'DM Sans',sans-serif;letter-spacing:.02em;white-space:nowrap;pointer-events:none}
html.lu-marks [data-hm]{outline:2px dashed #2f6bff;outline-offset:8px}
html.lu-marks a.lkt-nl[data-mark]{outline-offset:6px}
html.lu-marks a.lkt-nl[data-mark]::before{left:50%;top:calc(100% + 14px);transform:translateX(-50%);padding:3px 8px;font-size:11px;line-height:12px}
/* ---- block 3 · the gallery (replaces the "how a day goes" text + the "around the villa" strip) ----
   4 columns, 10 px gaps; each column = 2 tall (4:5) + 1 wide (5:4) tiles, so all four end on the same line.
   phone: 2 columns; columns 1+2 side by side, then 3+4 (reads morning → night). */
.lgm{display:flex;gap:10px;margin-top:32px}
.lgm-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:10px}
.lgm .lsf-t{flex:none}
.lgm-P{aspect-ratio:4/5}
.lgm-L{aspect-ratio:5/4}
@media screen and (max-width:767px){
  .lgm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}
  .lgm .lvf-lab{left:8px;bottom:8px;max-width:calc(100% - 16px);padding:6px 10px;font-size:11px;line-height:14px}
}
/* gallery labels, plain (Artur 29 Oct): white words on the picture, no pill; a soft shade at the bottom of that tile only, so they stay readable */
.lgm-plain .lsf-t:has(.lvf-lab)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(12,16,26,.5),rgba(12,16,26,0))}
.lgm-plain .lvf-lab{left:18px;bottom:16px;max-width:calc(100% - 36px);padding:0;border-radius:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#fff;font-size:15px;line-height:20px;font-weight:600;letter-spacing:-.01em;text-shadow:0 1px 10px rgba(0,0,0,.3)}
@media screen and (max-width:767px){
  .lgm-plain .lvf-lab{left:12px;bottom:11px;max-width:calc(100% - 24px);padding:0;font-size:13px;line-height:17px}
}
/* lu-band-short */
.lkt-band .lkt-bp{text-wrap:pretty}.lkt-band{min-height:600px}@media screen and (max-width:767px){.lkt-band{min-height:620px}}
/* lu-sb-laptop */
@media (min-width:768px){html body #lu-sb{display:flex;left:50%;right:auto;bottom:24px;gap:32px;padding:8px 8px 8px 28px;border-radius:100vw;border:1px solid rgba(255,255,255,.6);background:rgba(255,255,255,.74);-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 14px 44px rgba(10,14,24,.2);transform:translate(-50%,calc(100% + 48px))}html body #lu-sb.on{transform:translate(-50%,0)}html body #lu-sb .sb-p{font-size:16px;line-height:20px}html body #lu-sb .sb-s{font-size:13px;line-height:17px}html body #lu-sb a{padding:15px 26px;font-size:15px}}
/* lu-ig-css */
.lig-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.lig-name{display:inline-flex;align-items:center;gap:12px;color:#101010;text-decoration:none;font-size:28px;line-height:34px;font-weight:800;letter-spacing:-.02em}.lig-name svg{flex:none;width:30px;height:30px}.lig-name .lig-arr{font-weight:500;transition:transform .2s}.lig-name:hover span:not(.lig-arr){text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:2px}.lig-name:hover .lig-arr{transform:translateX(4px)}.lig-nav{display:flex;gap:8px}.lig-b{width:44px;height:44px;border-radius:50%;border:1px solid rgba(16,16,16,.18);background:#fff;color:#101010;font-size:22px;line-height:1;cursor:pointer;transition:background .2s}.lig-b:hover{background:rgba(16,16,16,.05)}.lig-row{display:flex;gap:12px;margin-top:28px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);width:100vw;margin-left:calc(50% - 50vw);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.lig-row::-webkit-scrollbar{display:none}.lig-t{position:relative;display:block;flex:0 0 264px;aspect-ratio:3/4;overflow:hidden;border-radius:16px;background:#e9e6df;box-shadow:inset 0 0 0 1px rgba(16,16,16,.06);transform:translateZ(0)}.lig-t img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;-webkit-user-drag:none;user-select:none}.lig-t:hover img{transform:scale(1.03)}.lig-play{position:absolute;top:12px;right:12px;width:22px;height:22px;filter:drop-shadow(0 1px 6px rgba(0,0,0,.5))}@media screen and (max-width:767px){.lig-name{font-size:22px;line-height:28px;gap:10px}.lig-name svg{width:24px;height:24px}.lig-nav{display:none}.lig-row{margin-top:20px;gap:10px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%)}.lig-t{flex-basis:186px;border-radius:14px}.lig-play{top:9px;right:9px;width:18px;height:18px}}
/* lu-wide */
.div-block-356 > .div-block-352{transition:opacity .25s,visibility .25s}.div-block-356.lu-bg-off > .div-block-352{opacity:0;visibility:hidden;pointer-events:none}@media (min-width:992px){.lkt-wrap{max-width:1392px;padding:0 48px}.lkt-bandin{max-width:1392px;padding-left:48px;padding-right:48px}html body #lu-lombok-book-c .c-card{padding-left:max(48px,calc((100vw - var(--lu-sb,0px)) / 2 - 648px));padding-right:max(48px,calc((100vw - var(--lu-sb,0px)) / 2 - 648px))}}
/* lu-dyn */
/* in your week: 5 across on laptop, smaller icons, a short warm line under each title */
@media (min-width:992px){.lkg-grid{grid-template-columns:repeat(5,minmax(0,1fr));column-gap:28px}}
.lkg-ic{width:20px;height:20px;opacity:.9}
.lkg-t{display:inline-block;position:relative;padding-bottom:7px;margin-bottom:2px}
.lkg-t::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:2px;border-radius:2px;background:var(--lu-c,#e2765a);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.7,.2,1) var(--lu-d,0s)}
.lkg-grid.lu-in .lkg-t::after{transform:scaleX(1)}
/* hand-drawn marks */
.lu-u{position:relative;display:inline-block;white-space:nowrap}
.lu-mk{position:absolute;left:-2%;width:104%;overflow:visible;pointer-events:none}
.lu-mk path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.3s cubic-bezier(.4,.1,.2,1) .15s}
.lu-in .lu-mk path,.lu-in.lu-mk path{stroke-dashoffset:0}
.lu-mk-wave{bottom:-.2em;height:.3em}.lu-mk-wave path{stroke:#e2765a;stroke-width:4}
.lu-mk-swoosh{bottom:-.42em;height:.62em}.lu-mk-swoosh path{stroke:#2c8c99;stroke-width:2.2}
.lu-hl{position:relative;z-index:0;white-space:nowrap}
.lu-hl::before{content:"";position:absolute;z-index:-1;left:-4px;right:-4px;bottom:1px;height:.62em;border-radius:3px 8px 4px 9px;background:rgba(227,182,93,.45);transform:scaleX(0) skewX(-8deg);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.2,1) .2s}
.lu-hl.lu-in::before{transform:scaleX(1) skewX(-8deg)}
.lu-ring{position:relative;display:inline-block;color:#101010;margin-left:.45em}
.lu-mk-ring{left:-9px;top:-8px;width:calc(100% + 18px);height:calc(100% + 16px)}.lu-mk-ring path{stroke:#e2765a;stroke-width:1.6}
@media (prefers-reduced-motion:reduce){.lu-mk path{transition:none;stroke-dashoffset:0}.lu-hl::before,.lkg-t::after{transition:none;transform:none}}
/* lu-gap-css */
.lu-gap{padding-top:64px;text-align:center}
#the-surf{padding-top:64px}
@media (max-width:767px){.lu-gap{padding-top:40px}#the-surf{padding-top:40px}}
.lu-gap svg path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.lu-draw path.d{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s cubic-bezier(.4,.1,.2,1)}
.lu-draw.lu-in path.d{stroke-dashoffset:0}
/* A: one long wave */
.lu-gA svg{display:block;width:100%;height:28px}
.lu-gA path{stroke:#2c8c99;stroke-width:2.5}
/* B: moving facts */
.lu-gB{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.lu-gB .tr{display:flex;width:max-content;animation:lu-tick 60s linear infinite}
.lu-gB span{flex:none;font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.02em;color:#101010;white-space:nowrap}
.lu-gB i{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;margin:14px 28px 0;background:#e2765a}
.lu-gB i:nth-of-type(3n+2){background:#e3b65d}.lu-gB i:nth-of-type(3n){background:#2c8c99}
@keyframes lu-tick{to{transform:translateX(-50%)}}
@media (max-width:767px){.lu-gB span{font-size:20px;line-height:28px}.lu-gB i{margin:10px 18px 0;width:6px;height:6px}}
/* C: villa -> beach */
.lu-gC .row{display:flex;align-items:center;justify-content:center;gap:20px;max-width:760px;margin:0 auto}
.lu-gC .ic{flex:none;width:40px;height:40px}
.lu-gC .path{flex:1 1 0;min-width:0;width:100%;height:26px}
.lu-gC .path path{stroke:#e2765a;stroke-width:2.2}
.lu-gC .path path.d{stroke-dasharray:.012 .02;stroke-dashoffset:0;clip-path:inset(0 100% 0 0);transition:clip-path 1.8s cubic-bezier(.4,.1,.2,1)}
.lu-gC.lu-in .path path.d{clip-path:inset(0 0 0 0)}
.lu-gC svg.path{overflow:visible}
.lu-gC p{margin:16px 0 0;font-size:20px;line-height:26px;font-weight:700;letter-spacing:-.01em;color:#101010}
@media (max-width:767px){.lu-gC .ic{width:30px;height:30px}.lu-gC .row{gap:12px}.lu-gC p{font-size:16px;line-height:22px}}
.lu-gC p b{color:#e2765a}
@media (prefers-reduced-motion:reduce){.lu-gB .tr{animation:none}.lu-draw path.d{transition:none;stroke-dashoffset:0}.lu-gC .path path.d{transition:none;clip-path:none}}
/* lu-ctavid */
.lkf-ctavid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;z-index:0}.lkf-ctaveil{z-index:1}.lkf-ctain{position:relative;z-index:2}
/* lu-audit-fix */
@media (max-width:767px){#the-week .wk-mid .wk-t{margin-bottom:10px}}
/* cookie banner lift (live-page fix, same as /lombok-surf) */
html body #lu-sb{bottom:var(--lu-ck,0px)}
@media (min-width:768px){html body #lu-sb{bottom:calc(24px + var(--lu-ck,0px))}}