.page-rooms .site-header:not(.is-scrolled){color:var(--tinta)}
.page-rooms .site-header.theme-dark:not(.is-scrolled){color:var(--cal)}
.page-rooms .window-defs{position:absolute;overflow:hidden}
.page-rooms .site-footer .footer-top{transform:none!important}
.room-viewer-open{overflow:hidden}
.room-nojs{padding:20px var(--gutter);background:var(--cal-2)}
.room-nojs a{text-decoration:underline}
.page-rooms main{overflow:hidden}
.page-rooms main section[id]{scroll-margin-top:80px}
.rooms-hero{min-height:100svh;display:grid;grid-template-columns:55% 45%;position:relative;padding:136px var(--gutter) 65px}
.rooms-hero-copy{align-self:end;z-index:1;padding-bottom:7vh}
.rooms-hero h1{font-size:clamp(85px,12vw,230px);line-height:.82;margin:30px 0 35px;letter-spacing:-.045em}
.rooms-hero h1 span{color:var(--rojo)}
.rooms-hero-copy>p{font-size:clamp(20px,2.2vw,31px);max-width:470px;line-height:1.22;margin-bottom:40px}
.rooms-hero-window{position:relative;height:min(72svh,780px);min-height:470px;align-self:center}
.rooms-hero-window .window-image{position:absolute;inset:0;clip-path:url(#astoreca-window-shape)}
.rooms-hero-window img{width:100%;height:100%;object-fit:cover}
.rooms-hero-window .window-frame{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--rojo);stroke-width:1.4;pointer-events:none}
.rooms-hero-aside{position:absolute;right:var(--gutter);bottom:22px}
.room-index{background:var(--cal-2)}
.room-index h2{margin-bottom:80px}
.room-index ol{list-style:none;margin:0;padding:0}
.room-index li{border-top:1px solid var(--linea)}
.room-index li:last-child{border-bottom:1px solid var(--linea)}
.room-index-link{display:grid;grid-template-columns:36px 76px minmax(160px,1.1fr) minmax(160px,1fr) 116px 20px;gap:clamp(9px,2vw,28px);align-items:center;min-height:144px;padding:15px 0;transition:transform .3s}
.room-index-link:hover,.room-index-link:focus-visible{transform:translateX(8px)}
.room-index-swatch{width:64px;height:84px;overflow:hidden;background:var(--petroleo)}
.room-index-swatch img{width:100%;height:100%;object-fit:cover;object-position:var(--swatch-x) var(--swatch-y);transform:scale(3);transform-origin:var(--swatch-x) var(--swatch-y)}
.room-index-name{font:400 clamp(40px,5vw,80px)/.92 Karosa,Georgia,serif;letter-spacing:-.03em}
.room-index-view{font-size:16px;line-height:1.3;max-width:270px}
.room-index-size{font-size:11px}
.room-detail{background:var(--cal);padding-bottom:100px}
.room-detail--premium,.room-detail--suite-deluxe{background:var(--petroleo);color:var(--cal)}
.room-detail-head{display:grid;grid-template-columns:1fr 1fr;gap:0 8vw;padding-bottom:70px}
.room-detail-head>.mono{grid-column:1/-1;border-top:1px solid currentColor;padding-top:12px}
.room-detail-head h2{font-size:clamp(75px,11vw,185px);line-height:.86;margin-top:70px}
.room-detail-head>p:not(.room-variants){font-size:clamp(19px,2.2vw,28px);line-height:1.33;max-width:510px;align-self:end;margin-top:85px}
.room-detail-head .room-variants{grid-column:2;font-size:11px;margin-top:16px}
.room-detail--premium .room-detail-head h2,.room-detail--suite-deluxe .room-detail-head h2{grid-column:2;grid-row:2}
.room-detail--premium .room-detail-head>p,.room-detail--suite-deluxe .room-detail-head>p{grid-column:1;grid-row:2}
.room-gallery{position:relative;margin:0 var(--gutter)}
.room-detail--premium .room-gallery,.room-detail--suite-deluxe .room-gallery{margin:0}
.room-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-y;cursor:grab;overscroll-behavior-inline:contain}
.room-track::-webkit-scrollbar{display:none}
.room-track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.room-slide{flex:0 0 100%;scroll-snap-align:start;position:relative;height:min(64vw,710px);min-height:470px;background:var(--cal-2)}
.room-slide img{width:100%;height:100%;object-fit:cover}
.room-slide figcaption{position:absolute;left:20px;bottom:20px;background:var(--petroleo);color:var(--cal);max-width:280px;padding:8px 11px;font-size:10px}
.room-detail--premium .room-slide,.room-detail--suite-deluxe .room-slide{height:min(70vw,840px)}
.room-detail--standard .room-gallery{width:70%;margin-left:auto}
.room-detail--premium{display:grid;grid-template-columns:55% 45%}
.room-detail--premium .room-detail-head{grid-column:1/-1}
.room-detail--premium .room-gallery{grid-column:1;align-self:stretch}
.room-detail--premium .room-track,.room-detail--premium .room-slide{height:100%;min-height:940px}
.room-detail--premium .room-description{grid-column:2;display:block;padding:40px clamp(28px,4vw,70px)}
.room-detail--premium .room-diagrams{display:block}
.room-detail--premium .room-diagrams>div{margin-top:55px}
.room-detail--premium .room-amenities{margin-top:55px}
.room-detail--junior-suite .room-slide{flex-basis:70%;margin-right:1.5%}
.room-detail--junior-suite .room-description{grid-template-columns:37% 63%}
.room-detail--junior-suite .room-data{max-width:400px}
.room-detail--suite-deluxe .room-detail-head{padding-bottom:0}
.room-detail--suite-deluxe .room-detail-head h2{margin-bottom:-.12em;position:relative;z-index:2}
.room-detail--suite-deluxe .room-slide{height:min(75vw,900px)}
.gallery-controls{position:absolute;bottom:20px;right:20px;display:flex;align-items:center;gap:18px;background:var(--cal);color:var(--tinta);padding:7px 9px}
.gallery-controls button{border:1px solid var(--tinta);background:transparent;color:inherit;width:43px;height:43px}
.gallery-controls button:hover{background:var(--petroleo);color:var(--cal)}
.gallery-controls button:active{transform:scale(.95)}
.gallery-controls button:disabled{opacity:.4}
.room-description{display:grid;grid-template-columns:41% 59%;gap:5%;padding-top:85px;padding-bottom:0}
.room-data{max-width:420px}
.room-data>.mono{border-bottom:1px solid currentColor;padding-bottom:15px}
.room-data dl{margin:20px 0 40px}
.room-data dl>div{display:grid;grid-template-columns:105px 1fr;gap:15px;border-bottom:1px solid currentColor;padding:13px 0}
.room-data dt{font-family:Monoblock,monospace;font-size:11px;text-transform:uppercase}
.room-data dd{margin:0;font-size:16px;line-height:1.3}
.room-price{margin-bottom:21px}
.room-price strong{display:block;font:400 clamp(52px,5vw,80px)/1 Karosa,Georgia,serif}
.room-price span{display:block;font-size:10px;margin-top:6px}
.room-diagrams{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.room-diagrams h3,.room-amenities h3{font-size:clamp(31px,3.5vw,52px);margin-bottom:22px}
.room-diagrams svg{width:100%;height:auto}
.room-diagrams svg text{font:12px Monoblock,monospace;fill:currentColor}
.room-diagrams .mono{font-size:10px;margin:11px 0 16px}
.light-diagram>p:last-child{font-size:15px}
.plan-drawing{position:relative}
.plan-hotspot{position:absolute;left:var(--hx);top:var(--hy);transform:translate(-50%,-50%);min-width:26px;min-height:26px;border:1px solid var(--rojo);background:var(--rojo);color:var(--cal);font:500 12px Neuetra,Arial,sans-serif}
.plan-hotspot::before{content:"+";display:block;font-size:20px;line-height:24px}
.plan-hotspot span{position:absolute;left:50%;top:100%;transform:translateX(-50%);white-space:nowrap;background:var(--cal);color:var(--tinta);padding:3px 5px;opacity:0;pointer-events:none}
.plan-hotspot:hover span,.plan-hotspot:focus-visible span{opacity:1}
.room-amenities{grid-column:2;margin-top:45px;border-top:1px solid currentColor;padding-top:25px}
.room-amenities ul{list-style:none;padding:0;columns:2;column-gap:30px}
.room-amenities li{font-size:15px;break-inside:avoid;border-bottom:1px solid currentColor;padding:8px 0}
.room-compare{background:var(--cal-2)}
.room-compare h2{margin-bottom:25px}
.room-compare .mono{font-size:11px}
.compare-scroll{overflow:auto;scrollbar-color:var(--rojo) var(--cal);margin-top:30px}
.compare-scroll table{border-collapse:collapse;min-width:990px;width:100%;font-size:16px;line-height:1.3}
.compare-scroll th,.compare-scroll td{text-align:left;padding:22px 18px;border-bottom:1px solid var(--tinta-2);vertical-align:top}
.compare-scroll thead th{font:400 11px Monoblock,monospace;text-transform:uppercase}
.compare-scroll tbody th{font:400 32px Karosa,Georgia,serif;min-width:190px}
.compare-scroll tbody th a{text-decoration:underline;text-decoration-color:var(--rojo);text-underline-offset:6px}
.compare-scroll td small{display:block;font-size:10px;margin-top:6px}
.room-services h2{font-size:clamp(65px,10vw,160px);margin:40px 0 90px}
.services-line{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.services-line div{border-top:1px solid var(--tinta);padding:18px 0}
.services-line strong{font:400 clamp(55px,7vw,110px)/1 Karosa,Georgia,serif;color:var(--rojo)}
.services-line p{font-size:20px;max-width:220px;margin-top:22px}
.room-viewer[hidden],.room-data-error[hidden]{display:none}
.room-viewer{position:fixed;z-index:95;inset:0;background:rgba(15,48,54,.98);color:var(--cal);display:grid;place-items:center;padding:70px 20px 25px}
.room-viewer figure{width:min(100%,1000px);height:100%;display:flex;flex-direction:column;justify-content:center;gap:10px}
.room-viewer img{max-height:76dvh;width:100%;object-fit:contain}
.viewer-close{position:absolute;right:24px;top:22px;color:var(--cal);border:1px solid var(--cal);background:transparent;padding:9px 14px}
.room-viewer :focus-visible,.room-detail--premium :focus-visible,.room-detail--suite-deluxe :focus-visible{outline-color:var(--cal)}
.room-data-error{position:fixed;z-index:80;left:var(--gutter);bottom:80px;right:var(--gutter);background:var(--petroleo);color:var(--cal);padding:15px;border-left:3px solid var(--rojo)}
.room-data-error a{text-decoration:underline}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1023px){.rooms-hero{grid-template-columns:49% 51%}.rooms-hero h1{font-size:clamp(75px,11vw,130px)}.room-index-link{grid-template-columns:30px 65px minmax(150px,1fr) minmax(140px,1fr) 100px 20px}.room-index-name{font-size:clamp(37px,5vw,65px)}.room-description,.room-detail--junior-suite .room-description{grid-template-columns:1fr;gap:50px}.room-data{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 35px}.room-data>.mono{grid-column:1/-1}.room-data dl{grid-row:2/5}.room-diagrams,.room-amenities{grid-column:1}.room-diagrams{gap:6vw}.room-amenities{margin-top:0}.room-detail--premium{display:block}.room-detail--premium .room-track,.room-detail--premium .room-slide{height:min(70vw,700px);min-height:470px}.room-detail--premium .room-description{padding:80px var(--gutter)}.room-detail--premium .room-diagrams{display:grid}.room-detail--premium .room-diagrams>div{margin-top:0}}
@media(max-width:700px){.rooms-hero{display:block;padding-top:126px;padding-bottom:70px;min-height:0}.rooms-hero-copy{padding:0}.rooms-hero h1{font-size:clamp(76px,16vw,125px);margin:27px 0}.rooms-hero-copy>p{font-size:21px;margin-bottom:25px}.rooms-hero-window{height:390px;min-height:0;margin:30px -10px 0}.rooms-hero-aside{bottom:19px;font-size:10px}.room-index h2{margin-bottom:40px}.room-index-link{grid-template-columns:25px 55px 1fr 19px;min-height:100px;gap:10px}.room-index-swatch{width:52px;height:69px}.room-index-name{font-size:clamp(35px,10vw,52px)}.room-index-view,.room-index-size{display:none}.room-detail{padding-bottom:75px}.room-detail-head,.room-detail--premium .room-detail-head,.room-detail--suite-deluxe .room-detail-head{display:block;padding-bottom:36px}.room-detail-head h2,.room-detail--premium .room-detail-head h2,.room-detail--suite-deluxe .room-detail-head h2{font-size:clamp(70px,15vw,110px);margin:48px 0 22px}.room-detail-head>p:not(.room-variants){font-size:18px;margin:0}.room-detail-head .room-variants{margin-top:15px}.room-gallery,.room-detail--premium .room-gallery,.room-detail--suite-deluxe .room-gallery{margin:0}.room-slide,.room-detail--premium .room-slide,.room-detail--suite-deluxe .room-slide{height:390px;min-height:0}.room-slide figcaption{left:10px;bottom:10px;max-width:58%;font-size:9px}.gallery-controls{right:9px;bottom:9px;gap:9px}.gallery-controls button{width:36px;height:36px}.room-description{padding-top:55px;gap:42px}.room-data{display:block}.room-data dl{margin:20px 0 30px}.room-data dl>div{grid-template-columns:85px 1fr}.room-diagrams{grid-template-columns:1fr;gap:36px}.room-amenities ul{columns:2}.room-compare .compare-scroll{margin-right:calc(-1 * var(--gutter))}.room-services h2{font-size:clamp(65px,12vw,95px);margin-bottom:55px}.services-line{display:block}.services-line div{display:grid;grid-template-columns:85px 1fr;gap:15px}.services-line strong{font-size:68px}.services-line p{margin:10px 0}}
@media(prefers-reduced-motion:reduce){.room-track{scroll-behavior:auto}.room-index-link{transition:none}.rooms-hero-window .window-image{clip-path:url(#astoreca-window-shape)}}
@media(max-width:700px){.room-description{display:block}.room-diagrams{margin-top:54px}.room-amenities{margin-top:52px}.room-detail--standard .room-gallery{width:100%;margin:0}.room-detail--premium .room-track,.room-detail--premium .room-slide{height:390px;min-height:0}.room-detail--premium .room-description{padding:55px var(--gutter)}.room-detail--premium .room-diagrams{display:block}.room-detail--premium .room-diagrams>div+div{margin-top:54px}.room-detail--junior-suite .room-slide{flex-basis:88%}.room-detail--suite-deluxe .room-detail-head h2{margin-bottom:22px}.room-detail--suite-deluxe .room-slide{height:390px}}

/* FIX-A: actual wallpaper detail and native photograph dimensions. */
.room-index-link{grid-template-columns:36px 88px minmax(160px,1.1fr) minmax(160px,1fr) 116px 20px;min-height:152px}
.room-index-swatch{width:88px;height:120px}
.room-index-swatch img{object-fit:cover;transform:scale(4);transform-origin:var(--swatch-origin,65% 13%)}
.rooms-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:2vw}
.rooms-hero h1{font-size:clamp(65px,10vw,180px)}
.rooms-hero-window{width:100%;height:auto;min-height:0;aspect-ratio:5/7}
.rooms-hero-window .window-frame{stroke-width:1}
.room-detail{padding-bottom:clamp(4rem,9vw,8rem)}
.room-detail--premium{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.room-detail--premium .room-track,.room-detail--premium .room-slide{height:620px;min-height:0}
.room-detail--premium .room-description{padding:0 clamp(24px,4vw,65px);display:grid;grid-template-columns:1fr 1fr;gap:24px}
.room-detail--premium .room-diagrams{display:block}
.room-detail--premium .room-diagrams>div{margin-top:0;margin-bottom:28px}
.room-detail--premium .room-amenities{margin-top:32px;grid-column:1/-1}
.room-description{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:5%}
.room-slide,.room-detail--suite-deluxe .room-slide,.room-detail--junior-suite .room-slide{height:560px;min-height:0}
.room-track{align-items:center}
.room-slide{overflow:visible;aspect-ratio:5/7}
.room-slide .window-image{display:flex;align-items:center;justify-content:center;background:var(--cal-2)}
.room-detail--premium .window-image,.room-detail--suite-deluxe .window-image{background:var(--petroleo-2)}
.room-slide img{object-fit:contain;width:100%;height:100%;max-width:var(--native-w);max-height:var(--native-h)}
.room-detail--standard .room-gallery{width:83.333%;max-width:1200px}
.room-detail--junior-suite .room-slide{flex-basis:65%}
.room-index h2{margin-bottom:45px}
.room-viewer img{object-fit:contain;max-width:var(--native-w);max-height:var(--native-h)}
@media(max-width:1023px){.room-index-link{grid-template-columns:24px 88px 1fr 20px}.room-index-view,.room-index-size{display:none}.room-detail--premium{display:block}.room-detail--premium .room-description{display:block;padding:clamp(4rem,9vw,8rem) var(--gutter) 0}.room-detail--premium .room-diagrams{display:grid;grid-template-columns:1fr 1fr}.room-detail--premium .room-track,.room-detail--premium .room-slide{height:560px}}
@media(max-width:700px){.room-index-link{grid-template-columns:20px 88px minmax(0,1fr) 16px;gap:12px}.room-index-name{font-size:clamp(30px,8vw,42px)}.rooms-hero{display:block}.rooms-hero-window{width:75%;margin:35px auto 20px}.room-slide,.room-detail--premium .room-slide,.room-detail--premium .room-track,.room-detail--suite-deluxe .room-slide,.room-detail--junior-suite .room-slide{height:460px;min-height:0}.room-detail--standard .room-gallery{width:auto;margin-inline:var(--gutter)}.room-detail--junior-suite .room-slide{flex-basis:100%}.room-description,.room-detail--premium .room-diagrams{display:block}.room-data{margin-bottom:45px}.room-slide figcaption{max-width:185px;left:12px;bottom:75px}}

/* Each gallery opening has the same tall proportion as the architectural frame. */
.room-slide,.room-detail--junior-suite .room-slide{flex:0 0 400px;width:400px;height:560px;aspect-ratio:5/7;margin-right:24px}
.room-detail--premium .room-track{height:560px}
.room-detail--premium .room-slide,.room-detail--suite-deluxe .room-slide{height:560px}
.room-slide img{object-fit:cover}
@media(max-width:700px){.room-slide,.room-detail--premium .room-slide,.room-detail--suite-deluxe .room-slide,.room-detail--junior-suite .room-slide{flex-basis:100%;width:100%;height:auto;min-height:0;aspect-ratio:5/7;margin-right:0}.room-detail--premium .room-track{height:auto}}

.room-detail>.room-amenities{grid-column:1/-1;margin-top:0;padding-top:35px;padding-bottom:0}
@media(min-width:1024px){.room-detail--premium .room-gallery{position:sticky;top:100px;align-self:start}}
