/* A single stage: the estate, the lifted hotel and its story share this frame. */
.map-viewport,.map-viewport:active{cursor:default;touch-action:pan-y}
.map-camera,.map-plane{transition:none}
.map-plane{top:48%;transform-origin:50% 50%}
.map-plane>img{filter:saturate(.92)}
.map-intro{top:118px}.map-intro h1{font-size:clamp(1.4rem,2.2vw,2rem)}
.map-wash{background:linear-gradient(0deg,#f7f5ecbb,transparent 19%,transparent 83%,#f7f5ec22)}
/* Compact markers expand out from their number without shifting their anchor. */
.place-label{min-width:44px;min-height:44px;padding:0 13px;gap:0;justify-content:flex-start;border-radius:50px;overflow:hidden;transition:background .25s,box-shadow .25s,color .25s;padding-block:0}
.place-label .place-number{display:block;font-size:12px;opacity:1;line-height:44px;flex:none}
.place-label .place-name,.place-label .label-plus{display:block;max-width:0;opacity:0;overflow:hidden;white-space:nowrap;transition:max-width .5s var(--ease),opacity .25s,padding .45s var(--ease);padding:0;font-size:14px}
.place-label .label-plus{font-size:18px}
.place-label:is(:hover,:focus-visible) .place-name{max-width:130px;opacity:1;padding-left:11px}
.place-label:is(:hover,:focus-visible) .label-plus{max-width:35px;opacity:1;padding-left:13px}
.place-label::after{display:none}.hotel-label{left:80%;top:50%}.pool-label{left:96.4%;top:62%}
.explore-dock{left:50%;right:auto;bottom:35px;transform:translateX(-50%);min-height:0;width:max-content;max-width:calc(100% - 40px);padding:7px;border-radius:50px;background:#faf9f2ef;box-shadow:0 10px 32px #203d3112}
.dock-caption{display:none!important}.dock-places{display:flex;justify-content:center;gap:4px;padding:0}
.dock-places button{flex-direction:row;align-items:center;gap:0;min-width:46px;min-height:46px;padding:0 14px;border-radius:50px;overflow:hidden;white-space:nowrap;font-size:14px;transition:background .25s}
.dock-places button:hover{border-radius:50px}.dock-places button::after{display:none}
.dock-places button .dock-number{opacity:.8;font-size:12px;flex:none}
.dock-places button .dock-name{font-size:14px;opacity:0;max-width:0;overflow:hidden;transition:max-width .45s var(--ease),opacity .25s,padding .45s var(--ease)}
.dock-places button:is(:hover,:focus-visible) .dock-name{max-width:120px;opacity:1;padding-left:10px}
.map-actions{bottom:108px;right:27px;left:auto}.map-footer{bottom:12px;font-size:12px;pointer-events:none}.map-footer>span:last-child{display:none}
/* A fixed clear center keeps every building visible; only the outer atmosphere moves.
   Oversized single textures never tile across a visible seam. Each drift returns
   with a zero-velocity endpoint; the three unequal periods avoid a shared reset. */
.estate-fog{inset:0;z-index:5;overflow:hidden;pointer-events:none;opacity:1;transition:opacity .6s;mask-image:linear-gradient(to right,#000 0%,#0009 3%,transparent 5%,transparent 95%,#0009 97%,#000 100%),linear-gradient(to bottom,#000 0%,#0009 4%,transparent 14%,transparent 86%,#0009 96%,#000 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#0009 3%,transparent 5%,transparent 95%,#0009 97%,#000 100%),linear-gradient(to bottom,#000 0%,#0009 4%,transparent 14%,transparent 86%,#0009 96%,#000 100%)}
.fog-veil{inset:-35%;mask-image:none;-webkit-mask-image:none;background-image:url('assets/mist-texture.webp');background-repeat:no-repeat;background-size:100% 100%;filter:blur(5px);transform-origin:center;will-change:transform}
.fog-veil-back{opacity:.87;animation:mist-back 117s ease-in-out infinite;background-color:#f9f9f52b}
.fog-veil-front{inset:-42%;opacity:.8;filter:blur(9px);animation:mist-front 151s ease-in-out infinite}
.fog-veil-near{inset:-50%;opacity:.47;filter:blur(2px);animation:mist-near 89s ease-in-out infinite}
@keyframes mist-back{0%,100%{transform:translate(-5%,1%) scale(1.02)}25%{transform:translate(4%,-3%) scale(1.08)}50%{transform:translate(7%,2%) scale(1.03)}75%{transform:translate(-1%,5%) scale(1.07)}}
@keyframes mist-front{0%,100%{transform:translate(7%,-4%) rotate(7deg) scale(1.12)}35%{transform:translate(-4%,3%) rotate(3deg) scale(1.02)}70%{transform:translate(-7%,-2%) rotate(5deg) scale(1.08)}}
@keyframes mist-near{0%,100%{transform:translate(-3%,4%) rotate(-11deg)}50%{transform:translate(6%,-3%) rotate(-7deg) scale(1.08)}}
body[data-map-view=real] .estate-fog{opacity:.75}
body[data-mode=hotel] .estate-fog{opacity:calc(1 - var(--flight-progress,0) * .62)}
.cursor-bubble{color:var(--paper)}.cursor-label{color:#f7f5ec;font-size:14px;z-index:2;line-height:1.2}
.map-cursor[data-kind=fog] .cursor-bubble{width:190px;height:46px;background:#203d31;border:1px solid #eff5e4}
.map-cursor[data-kind=fog] .cursor-label{display:block;visibility:visible;opacity:1;color:#f7f5ec}
/* The facade is a watercolor cutout rooted to the projected roof position. */
.hotel-lift{position:absolute;left:50%;top:50%;width:0;z-index:3;opacity:0;pointer-events:none;transform-origin:50% 100%;will-change:transform,opacity;backface-visibility:hidden}
.hotel-lift img{display:block;width:100%;height:auto;pointer-events:none;user-select:none;filter:drop-shadow(0 12px 12px #263e261c)}
.hotel-journey{position:absolute;inset:0;z-index:9;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:none;outline:none;scroll-behavior:auto;overflow-anchor:none}
.hotel-journey::-webkit-scrollbar{display:none}.hotel-journey[hidden],.hotel-journey-ui[hidden]{display:none}
.hotel-runway{height:calc(var(--widget-height) * 2.12);pointer-events:none}
.hotel-journey-ui{position:absolute;inset:0;z-index:12;pointer-events:none}
.hotel-back{position:absolute;top:115px;left:29px;display:flex;gap:12px;align-items:center;pointer-events:auto;border-radius:30px;padding:11px 17px;background:#faf9f2ee;font-size:14px;border:1px solid #ffffffa6;box-shadow:0 4px 20px #203d3108}
.hotel-back span{font-size:20px}.hotel-back:hover{background:var(--ink);color:var(--paper)}
.hotel-arrival-heading{position:absolute;top:148px;left:50%;transform:translateX(-50%);text-align:center;opacity:0;white-space:nowrap}
.hotel-arrival-heading .eyebrow{font-size:12px;letter-spacing:.17em}.hotel-arrival-heading h2{font-family:EstateSerif,Georgia,serif;font-weight:400;font-size:clamp(2.1rem,4vw,3.6rem);letter-spacing:-.06em;margin-top:8px}
.hotel-scroll-down{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:18px;font-size:14px;pointer-events:auto;opacity:0;padding:12px 17px;border-radius:30px;background:#f7f5ecdc}
.hotel-scroll-down span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-size:18px;animation:scroll-invite 3.4s ease-in-out infinite}
@keyframes scroll-invite{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}
.journey-progress{position:absolute;right:29px;top:126px;bottom:55px;width:1px;background:#203d3117}.journey-progress span{display:block;background:var(--ink);width:1px;height:100%;transform-origin:top;transform:scaleY(var(--journey-progress,0))}
.hotel-details{position:relative;z-index:2;min-height:100%;padding:75px max(35px,calc((100% - 1000px) / 2)) 55px;background:var(--paper);border-radius:40px 40px 0 0;box-shadow:0 -20px 60px #203d3105}
.hotel-details::before{content:'';position:absolute;left:calc(50% - 24px);top:19px;width:48px;height:3px;border-radius:5px;background:#203d3122}
.hotel-details-heading{max-width:680px;margin:auto;text-align:center}.hotel-details h2{font-family:EstateSerif,Georgia,serif;font-size:clamp(2.5rem,4.7vw,4.6rem);font-weight:400;line-height:1.08;letter-spacing:-.06em;margin:20px 0 25px}
.hotel-details p{font-size:16px;line-height:1.85;color:#506153}.hotel-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:44px 0;margin-top:40px;border-block:1px solid var(--line)}
.detail-index{font-size:12px;letter-spacing:.12em;color:var(--moss)}.hotel-details h3{font-family:EstateSerif,Georgia,serif;font-size:1.7rem;line-height:1.2;font-weight:400;margin:17px 0}
.hotel-watercolor-story{margin:45px -20px 0}.hotel-watercolor-story img{width:100%;display:block;mix-blend-mode:multiply}.hotel-watercolor-story figcaption{text-align:center;font-family:EstateSerif,Georgia,serif;font-size:1.1rem;padding:17px 0}
.hotel-story-return{display:block;margin:35px auto 0;padding:14px 22px;border:1px solid var(--line);border-radius:30px;font-size:14px}.hotel-story-return:hover{background:var(--ink);color:var(--paper)}
body[data-mode=hotel] .map-intro,body[data-mode=hotel] .map-labels,body[data-mode=hotel] .map-actions,body[data-mode=hotel] .explore-dock,body[data-mode=hotel] .map-footer{opacity:0;pointer-events:none;transition:opacity .35s}
body[data-mode=hotel] .map-wash{opacity:0;transition:opacity .6s}.map-labels,.map-actions,.explore-dock,.map-footer{transition:opacity .35s}
@media(max-width:700px){
 .map-plane{left:50%;top:48%}.map-intro{top:102px;left:23px}.map-intro h1{font-size:1.5rem}
 .explore-dock{bottom:43px;min-height:0;max-width:calc(100% - 20px);padding:5px}.dock-places{gap:0}.dock-places button{min-width:42px;min-height:46px;padding:0 12px}.dock-places button:is(:hover,:focus-visible) .dock-name{max-width:90px}
 .map-actions{bottom:112px;right:15px;left:auto}.map-footer{bottom:18px;font-size:12px}
 .hotel-back{top:95px;left:16px;padding:9px 14px}.hotel-arrival-heading{top:164px}.hotel-arrival-heading h2{font-size:2.8rem}.hotel-arrival-heading .eyebrow{font-size:12px}
 .hotel-scroll-down{bottom:35px;font-size:14px;white-space:nowrap}.journey-progress{right:16px;top:109px;bottom:45px}
 .hotel-details{padding:65px 25px 40px;border-radius:28px 28px 0 0}.hotel-details-heading{text-align:left}.hotel-details h2{font-size:2.8rem}.hotel-details-grid{grid-template-columns:1fr;gap:32px;padding:30px 0}.hotel-watercolor-story{margin:30px -15px 0}
}
@media(hover:none),(pointer:coarse){.dock-places button .dock-name{max-width:100px;opacity:1;padding-left:6px;font-size:13px}.dock-places button .dock-number{display:none}.explore-dock{border-radius:18px;width:calc(100% - 30px)}.dock-places{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.dock-places button{justify-content:center;min-width:0}.map-actions{bottom:164px}}
@media(max-height:660px) and (min-width:701px){.hotel-arrival-heading{top:108px}.hotel-arrival-heading h2{font-size:2.2rem}.hotel-back{top:100px}.hotel-scroll-down{bottom:20px}.map-actions{bottom:108px}}
@media(prefers-reduced-motion:reduce){.fog-veil,.hotel-scroll-down span{animation:none!important}.hotel-lift{will-change:auto}.map-camera{transform:none}.cursor-label{transition:none}}

.hotel-scroll-down:disabled{pointer-events:none}

/* Registered watercolor scenery: distant trees, meadow, architecture and garden. */
.hotel-depth-layer{position:absolute;left:50%;top:50%;width:0;aspect-ratio:1296/774;opacity:0;pointer-events:none;transform-origin:50% 85%;will-change:transform,opacity;backface-visibility:hidden}
.hotel-depth-layer>img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none}
.hotel-depth-forest{z-index:1;filter:saturate(.84)}
.hotel-depth-ground{z-index:2}
.hotel-depth-garden{z-index:4}
.hotel-depth-garden-left{clip-path:inset(0 52% 0 0)}
.hotel-depth-garden-right{clip-path:inset(0 0 0 48%)}
.hotel-lift img{filter:drop-shadow(0 8px 7px #263e2615)}
body[data-mode=hotel] .hotel-arrival-heading{text-shadow:0 1px 12px var(--paper),0 0 25px var(--paper)}
@media(prefers-reduced-motion:reduce){.hotel-depth-layer{will-change:auto}}

.hotel-depth-forest>img{mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}
.hotel-depth-ground>img{mask-image:linear-gradient(to bottom,#000 90%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 90%,transparent)}
body[data-mode=hotel] .hotel-arrival-heading{top:124px;padding:10px 24px 13px;border-radius:16px;background:#f7f5ece6;backdrop-filter:blur(8px);text-shadow:none;box-shadow:0 4px 24px #203d3108}
body[data-mode=hotel] .hotel-arrival-heading h2{font-size:clamp(2rem,3.3vw,3rem)}
@media(max-width:700px){body[data-mode=hotel] .hotel-arrival-heading{top:157px;padding:10px 22px}}
@media(max-height:660px) and (min-width:701px){body[data-mode=hotel] .hotel-arrival-heading{top:100px;padding:7px 20px}body[data-mode=hotel] .hotel-arrival-heading h2{font-size:2rem}}

/* Wider aerial registration supplied by the owner. */
.map-plane{aspect-ratio:2048/1236;top:50%;left:50%}
.hotel-label{left:68.5%;top:43%}.pool-label{left:76.6%;top:46.5%}
.place-label{transform:translate(-50%,-50%) scale(var(--marker-scale,1));transform-origin:50% 50%}
.map-intro{padding:13px 18px 15px;background:#f7f5ece3;border:1px solid #ffffff77;border-radius:13px;backdrop-filter:blur(8px);top:117px;left:29px}
.map-intro h1{font-size:clamp(1.3rem,1.8vw,1.8rem)}
.estate-fog{mask-image:linear-gradient(to right,#000 0%,#000d 4%,transparent 14%,transparent 86%,#000d 96%,#000 100%),linear-gradient(to bottom,#000 0%,#000e 7%,transparent 23%,transparent 78%,#000d 95%,#000 100%);-webkit-mask-image:linear-gradient(to right,#000 0%,#000d 4%,transparent 14%,transparent 86%,#000d 96%,#000 100%),linear-gradient(to bottom,#000 0%,#000e 7%,transparent 23%,transparent 78%,#000d 95%,#000 100%)}
.estate-fog .fog-veil-back{opacity:1;background-color:#f9faf650}
.estate-fog .fog-veil-front{opacity:1}.estate-fog .fog-veil-near{opacity:.8}
.forest-fog{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;mask-image:url('assets/forest-fog-mask.svg');-webkit-mask-image:url('assets/forest-fog-mask.svg');mask-size:100% 100%;-webkit-mask-size:100% 100%;opacity:.74;transition:opacity .7s}
.forest-mist-back{opacity:.7;animation:mist-back 137s ease-in-out infinite;filter:blur(4px);background-color:#f5f7ef0a}
.forest-mist-front{opacity:.61;animation:mist-front 173s ease-in-out infinite;filter:blur(6px)}
body[data-map-view=real] .forest-fog{opacity:.40}
body[data-mode=hotel] .forest-fog{opacity:calc(.74 - var(--flight-progress,0) * .65)}
body[data-mode=place] .forest-fog{opacity:0}
@media(max-width:700px){.map-plane{top:50%;left:50%}.map-intro{top:101px;left:17px;padding:11px 14px}.map-intro h1{font-size:1.35rem}.forest-fog{opacity:.64}}

/* Shared rooms: a quiet, manually browsed photographic strip. */
.hotel-commons{margin:58px 0 25px;min-width:0}
.hotel-commons-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:25px}
.hotel-details .hotel-commons-heading h3{font-size:clamp(1.9rem,3vw,2.7rem);margin:12px 0 0;letter-spacing:-.035em}
.hotel-commons-controls{display:flex;align-items:center;gap:14px;flex-shrink:0}
.hotel-commons-controls button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:22px;transition:background .2s,color .2s}
.hotel-commons-controls button:hover:not(:disabled){background:var(--ink);color:var(--paper)}
.hotel-commons-controls button:disabled{opacity:.3;cursor:default}
.hotel-commons-controls span{font-size:12px;letter-spacing:.08em;font-variant-numeric:tabular-nums;min-width:52px;text-align:center}
.hotel-commons-track{position:relative;display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#203d3150 transparent;padding:0 0 17px;}
.hotel-common-slide{margin:0;flex:0 0 min(400px,82%);min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.hotel-common-slide img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:contain;background:#e6e5d9;border-radius:13px;user-select:none}
.hotel-common-slide figcaption{display:flex;align-items:baseline;gap:12px;margin-top:16px;font-family:EstateSerif,Georgia,serif;font-size:1.25rem}
.hotel-common-slide figcaption span{font-family:inherit;font-size:12px;color:#65745d}
.hotel-commons-track:focus-visible{outline:2px solid var(--ink);outline-offset:6px;border-radius:13px}
.hotel-story-footer{margin-top:65px;border-top:1px solid var(--line)}
.hotel-story-footer .hotel-watercolor-story{margin:25px -20px -20px}
.hotel-story-footer .hotel-watercolor-story figcaption{padding:18px 10px 0}
@media(max-width:700px){.hotel-commons{margin-top:38px}.hotel-commons-heading{align-items:flex-start;flex-direction:column;gap:20px}.hotel-commons-controls{align-self:flex-end;gap:12px}.hotel-commons-track{gap:14px}.hotel-common-slide{flex-basis:88%}.hotel-story-footer{margin-top:42px}.hotel-story-footer .hotel-watercolor-story{margin-inline:-15px}}
@media(prefers-reduced-motion:reduce){.hotel-commons-controls button{transition:none}}

.mobile-spaces-toggle{display:none}
@media(max-width:700px){
 body[data-mode=map] .map-intro,body[data-mode=map] .map-footer{display:none}
 .explore-dock{left:14px;right:auto;bottom:16px;transform:none;width:auto;max-width:none;min-height:0;padding:0;border:0;border-radius:24px;background:transparent;box-shadow:none;backdrop-filter:none;z-index:6}
 .mobile-spaces-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:11px 12px;border:1px solid #fff;border-radius:24px;background:var(--paper);box-shadow:0 4px 20px #203d3118;font-size:14px}
 .mobile-spaces-toggle span{font-size:20px;line-height:1;transition:transform .25s}
 .mobile-open .mobile-spaces-toggle span{transform:rotate(45deg)}
 .explore-dock .dock-places{display:none}
 .explore-dock.mobile-open .dock-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:absolute;left:0;bottom:56px;width:calc(100vw - 46px);max-width:640px;padding:9px;gap:4px;border:1px solid white;border-radius:17px;background:#faf9f2f7;box-shadow:0 8px 35px #203d3122}
 .explore-dock .dock-places button{min-height:48px;justify-content:center;padding:8px 4px}
 .explore-dock .dock-places button .dock-number{display:none}
 .explore-dock .dock-places button .dock-name{max-width:none;opacity:1;padding:0;font-size:14px}
 .estate .map-actions{left:auto;right:14px;bottom:16px;flex-direction:column;align-items:flex-end;gap:10px;z-index:5}
 .estate .discover-region{order:2;min-height:44px;font-size:13px;padding:11px 14px}
 .estate .view-switch{order:1;padding:3px;background:#f7f5eceb}
 .estate .view-switch button{min-height:38px;padding:8px 10px;font-size:12px}
 .estate:has(.mobile-open) .view-switch{visibility:hidden}
 .estate .map-wash{background:linear-gradient(0deg,#f7f5ec80,transparent 17%,transparent 83%,#f7f5ec40)}
}

/* Owner-located points: reveal a name only, without opening a place story. */
.estate-point:is(:hover,:focus-visible,[aria-pressed="true"]){z-index:5}
.estate-point:is(:hover,:focus-visible,[aria-pressed="true"]) .place-name{max-width:190px;opacity:1;padding-left:11px}

/* The house shares the continuous hotel stage, anchored to its own roof. */
.hotel-details[hidden]{display:none}
/* Full transparent watercolor scenery, with the facade kept clear at the center. */
[data-journey-place=casa] #hotel-forest{filter:saturate(.78);mask-image:linear-gradient(to bottom,transparent,#000 8%,#000 90%,transparent)}
[data-journey-place=casa] #hotel-ground{mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 85%,transparent)}
[data-journey-place=casa] #hotel-garden-left{clip-path:inset(0 52% 0 0)}
[data-journey-place=casa] #hotel-garden-right{clip-path:inset(0 0 0 48%)}

/* Reception: sky behind the architecture; two gently drifting cloud depths. */
.reception-clouds{position:absolute;z-index:2;pointer-events:none;opacity:0;aspect-ratio:2.5;will-change:transform,opacity;mask-image:radial-gradient(ellipse,#000 25%,transparent 72%)}
.reception-clouds>div{position:absolute;inset:-15%;background:url('assets/mist-texture.webp') center/100% 100% no-repeat;opacity:.7;animation:reception-cloud-drift 83s ease-in-out infinite}
.reception-clouds .reception-cloud-front{inset:-5% -20%;opacity:.6;animation-duration:117s;animation-direction:reverse}
@keyframes reception-cloud-drift{0%,100%{transform:translate(-7%,-2%) scale(1)}50%{transform:translate(7%,3%) scale(1.08)}}
[data-journey-place=comedor] #hotel-forest{filter:none;mask-image:radial-gradient(ellipse at 50% 45%,#000 28%,transparent 72%)}
[data-journey-place=comedor] #hotel-forest>img{mask-image:none;-webkit-mask-image:none}
[data-journey-place=comedor] .hotel-arrival-heading h2{font-size:clamp(1.6rem,2.8vw,2.7rem)}
.reception-details{background:#faf7ee}.reception-details .hotel-details-heading{max-width:740px}
.reception-hours{display:grid;grid-template-columns:repeat(3,1fr);margin:45px 0 65px;padding:25px 0;border-block:1px solid #ac874242;gap:20px}
.reception-hours>div,.reception-hours>a{display:flex;flex-direction:column;gap:9px}.reception-hours span{font-size:14px;color:#62725e}.reception-hours strong{font-size:clamp(17px,2vw,23px);font-weight:400}.reception-hours>a:hover strong{text-decoration:underline}
.reception-breakfast{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.reception-details .reception-breakfast h3,.reception-details .reception-dinner h3{font-size:clamp(2.5rem,4vw,3.8rem);letter-spacing:-.045em;margin:18px 0 25px}
.breakfast-menu{list-style:none;padding:0;margin:14px 0 0}.breakfast-menu li{padding:15px 0;border-bottom:1px solid var(--line)}.breakfast-menu strong{font-size:16px;font-weight:500}.breakfast-menu span{display:block;font-size:14px;color:#62725e;margin-top:6px;line-height:1.6}
.reception-breakfast figure{margin:0}.reception-breakfast img{width:100%;height:auto;display:block;border-radius:120px 120px 12px 12px}.reception-breakfast figcaption{font-family:EstateSerif,Georgia,serif;font-size:18px;line-height:1.5;margin-top:18px;text-align:center}
.reception-dinner{margin:65px 0 0;padding:45px;background:#e9e5d4;border-radius:20px;border-left:3px solid #b29659}.reception-dinner p{max-width:640px}.reception-dinner .reception-dinner-note{margin-top:20px;font-family:EstateSerif,Georgia,serif;font-size:23px;color:var(--ink)}
.reception-services{margin-top:50px}.reception-contact{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:30px 0}.reception-contact a{padding:16px 20px;border-radius:30px;background:var(--ink);color:var(--paper);font-size:15px;white-space:nowrap}.reception-footer .hotel-watercolor-story{max-width:690px;margin-inline:auto}
@media(max-width:700px){.reception-hours{grid-template-columns:1fr 1fr;gap:24px;margin:32px 0 40px}.reception-hours>a{grid-column:1/-1}.reception-breakfast{grid-template-columns:1fr;gap:32px}.reception-breakfast figure{max-width:420px}.reception-dinner{padding:28px;margin-top:40px}.reception-contact{flex-direction:column;align-items:flex-start}.reception-details .reception-breakfast h3,.reception-details .reception-dinner h3{font-size:2.7rem}[data-journey-place=comedor] .hotel-arrival-heading{max-width:calc(100% - 35px);white-space:normal}}
@media(prefers-reduced-motion:reduce){.reception-clouds>div{animation:none}}
.reception-label:is(:hover,:focus-visible) .place-name{max-width:190px}

/* A complete watercolor vignette closes reception's story. */
.reception-footer .hotel-watercolor-story{max-width:900px}
.reception-footer-scene{position:relative;isolation:isolate;aspect-ratio:1.45;overflow:hidden;mask-image:radial-gradient(ellipse at 50% 49%,#000 48%,transparent 77%)}
.reception-footer-scene img{position:absolute;display:block;height:auto;mix-blend-mode:normal;pointer-events:none}
.reception-footer-scene .footer-sky{inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.85}
.reception-footer-scene .footer-meadow{width:100%;left:0;bottom:0;z-index:1}
.reception-footer-scene .footer-building{width:80%;left:10%;top:7%;z-index:2}
.reception-footer-scene .footer-plants{width:100%;left:0;bottom:-10%;z-index:3}

.farm-visit{margin:45px 0;padding:35px 40px;border-radius:20px;background:#e5ead7;border:1px solid #cdd7b5}.hotel-details .farm-visit h3{font-size:clamp(2rem,3vw,2.8rem);margin:15px 0 20px}.farm-visit p{max-width:650px}.farm-visit button{margin-top:24px;display:flex;align-items:center;gap:24px;border-radius:28px;padding:14px 20px;background:var(--ink);color:var(--paper);font-size:15px;min-height:44px}.farm-photo{margin:45px auto 0;max-width:720px}.farm-photo img{display:block;width:100%;height:auto;border-radius:18px}.farm-photo figcaption{font-family:EstateSerif,Georgia,serif;text-align:center;font-size:18px;line-height:1.5;margin-top:16px}.farm-footer .hotel-watercolor-story{max-width:900px;margin-inline:auto}[data-journey-place=granja] #hotel-forest{mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent)}
@media(max-width:700px){.farm-visit{padding:28px 24px;margin:32px 0}.farm-photo{margin-top:30px}}

.concert-details{background:#f5f3e9}.concert-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 0;margin:35px 0 45px;border-block:1px solid var(--line)}.concert-facts span{display:block;font-size:14px;color:#65745d;margin-bottom:10px}.concert-facts strong{font-family:EstateSerif,Georgia,serif;font-size:24px;font-weight:400}.concert-agenda{padding:32px;border-radius:20px;border:1px solid #baa56f66;background:#fff9}.concert-agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:25px}.concert-month-controls{display:flex;align-items:center;gap:10px}.concert-month-controls button{height:44px;width:44px;border:1px solid var(--line);border-radius:50%}.concert-month-controls span{min-width:140px;text-align:center;font-size:14px;text-transform:capitalize}.concert-weekdays,.concert-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.concert-weekdays span{padding:10px;font-size:14px;color:#61715d}.concert-days span{padding:14px 2px;min-height:44px;font-size:16px;border-radius:8px}.concert-days .concert-today{box-shadow:inset 0 0 0 1px #9b8350;background:#e7e2cf}.concert-empty{margin-top:25px;padding:25px;background:#e9e8db;border-radius:12px}.concert-empty strong{font-weight:500;font-size:18px}.concert-empty p{margin-top:10px;font-size:14px}.concert-label:is(:hover,:focus-visible) .place-name{max-width:190px}[data-journey-place=conciertos] .hotel-depth-layer{filter:saturate(.65) brightness(.82)}[data-journey-place=conciertos] #hotel-forest{mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}[data-journey-place=conciertos] .hotel-arrival-heading h2{font-size:clamp(1.6rem,2.8vw,2.7rem)}
@media(max-width:700px){.concert-facts{grid-template-columns:1fr;gap:22px}.concert-agenda{padding:22px 15px}.concert-agenda-heading{align-items:flex-start;flex-direction:column}.concert-month-controls{width:100%;justify-content:space-between}.concert-days span{padding:12px 2px}.concert-empty{padding:20px}[data-journey-place=conciertos] .hotel-arrival-heading{max-width:calc(100% - 35px);white-space:normal}}

.kids-photo{margin:40px auto 0;max-width:430px}.kids-photo img{display:block;width:100%;height:auto;border-radius:100px 100px 16px 16px}.kids-photo figcaption{font-family:EstateSerif,Georgia,serif;font-size:18px;line-height:1.5;margin-top:17px;text-align:center}[data-journey-place=infantil] #hotel-forest{mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}

.pool-season{padding:32px 36px;margin:42px 0 0;background:#e1ece5;border:1px solid #bacfc5;border-radius:18px}.hotel-details .pool-season h3{font-size:clamp(1.8rem,3vw,2.5rem)}.pool-evening{margin:40px 0;padding:32px 36px;border-radius:18px;background:#e9e9dc}.pool-evening p{max-width:660px}[data-journey-place=piscina] #hotel-forest{mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}
@media(max-width:700px){.pool-season,.pool-evening{padding:25px}}

/* Watercolor garden framed between independent forest and foreground layers. */
[data-journey-place="huerto"] #hotel-lift{aspect-ratio:3/2}
[data-journey-place="huerto"] #hotel-lift img{width:100%;height:100%;object-fit:contain;filter:none;mask-image:radial-gradient(ellipse at 50% 50%,#000 48%,transparent 73%)}
.garden-footer-scene .garden-photo{left:0;top:0;width:100%;height:100%;object-fit:contain;z-index:2;mask-image:radial-gradient(ellipse at 50% 50%,#000 48%,transparent 74%)}

/* A quiet, layered watercolor flame: no particle engine or flashing. */
[data-journey-place="san-juan"] #hotel-lift{aspect-ratio:3/2}
[data-journey-place="san-juan"] #hotel-lift>img{width:100%;height:100%;object-fit:contain;filter:none}
[data-journey-place="san-juan"] #hotel-lift::before,[data-journey-place="san-juan"] #hotel-lift::after{content:"";position:absolute;inset:0;pointer-events:none;background:url('assets/san-juan-cutout.png') center/100% 100% no-repeat;animation-play-state:paused;will-change:transform,opacity}
[data-journey-place="san-juan"] #hotel-lift::after{mask-image:radial-gradient(ellipse 8% 24% at 50% 47%,#000 45%,transparent 100%);transform-origin:50% 76%;animation:bonfire-breathe 4.8s ease-in-out infinite alternate;animation-play-state:paused}
[data-journey-place="san-juan"] #hotel-lift::before{mask-image:radial-gradient(ellipse 10% 18% at 44% 19%,#000 10%,transparent 100%);animation:bonfire-smoke 13s ease-in-out infinite alternate;animation-play-state:paused}
[data-journey-place="san-juan"][data-fire-live="true"] #hotel-lift::before,[data-journey-place="san-juan"][data-fire-live="true"] #hotel-lift::after{animation-play-state:running}
[data-journey-place="san-juan"] .hotel-depth-layer img{filter:brightness(.5) saturate(.65)}
@keyframes bonfire-breathe{0%{transform:scaleX(.985) scaleY(.98) skewX(-.5deg);opacity:.55}60%{transform:scaleX(1.01) scaleY(1.025) skewX(.4deg);opacity:.8}100%{transform:scaleX(.995) scaleY(1.01);opacity:.65}}
@keyframes bonfire-smoke{from{transform:translate(0,0);opacity:.25}to{transform:translate(-.6%,-1%);opacity:.48}}
@media(prefers-reduced-motion:reduce){[data-journey-place="san-juan"] #hotel-lift::before,[data-journey-place="san-juan"] #hotel-lift::after{animation:none;display:none}}

.bonfire-witches,.bonfire-tree-occlusion{display:none}
[data-journey-place="san-juan"] .bonfire-witches{display:block;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;opacity:0}
[data-journey-place="san-juan"][data-fire-live="true"] .bonfire-witches{opacity:1}
.bonfire-witch{position:absolute;width:22%;aspect-ratio:3/2;left:-24%;top:18%;opacity:0;background:url('assets/san-juan-witch.png') center/contain no-repeat}
[data-witches="fly"] .bonfire-witch{animation:meigas-cross 9s cubic-bezier(.3,.1,.7,.9) .6s both}
[data-witches="fly"] .bonfire-witch:nth-child(2){width:18%;animation-delay:1.5s;animation-duration:9.7s}
[data-witches="fly"] .bonfire-witch:nth-child(3){width:16%;animation-delay:2.5s;animation-duration:9.3s}
[data-journey-place="san-juan"] .bonfire-tree-occlusion{display:block;position:absolute;inset:0;pointer-events:none;z-index:2;background:url('assets/san-juan-cutout.png') center/100% 100% no-repeat;clip-path:polygon(0 25%,15% 29%,27% 50%,40% 55%,60% 55%,72% 45%,86% 34%,100% 30%,100% 100%,0 100%)}
[data-journey-place="san-juan"] #hotel-lift::before,[data-journey-place="san-juan"] #hotel-lift::after{z-index:3}
@keyframes meigas-cross{0%{left:-24%;top:26%;opacity:0;transform:rotate(-4deg)}12%{opacity:.8}42%{top:14%;transform:rotate(2deg)}68%{top:19%;opacity:.8}88%{opacity:.5}100%{left:105%;top:30%;opacity:0;transform:rotate(5deg)}}
@media(prefers-reduced-motion:reduce){.bonfire-witches{display:none!important}.bonfire-witch{animation:none!important}}

[data-journey-place="vacas-dexter"] #hotel-lift{aspect-ratio:3/2}[data-journey-place="vacas-dexter"] #hotel-lift>img{width:100%;height:100%;object-fit:contain;filter:none}
