@font-face{ font-family:'Source Serif'; src:url('../fonts/SourceSerifVariable-Roman.woff2') format('woff2'); font-weight:200 900; font-style:normal; font-display:swap; }
@font-face{ font-family:'Source Serif'; src:url('../fonts/SourceSerifVariable-Italic.woff2') format('woff2'); font-weight:200 900; font-style:italic; font-display:swap; }
@font-face{ font-family:'Source Sans'; src:url('../fonts/SourceSans3-Variable.woff2') format('woff2'); font-weight:200 900; font-style:normal; font-display:swap; }

:root{
  /* base y tinta (deck de bodas v18) */
  --bone:#faf9f7; --linen:#ede8e0; --tan:#e3d8c9; --cacao:#4a2618;
  /* las casas */
  --clay:#b05a27;  --adobe:#c4b4a2;                          /* casa del jaguar */
  --olive:#74703a; --sage:#9a9867; --khaki:#c0c094; --paper:#e7e7c0; --ink:#1c3f1c;  /* na balam */
  --mist:#b0c4c7;  --haze:#dce4e5; --dust:#8a7268; --terra:#5f3a2e;                  /* lotus */
  --serif:'Source Serif', Georgia, serif;
  --sans:'Source Sans', system-ui, sans-serif;
  --pad:clamp(22px, 5vw, 84px);
  --rail:64px;                 /* ancho reservado para la calle (índice fijo) */
  --ease:cubic-bezier(.22,1,.36,1);
  --line:rgba(74,38,24,.18);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ overflow-x:clip; scroll-behavior:auto; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
body{
  background:var(--bone); color:var(--cacao);
  font-family:var(--sans); font-weight:400; font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
::selection{ background:var(--clay); color:var(--bone); }
:focus-visible{ outline:2px solid var(--clay); outline-offset:3px; }
img{ display:block; width:100%; height:100%; object-fit:cover; }
a{ color:inherit; text-decoration:none; }
p{ text-wrap:pretty; }
h1,h2,h3{ font-weight:300; text-wrap:balance; }
ul,ol{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
.skip{ position:absolute; left:-999px; top:8px; background:var(--cacao); color:var(--bone); padding:8px 14px; z-index:300; }
.skip:focus{ left:8px; }

/* ---------- tipografía ---------- */
.lab{
  font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--clay); line-height:1.4;
}
.lab-clay{ color:var(--clay); }
.h2{
  font-family:var(--serif); font-weight:300; font-size:clamp(38px,5.2vw,82px); line-height:1.02; letter-spacing:-.012em;
  margin:14px 0 22px;
}
.h2 b{ font-weight:600; }
.h2-big{ font-size:clamp(64px,10vw,160px); line-height:.92; margin:10px 0 0; }
.h3{ font-family:var(--serif); font-weight:300; font-size:clamp(34px,3.6vw,58px); line-height:1.04; letter-spacing:-.01em; }
.h3-tag{ display:inline-block; vertical-align:middle; margin-left:14px; position:relative; top:-6px; }
.lede{ font-weight:300; font-size:clamp(17px,1.35vw,21px); line-height:1.55; max-width:62ch; }
.num{ font-family:var(--serif); font-weight:300; line-height:.95; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }

/* módulos en línea: el svg hereda el color */
.m{ display:inline-block; width:12px; height:12px; vertical-align:middle; flex:none; }
.m svg, .mlist li > svg, .strip svg, .belt-line svg, .grid4-mod svg, .dayp-c svg, .st-m svg{ display:block; width:100%; height:100%; }
.mlist{ display:flex; flex-direction:column; gap:10px; font-size:17px; line-height:1.45; }
.mlist li{ display:flex; align-items:flex-start; gap:14px; }
.mlist li > svg{ width:11px; height:11px; flex:none; margin-top:.42em; }

/* botones */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  border:1px solid var(--cacao); padding:13px 22px; border-radius:0;
  font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.btn:hover{ background:var(--cacao); color:var(--bone); }
.btn-solid{ background:var(--cacao); color:var(--bone); }
.btn-solid:hover{ background:var(--clay); border-color:var(--clay); }

/* ---------- postal (reusada de Casa del Jaguar, remitente Balam Ek) ---------- */
.pol{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:clamp(14px,4vw,30px); overflow-y:auto; }
.pol[hidden]{ display:none; }
.pol-veil{ position:absolute; inset:0; background:rgba(28,14,8,.92); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); opacity:0; transition:opacity .4s ease; }
.pol.is-on .pol-veil{ opacity:1; }
.pol-stage{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center; gap:clamp(18px,2.6vh,30px); opacity:0; transform:translateY(14px); transition:opacity .45s ease, transform .45s ease; }
.pol.is-on .pol-stage{ opacity:1; transform:none; }
.pol-card{ position:relative; width:min(760px,92vw); aspect-ratio:3/2; transform-style:preserve-3d; transform:rotateY(0deg) rotate(-1.6deg); transition:transform 1s cubic-bezier(.65,0,.25,1); }
.pol-card.is-flipped{ transform:rotateY(180deg) rotate(1.6deg); }
.pol-face{ position:absolute; inset:0; background:var(--bone); overflow:hidden; -webkit-backface-visibility:hidden; backface-visibility:hidden; box-shadow:0 2px 4px rgba(20,9,4,.16), 0 18px 44px rgba(20,9,4,.34); }
.pol-front img{ width:100%; height:100%; object-fit:cover; }
.pol-rear{ transform:rotateY(180deg); color:var(--cacao); padding:clamp(18px,3vw,30px); border:1px solid rgba(74,38,24,.22); }
.pc-head{ position:absolute; left:50%; top:clamp(16px,2.6vw,26px); transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:3px; text-align:center;
  font-family:var(--sans); font-size:clamp(8px,1.05vw,10px); letter-spacing:.2em; text-transform:uppercase; line-height:1.5; }
.pc-head span:first-child{ font-family:var(--serif); font-size:clamp(14px,1.8vw,18px); letter-spacing:.01em; text-transform:none; font-weight:400; }
.pc-head span:not(:first-child){ opacity:.55; }
.pc-stamp{ position:absolute; right:clamp(16px,2.6vw,28px); top:clamp(16px,2.6vw,28px); width:clamp(52px,7vw,66px); aspect-ratio:1/1; display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; }
.pc-stamp b{ display:block; background-repeat:no-repeat; background-size:100% 100%; }
.pc-split{ position:absolute; left:50%; top:clamp(78px,11vw,104px); bottom:clamp(40px,5vw,52px); width:1px; background:rgba(74,38,24,.32); }
.pol-rear textarea{ position:absolute; left:clamp(18px,3vw,30px); right:50%; top:clamp(84px,12vw,112px); bottom:clamp(44px,5.5vw,58px); margin-right:clamp(16px,2.4vw,26px);
  width:auto; border:0; outline:0; resize:none; background:none; color:var(--cacao); font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(15px,1.9vw,21px); line-height:1.55; }
.pol-rear textarea::placeholder{ color:var(--cacao); opacity:.32; }
.pc-rules{ position:absolute; left:50%; right:clamp(18px,3vw,30px); bottom:clamp(52px,7vw,74px); margin-left:clamp(16px,2.4vw,26px); display:flex; flex-direction:column; gap:clamp(13px,2vw,22px); }
.pc-rules b{ display:block; height:1px; background:rgba(74,38,24,.28); }
.pol-url{ position:absolute; left:0; right:0; bottom:clamp(14px,2.2vw,22px); text-align:center; font-family:var(--sans); font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; opacity:.45; }
.pol-share{ display:flex; flex-direction:column; align-items:center; gap:14px; color:var(--bone); }
.pol-share .lab{ color:var(--bone); opacity:.7; }
.pol-share-grid{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.pol-ch{ display:inline-flex; flex-direction:column; align-items:center; gap:8px; color:var(--bone); border:1px solid rgba(250,249,247,.4); padding:12px 16px; min-width:92px;
  font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.18em; text-transform:uppercase; transition:background .3s ease, color .3s ease; }
.pol-ch svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.pol-ch:hover{ background:var(--bone); color:var(--cacao); }
.pol-share-msg{ font-size:12px; letter-spacing:.08em; opacity:0; transition:opacity .3s ease; min-height:1.4em; }
.pol-share-msg.is-on{ opacity:.85; }
.pol-actions{ display:flex; align-items:center; gap:clamp(14px,2.4vw,26px); }
.pol-x{ color:var(--bone); opacity:.7; font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.24em; text-transform:uppercase; }
.pol-x:hover{ opacity:1; }
.pol .btn.btn-solid{ background:var(--bone); color:var(--cacao); border-color:var(--bone); }
.pol .btn.btn-solid:hover{ background:var(--clay); color:var(--bone); border-color:var(--clay); }
body.pol-open{ overflow:hidden; }



/* ---------- hero · carrusel + símbolo ---------- */
.hero{ position:relative; height:100svh; min-height:560px; overflow:hidden; background:var(--cacao); color:var(--bone); }
.hero-car{ position:absolute; inset:0; }
.hero-car img{ position:absolute; inset:0; opacity:0; transition:opacity .01s; transform:scale(1.04); }
.hero-car img.is-on{ opacity:1; animation:heroZoom 7s linear forwards; }
@keyframes heroZoom{ from{ transform:scale(1.04); } to{ transform:scale(1); } }
.hero-car::after{ content:""; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(74,38,24,.18), rgba(74,38,24,.08) 40%, rgba(74,38,24,.42)); }
.hero-wipe{ position:absolute; inset:0; z-index:3; display:none; pointer-events:none; }
.hero-center{ position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; text-align:center; pointer-events:none; }
.hero-sym{ width:clamp(64px,8vw,104px); height:auto; display:block; margin-bottom:6px; }
.hero-title{ font-family:var(--serif); font-weight:300; font-size:clamp(46px,6vw,96px); line-height:1; letter-spacing:-.015em; }
.hero-lab{ color:var(--bone); opacity:.85; }
.hero-foot{ position:absolute; left:var(--pad); bottom:clamp(22px,4vh,40px); z-index:4; color:var(--bone); display:flex; align-items:center; gap:14px; }
.hero-dots{ position:absolute; right:calc(var(--pad) + var(--rail)); bottom:clamp(22px,4vh,40px); z-index:4; display:flex; gap:8px; }
.hero-dots li{ width:8px; height:8px; background:var(--bone); opacity:.35; transition:opacity .3s; }
.hero-dots li.is-on{ opacity:1; }


/* ---------- 03 · impresos ---------- */
.prints{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(30px,5vw,80px); align-items:center; padding:clamp(70px,11vh,130px) calc(var(--pad) + var(--rail)) clamp(70px,11vh,130px) var(--pad); background:var(--linen); }
.prints-hint{ margin-top:30px; }
.wstack-cta{ display:inline-flex; align-items:center; gap:11px; border:1px solid var(--clay); color:var(--clay); padding:12px 20px; font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; transition:background .35s ease, color .35s ease; }
.wstack-cta:hover{ background:var(--clay); color:var(--bone); }
.wstack{ position:relative; z-index:2; }
.wstack-inner{ position:relative; margin:0 auto; width:min(640px,100%); aspect-ratio:4/3; }
.wshot{ position:absolute; inset:0; margin:0; background:#fff; padding:clamp(10px,1.1vw,16px) clamp(10px,1.1vw,16px) clamp(30px,3.4vw,48px); box-shadow:0 1px 2px rgba(74,38,24,.10), 0 6px 14px rgba(74,38,24,.09); transition:transform .85s cubic-bezier(.65,0,.25,1), opacity .5s ease; transform-origin:50% 60%; }
.wshot img{ width:100%; height:100%; object-fit:cover; }
.wshot[data-slot="0"]{ z-index:8; transform:rotate(-1.6deg); cursor:pointer; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
.wshot[data-slot="1"]{ z-index:7; transform:rotate(3.2deg) translate(2.2%,1.4%) scale(.986); }
.wshot[data-slot="2"]{ z-index:6; transform:rotate(-4.4deg) translate(-2.6%,2.4%) scale(.972); }
.wshot[data-slot="3"]{ z-index:5; transform:rotate(1.8deg) translate(3.2%,3.4%) scale(.958); }
.wshot[data-slot="4"]{ z-index:4; transform:rotate(-2.6deg) translate(-3.4%,4.2%) scale(.944); }
.wshot[data-slot="5"]{ z-index:3; transform:rotate(4.6deg) translate(1.6%,5%) scale(.93); }
.wshot[data-slot="6"]{ z-index:2; transform:rotate(-3.4deg) translate(-1.8%,5.8%) scale(.916); }
.wshot[data-slot="7"]{ z-index:1; transform:rotate(2.2deg) translate(2.8%,6.6%) scale(.902); }
.wshot[data-slot="8"], .wshot[data-slot="9"], .wshot[data-slot="10"], .wshot[data-slot="11"]{ z-index:0; transform:rotate(-1deg) translate(0,7%) scale(.9); opacity:0; }
.wshot.is-out{ z-index:9; transform:rotate(-13deg) translate(-16%,-26%) scale(1.02); opacity:0; }
.wshot[data-slot="0"]::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 0 0 0 rgba(176,90,39,0); transition:box-shadow .35s ease; }
.wstack-inner:hover .wshot[data-slot="0"]::after{ box-shadow:inset 0 0 0 3px var(--clay); }
.aisle-full{ height:clamp(380px,72vh,760px); }


/* menús dentro del tablero */
.menus{ margin-top:clamp(50px,8vh,90px); border-top:1px solid var(--line); padding-top:clamp(30px,5vh,56px); }
.menus-head{ margin-bottom:clamp(22px,4vh,40px); }
.menus-head .h3{ margin:10px 0 14px; }
.mnote{ font-weight:300; font-size:clamp(16px,1.2vw,18px); line-height:1.5; max-width:56ch; }
.tabbar{ display:flex; gap:clamp(16px,2.4vw,36px); border-bottom:1px solid var(--line); margin-bottom:clamp(24px,4vh,40px); overflow-x:auto; scrollbar-width:none; }
.tabbar::-webkit-scrollbar{ display:none; }
.tab{ display:inline-flex; align-items:center; gap:10px; padding:0 0 14px; margin-bottom:-1px; border-bottom:1px solid transparent; font-family:var(--serif); font-weight:300; font-size:clamp(20px,1.6vw,25px); line-height:1; color:var(--sage); transition:color .35s, border-color .35s; white-space:nowrap; }
.tab .m{ width:10px; height:10px; opacity:0; transform:scale(.4); transition:opacity .3s, transform .4s var(--ease); }
.tab:hover{ color:var(--cacao); }
.tab.is-on{ color:var(--cacao); font-weight:500; border-bottom-color:var(--cacao); }
.tab.is-on .m{ opacity:1; transform:none; }
.panels{ position:relative; }
.wipe{ position:absolute; inset:0; z-index:5; pointer-events:none; display:none; }
.panel{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(22px,3vw,48px); align-items:start; }
.panel[hidden]{ display:none; }
.mphoto{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.mphoto img{ position:absolute; inset:0; }
.h4{ font-family:var(--serif); font-weight:300; font-size:clamp(28px,2.6vw,40px); line-height:1.05; }
.h4-tag{ display:inline-block; vertical-align:middle; margin-left:12px; position:relative; top:-5px; }
.mbody .mnote{ margin:12px 0 clamp(18px,3vh,30px); }
.mcols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.4vw,36px); }
.mcols .lab{ display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:12px; margin-bottom:14px; }
.mcols .mlist{ font-size:15.5px; gap:8px; }
.panel[data-c="olive"] .mlist li > svg{ color:var(--olive); } .panel[data-c="clay"] .mlist li > svg{ color:var(--clay); } .panel[data-c="mist"] .mlist li > svg{ color:var(--dust); }

/* ---------- plastas ---------- */
.plate{ color:var(--bone); }
.plate .lab, .plate .lab-c{ color:var(--bone); opacity:.72; }
.plate .h2 b{ color:#fff; }
.plate-clay{ background:var(--clay); }
.plate-olive{ background:var(--olive); }
.plate .sec-head{ padding-bottom:clamp(16px,3vh,30px); }
.plate .lede{ opacity:.9; }


/* ---------- 08 · contacto ---------- */
.contact{ position:relative; color:var(--bone); overflow:hidden; background:#143046; }
.contact-bg{ position:absolute; inset:0; opacity:.62; }
.contact::before{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,48,70,.86) 0%, rgba(20,48,70,.55) 55%, rgba(20,48,70,.3) 100%); }
.contact-in{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(30px,6vw,110px); padding:clamp(80px,13vh,150px) calc(var(--pad) + var(--rail)) clamp(60px,9vh,100px) var(--pad); }
.contact .lab{ color:var(--bone); opacity:.72; }
.contact .h2{ max-width:19ch; }
.contact .h2 b{ color:#fff; }
.contact .lede{ opacity:.92; }
.cdata{ margin-top:clamp(30px,5vh,60px); display:flex; flex-direction:column; gap:22px; max-width:60ch; }
.cdata dt{ margin-bottom:6px; }
.cdata dd{ font-size:16px; line-height:1.55; }
.cmail{ font-family:var(--serif); font-size:clamp(24px,2.4vw,36px); font-weight:300; line-height:1.2; }
.cdata a:not(.cmail){ background:linear-gradient(currentColor,currentColor) no-repeat left bottom / 100% 1px; padding-bottom:1px; }
.cform{ display:flex; flex-direction:column; gap:16px; background:var(--bone); color:var(--cacao); padding:clamp(24px,3vw,40px); align-self:start; }
.cform-h{ color:var(--clay) !important; opacity:1 !important; margin-bottom:6px; }
.cform label{ display:flex; flex-direction:column; gap:6px; }
.cform label .lab{ color:var(--cacao) !important; opacity:.6 !important; font-size:10px; }
.cform input, .cform textarea{ font:inherit; font-size:16px; color:var(--cacao); background:transparent; border:0; border-bottom:1px solid var(--line); padding:8px 0; border-radius:0; outline:0; resize:vertical; }
.cform input:focus, .cform textarea:focus{ border-bottom-color:var(--clay); }
.cform-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.cform-sum{ font-size:13px; line-height:1.5; background:var(--linen); padding:12px 14px; }
.cform-sum:empty{ display:none; }
.cform .btn{ align-self:flex-start; margin-top:8px; }
.cform-note{ font-size:12.5px; line-height:1.45; opacity:.6; }
.foot{ position:relative; z-index:2; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; padding:22px calc(var(--pad) + var(--rail)) 26px var(--pad); border-top:1px solid rgba(250,249,247,.3); }
.foot-brand{ display:inline-flex; align-items:center; gap:12px; font-family:var(--serif); font-size:20px; }
.foot-sym{ width:20px; height:20px; fill:currentColor; }
.strip{ display:flex; }
.strip svg{ width:11px; height:11px; }
.foot-r{ color:var(--bone) !important; opacity:.72; }


/* ---------- reveals ---------- */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .9s ease, transform 1.1s var(--ease); }
.rv.is-in{ opacity:1; transform:none; }


/* ---------- carruseles en caja (casas, días, menús) ---------- */
.car{ position:relative; overflow:hidden; }
.car img{ position:absolute; inset:0; opacity:0; transition:opacity .9s ease; }
.car img.is-on{ opacity:1; }
.car-dots{ position:absolute; left:10px; bottom:10px; display:flex; gap:5px; z-index:2; }
.car-dots i{ width:6px; height:6px; background:var(--bone); opacity:.45; display:block; }
.car-dots i.is-on{ opacity:1; }

/* ---------- 04 · el muro ---------- */
.wall{ background:var(--bone); }
.wall-head{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:clamp(20px,4vw,60px); align-items:end; }
.filters{ display:flex; flex-wrap:wrap; gap:6px 18px; padding-bottom:8px; }
.filt{ display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--cacao); opacity:.5; padding:8px 0; border-bottom:1px solid transparent; transition:opacity .3s, border-color .3s; }
.filt .m{ width:10px; height:10px; }
.filt:hover{ opacity:.85; }
.filt.is-on{ opacity:1; border-bottom-color:var(--cacao); }
.wallgrid{ columns:4; column-gap:10px; padding:0 calc(var(--pad) + var(--rail)) 0 var(--pad); }
.wallgrid a{ position:relative; display:block; break-inside:avoid; margin:0 0 10px; overflow:hidden; background:var(--linen); opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .9s var(--ease); }
.wallgrid a.is-in{ opacity:1; transform:none; }
.wallgrid a[hidden]{ display:none; }
.wallgrid img{ width:100%; height:auto; display:block; transition:transform 1.2s var(--ease); }
.wallgrid a:hover img{ transform:scale(1.03); }
.wallgrid a::after{ content:attr(data-cap); position:absolute; left:0; right:0; bottom:0; padding:22px 12px 10px; font-family:var(--sans); font-weight:600; font-size:9.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--bone); background:linear-gradient(to top, rgba(74,38,24,.55), rgba(74,38,24,0)); opacity:0; transition:opacity .35s; }
.wallgrid a:hover::after{ opacity:1; }
.wall-more{ display:flex; justify-content:center; padding:clamp(28px,4vh,44px) var(--pad) clamp(70px,10vh,120px); }
.wall-more button{ display:inline-flex; align-items:center; gap:11px; border:1px solid var(--cacao); padding:12px 20px; font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; transition:background .3s, color .3s; }
.wall-more button:hover{ background:var(--cacao); color:var(--bone); }
.wall-more[hidden]{ display:none; }

/* ---------- lightbox ---------- */
.lb{ position:fixed; inset:0; z-index:130; display:grid; place-items:center; padding:clamp(16px,4vw,48px); }
.lb[hidden]{ display:none; }
.lb-veil{ position:absolute; inset:0; background:rgba(28,14,8,.94); opacity:0; transition:opacity .35s; }
.lb.is-on .lb-veil{ opacity:1; }
.lb-fig{ position:relative; z-index:2; margin:0; max-width:min(1400px, 92vw); max-height:82vh; opacity:0; transform:scale(.98); transition:opacity .4s, transform .5s var(--ease); }
.lb.is-on .lb-fig{ opacity:1; transform:none; }
.lb-fig img{ display:block; width:auto; height:auto; max-width:min(1400px,92vw); max-height:82vh; object-fit:contain; }
.lb-c{ position:absolute; width:11px; height:11px; }
.lb-c.c1{ left:-16px; top:-16px; } .lb-c.c2{ right:-16px; top:-16px; } .lb-c.c3{ left:-16px; bottom:-16px; } .lb-c.c4{ right:-16px; bottom:-16px; }
.lb-c svg{ display:block; width:100%; height:100%; }
.lb-cap{ position:absolute; left:50%; bottom:clamp(14px,3vh,28px); transform:translateX(-50%); z-index:2; color:var(--bone); font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.22em; text-transform:uppercase; opacity:.75; text-align:center; max-width:80vw; }
.lb-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:44px; height:44px; border:1px solid rgba(250,249,247,.5); color:var(--bone); font-size:18px; transition:background .3s, color .3s; }
.lb-nav:hover{ background:var(--bone); color:var(--cacao); }
.lb-prev{ left:clamp(10px,2vw,28px); } .lb-next{ right:clamp(10px,2vw,28px); }
.lb-x{ position:absolute; right:clamp(14px,2vw,28px); top:clamp(14px,2vw,24px); z-index:3; color:var(--bone); font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.24em; text-transform:uppercase; opacity:.75; }
.lb-x:hover{ opacity:1; }
body.lb-open{ overflow:hidden; }

@media (max-width:1100px){ .wallgrid{ columns:3; } }
@media (max-width:900px){ .wall-head{ grid-template-columns:1fr; } .wallgrid{ columns:2; padding:0 var(--pad); column-gap:8px; } .wallgrid a{ margin-bottom:8px; } .filters{ overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; gap:16px; } .filters::-webkit-scrollbar{ display:none; } .filt{ white-space:nowrap; } .lb-nav{ width:38px; height:38px; } .lb-fig{ max-height:70vh; } .lb-fig img{ max-height:70vh; } }

/* =====================================================================
   v4 · ronda de notas 28-oct
   ===================================================================== */

/* ---------- comunes ---------- */
.dot{ display:inline-block; width:10px; height:10px; background:currentColor; animation:pulse 2.2s ease-in-out infinite; flex:none; }
@keyframes pulse{ 0%,100%{ transform:scale(1); opacity:1; } 50%{ transform:scale(.5); opacity:.55; } }
.sec{ position:relative; }
.sec-head{ padding:clamp(70px,10vh,120px) calc(var(--pad) + var(--rail)) clamp(30px,5vh,56px) var(--pad); }
.sec-head .lede{ margin-top:4px; }
.full{ position:relative; height:clamp(420px,80vh,860px); overflow:hidden; }
.full > img{ position:absolute; inset:0; }
.lab-c{ display:inline-flex; align-items:center; gap:10px; }
.split-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,90px); align-items:end; }
.stay-head, .ven-head, .wk-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(24px,5vw,90px); align-items:end; }
.stay-head .lede, .ven-head .lede, .wk-head .lede{ padding-bottom:22px; }

/* ---------- header · plasta verde sobre foto ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:90; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:16px var(--pad); color:var(--cacao); transition:color .35s ease, background-color .35s ease; }
.nav::before{ content:""; position:absolute; inset:0; z-index:-1; opacity:0; transition:opacity .35s ease;
  background:var(--bone); border-bottom:1px solid var(--line); }
.nav.is-solid::before{ opacity:1; }
.nav.is-green{ background:var(--olive); color:var(--bone); }
.nav.is-green .lab, .nav.is-green .nav-mid{ color:var(--bone); opacity:1; }
.nav-logo{ display:inline-flex; align-items:center; gap:12px; justify-self:start; }
.nav-sym{ width:24px; height:24px; fill:currentColor; }
.nav-word{ font-family:var(--serif); font-weight:400; font-size:21px; letter-spacing:.005em; }
.nav-mid{ font-family:var(--sans); font-weight:600; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--cacao); opacity:.78; }
.nav-right{ display:flex; align-items:center; gap:22px; justify-self:end; }
.nav-mail{ font-size:14px; background:linear-gradient(currentColor,currentColor) no-repeat left bottom / 0% 1px; padding-bottom:2px; transition:background-size .4s var(--ease); }
.nav-mail:hover{ background-size:100% 1px; }
.nav .btn{ border-color:currentColor; padding:11px 18px; }
.nav.is-green .btn:hover{ background:var(--bone); color:var(--olive); }

/* ---------- el índice · cuadros que se extienden ---------- */
.rail{ position:fixed; right:clamp(12px,1.4vw,22px); top:50%; transform:translateY(-50%); z-index:80; display:flex; flex-direction:column; gap:6px; align-items:flex-end; }
.st{ --sc:var(--cacao); position:relative; display:flex; align-items:center; justify-content:flex-end; height:30px; min-width:30px; max-width:30px; overflow:hidden; background:var(--bone); color:var(--sc);
  transition:max-width .45s var(--ease), background-color .3s ease, color .3s ease; }
.st-m{ flex:none; width:30px; height:30px; display:grid; place-items:center; }
.st-m svg{ width:12px; height:12px; display:block; }
.st-l{ flex:none; padding:0 4px 0 14px; white-space:nowrap; font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--cacao); }
.st:hover, .st:focus-visible{ max-width:280px; }
.st.is-here{ background:var(--sc); color:var(--bone); }
.st.is-here .st-l{ color:var(--bone); }

/* ---------- hero ---------- */
.hero-foot{ position:absolute; left:var(--pad); bottom:clamp(22px,4vh,40px); z-index:4; color:var(--bone); display:flex; align-items:center; gap:14px; }
.hero-dots{ position:absolute; right:calc(var(--pad) + 44px); bottom:clamp(22px,4vh,40px); z-index:4; display:flex; gap:8px; }
.hero-dots li{ width:8px; height:8px; background:var(--bone); opacity:.35; transition:opacity .3s; }
.hero-dots li.is-on{ opacity:1; }

/* ---------- 01 · el hospedaje ---------- */
.stay-sec{ background:var(--bone); }
.counters{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(18px,3vw,48px); padding:0 calc(var(--pad) + var(--rail)) clamp(36px,6vh,70px) var(--pad); }
.ct{ border-top:1px solid var(--line); padding-top:18px; }
.ct dt{ font-size:clamp(40px,4vw,64px); white-space:nowrap; }
.ct dd{ font-size:15px; margin-top:8px; max-width:28ch; }
.ct dd .lab{ display:block; margin-bottom:6px; }
.stays{ padding:0 calc(var(--pad) + var(--rail)) 0 var(--pad); border-top:1px solid var(--cacao); }
.stay{ border-bottom:1px solid var(--cacao); }
.stay-bar{ width:100%; display:grid; grid-template-columns:44px minmax(0,1fr) auto 44px; align-items:center; gap:clamp(12px,2vw,28px); padding:clamp(18px,3vh,30px) 0; text-align:left; transition:padding .5s var(--ease); }
.stay-mod{ width:22px; height:22px; display:block; }
.stay-mod .m{ width:22px; height:22px; display:block; }
.stay-name{ font-family:var(--serif); font-weight:300; font-size:clamp(46px,8vw,132px); line-height:.92; letter-spacing:-.02em; transition:transform .6s var(--ease), color .3s; }
.stay-n{ display:flex; align-items:baseline; gap:10px; }
.stay-n .num{ font-size:clamp(34px,3.4vw,56px); }
.stay-x{ position:relative; width:22px; height:22px; justify-self:end; }
.stay-x::before, .stay-x::after{ content:""; position:absolute; left:0; right:0; top:50%; height:2px; margin-top:-1px; background:currentColor; transition:transform .45s var(--ease); }
.stay-x::after{ transform:rotate(90deg); }
.stay.is-open .stay-x::after{ transform:rotate(0deg); }
.stay-bar:hover .stay-name{ transform:translateX(14px); }
.stay[data-c="clay"] .stay-bar:hover .stay-name, .stay[data-c="clay"].is-open .stay-name{ color:var(--clay); }
.stay[data-c="olive"] .stay-bar:hover .stay-name, .stay[data-c="olive"].is-open .stay-name{ color:var(--olive); }
.stay[data-c="mist"] .stay-bar:hover .stay-name, .stay[data-c="mist"].is-open .stay-name{ color:var(--dust); }
.stay-body{ max-height:0; overflow:hidden; transition:max-height .75s var(--ease); }
.stay-in{ display:grid; grid-template-columns:minmax(240px,3fr) minmax(0,9fr); gap:clamp(20px,3vw,48px); padding:0 0 clamp(26px,4vh,44px) calc(44px + clamp(12px,2vw,28px)); }
.stay-info{ opacity:0; transform:translateY(12px); transition:opacity .5s ease .15s, transform .7s var(--ease) .15s; }
.stay.is-open .stay-info{ opacity:1; transform:none; }
.stay-p{ font-weight:300; font-size:clamp(17px,1.3vw,20px); line-height:1.5; margin-bottom:20px; }
.stay .mlist{ font-size:15.5px; gap:8px; }
.stay[data-c="clay"] .mlist li > svg{ color:var(--clay); } .stay[data-c="olive"] .mlist li > svg{ color:var(--olive); } .stay[data-c="mist"] .mlist li > svg{ color:var(--dust); }
.stay-strip{ display:flex; gap:10px; overflow-x:auto; overflow-y:hidden; scrollbar-width:none; cursor:grab; padding-bottom:4px; -webkit-overflow-scrolling:touch; }
.stay-strip::-webkit-scrollbar{ display:none; }
.stay-strip.is-drag{ cursor:grabbing; }
.sp{ --k:.86; flex:none; position:relative; height:clamp(240px,40vh,440px); aspect-ratio:4/5; overflow:hidden; transform:scale(var(--k)); transform-origin:50% 100%; transition:transform .35s ease-out; }
.sp:first-child{ aspect-ratio:3/2; }
.sp img{ position:absolute; inset:0; }
.stays-foot{ padding:20px calc(var(--pad) + var(--rail)) clamp(70px,10vh,120px) var(--pad); font-size:15px; opacity:.75; }

/* ---------- 02 · dónde se celebra · la mano de cartas ---------- */
.venues{ background:var(--linen); }
.spread{ position:relative; height:clamp(380px,58vh,600px); margin:0 calc(var(--pad) + var(--rail)) 0 var(--pad); touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.card{ --x:0px; --y:0px; --r:0deg; --s:1; --cp:clamp(10px,1vw,14px);
  position:absolute; left:50%; top:0; width:min(400px,40vw); aspect-ratio:4/5; margin-left:calc(min(400px,40vw) / -2);
  background:#fff; box-shadow:0 1px 2px rgba(74,38,24,.10), 0 12px 30px rgba(74,38,24,.14);
  transform:translate(var(--x), var(--y)) rotate(var(--r)) scale(var(--s)); transform-origin:50% 100%;
  transition:transform .8s cubic-bezier(.65,0,.25,1), box-shadow .4s ease; cursor:pointer; }
.card img{ position:absolute; left:var(--cp); top:var(--cp); width:calc(100% - 2*var(--cp)); height:calc(100% - var(--cp) - 58px); object-fit:cover; pointer-events:none; }
.card figcaption{ position:absolute; left:var(--cp); right:var(--cp); bottom:0; height:58px; display:flex; justify-content:space-between; align-items:center; font-family:var(--serif); font-size:clamp(19px,1.6vw,24px); font-weight:300; }
.card figcaption .m{ width:12px; height:12px; }
.card[data-c="cacao"] figcaption .m{ color:var(--cacao); } .card[data-c="clay"] figcaption .m{ color:var(--clay); } .card[data-c="mist"] figcaption .m{ color:var(--dust); } .card[data-c="ink"] figcaption .m{ color:var(--ink); }
.card:not(.is-top):hover{ box-shadow:0 1px 2px rgba(74,38,24,.10), 0 18px 40px rgba(74,38,24,.2); }
.card.is-top{ box-shadow:0 2px 4px rgba(74,38,24,.12), 0 22px 48px rgba(74,38,24,.22); }
.vnames{ display:flex; justify-content:center; align-items:center; gap:clamp(14px,2.4vw,36px); flex-wrap:wrap; padding:clamp(26px,4vh,40px) var(--pad) 0; }
.vname{ font-family:var(--serif); font-weight:300; font-size:clamp(19px,1.6vw,25px); color:var(--sage); padding-bottom:8px; border-bottom:1px solid transparent; transition:color .3s, border-color .3s; }
.vname:hover{ color:var(--cacao); }
.vname.is-on{ color:var(--cacao); font-weight:500; border-bottom-color:var(--cacao); }
.dnav{ width:40px; height:40px; border:1px solid var(--cacao); font-family:var(--sans); font-size:16px; transition:background .3s, color .3s; flex:none; }
.dnav:hover{ background:var(--cacao); color:var(--bone); }
.vinfo{ padding:clamp(34px,6vh,64px) calc(var(--pad) + var(--rail)) clamp(80px,12vh,140px) var(--pad); }
.vpanel{ display:grid; grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr); gap:clamp(22px,4vw,64px); align-items:start; border-top:1px solid var(--cacao); padding-top:26px; animation:vin .7s var(--ease); }
.vpanel[hidden]{ display:none; }
@keyframes vin{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.vp-a .lab{ margin-top:12px; }
.vp{ font-weight:300; font-size:clamp(17px,1.35vw,20px); line-height:1.55; margin-bottom:24px; }
.vphotos{ display:inline-flex; align-items:center; gap:14px; }
.vphotos-th{ display:flex; }
.vphotos-th img{ width:44px; height:44px; object-fit:cover; border:3px solid #fff; box-shadow:0 2px 6px rgba(74,38,24,.15); margin-right:-14px; transition:transform .4s var(--ease); }
.vphotos-th img:nth-child(1){ transform:rotate(-6deg); } .vphotos-th img:nth-child(2){ transform:rotate(3deg); } .vphotos-th img:nth-child(3){ transform:rotate(-2deg); }
.vphotos:hover .vphotos-th img{ transform:rotate(0) translateY(-3px); }
.vphotos .lab{ margin-left:18px; color:var(--cacao); border-bottom:1px solid var(--cacao); padding-bottom:3px; }
.vpanel[data-c="cacao"] .mlist li > svg{ color:var(--cacao); } .vpanel[data-c="clay"] .mlist li > svg{ color:var(--clay); } .vpanel[data-c="mist"] .mlist li > svg{ color:var(--dust); } .vpanel[data-c="ink"] .mlist li > svg{ color:var(--ink); }
.vp-c .mlist{ font-size:16px; }
.caps{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.caps > div{ border-top:1px solid var(--line); padding-top:12px; }
.caps dt{ font-size:clamp(34px,3vw,48px); margin-bottom:6px; }
.vgal{ display:none; }

/* ---------- 03 · foto del pasillo sin pie ---------- */
.aisle-full{ height:clamp(380px,72vh,760px); }

/* ---------- 05 · el fin de semana · día por día ---------- */
.weekend{ background:var(--bone); }
.days-wrap{ padding:0 calc(var(--pad) + var(--rail)) 0 var(--pad); }
.dtabs{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(10px,1.6vw,22px); margin-bottom:clamp(24px,4vh,40px); }
.dtab{ --p:0; display:flex; flex-direction:column; align-items:flex-start; gap:6px; text-align:left; padding:0 0 14px; position:relative; color:var(--sage); transition:color .3s; }
.dtab .lab{ color:inherit; }
.dtab-t{ font-family:var(--serif); font-weight:300; font-size:clamp(20px,1.9vw,30px); line-height:1.1; }
.dtab-bar{ position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--line); overflow:hidden; }
.dtab-bar b{ position:absolute; inset:0; background:var(--olive); transform-origin:0 50%; transform:scaleX(var(--p)); }
.dtab:hover, .dtab.is-on, .dtab.is-done{ color:var(--cacao); }
.dpanel{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(24px,4vw,70px); align-items:stretch; }
.dpanel[hidden]{ display:none; }
.dpanel.is-on{ animation:vin .7s var(--ease); }
.dshow{ position:relative; aspect-ratio:4/3; overflow:hidden; margin:0; background:var(--linen); }
.dshow img{ position:absolute; inset:0; opacity:0; transform:scale(1.04); transition:opacity .8s ease, transform 2.4s var(--ease); }
.dshow img.is-on{ opacity:1; transform:none; }
.dtext{ display:flex; flex-direction:column; }
.dbig{ display:flex; flex-direction:column; gap:10px; margin-bottom:clamp(20px,4vh,40px); }
.dbig-t{ font-family:var(--serif); font-weight:300; font-size:clamp(44px,5.6vw,92px); line-height:.95; letter-spacing:-.02em; }
.dbig-t b{ font-weight:600; }
.moments{ border-top:1px solid var(--cacao); }
.moments li{ display:flex; flex-direction:column; gap:6px; padding:16px 0 16px 0; border-bottom:1px solid var(--line); cursor:pointer; position:relative; transition:padding .45s var(--ease); }
.moments li::before{ content:""; position:absolute; left:0; top:50%; width:0; height:2px; background:var(--olive); transition:width .45s var(--ease); }
.moments li.is-on{ padding-left:30px; }
.moments li.is-on::before{ width:18px; }
.mo-n{ font-family:var(--serif); font-weight:300; font-size:clamp(21px,1.8vw,28px); line-height:1.15; }
.mo-w{ color:var(--clay); }
.moments li:not(.is-on) .mo-w{ opacity:.7; }
.dmenu{ align-self:flex-start; margin-top:24px; }

/* el menú es la cena del día 3: misma sección, sigue el hilo */
.weekend .menus{ margin:clamp(70px,10vh,120px) calc(var(--pad) + var(--rail)) 0 var(--pad); padding:clamp(30px,5vh,50px) 0 clamp(80px,12vh,140px); border-top:1px solid var(--cacao); }
.weekend .menus-head{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(20px,4vw,60px); align-items:end; margin-bottom:clamp(26px,4vh,44px); }
.weekend .menus-head .lab{ grid-column:1 / -1; }
.weekend .menus-head .h3{ margin:0; font-size:clamp(40px,5vw,80px); line-height:.95; }
.weekend .menus-head .h3 b{ font-weight:600; }
.mopt .mopt-h{ display:block; }
.panel > *, .mbody, .mcols > *{ min-width:0; }

/* ---------- 06 · Celeste · la polaroid al centro ---------- */
.planner{ background:var(--linen); padding:clamp(70px,10vh,120px) calc(var(--pad) + var(--rail)) clamp(70px,10vh,120px) var(--pad); }
.planner-top{ text-align:center; margin-bottom:clamp(30px,5vh,56px); }
.planner-top .h2{ margin-bottom:14px; }
.planner-n{ display:inline-flex; align-items:baseline; gap:12px; }
.planner-n .num{ font-size:clamp(44px,4vw,64px); }
.planner-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,300px) minmax(0,1fr); gap:clamp(24px,4vw,70px); align-items:center; max-width:1180px; margin:0 auto; }
.planner-grid p{ font-weight:300; font-size:clamp(16px,1.2vw,18.5px); line-height:1.65; }
.planner-l{ text-align:right; }
.planner-pol{ margin:0; background:#fff; padding:12px 12px 0; box-shadow:0 1px 2px rgba(74,38,24,.10), 0 14px 34px rgba(74,38,24,.16); transform:rotate(-2deg); transition:transform .6s var(--ease); }
.planner-pol:hover{ transform:rotate(0deg) translateY(-4px); }
.planner-pol img{ display:block; width:100%; height:auto; aspect-ratio:900/1184; object-fit:cover; }
.planner-pol figcaption{ font-family:var(--serif); font-style:italic; font-size:15px; text-align:center; padding:14px 0 16px; }
.planner-foot{ display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; margin-top:clamp(36px,6vh,64px); }
.planner-q{ font-family:var(--serif); font-style:italic; font-weight:400; font-size:clamp(26px,2.6vw,40px); line-height:1.2; }
.planner-ig{ display:flex; gap:12px; align-items:baseline; font-size:16px; }
.planner-ig a{ background:linear-gradient(currentColor,currentColor) no-repeat left bottom / 100% 1px; padding-bottom:2px; }

/* ---------- 07 · cómo se arma · foto por paso ---------- */
.pgrid{ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(24px,4vw,70px); align-items:start; padding:0 calc(var(--pad) + var(--rail)) clamp(80px,12vh,140px) var(--pad); }
.pshot{ position:sticky; top:96px; margin:0; background:#fff; padding:12px 12px 0; transform:rotate(-1.4deg); box-shadow:0 2px 4px rgba(40,18,6,.18), 0 20px 44px rgba(40,18,6,.28); }
.pshot-in{ position:relative; display:block; aspect-ratio:4/5; overflow:hidden; }
.pshot-in img{ position:absolute; inset:0; opacity:0; transition:opacity .7s ease; }
.pshot-in img.is-on{ opacity:1; }
.pshot figcaption{ color:var(--cacao) !important; opacity:1 !important; text-align:center; padding:14px 0 16px; }
.pcols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,48px); }
.pcol-h{ border-bottom:1px solid var(--bone); padding-bottom:12px; margin-bottom:4px; }
.pcol-h .lab{ color:var(--bone) !important; opacity:1 !important; font-size:12px; }
.plist .pstep{ display:grid; grid-template-columns:48px 1fr; gap:12px; align-items:baseline; padding:16px 0; border-bottom:1px solid rgba(250,249,247,.3); font-size:16.5px; line-height:1.45; cursor:pointer; opacity:.62; transition:opacity .35s, padding .45s var(--ease); }
.plist .pstep .num{ font-size:clamp(24px,2vw,32px); }
.plist .pstep:hover{ opacity:.9; }
.plist .pstep.is-on{ opacity:1; padding-left:10px; }
.plist .pstep.is-on .num{ font-weight:500; }

/* ---------- 08 · qué incluye · íconos de píxeles ---------- */
.flips{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,2vw,26px); padding:0 calc(var(--pad) + var(--rail)) clamp(90px,13vh,150px) var(--pad); }
.flip{ perspective:1200px; }
.flip-in{ position:relative; display:block; width:100%; aspect-ratio:4/3; transform-style:preserve-3d; -webkit-transform-style:preserve-3d; transition:transform .9s cubic-bezier(.65,0,.25,1); text-align:left; }
.flip-in[aria-expanded="true"]{ transform:rotateY(180deg); }
.flip-front, .flip-back{ position:absolute; inset:0; -webkit-backface-visibility:hidden; backface-visibility:hidden; padding:clamp(20px,2vw,30px); display:flex; flex-direction:column; }
.flip-front{ background:var(--fb); color:var(--ff); align-items:center; justify-content:center; gap:22px; transition:transform .5s var(--ease); }
.flip-in:hover .flip-front .pix{ transform:scale(1.08); }
.pix{ transition:transform .5s var(--ease); }
.pix{ width:clamp(72px,7vw,104px); height:auto; display:block; }
.flip-front .lab{ color:var(--ff) !important; opacity:1 !important; text-align:center; }
.flip-front::after{ content:""; position:absolute; right:16px; bottom:16px; width:14px; height:14px; border-right:2px solid var(--ff); border-bottom:2px solid var(--ff); opacity:.6; }
.flip-back{ transform:rotateY(180deg); background:var(--ff); color:var(--fb); justify-content:center; gap:14px; }
.flip-back .lab{ color:var(--fb) !important; opacity:.8 !important; }
.flip-txt{ font-weight:300; font-size:clamp(17px,1.4vw,21px); line-height:1.4; }

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .flips{ grid-template-columns:1fr 1fr; }
  .vpanel{ grid-template-columns:1fr 1fr; }
  .vp-c{ grid-column:1 / -1; }
}
@media (max-width:900px){
  :root{ --rail:0px; }
  .nav{ grid-template-columns:1fr auto; padding:12px var(--pad); }
  .nav-mid, .nav-mail{ display:none; }
  .rail{ right:auto; left:0; top:auto; bottom:0; transform:none; width:100%; flex-direction:row; justify-content:center; gap:2px; padding:7px 6px calc(7px + env(safe-area-inset-bottom)); background:var(--bone); border-top:1px solid var(--line); }
  .st{ max-width:30px !important; }
  .st-l{ display:none; }
  body{ padding-bottom:46px; }
  .hero-foot{ bottom:72px; }
  .hero-dots{ bottom:72px; right:var(--pad); }
  .stay-head, .ven-head, .wk-head{ grid-template-columns:1fr; gap:4px; }
  .counters{ grid-template-columns:1fr 1fr; }
  .stay-bar{ grid-template-columns:24px minmax(0,1fr) auto 18px; gap:12px; }
  .stay-mod, .stay-mod .m{ width:16px; height:16px; }
  .stay-n .lab{ display:none; }
  .stay-in{ grid-template-columns:1fr; padding-left:0; }
  .sp{ height:240px; }
  .sp:first-child{ aspect-ratio:4/5; }
  .hero-dots{ display:none; }
  .spread{ height:calc(min(300px,64vw) * 1.25 + 50px) !important; }
  .card{ width:min(300px,64vw); margin-left:calc(min(300px,64vw) / -2); }
  .spread{ height:clamp(380px,52vh,460px); margin:0 var(--pad); }
  .vnames{ gap:10px 18px; }
  .vnames .dnav{ display:none; }
  .vpanel{ grid-template-columns:1fr; gap:18px; }
  .prints{ grid-template-columns:1fr; padding:60px var(--pad); }
  .wstack-inner{ width:min(520px,92%); }
  .prints-body{ order:2; text-align:center; }
  .prints-body .lede{ margin:0 auto; }
  .dtabs{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
  .dtab-t{ display:none; }
  .dpanel{ grid-template-columns:1fr; gap:22px; }
  .weekend .menus-head{ grid-template-columns:1fr; }
  .panel{ grid-template-columns:1fr; }
  .mphoto{ position:relative; top:auto; aspect-ratio:3/2; }
  .mcols{ grid-template-columns:1fr; }
  .planner-grid{ grid-template-columns:1fr; }
  .planner-l{ text-align:left; order:1; }
  .planner-pol{ order:0; width:min(260px,70vw); margin:0 auto; }
  .planner-r{ order:2; }
  .pgrid{ grid-template-columns:1fr; }
  .pshot{ position:relative; top:auto; width:min(320px,80vw); margin:0 auto; }
  .pcols{ grid-template-columns:1fr; }
  .flips{ grid-template-columns:1fr; }
  .flip-in{ aspect-ratio:16/10; }
  .contact-in{ grid-template-columns:1fr; padding:70px var(--pad) 50px; }
  .foot{ padding:20px var(--pad); }
}
@media (max-width:560px){
  .counters{ grid-template-columns:1fr 1fr; gap:14px; }
  .ct dt{ font-size:40px; }
  .ct dd{ font-size:13.5px; }
  .cform-row{ grid-template-columns:1fr; }
  .pol-card{ width:min(94vw,460px); }
  .pol-rear textarea{ font-size:13.5px; line-height:1.45; }
  .hero-title{ font-size:52px; }
  .stay-name{ font-size:clamp(34px,11vw,52px); }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .rv{ opacity:1; transform:none; }
}

/* =====================================================================
   v5 · ronda del 28-oct (tarde) · títulos chicos, cada sección en una pantalla
   ===================================================================== */

/* sistema de cabeza compacta: el título es chico y en una línea; lo grande es
   el contenido (los nombres de las casas, las cartas, las fotos) */
.h2s{ font-family:var(--serif); font-weight:300; font-size:clamp(28px,2.6vw,42px); line-height:1.08; letter-spacing:-.01em; margin:10px 0 0; }
.h2s b{ font-weight:600; }
.lede-s{ font-weight:300; font-size:clamp(15.5px,1.08vw,17.5px); line-height:1.55; max-width:58ch; }
.head-s{ display:grid; grid-template-columns:auto minmax(0,58ch); justify-content:space-between; gap:clamp(24px,5vw,90px); align-items:end;
  padding:clamp(44px,7vh,76px) calc(var(--pad) + var(--rail)) clamp(20px,3.2vh,32px) var(--pad); }
.head-s .h2s{ white-space:nowrap; }
.plate .head-s .lede-s{ opacity:.9; }

/* tarjetitas de numeralia (hospedaje y Celeste) */
.tiles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; padding:0 calc(var(--pad) + var(--rail)) clamp(22px,3.4vh,34px) var(--pad); }
.tile{ display:flex; align-items:center; gap:16px; background:var(--linen); padding:14px 18px; min-width:0; }
.tile dt{ font-size:clamp(28px,2.4vw,38px); white-space:nowrap; flex:none; }
.tile dd{ font-size:13.5px; line-height:1.4; min-width:0; }
.tile dd .lab{ display:block; margin-bottom:3px; font-size:10px; }

/* 01 · hospedaje: los nombres siguen grandes, todo cabe en una pantalla */
.stay-name{ font-size:clamp(40px,5.4vw,88px); }
.stay-bar{ padding:clamp(12px,2vh,20px) 0; }
.stay-n .num{ font-size:clamp(28px,2.6vw,42px); }
.stays-foot{ padding:14px calc(var(--pad) + var(--rail)) clamp(60px,9vh,100px) var(--pad); font-size:14px; }
.sp{ height:clamp(220px,36vh,400px); }

/* 02 · dónde se celebra: título a la izquierda, la mano al centro, párrafo a la derecha */
.ven-top{ --cw:min(300px, 24vw, calc((100vh - 430px) * .8)); display:grid; grid-template-columns:minmax(180px,1fr) minmax(0,2.3fr) minmax(180px,1fr); gap:clamp(18px,2.5vw,40px); align-items:start;
  padding:clamp(44px,7vh,76px) calc(var(--pad) + var(--rail)) 0 var(--pad); }
.ven-l, .ven-r{ position:relative; z-index:12; }
.ven-l .h2s{ white-space:normal; }
.ven-r{ padding-top:2px; }
.ven-top .spread{ margin:0; height:calc(var(--cw) * 1.25 + 46px); }
.ven-top .card{ width:var(--cw); margin-left:calc(var(--cw) / -2); }
.vnames{ padding-top:clamp(10px,1.6vh,18px); }
.vname{ font-size:clamp(17px,1.35vw,21px); }
.dnav{ width:34px; height:34px; font-size:14px; }
.vinfo{ padding:clamp(16px,2.6vh,26px) calc(var(--pad) + var(--rail)) clamp(60px,9vh,100px) var(--pad); }
.vpanel{ padding-top:18px; gap:clamp(18px,3vw,48px); }
.vpanel .h3{ font-size:clamp(26px,2.2vw,36px); }
.vp{ font-size:clamp(15.5px,1.1vw,17.5px); margin-bottom:16px; }
.vp-c .mlist{ font-size:15px; gap:7px; }
.caps dt{ font-size:clamp(28px,2.4vw,38px); }
.vphotos-th img{ width:38px; height:38px; }

/* 04 · muro */
.wall-head{ grid-template-columns:auto minmax(0,1fr); }
.wall-head .filters{ justify-content:flex-end; }
.wall-more{ gap:10px; }
.wall-more button[hidden]{ display:none; }
#wallLess{ border-color:var(--line); }

/* 05 · día por día: foto vertical (no corta caras), elegir y el resumen */
.dtabs{ grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,.8fr); margin-bottom:clamp(18px,3vh,30px); }
.dtab-t{ font-size:clamp(18px,1.5vw,24px); }
.dtab-sum{ color:var(--sage); }
.dtab-sum .dtab-bar b{ background:var(--clay); }
.dpanel{ grid-template-columns:auto minmax(0,1fr); gap:clamp(24px,4vw,70px); align-items:start; }
.dshow{ aspect-ratio:4/5; height:min(58vh, 560px); width:auto; }
.dbig{ margin-bottom:clamp(14px,2.4vh,26px); gap:6px; }
.dbig-t{ font-size:clamp(36px,4vw,64px); }
.moments li{ padding:13px 0; }
.mo-n{ font-size:clamp(19px,1.5vw,24px); }
.mo-ask{ display:none; flex-direction:column; gap:10px; padding-top:8px; }
.moments li.is-on .mo-ask{ display:flex; }
.mo-q{ display:inline-flex; align-items:center; gap:10px; font-size:14.5px; color:var(--cacao); }
.mo-q .dot{ width:8px; height:8px; color:var(--clay); animation-play-state:paused; }
.is-wait .moments li.is-on .mo-q .dot{ animation-play-state:running; }
.moments li.is-picked .mo-q .dot{ display:none; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ display:inline-flex; align-items:center; gap:9px; border:1px solid var(--cacao); padding:9px 14px; font-size:14.5px; line-height:1.2; transition:background .25s, color .25s; }
.chip .m{ width:11px; height:11px; color:var(--clay); }
.chip[data-c="olive"] .m{ color:var(--olive); } .chip[data-c="mist"] .m{ color:var(--dust); } .chip[data-c="cacao"] .m{ color:var(--cacao); } .chip[data-c="ink"] .m{ color:var(--ink); }
.chip:hover{ background:var(--linen); }
.chip[aria-pressed="true"]{ background:var(--cacao); color:var(--bone); }
.chip[aria-pressed="true"] .m{ color:var(--bone) !important; }
.mo-go{ align-self:flex-start; font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; border-bottom:1px solid currentColor; padding:4px 0; }
.mo-go[hidden]{ display:none; }
.moments li.is-picked .mo-w{ opacity:1 !important; }
.moments li.is-picked .mo-w::after{ content:" ✓"; }
.dmenu{ margin-top:18px; }
.dsum{ display:block; }
.dsum[hidden]{ display:none; }
.dsum-card{ max-width:860px; border-top:1px solid var(--cacao); padding-top:22px; }
.dsum-t{ font-family:var(--serif); font-weight:300; font-size:clamp(32px,3.4vw,54px); line-height:1; margin:8px 0 18px; }
.dsum-t b{ font-weight:600; }
.dsum-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(20px,3vw,48px); }
.dsum-list li{ display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:12px; align-items:baseline; padding:10px 0; border-bottom:1px solid var(--line); font-size:15px; }
.dsum-list li .lab{ font-size:9.5px; color:var(--sage); }
.ds-n{ font-family:var(--serif); font-size:17px; }
.ds-ws{ display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 12px; text-align:right; }
.ds-w{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--clay); }
.ds-w .m{ width:10px; height:10px; }
.is-choice .ds-w{ color:var(--cacao); font-weight:600; }
.ds-open{ color:var(--dust) !important; font-weight:400 !important; font-style:italic; }
.dsum-act{ display:flex; align-items:center; gap:24px; margin-top:24px; flex-wrap:wrap; }
.dsum-again{ font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; border-bottom:1px solid currentColor; padding:4px 0; }
.dsum-note{ font-size:14px; opacity:.75; margin-top:14px; }

/* 06 · Celeste: ambos párrafos a la izquierda, el 13 en tarjetita */
.planner{ padding-top:clamp(44px,7vh,76px); padding-bottom:clamp(50px,8vh,90px); }
.planner-top{ margin-bottom:clamp(20px,3.4vh,36px); }
.planner-l{ text-align:left; display:flex; flex-direction:column; gap:18px; }
.tile-one{ align-self:flex-start; background:var(--bone); }
.planner-grid{ grid-template-columns:minmax(0,1fr) minmax(200px,250px) minmax(0,1fr); align-items:start; }
.planner-r{ padding-top:clamp(0px,1vh,8px); }
.planner-foot{ margin-top:clamp(24px,4vh,40px); }
.planner-q{ font-size:clamp(22px,2vw,30px); }

/* 07 · dos contratos: la polaroid más chica, todo en una pantalla */
.pgrid{ grid-template-columns:auto minmax(0,1fr); padding-bottom:clamp(50px,8vh,90px); }
.pshot{ width:clamp(220px, calc((100vh - 360px) * .72), 330px); top:100px; }
.plist .pstep{ padding:11px 0; font-size:15.5px; grid-template-columns:42px 1fr; }
.plist .pstep .num{ font-size:clamp(20px,1.6vw,26px); }

/* 08 · qué incluye: seis tarjetas, más bajitas */
.flip-in{ aspect-ratio:16/9; }
.pix{ width:clamp(56px,5vw,80px); }
.flip-front{ gap:16px; }
.flips{ padding-bottom:clamp(60px,9vh,100px); }

@media (max-width:1100px){
  .ven-top{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .ven-top .spread{ grid-column:1 / -1; grid-row:2; margin-top:20px; }
  .ven-r{ grid-row:1; grid-column:2; }
  .ven-top{ --cw:min(300px, 40vw, calc((100vh - 430px) * .8)); }
  .tiles{ grid-template-columns:1fr 1fr; }
  .dsum-list{ grid-template-columns:1fr; }
}
@media (max-width:900px){
  .head-s{ grid-template-columns:1fr; gap:8px; }
  .head-s .h2s{ white-space:normal; }
  .wall-head .filters{ justify-content:flex-start; }
  .ven-top{ grid-template-columns:1fr; --cw:min(300px,64vw); padding-top:56px; gap:10px; }
  .ven-r{ grid-column:1; grid-row:2; }
  .ven-top .spread{ grid-row:3; }
  .dtabs{ grid-template-columns:repeat(5,minmax(0,1fr)); }
  .dpanel{ grid-template-columns:1fr; gap:20px; }
  .dshow{ width:100%; height:auto; aspect-ratio:4/5; max-height:62vh; }
  .planner-grid{ grid-template-columns:1fr; }
  .tile-one{ align-self:flex-start; }
  .pgrid{ grid-template-columns:1fr; }
  .pshot{ width:min(280px,72vw); }
  .flip-in{ aspect-ratio:16/9; }
  .flips{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .tiles{ gap:8px; }
  .tile{ flex-direction:column; align-items:flex-start; gap:6px; padding:12px 14px; }
  .tile-one{ flex-direction:row; align-items:center; }
  .flips{ grid-template-columns:1fr; }
  .dsum-list li{ grid-template-columns:44px minmax(0,1fr); }
  .ds-ws{ grid-column:2; justify-content:flex-start; text-align:left; }
}
/* v5 · ajustes */
.stays{ margin:0 calc(var(--pad) + var(--rail)) 0 var(--pad); padding:0; }
.wall-head{ grid-template-columns:1fr; gap:18px; align-items:start; }
.wall-head .filters{ justify-content:flex-start; }
@media (max-width:900px){ .stays{ margin:0 var(--pad); } }
/* resumen agrupado por día */
.dsum-card{ max-width:none; }
.dsum-list{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(16px,2.4vw,36px); }
.dsum-list > li.ds-day{ display:block; padding:0; border:0; font-size:inherit; }
.ds-day > .lab{ display:block; padding-bottom:10px; border-bottom:1px solid var(--cacao); color:var(--olive); font-size:10px; }
.ds-day ul li{ display:flex; flex-direction:column; gap:4px; padding:11px 0; border-bottom:1px solid var(--line); }
.ds-day .ds-ws{ justify-content:flex-start; text-align:left; }
.ds-day .is-choice{ background:linear-gradient(var(--linen),var(--linen)) no-repeat 0 0 / 3px 100%; padding-left:12px; }
@media (max-width:1100px){ .dsum-list{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .dsum-list{ grid-template-columns:1fr; } .dsum-list li{ grid-template-columns:none; } }
@media (max-width:900px){ .pshot{ top:auto; } .flip-in{ aspect-ratio:16/8; } }
/* v5.1 · venues con más aire y cartas más grandes */
.ven-top{ --cw:min(350px, 26vw, calc((100vh - 390px) * .82)); grid-template-columns:minmax(170px,.8fr) minmax(0,2.8fr) minmax(170px,.8fr); gap:clamp(24px,3vw,48px); }
.ven-top .spread{ height:calc(var(--cw) * 1.25 + 64px); }
.vnames{ padding-top:clamp(22px,3.4vh,36px); gap:clamp(18px,2.8vw,44px); }
.vinfo{ padding-top:clamp(30px,4.6vh,48px); }
.vpanel{ padding-top:24px; }
@media (max-width:1100px){ .ven-top{ --cw:min(320px, 40vw, calc((100vh - 390px) * .82)); } }
@media (max-width:900px){ .ven-top{ --cw:min(300px,64vw); } }
/* v5.2 · día por día solo con clics */
.mo-ask{ display:flex; }
.moments li:not(.is-on) .mo-ask{ opacity:.8; }
.mo-q .dot{ animation:none; }
.dtab-bar b{ transition:transform .5s var(--ease); }
.dnext{ align-self:flex-start; display:inline-flex; align-items:baseline; gap:12px; margin-top:22px; padding:12px 18px; border:1px solid var(--cacao); transition:background .3s, color .3s; }
.dnext .lab{ color:inherit; }
.dnext-t{ font-family:var(--serif); font-size:18px; }
.dnext:hover{ background:var(--cacao); color:var(--bone); }
.dtext .dmenu + .dnext, .dnext + .dmenu{ margin-top:12px; }
/* v6 · hospedaje */
.tiles-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.stay-link{ display:inline-flex; align-items:baseline; gap:10px; margin-top:22px; padding:10px 16px; border:1px solid var(--cacao); font-size:15px; transition:background .3s, color .3s; }
.stay-link .lab{ color:inherit; font-size:10px; }
.stay-link:hover{ background:var(--cacao); color:var(--bone); }
@media (max-width:560px){ .tiles-3{ grid-template-columns:1fr; } .tiles-3 .tile{ flex-direction:row; align-items:center; } }
.vlink{ margin:0 0 0 28px; vertical-align:middle; }
.card.is-top{ cursor:zoom-in; }
@media (max-width:560px){ .vlink{ margin:16px 0 0; } }

/* =====================================================================
   v6 · notas de la junta (28-oct)
   ===================================================================== */
/* la foto de las palmeras, completa */
.aisle-full{ height:auto; aspect-ratio:3/2; max-height:none; }
.aisle-full > img{ object-position:50% 100%; }

/* 05 · la isla: el acordeón de los sitios de las casas */
.island{ background:var(--linen); padding-bottom:clamp(60px,9vh,100px); }
.acc{ display:flex; height:clamp(380px,62vh,620px); margin:0 calc(var(--pad) + var(--rail)) 0 var(--pad); }
.acc-card{ position:relative; flex:1; overflow:hidden; cursor:pointer; min-width:0; background:var(--bone); transition:flex .65s cubic-bezier(.65,0,.25,1); }
.acc-card + .acc-card{ margin-left:4px; }
.acc-card.is-open{ flex:6; }
.acc-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.acc-card:hover img{ transform:scale(1.04); }
.acc-tab{ position:absolute; left:0; bottom:0; z-index:2; display:flex; flex-direction:column; align-items:center; gap:12px; padding:14px 10px 16px; background:#fff; color:var(--cacao); transition:opacity .3s; }
.acc-cell{ width:10px; height:10px; background:var(--dust); display:block; }
.acc-num{ font-family:var(--serif); font-style:italic; font-size:15px; }
.acc-min{ writing-mode:vertical-rl; transform:rotate(180deg); font-family:var(--sans); font-weight:600; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; }
.acc-card.is-open .acc-tab{ opacity:0; pointer-events:none; }
.acc-info{ position:absolute; left:0; bottom:0; z-index:2; display:flex; flex-direction:column; gap:6px; background:var(--bone); color:var(--cacao); padding:18px 26px 20px; max-width:min(420px,88%); opacity:0; transform:translateY(14px); transition:opacity .4s .25s, transform .5s .25s var(--ease); }
.acc-card.is-open .acc-info{ opacity:1; transform:none; }
.acc-info strong{ font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.1vw,32px); line-height:1.05; }
.acc-info em{ font-style:normal; font-size:14.5px; }
.island-cta, .wellness-cta{ display:flex; justify-content:center; padding-top:clamp(24px,4vh,40px); }

/* 06 · los menús, ahora sección propia */
.weekend .menus{ margin-top:0; border-top:0; padding-top:clamp(44px,7vh,76px); }

/* 07 · Celeste sin pie de Instagram */
.planner-foot{ gap:0; }

/* 09 · qué incluye: fotos que giran */
.flip-photo{ padding:0 !important; justify-content:flex-end !important; align-items:stretch !important; overflow:hidden; }
.flip-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.flip-in:hover .flip-photo img{ transform:scale(1.05); }
.flip-tag{ position:relative; z-index:2; align-self:flex-start; margin:0 0 16px 16px; background:var(--fb); color:var(--ff) !important; opacity:1 !important; padding:9px 13px; }
.flip-photo::after{ z-index:2; border-color:var(--bone) !important; opacity:.9 !important; }
.flip-in{ aspect-ratio:4/3; }

@media (max-width:900px){
  .acc{ flex-direction:column; height:auto; margin:0 var(--pad); }
  .acc-card{ height:58px; flex:none; transition:height .55s cubic-bezier(.65,0,.25,1); }
  .acc-card + .acc-card{ margin-left:0; margin-top:4px; }
  .acc-card.is-open{ height:56vh; flex:none; }
  .acc-tab{ flex-direction:row; padding:10px 16px; align-items:center; gap:14px; }
  .acc-min{ writing-mode:horizontal-tb; transform:none; }
  .flip-in{ aspect-ratio:16/10; }
}
@media (min-width:901px){ .flips .flip-in{ aspect-ratio:16/10; } }

/* v7 · video de la boda de Casa del Jaguar en cortes */
.vbreak{ height:clamp(380px,72vh,760px); background:var(--cacao); }
.vbreak video, .sp-vid video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.sp-vid{ display:block; aspect-ratio:16/10 !important; background:var(--linen); }
.contact video.contact-bg{ width:100%; height:100%; object-fit:cover; }
/* v7.1 · los videos sin recorte: ancho completo y 16:9 (el formato original) */
.vbreak{ height:auto !important; aspect-ratio:16/9; max-height:none; }
.vbreak video{ object-fit:contain; }
.sp-vid{ aspect-ratio:16/9 !important; }
.sp-vid video{ object-fit:contain; background:#000; }
/* formulario: campo trampa para robots y estado enviado */
.cform-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; opacity:0; }
.cform{ position:relative; }
.cform .btn:disabled{ opacity:.6; cursor:default; }
.cform.is-sent .cform-note{ color:var(--olive); font-weight:600; }

/* once pastillas en el riel: en pantallas muy angostas se encogen en vez de cortarse */
@media (max-width:360px){
  .rail{ gap:1px; }
  .st{ min-width:26px !important; max-width:26px !important; }
  .st-m{ width:26px; }
}

/* ---------- 07 · BIENESTAR · el bloque wellness de Casa del Jaguar ----------
   Traído tal cual de su hoja de estilos. Dos cambios obligados: .pilares-title
   lleva aquí su font-family (allá la heredaba de un h2 global que este sitio no
   tiene) y .w-media video se declara porque la regla global de este sitio solo
   cubre img, no video. */
.wellness{ position:relative; z-index:6; background:var(--bone); color:var(--cacao); }
.w-hold{ position:relative; height:155vh; }
.w-hero{ position:relative; height:100vh; height:100dvh; overflow:hidden; }
.w-hold > .w-hero{ position:sticky; top:0; }
.w-media{ position:absolute; inset:0; background:var(--bone); }
.w-media video{ display:block; width:100%; height:100%; object-fit:cover; }
.w-center{ position:absolute; inset:0; z-index:4; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 var(--pad); }

.vtag{ display:inline-flex; flex-direction:column; align-items:center; gap:7px; background:var(--cacao); color:var(--bone); padding:clamp(13px,1.7vh,19px) clamp(18px,2.2vw,32px); opacity:0; transform:translateY(8px); transition:opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1); pointer-events:none; }
.vtag.is-on{ opacity:1; transform:none; }
.vtag .vtag-k{ font-family:var(--sans); font-size:8.5px; letter-spacing:.26em; text-transform:uppercase; opacity:.7; }
.vtag .vtag-t{ font-family:var(--serif); font-weight:300; letter-spacing:-.004em; font-size:clamp(19px,2.05vw,31px); line-height:1.08; text-align:center; }
.vtag .vtag-t b{ font-weight:700; }
.vtag .vtag-s{ font-family:var(--serif); font-style:italic; font-size:clamp(11px,.88vw,13px); opacity:.88; text-align:center; }
.wellness .vtag{ background:none; padding:0; text-shadow:0 1px 26px rgba(20,9,4,.55), 0 1px 3px rgba(20,9,4,.35); }
.wellness .vtag .vtag-k{ opacity:.85; }

.pilares{ padding:calc(var(--pad) * 1.2) var(--pad) calc(var(--pad) * 1.3); background:var(--bone); }
.pilares-head{ margin-bottom:calc(var(--pad) * .3); }
.pilares-title{ font-family:var(--serif); font-size:clamp(25px,3.3vw,50px); font-weight:300; letter-spacing:-.006em; line-height:1; margin-top:8px; }
.pilares-proof{ margin-top:calc(var(--pad) * .6); font-family:var(--serif); font-style:italic; font-size:clamp(17px,1.8vw,24px); color:var(--cacao); text-align:center; }
.sv-acc{ height:clamp(400px,69vh,682px); }

.link-arrow{ display:inline-block; font-family:var(--serif); font-style:italic; font-size:15px; border-bottom:1px solid currentColor; padding-bottom:2px; background:linear-gradient(currentColor,currentColor) no-repeat left bottom / 0% 1px; transition:background-size .4s cubic-bezier(.76,0,.24,1); }
.link-arrow:hover{ background-size:100% 1px; }

.pil-card{ text-decoration:none; color:inherit; }
.pil-card::after{ content:none !important; }
.pil-card .acc-tab{ gap:8px; padding:9px 7px 11px; }
.pil-card .acc-cell{ width:7px; height:7px; }
.pil-card .acc-min{ font-size:9.5px; letter-spacing:.06em; }
.pil-card .acc-info{ max-width:min(420px,92%); padding:18px 24px 20px; }
.pil-card .pil-kick{ font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--clay); }
.pil-card .acc-info em:not(.pil-kick){ font-size:14px; line-height:1.55; }
.pil-card .link-arrow{ margin-top:6px; font-size:12.5px; }

@media (max-width:900px){
  /* el acordeón general ya se vuelve vertical aquí; .sv-acc debe soltar su alto fija */
  .sv-acc{ height:auto; flex-direction:column; }
}
@media (max-width:560px){
  .vtag{ padding:12px 16px; }
  .vtag .vtag-t{ font-size:clamp(17px,5vw,23px); }
}
@media (prefers-reduced-motion:reduce){
  /* equivale al .no-anim de Casa del Jaguar: sin desplazamiento fijo ni entrada del rótulo */
  .vtag{ opacity:1; transform:none; }
  .w-hold{ height:auto; }
  .w-hold > .w-hero{ position:relative; }
}
