/* Sua Casa em Ubatuba — site público. Mesmo universo dos guias das unidades: céu, sol, palmeiras, ondas, areia, varal de polaroids e ícones coloridos nas cores da logo. */
:root{
  --ink:#4a2c14;--ink2:#6b4423;--muted:#8a6a4c;
  --sun:#f2b84f;--sun2:#ffd97a;--coral:#c9602b;--coral2:#e0824a;--teal:#2f8791;--teal2:#5aa6ae;--olive:#6b7a43;
  --sand:#fff6e1;--sand2:#f6e3b4;--sky1:#bfe6e4;--sky2:#fdeec8;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;--pl-serif:'Fraunces';--sans:'Figtree',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pop:0 7px 0 var(--ink);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:clip}
body{margin:0;background:var(--sand);color:var(--ink);font-family:var(--sans);font-weight:500;font-size:17px;line-height:1.6;-webkit-text-size-adjust:100%;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:8px}
svg.i{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.15em}
svg.i.fill{fill:currentColor;stroke:none}
svg.b{width:1em;height:1em;flex:none;fill:currentColor;vertical-align:-.12em}
h1,h2,h3{font-family:var(--serif);font-weight:700;margin:0;line-height:1.05;letter-spacing:-.015em;text-wrap:balance}
em{font-style:italic;font-weight:500}

/* ---------- topo ---------- */
.top{position:fixed;inset:0 0 auto 0;z-index:60;padding:max(12px,env(safe-area-inset-top,0px)) 12px 0;pointer-events:none}
.top .bar{pointer-events:auto;max-width:1120px;margin:0 auto;height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 0 12px;border-radius:999px;background:#fff9ebd9;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);backdrop-filter:blur(10px);transition:background .3s}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:700 17px/1.02 var(--serif)}
.brand img{width:44px;height:44px;object-fit:contain;background:#fff8e6;border-radius:50%;padding:3px;border:2px solid var(--ink)}
.top nav{display:flex;gap:2px;align-items:center}
.top nav a{text-decoration:none;font:700 14px/1 var(--sans);padding:11px 13px;border-radius:999px;color:var(--ink2);transition:background .2s,color .2s}
.top nav a:hover,.top nav a[aria-current]{background:var(--sun2);color:var(--ink)}
.menu{display:none;background:var(--sun2);border:2px solid var(--ink);color:var(--ink);border-radius:50%;width:46px;height:46px;cursor:pointer;font-size:22px;place-items:center}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font:700 15px/1 var(--sans);text-decoration:none;cursor:pointer;border-radius:14px;padding:15px 22px;border:2px solid var(--ink);color:var(--ink);background:#fff;box-shadow:0 5px 0 var(--ink);transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.btn:active{transform:translateY(5px);box-shadow:0 0 0 var(--ink)}
.btn svg{font-size:19px}
.btn.pri{background:var(--coral);color:#fff}
.btn.gold{background:var(--sun)}
.btn.wa{background:#3fcf6d;color:#052e14}
.btn.ig{background:linear-gradient(45deg,#f9a03f,#e1306c 55%,#7a3fe0);color:#fff}
.btn.tt{background:#111;color:#fff}
.btn.ab{background:#ff5a73;color:#fff}
.btn.sm{padding:12px 16px;font-size:14px;border-radius:12px;box-shadow:0 4px 0 var(--ink)}
.btn.sm:hover{box-shadow:0 2px 0 var(--ink)}
.btn.top-cta{padding:12px 18px;font-size:14px;border-radius:999px;box-shadow:0 3px 0 var(--ink)}

/* ---------- cena: céu, sol, palmeiras, gaivotas, ondas ---------- */
.scene{position:relative;background:linear-gradient(180deg,var(--sky1) 0%,#dcefdc 38%,var(--sky2) 72%,var(--sand2) 100%);overflow:hidden}
.sun{position:absolute;right:clamp(-120px,-8vw,-40px);top:clamp(-110px,-6vw,-30px);width:clamp(240px,42vw,440px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff3c4 0 30%,var(--sun2) 31% 60%,var(--sun) 61% 100%);box-shadow:0 0 0 22px #ffe9a366,0 0 0 52px #ffe9a333}
.rays{position:absolute;right:clamp(-420px,-26vw,-250px);top:clamp(-420px,-24vw,-240px);width:clamp(900px,100vw,1300px);aspect-ratio:1;border-radius:50%;background:repeating-conic-gradient(from 0deg,#ffe9a355 0 5deg,transparent 5deg 15deg);-webkit-mask:radial-gradient(circle,#000 22%,transparent 68%);mask:radial-gradient(circle,#000 22%,transparent 68%);animation:spin 160s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.palm{position:absolute;left:-30px;top:-14px;width:clamp(260px,44vw,470px);transform-origin:8% 4%;animation:sway 7s ease-in-out infinite;pointer-events:none}
.palm.two{left:auto;right:-60px;top:auto;bottom:34%;transform:scaleX(-1);width:clamp(180px,30vw,320px);animation-delay:-3s;opacity:.95}
@keyframes sway{0%,100%{rotate:-1.6deg}50%{rotate:1.8deg}}
.gull{position:absolute;width:30px;height:12px;stroke:var(--ink2);fill:none;stroke-width:2.2;stroke-linecap:round;animation:glide 38s linear infinite;opacity:.8}
.gull:nth-of-type(1){top:11%}.gull:nth-of-type(2){top:17%;animation-duration:52s;animation-delay:-18s;width:22px}.gull:nth-of-type(3){top:26%;animation-duration:44s;animation-delay:-30s;width:26px}
@keyframes glide{from{left:-8%}to{left:108%}}
.in{position:relative;z-index:3;max-width:1120px;margin:0 auto;padding:clamp(104px,14vw,138px) 22px 0}
.kick{display:inline-flex;align-items:center;gap:10px;background:var(--coral);color:#fff;font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px 8px 12px;border-radius:10px;transform:rotate(-1.6deg);box-shadow:0 5px 0 #8f3f17}
.scene h1{font-size:clamp(36px,6.4vw,76px);line-height:1;letter-spacing:-.02em;margin:22px 0 0;max-width:15ch}
.scene h1 em{color:var(--coral)}
.scene .lead{font-family:var(--serif);font-size:clamp(19px,2.6vw,25px);line-height:1.4;max-width:40ch;hyphens:manual;margin:18px 0 0;font-weight:500;color:var(--ink2)}
.loc{display:flex;align-items:center;gap:8px;margin-top:16px;font-weight:700;color:var(--ink2)}
.loc svg{color:var(--coral);font-size:20px}
.car{margin:clamp(-60px,-4vw,-24px) -22px 0;position:relative;z-index:3}
.waves{position:relative;z-index:2;display:block;width:100%;height:clamp(60px,9vw,120px);margin-top:-6px}
.wv{position:absolute;left:0;bottom:0;width:200%;height:100%;animation:drift 18s linear infinite}
.wv.b{animation-duration:26s;animation-direction:reverse;opacity:.85}.wv.c{animation-duration:34s}
@keyframes drift{to{transform:translateX(-50%)}}
.scene.sm .in{padding-bottom:6px}
.scene.sm .waves{height:clamp(46px,6vw,80px)}

/* busca de datas */
.book{display:grid;grid-template-columns:1.5fr 1fr 1fr .7fr auto;gap:12px;align-items:end;margin-top:30px;padding:16px;border-radius:26px;background:#fffdf6;border:2px solid var(--ink);box-shadow:var(--pop);max-width:980px}
.book label{display:grid;gap:7px;font:800 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);min-width:0}
.book select,.book input{width:100%;min-width:0;font:700 16px var(--sans);color:var(--ink);background:var(--sand);border:2px solid #e3cd96;border-radius:14px;padding:13px 14px}
.book select:focus,.book input:focus{outline:none;border-color:var(--teal)}
.book .btn{height:52px}
.trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.trust a,.trust span{display:inline-flex;align-items:center;gap:8px;font:700 14px var(--sans);padding:9px 15px;border-radius:999px;background:#ffffffb3;border:2px solid #4a2c1433;text-decoration:none;color:var(--ink2)}
.trust svg{color:var(--coral);font-size:17px}.trust .fill{color:var(--sun)}

/* ---------- areia ---------- */
.sandbg{background:var(--sand);background-image:radial-gradient(#e9cf95 1.2px,transparent 1.4px);background-size:26px 26px}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.narrow{max-width:940px}
section.s{margin:0;padding-top:clamp(56px,8vw,96px)}
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in-v{opacity:1;transform:none}
.sec-h{display:flex;align-items:center;gap:14px;margin:0 0 22px;flex-wrap:wrap}
.sec-h .sp{flex:1}
.tile{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;font-size:26px;color:#fff;flex:none;box-shadow:0 4px 0 #00000026}
.t0{background:var(--teal)}.t1{background:var(--coral)}.t2{background:var(--olive)}.t3{background:var(--sun);color:var(--ink)}
.sec-h h2{font-size:clamp(28px,5vw,44px)}
.sec-p{margin:0 0 26px;max-width:58ch;color:var(--ink2);font-size:18px}
.panel{background:#fff;border:2px solid var(--ink);border-radius:26px;padding:8px 22px;box-shadow:var(--pop)}
.panel.pad{padding:24px}

/* números / fatos em azulejos coloridos */
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:700px){.facts{grid-template-columns:repeat(4,1fr)}.facts.six{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.facts.six{grid-template-columns:repeat(6,1fr)}}
.fact{display:flex;flex-direction:column;gap:2px;border-radius:22px;padding:18px 16px 16px;box-shadow:0 6px 0 #00000026;color:#fff;transform:rotate(var(--r,0deg));transition:transform .25s;text-decoration:none}
a.fact:hover,.fact:hover{transform:rotate(0) translateY(-4px)}
.fact:nth-child(4n+1){background:var(--teal);--r:-.8deg}.fact:nth-child(4n+2){background:var(--coral);--r:.7deg}.fact:nth-child(4n+3){background:var(--olive);--r:-.5deg}.fact:nth-child(4n){background:var(--sun);color:var(--ink);--r:.9deg;box-shadow:0 6px 0 #b8842a66}
.fact svg{font-size:26px;margin-bottom:10px;opacity:.95}
.fact b{font-family:var(--serif);font-size:clamp(22px,2.6vw,28px);line-height:1.05;font-weight:700}
.fact span{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.92}
.stats{margin-top:-26px;position:relative;z-index:4}

/* cartões das unidades */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:26px}
.ucard{display:flex;flex-direction:column;background:#fff;border:2px solid var(--ink);border-radius:28px;box-shadow:var(--pop);overflow:hidden;min-width:0;transition:transform .3s}
.ucard:hover{transform:translateY(-6px)}
.ucard .ph{position:relative;display:block;aspect-ratio:4/3.3;overflow:hidden;background:var(--sand2);border-bottom:2px solid var(--ink)}
.ucard .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s}
.ucard:hover .ph img{transform:scale(1.07)}
.ucard .tag{position:absolute;left:14px;top:14px;background:var(--teal);color:#fff;font:800 12.5px var(--sans);letter-spacing:.04em;padding:7px 13px;border-radius:999px;border:2px solid var(--ink)}
.ucard .bd{display:flex;flex-direction:column;gap:14px;padding:22px 22px 24px;flex:1}
.ucard h3{font-size:clamp(25px,2.4vw,30px)}
.ucard h3 a{text-decoration:none}
.ucard p{margin:0;color:var(--ink2)}
.rate{display:inline-flex;gap:8px;align-items:center;font:800 13px var(--sans);color:var(--ink2);letter-spacing:.02em}
.rate .fill{color:var(--sun);font-size:17px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips li{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:var(--sand);border:2px solid #4a2c1426;font:700 13.5px var(--sans)}
.chips svg{color:var(--coral)}
.ucard .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:4px}

/* passos */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:st}
.step{position:relative;padding:28px 24px 26px;border-radius:26px;background:#fff;border:2px solid var(--ink);box-shadow:var(--pop);counter-increment:st;overflow:hidden}
.step::after{content:counter(st);position:absolute;right:16px;top:-6px;font:700 110px/1 var(--serif);color:#4a2c1410}
.step .tile{margin-bottom:16px}
.step h3{font-size:24px;margin-bottom:8px}.step p{margin:0;color:var(--ink2)}

/* polaroids: mosaico */
.polas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:22px}
.pola{display:block;text-decoration:none;background:#fffaf0;padding:10px 10px 0;box-shadow:0 10px 24px -10px #4a2c1480,0 0 0 1px #d9c79b;transform:rotate(var(--r,0deg));transition:transform .3s}
.pola:nth-child(odd){--r:-1.6deg}.pola:nth-child(even){--r:1.4deg}.pola:nth-child(3n){--r:-.6deg}
.pola:hover{transform:rotate(0) translateY(-6px) scale(1.02)}
.pola img{width:100%;height:auto;aspect-ratio:1;object-fit:cover}
.pola span{display:block;font:italic 500 17px var(--serif);padding:12px 4px 14px;color:var(--ink)}
.pola small{display:block;font:800 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);margin-bottom:2px;font-style:normal}

/* listas, cômodos, horários, por perto (igual ao guia) */
.list li{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:2px dotted #e8d6ac}
.list li:last-child{border-bottom:0}
.ck{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:14px;color:#fff;background:var(--teal);flex:none;margin-top:2px}
.no .ck{background:var(--coral2)}.pl .ck{background:var(--olive)}.kk .ck{background:var(--sun);color:var(--ink)}
.two{columns:1}
@media(min-width:700px){.two{columns:2;column-gap:40px}.two li{break-inside:avoid}}
.rooms li{display:grid;grid-template-columns:minmax(110px,170px) 1fr;gap:6px 18px;padding:14px 0;border-bottom:2px dotted #e8d6ac}
.rooms li:last-child{border-bottom:0}
.rooms b{font-family:var(--serif);font-size:20px;font-weight:700;line-height:1.3}
.rooms span{color:var(--ink2);padding-top:2px}
.times{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tm{border-radius:22px;padding:18px 18px 16px;border:2px solid var(--ink);box-shadow:0 6px 0 var(--ink);display:flex;flex-direction:column;gap:4px}
.tm.in{background:var(--sun2)}.tm.out{background:#ffd3b8}
.tm svg{font-size:32px;color:var(--coral)}
.tm small{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.tm b{font-family:var(--serif);font-size:clamp(22px,4vw,30px);font-weight:700;line-height:1.1}
.cat{display:flex;align-items:center;gap:10px;font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);margin:22px 0 2px}
.cat:first-child{margin-top:12px}.cat svg{font-size:20px}
.near li{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:12px 0;border-bottom:2px dotted #e8d6ac}
.near li:last-child{border-bottom:0}
.near a{color:var(--ink);font-weight:700;text-decoration:none;display:inline-flex;gap:8px;align-items:baseline}
.near a svg{color:var(--coral);transition:transform .2s}.near a:hover svg{transform:translateX(4px)}.near a:hover{color:var(--coral)}
.near small{color:var(--muted);font-size:14px;text-align:right}
details.more>summary{cursor:pointer;list-style:none;display:inline-flex;gap:8px;align-items:center;margin:14px 0 6px;font:800 14px var(--sans);color:var(--coral)}
details.more>summary::-webkit-details-marker{display:none}
details.more[open]>summary{display:none}

/* unidade: ações e página */
.actions{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 0}
.lead2{font-family:var(--serif);font-size:clamp(21px,3.2vw,28px);line-height:1.45;margin:0;font-weight:500}
.ucols{display:grid;grid-template-columns:1fr;gap:34px}
@media(min-width:980px){.ucols{grid-template-columns:1fr 360px;align-items:start}}
.side{position:sticky;top:100px;display:grid;gap:14px;padding:24px;border-radius:26px;background:var(--sun2);border:2px solid var(--ink);box-shadow:var(--pop)}
.side h2{font-size:26px}.side p{margin:0;color:var(--ink2);font-size:15.5px}
.ubp{padding:14px 16px;border-radius:16px;border:2px dashed #4a2c1466;background:#fff8e0;font-size:15px}
.ubp b{font-family:var(--serif)}.ubp a{color:var(--coral);font-weight:800}

/* calendário */
.cal{padding:22px;border-radius:26px;background:#fff;border:2px solid var(--ink);box-shadow:var(--pop)}
.cal .nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.cal .nav button{width:44px;height:44px;border-radius:50%;border:2px solid var(--ink);background:var(--sun2);color:var(--ink);cursor:pointer;display:grid;place-items:center;font-size:20px;box-shadow:0 3px 0 var(--ink)}
.cal .nav button:disabled{opacity:.3;cursor:default;box-shadow:none}
.months{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.mh{margin:0 0 12px;text-align:center;font:700 19px var(--serif);text-transform:capitalize}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.days .dow{font:800 11px var(--sans);color:var(--muted);padding-bottom:4px}
.day{aspect-ratio:1;display:grid;place-items:center;border-radius:12px;font:700 15px var(--sans);border:0;background:transparent;color:var(--ink);cursor:pointer;padding:0;transition:background .15s}
.day:hover:not(:disabled){background:var(--sand2)}
.day:disabled{color:#c1ab85;cursor:default;text-decoration:line-through}
.day.past{opacity:.4;text-decoration:none}
.day.sel{background:var(--coral);color:#fff;font-weight:800}
.day.range{background:#f7d9b9;border-radius:0}
.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;color:var(--ink2);font-size:14px;font-weight:600}
.legend i{display:inline-block;width:13px;height:13px;border-radius:5px;margin-right:6px;vertical-align:-2px}
.sum{margin-top:16px;padding:16px 18px;border-radius:18px;background:var(--sand);border:2px solid #4a2c1426;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.note{font-size:14px;color:var(--ink2);margin:14px 0 0}

/* mapa */
.mapwrap{display:grid;grid-template-columns:340px 1fr;gap:20px}
.mapbox{position:relative;border-radius:28px;overflow:hidden;border:2px solid var(--ink);box-shadow:var(--pop);background:#cfe9e6;min-height:540px}
.mapbox .m{position:absolute;inset:0}
.mapbox.mini{min-height:380px}
.maplibregl-ctrl-group{border:2px solid var(--ink)!important;box-shadow:0 3px 0 var(--ink)!important;border-radius:12px!important}
.mapfab{position:absolute;left:12px;top:12px;z-index:5;display:flex;gap:8px;flex-wrap:wrap}
.mapfab button{font:800 13px var(--sans);padding:10px 14px;border-radius:12px;background:#fff;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);cursor:pointer;color:var(--ink)}
.mapfab button:hover{background:var(--sun2)}
.mlist{display:grid;gap:12px;align-content:start}
.mitem{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;text-align:left;width:100%;padding:14px 16px;border-radius:20px;background:#fff;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);color:var(--ink);cursor:pointer;font:inherit;transition:transform .15s,background .2s}
.mitem:hover,.mitem.on{background:var(--sun2);transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.mitem img{grid-row:span 2;width:64px;height:64px;border-radius:14px;object-fit:cover;border:2px solid var(--ink)}
.mitem b{font:700 19px var(--serif)}.mitem span{color:var(--ink2);font-size:14.5px}
.pinm{position:relative;width:48px;height:48px;cursor:pointer}
.pinm:hover .dot{transform:rotate(-45deg) scale(1.1)}
.pinm .dot{transition:transform .2s}
.pinm .dot{width:48px;height:48px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);display:grid;place-items:center;background:var(--coral);border:3px solid var(--ink);box-shadow:0 5px 0 #00000040}
.pinm .dot svg{transform:rotate(45deg);color:#fff;font-size:22px}
.pinm .lab{position:absolute;top:56px;left:50%;transform:translateX(-50%);background:#fff;border:2px solid var(--ink);border-radius:999px;padding:4px 11px;font:800 12px var(--sans);white-space:nowrap;box-shadow:0 3px 0 var(--ink)}
.maplibregl-map.nolab .pinm .lab{display:none}
.maplibregl-popup-content{border:2px solid var(--ink);border-radius:20px;padding:0;overflow:hidden;box-shadow:0 7px 0 var(--ink);font-family:var(--sans)}
.maplibregl-popup-tip{display:none}
.pop img{width:240px;height:130px;object-fit:cover}
.pop div{padding:12px 14px 14px;display:grid;gap:6px}
.pop b{font:700 18px var(--serif)}.pop span{color:var(--ink2);font-size:13.5px}
.pop a{font-weight:800;color:var(--coral);text-decoration:none}

/* UbaPrime */
.club{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(24px,5vw,56px);align-items:center;padding:clamp(26px,4vw,48px);border-radius:32px;background:linear-gradient(135deg,#1c2b54,#142040);color:#fff;border:2px solid var(--ink);box-shadow:var(--pop)}
.club .eyebrow{display:inline-flex;align-items:center;gap:10px;font:800 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#f7e08f}
.club h2{font-size:clamp(28px,4vw,46px);margin:14px 0 14px}
.club h2 em{background:linear-gradient(100deg,#f7e08f,#d9a93a);-webkit-background-clip:text;background-clip:text;color:transparent}
.club p{margin:0 0 22px;color:#cfd8ee;max-width:46ch}
.perks{display:grid;gap:12px}
.perks li{padding:16px 20px;border-radius:18px;background:#ffffff12;border:1.5px solid #f7e08f55;display:grid;gap:2px}
.perks b{font:700 21px var(--serif);color:#f7e08f}.perks span{color:#cfd8ee;font-size:15px}
.club .btn.ghost{background:transparent;color:#fff;border-color:#fff;box-shadow:0 5px 0 #fff4}

/* vídeos e instagram */
.rail{display:flex;gap:18px;overflow-x:auto;padding:6px 4px 22px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--ink2) transparent;margin:0 -4px}
.vid{flex:none;width:min(74vw,265px);aspect-ratio:9/16;border-radius:26px;overflow:hidden;background:#fff;border:2px solid var(--ink);scroll-snap-align:start;position:relative;box-shadow:var(--pop)}
.vid iframe,.vid button{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid button{cursor:pointer;color:#fff;background:radial-gradient(circle at 20% 10%,#f9a03fcc,transparent 50%),radial-gradient(circle at 90% 95%,#7a3fe0cc,transparent 55%),linear-gradient(160deg,#e1306c,#8a3ab9);display:grid;place-content:center;gap:14px;font:800 15px var(--sans);text-align:center;padding:16px}
.vid button .play{width:68px;height:68px;border-radius:50%;background:#fff;color:#e1306c;display:grid;place-items:center;margin:0 auto;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);font-size:28px;transition:transform .2s}
.vid button:hover .play{transform:scale(1.1)}
.vid button small{display:inline-flex;align-items:center;gap:7px;font:700 12.5px var(--sans);justify-content:center;opacity:.95}
.vid.fb{display:grid;place-content:center;gap:12px;text-align:center;text-decoration:none;font:800 15px var(--sans);padding:14px;color:#fff;background:linear-gradient(160deg,#e1306c,#8a3ab9)}
.vid.fb .play{width:60px;height:60px;border-radius:50%;background:#fff;color:#e1306c;display:grid;place-items:center;margin:0 auto;font-size:26px;border:2px solid var(--ink)}
.posts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:22px}
.post{border-radius:24px;overflow:hidden;background:#fff;min-height:320px;border:2px solid var(--ink);box-shadow:var(--pop)}
.post iframe{width:100%;height:580px;border:0;display:block}
.follow{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:30px;padding:22px 24px;border-radius:26px;background:var(--sun2);border:2px solid var(--ink);box-shadow:var(--pop)}
.follow p{margin:0;flex:1;min-width:220px;font:600 20px/1.35 var(--serif)}

/* avaliações */
.rev{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.rev figure{position:relative;margin:0;padding:30px 26px 24px;border-radius:26px;background:#fff;border:2px solid var(--ink);box-shadow:var(--pop);display:flex;flex-direction:column;gap:16px;min-width:0;overflow:hidden}
.rev figure::after{content:"\201D";position:absolute;right:18px;top:-24px;font:700 150px/1 var(--serif);color:#4a2c1410}
.rev figure:first-child{background:var(--teal);color:#fff}
.rev blockquote{margin:0;font:500 clamp(18px,2vw,22px)/1.45 var(--serif)}
.rev figcaption{margin-top:auto;display:flex;align-items:center;gap:12px;font-weight:800;font-size:15px}
.rev figcaption i{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font:700 18px var(--serif);font-style:normal;background:var(--sun);color:var(--ink);border:2px solid var(--ink)}
.rev figcaption span{display:block;font-weight:600;font-size:14px;opacity:.85}
.stars{color:var(--sun);letter-spacing:3px;font-size:18px}

/* dicas */
.tipsgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:22px}
.tipc{padding:24px;border-radius:26px;border:2px solid var(--ink);box-shadow:var(--pop);min-width:0}
.tipc:nth-child(1){background:#cfe9e6}.tipc:nth-child(2){background:#ffe3a6}.tipc:nth-child(3){background:#f6cdb5}
.tipc h3{font-size:25px;display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tipc li{border-bottom:2px dotted #4a2c1455;padding:10px 0}
.tipc li:last-child{border:0}
.tipc a{text-decoration:none;font-weight:800;display:flex;justify-content:space-between;gap:12px}
.tipc a:hover{color:var(--coral)}
.tipc span{font-weight:600;font-size:14px;color:var(--ink2);text-align:right}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.filters button{padding:10px 17px;border-radius:999px;background:#fff;border:2px solid var(--ink);color:var(--ink);font:800 14px var(--sans);cursor:pointer;box-shadow:0 3px 0 var(--ink)}
.filters button.on{background:var(--teal);color:#fff}
.search{width:100%;max-width:460px;padding:15px 18px;border-radius:16px;background:#fff;border:2px solid var(--ink);color:var(--ink);font:600 16px var(--sans);margin:8px 0 22px;box-shadow:0 4px 0 var(--ink)}
.places{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.place{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:22px;background:#fff;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s;min-width:0}
.place:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink);background:var(--sun2)}
.place[hidden]{display:none}
.place small{display:flex;align-items:center;gap:8px;font:800 12px var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--teal)}
.place b{font:700 20px var(--serif)}.place span{color:var(--ink2);font-size:14.5px}
.place em{font-style:normal;font:800 12.5px var(--sans);color:var(--coral);margin-top:auto;padding-top:6px}
.posts-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:24px}
.art{padding:28px;border-radius:26px;background:#fff;border:2px solid var(--ink);box-shadow:var(--pop);display:flex;flex-direction:column;gap:12px;text-decoration:none;transition:transform .2s}
.art:hover{transform:translateY(-5px)}
.art small{color:var(--teal);font:800 12.5px var(--sans);letter-spacing:.1em;text-transform:uppercase}.art h2{font-size:26px}.art p{margin:0;color:var(--ink2)}
.article{max-width:760px}
.article h1{font-size:clamp(34px,5.5vw,60px);margin:14px 0 18px}
.article h2{font-size:30px;margin:40px 0 12px}
.article p,.article li{color:var(--ink2);font-size:19px}
.article ul{padding-left:22px;list-style:disc}
.cta-b{margin-top:44px;padding:26px;border-radius:26px;background:var(--sun2);border:2px solid var(--ink);box-shadow:var(--pop);display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.cta-b b{font:700 22px var(--serif)}
.about{font-size:19px;color:var(--ink2);max-width:78ch;margin:0 0 16px}.about b{color:var(--ink)}
.about-l{padding-left:20px;list-style:disc;color:var(--ink2);display:grid;gap:6px}.about-l a{font-weight:700;color:var(--ink)}
.faq{display:grid;gap:14px}
.faq details{background:#fff;border:2px solid var(--ink);border-radius:22px;padding:2px 22px;box-shadow:0 5px 0 var(--ink)}
.faq summary{cursor:pointer;padding:18px 0;font:700 19px var(--serif);list-style:none;display:flex;justify-content:space-between;gap:14px;align-items:center}
.faq summary::after{content:"+";display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sun2);border:2px solid var(--ink);font:800 20px var(--sans);flex:none}
.faq details[open] summary::after{content:"–"}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:0 0 20px;color:var(--ink2)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-weight:700;font-size:14px;color:var(--ink2);margin-bottom:6px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--coral)}

/* contato */
.contact{position:relative;margin-top:clamp(70px,10vw,120px);padding-block:clamp(40px,6vw,70px);background:var(--coral);color:#fff;border-block:2px solid var(--ink)}
.contact .bx{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(26px,5vw,70px);align-items:center}
.contact h2{font-size:clamp(36px,6vw,72px);margin:14px 0 16px}
.contact h2 em{color:var(--sun2)}
.contact p{margin:0 0 26px;max-width:46ch;font-size:19px;color:#fff3e6}
.contact .kick{background:#fff;color:var(--coral);box-shadow:0 5px 0 #8f3f17}
.clist{display:grid;gap:12px}
.clist li a,.clist li>span{display:flex;gap:16px;align-items:center;padding:16px 18px;border-radius:20px;background:#fffaf0;color:var(--ink);border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);font-weight:800;text-decoration:none;word-break:break-word;transition:transform .15s,box-shadow .15s}
.clist li a:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.clist .ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:#fff;font-size:22px;flex:none;border:2px solid var(--ink)}
.clist .wa .ico{background:#3fcf6d}.clist .ig .ico{background:linear-gradient(45deg,#f9a03f,#e1306c,#7a3fe0)}.clist .ml .ico{background:var(--teal)}.clist .ph .ico{background:var(--sun);color:var(--ink)}.clist .tt .ico{background:#111}

/* rodapé: mar e areia */
.foot{position:relative;background:var(--teal);color:#fff;margin-top:90px}
.foot .seaw{position:absolute;left:0;right:0;top:0;height:clamp(50px,7vw,90px);transform:translateY(-99%);overflow:hidden}
.foot .seaw .wv{width:200%}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:40px;padding:30px 0 40px}
.fgrid h2{font:800 12.5px var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px;color:var(--sun2)}
.fgrid ul{display:grid;gap:10px}
.fgrid a{text-decoration:none;font-weight:600}.fgrid a:hover{text-decoration:underline}
.fbrand{display:flex;align-items:center;gap:12px;font:700 22px/1.05 var(--serif);margin-bottom:14px}
.fbrand img{width:60px;height:60px;object-fit:contain;background:#fff8e6;border-radius:50%;padding:5px;box-shadow:0 4px 0 #00000033}
.fgrid p{margin:0 0 18px;max-width:38ch;opacity:.95}
.soc{display:flex;gap:10px;flex-wrap:wrap}
.soc a{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#fffaf0;color:var(--ink);border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink);font-size:22px;transition:transform .15s,box-shadow .15s,background .2s}
.soc a:hover{transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}
.soc a.ig:hover{background:linear-gradient(45deg,#f9a03f,#e1306c 55%,#7a3fe0);color:#fff}.soc a.tt:hover{background:#111;color:#fff}.soc a.wa:hover{background:#3fcf6d}.soc a.ab:hover{background:#ff5a73;color:#fff}
.fbase{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 0 28px;border-top:1.5px solid #ffffff55;font-size:14px;font-weight:600}
.wafab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:max(16px,env(safe-area-inset-bottom,0px));z-index:70;display:flex;align-items:center;gap:10px;padding:14px 20px 14px 16px;border-radius:999px;background:#3fcf6d;color:#052e14;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);font:800 15px var(--sans);text-decoration:none;font-size:15px}
.wafab:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--ink)}
.wafab svg{font-size:26px}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:#2a1708ef;display:none;align-items:center;justify-content:center;flex-direction:column;padding:20px}
.lb.on{display:flex}
.lb img{max-width:100%;max-height:80vh;border:8px solid #fffaf0;border-bottom-width:14px;box-shadow:0 20px 50px #0008}
.lb p{color:#ffe7b0;font-family:var(--serif);font-style:italic;font-size:21px;margin:16px 0 0;text-align:center}
.lb button{position:absolute;background:var(--sun);border:2px solid var(--ink);color:var(--ink);border-radius:50%;width:50px;height:50px;font-size:22px;cursor:pointer;display:grid;place-items:center;box-shadow:0 3px 0 var(--ink)}
.lb .x{top:16px;right:16px}.lb .l{left:12px;top:50%}.lb .r{right:12px;top:50%}
.lb .c{position:absolute;bottom:14px;color:#ffe7b0;font-weight:700;font-size:13px}

@media(max-width:1000px){
  .fgrid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr}
  .club,.contact .bx,.mapwrap{grid-template-columns:1fr}
  .side{position:static}
}
@media(max-width:900px){
  .top .bar{height:60px}
  .top nav{position:fixed;inset:82px 12px auto 12px;flex-direction:column;align-items:stretch;padding:12px;background:#fffaf0;border:2px solid var(--ink);border-radius:24px;display:none;box-shadow:0 7px 0 var(--ink)}
  .top nav.open{display:flex}.top nav a{padding:15px}
  .top-cta{display:none}.menu{display:grid}
  .book{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.book label:first-child{grid-column:1/-1}.book .btn{grid-column:1/-1}
  .months{grid-template-columns:1fr}
  .wafab span{display:none}.wafab{padding:15px}
  .times{grid-template-columns:1fr}
  .mapbox{min-height:420px}
}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}.rooms li{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
  .rays,.palm,.gull,.wv{animation:none}.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}
}

/* Social Links (porte do componente do 21st.dev) */
.sl{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0;padding:70px 0 26px}
.sl a{position:relative;cursor:pointer;padding:8px clamp(14px,3vw,34px);font:700 clamp(28px,5vw,52px)/1.1 var(--serif);text-decoration:none;color:var(--ink);transition:opacity .2s}
.sl.dim a:not(.on){opacity:.5}
.sl a:hover,.sl a:focus-visible{color:var(--coral)}
.sl-img{position:absolute;left:50%;top:-10px;width:68px;height:68px;margin-left:-34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:32px;border:2px solid var(--ink);box-shadow:0 5px 0 var(--ink);opacity:0;pointer-events:none}
.sl-img.ig{background:linear-gradient(45deg,#f9a03f,#e1306c 55%,#7a3fe0)}.sl-img.tt{background:#111}.sl-img.wa{background:#3fcf6d;color:#052e14}
.sl-img svg{width:1em;height:1em;fill:currentColor}
@media(hover:none){.sl-img{display:none}}

/* Testimonials 3D (porte do componente do 21st.dev): quatro colunas de avaliações que sobem e descem, inclinadas em perspectiva */
.t3d{position:relative;height:520px;overflow:hidden;border-radius:28px;border:2px solid var(--ink);box-shadow:var(--pop);background:linear-gradient(160deg,#fff6e1,#f6e3b4);perspective:340px;display:flex;align-items:center;justify-content:center}
.t3d-in{display:flex;gap:16px;align-items:center;transform:translateX(-40px) translateZ(-100px) rotateX(20deg) rotateY(-10deg) rotateZ(20deg)}
.mq{display:flex;flex-direction:column;overflow:hidden;height:900px;width:250px;flex:none;--gap:16px}
.mq-t{display:flex;flex-direction:column;gap:var(--gap);animation:mq 60s linear infinite}
.mq.rev .mq-t{animation-direction:reverse}
.mq:nth-child(3) .mq-t{animation-duration:75s}.mq:nth-child(4) .mq-t{animation-duration:68s}
.t3d:hover .mq-t,.t3d:focus-within .mq-t{animation-play-state:paused}
@keyframes mq{from{transform:translateY(0)}to{transform:translateY(calc(-50% - var(--gap) / 2))}}
.tc{margin:0;padding:16px;border-radius:18px;background:#fff;border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink);flex:none}
.tc-h{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.tc-h i{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font:700 16px var(--serif);font-style:normal;background:var(--sun);color:var(--ink);border:2px solid var(--ink)}
.tc-h b{display:block;font:800 14px var(--sans)}.tc-h span{font:600 12px var(--sans);color:var(--ink2)}
.tc .stars{font-size:13px}
.tc blockquote{margin:6px 0 0;font:500 14.5px/1.45 var(--serif);display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical;overflow:hidden}
.t3d-f{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#f6e3b4,transparent 25%,transparent 75%,#f6e3b4),linear-gradient(90deg,#fff6e1,transparent 22%,transparent 78%,#fff6e1)}
details.rvall{margin-top:26px}
details.rvall>summary{margin:0}
details.rvall .rev{margin-top:20px}
@media(max-width:700px){.t3d{height:460px}.mq{width:210px}.t3d-in{transform:translateX(-30px) translateZ(-120px) rotateX(18deg) rotateY(-8deg) rotateZ(16deg)}}
@media(prefers-reduced-motion:reduce){.mq-t{animation:none}.mq{overflow-y:auto}}

/* passe UbaPrime (cartão no estilo do app) */
.club .pass{grid-column:2;position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:30px 20px 18px;border-radius:26px;background:#101c33;border:1.5px solid #2a3a5c;color:#fff}
.pass-t{display:flex;align-items:center;gap:12px}.pass-t>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#1b2b47;font-size:24px;color:#cfd8ee}
.pass-t b{display:block;font:800 21px var(--sans)}.pass-t small{color:#9fb0cf;font-weight:600}
.pass-p{text-align:right}.pass-p s{display:block;color:#9fb0cf;font-weight:600}.pass-p b{font:800 28px var(--sans)}.pass-p small{display:block;color:#3fcf6d;font-weight:800}
.pass-tag{position:absolute;right:22px;top:-14px;padding:6px 14px;border-radius:999px;background:#0b1428;border:1.5px solid #2a3a5c;font:800 13px var(--sans)}
.club>div:first-child{grid-row:span 2}
@media(max-width:1000px){.club .pass{grid-column:auto}.club>div:first-child{grid-row:auto}}

/* desempenho: o que se mexe sozinho vira camada própria e para quando sai da tela (o calendário não trava) */
.rays,.palm,.wv,.gull,.mq-t{will-change:transform}
.scene.off .rays,.scene.off .palm,.scene.off .wv,.scene.off .gull,.t3d.off .mq-t{animation-play-state:paused}
.wafab::before{box-shadow:none;border:2px solid #25d36699;animation:ring2 2.8s infinite;will-change:transform,opacity}
@keyframes ring2{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.35,1.6);opacity:0}}
.cal{contain:layout paint}
.cal .day{contain:strict;width:100%}
