/* Composición global: las imágenes pertenecen al contenido que explican. */
.intro{display:grid;grid-template-columns:.8fr 1.2fr;grid-template-rows:auto 1fr;gap:26px 50px;padding-block:75px 105px;align-items:start;isolation:isolate}
.intro-heading{grid-column:1;grid-row:1;align-self:end}
.intro-copy{grid-column:1;grid-row:2;padding-top:0}
.intro h2{font-size:clamp(2.9rem,4.3vw,4.6rem)}
.intro-gallery{grid-column:2;grid-row:1/3;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;align-self:stretch}
.intro-gallery figure{height:100%;min-height:380px;overflow:hidden}
.intro-gallery img{height:100%;min-height:380px;max-height:510px;object-fit:cover}
.intro-gallery figcaption{position:absolute;bottom:0;left:0;right:0;padding:35px 16px 16px;margin:0;background:linear-gradient(transparent,#1a110acc);color:var(--papel);font-size:13px}
.intro .textile-transition{position:absolute;bottom:0;left:calc((var(--shell) - 100vw)/2);width:100vw;height:72px;z-index:-1;background:transparent;mask-image:linear-gradient(transparent,#000 30%)}
.room-showcase{grid-template-columns:1.2fr 1fr;gap:0;align-items:stretch;margin-top:40px;background:#281d13}
.room-image-stack{height:auto;min-height:460px}
.room-gallery-copy{display:flex;flex-direction:column;justify-content:center;padding:26px 32px}
.room-gallery-counter{margin-bottom:0}
.room-photo-tabs{margin-top:12px;margin-bottom:16px}
.room-photo-tabs button{min-width:44px}
.room-gallery-copy .room-chooser{width:100%;margin:0}
.room-row{grid-template-columns:1fr 70px 24px;gap:12px;min-height:72px;padding-block:12px}
.room-name strong{font-size:1.65rem}
.room-capacity{font-size:11px;text-align:right}
.room-gallery-copy .stay-feedback{font-size:12px;margin:16px 0 0;min-height:40px}
.services-strip{width:var(--shell);margin:0 auto;padding:24px 26px;background:#281d13;border-top:1px solid #c9b89340}
.stay-section{padding-bottom:65px}
.tours{position:relative;isolation:isolate;grid-template-columns:1.1fr 1fr;gap:20px 45px;padding-block:60px 0}
.tours-photo{align-self:center}
.tours-photo img{height:auto;aspect-ratio:1.15;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 84%,transparent),linear-gradient(transparent,#000 8%,#000 90%,transparent);mask-composite:intersect}
.tours-copy{padding-block:10px;z-index:1}
.tours-copy .vvt-logo{width:200px!important;mix-blend-mode:multiply}
.tours-copy h2{font-size:clamp(2.8rem,4vw,4.4rem)}
.tours .surire-photo{grid-column:1/-1;width:100%;height:360px;margin-top:5px;mask-image:linear-gradient(transparent,#000 25%);overflow:hidden}
.tours .surire-photo img{object-position:center 58%}
.tours .surire-photo figcaption{right:18px;bottom:18px}
.booking{position:relative}
.booking-aside,.booking-form-wrap{padding-block:55px}
.booking-aside .brand-horizon{display:none}
.payment-section{grid-template-columns:.75fr 1.25fr;gap:55px;padding-block:60px}
.payment-heading h2{font-size:clamp(2.6rem,3.5vw,3.7rem);margin:0 0 22px}
.payment-options{display:grid;grid-template-columns:1fr 1fr;column-gap:30px;align-content:start}
.payment-option{padding:18px 0;min-width:0}
.payment-option h3{height:70px;display:flex;align-items:center;margin:0 0 12px;overflow:hidden}
.payment-option .webpay-logo{width:160px;height:136px;max-width:none;object-fit:contain;clip-path:inset(25% 3% 26%);flex:none}
.payment-logo{mix-blend-mode:multiply}
.payment-option p{font-size:13px}
.payment-note{grid-column:1/-1}
.faq{position:relative;isolation:isolate;grid-template-columns:.75fr 1.25fr;gap:55px;padding-block:55px 65px;align-items:start}
.faq-heading{position:relative;min-height:360px;isolation:isolate}
.faq-heading h2{font-size:clamp(2.6rem,3.5vw,3.7rem);max-width:430px;position:relative;z-index:1}
.faq .faq-art{position:absolute;right:0;bottom:-20px;width:310px;height:260px;object-fit:cover;object-position:center 62%;margin:0;opacity:.62;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,#000 30%,transparent 72%);z-index:-1}
.faq-list{border-top:1px solid var(--arena)}
.faq-list summary{font-size:1.4rem;padding-block:22px}
.faq-list details:first-child{border-top:0}
@media(max-width:900px){
 .intro{grid-template-columns:1fr 1fr;gap:24px}
 .intro-gallery{grid-column:1/-1;grid-row:2}
 .intro-copy{grid-column:2;grid-row:1}
 .intro-gallery figure,.intro-gallery img{min-height:300px;height:320px}
 .room-showcase{grid-template-columns:1.05fr 1fr}
 .room-gallery-copy{padding:20px}
 .room-name strong{font-size:1.45rem}
 .room-row{grid-template-columns:1fr 20px}
 .room-capacity{display:none}
 .tours{grid-template-columns:1fr 1fr;gap:20px}
 .tours-copy h2{font-size:2.7rem}
 .tours-actions{align-items:flex-start;flex-direction:column}
 .tours .surire-photo{height:300px}
 .payment-section,.faq{gap:30px;grid-template-columns:1fr}
 .faq-heading{min-height:150px;padding-right:35%}
 .faq .faq-art{right:-10px;bottom:-40px;width:220px;height:220px;opacity:.4}
}
@media(max-width:600px){
 .intro{grid-template-columns:1fr;padding-block:45px 85px;gap:22px}
 .intro-heading,.intro-copy,.intro-gallery{grid-column:1;grid-row:auto}
 .intro h2{font-size:3rem}
 .intro-gallery{gap:10px}
 .intro-gallery figure,.intro-gallery img{min-height:235px;height:235px}
 .intro-gallery figcaption{font-size:11px;padding:30px 10px 12px}
 .intro .textile-transition{height:55px}
 .stay-header{gap:20px}
 .stay-header h2{font-size:2.8rem}
 .room-showcase{grid-template-columns:1fr;margin-top:25px}
 .room-image-stack{min-height:280px;height:280px}
 .room-gallery-copy{padding:18px 20px 10px}
 .room-gallery-counter{display:none}
 .room-photo-tabs{margin:0 0 15px}
 .room-row{min-height:64px;grid-template-columns:1fr 65px 20px}
 .room-capacity{display:block}
 .room-name strong{font-size:1.6rem}
 .services-strip{padding:22px 16px;gap:20px 12px}
 .stay-section{padding-bottom:45px}
 .tours{grid-template-columns:1fr;padding-top:35px;gap:0}
 .tours-photo{grid-row:2;margin-top:-25px;pointer-events:none}
 .tours-photo img{aspect-ratio:1.5;mask-image:linear-gradient(transparent,#000 20%,#000 82%,transparent)}
 .tours-copy{grid-row:1}
 .tours-copy .vvt-logo{width:170px!important;margin-bottom:18px}
 .tours-copy h2{font-size:2.8rem}
 .tours-actions{gap:18px}
 .tours .surire-photo{height:225px;margin-top:-35px;mask-image:linear-gradient(transparent,#000 22%)}
 .booking-aside,.booking-form-wrap{padding-block:38px}
 .payment-section{padding-block:40px}
 .payment-options{grid-template-columns:1fr;gap:0}
 .payment-option h3{height:60px}
 .faq{padding-block:40px;gap:22px}
 .faq-heading{padding-right:25%;min-height:145px}
 .faq-heading h2{font-size:2.6rem}
 .faq .faq-art{width:190px;height:190px;right:-15px;bottom:-25px;opacity:.32}
 .faq-list summary{font-size:1.22rem}
}
@media(max-width:360px){.nav-shell{width:calc(100% - 20px)}.brand{width:120px}.nav-actions{gap:0}.social-icon{width:28px;border:0}.menu-button{width:34px;margin-left:2px}.lang-switch{font-size:9px}.room-row{grid-template-columns:1fr 20px}.room-capacity{display:none}}
.room-scene[data-room-scene="matrimonial-real"]{object-fit:contain;background:#281d13}
.room-scene[data-room-scene="familiar"],.room-scene[data-room-scene="twin"]{object-fit:contain}
.room-photo-tabs button{font-size:12px;padding:10px 12px}
.room-inclusions{background:#281d13;padding:24px 26px;border-top:1px solid #c9b89340}
.room-inclusions>p{color:var(--ocre);font-size:12px;margin:0 0 16px;letter-spacing:.04em}
.room-inclusions ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.room-inclusions li{font-size:15px;display:flex;align-items:center;gap:9px;color:var(--papel)}
.room-inclusions li::before{content:'✓';color:var(--ocre)}
.booking-inclusions{border-block:1px solid #5b443233;padding:18px 0;margin-top:24px;font-size:14px;line-height:1.65}
.booking .booking-aside .booking-inclusions{color:#38281c}
.snow-gallery{padding-block:65px;color:var(--tinta)}
.snow-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;margin-bottom:26px}
.snow-year{color:#76502d;font-size:12px;letter-spacing:.06em}
.snow-heading h2{font-family:var(--display);font-size:clamp(2.2rem,3.8vw,3.8rem);font-weight:300;line-height:1.08;margin:12px 0 0}
.snow-heading>p{font-size:15px;line-height:1.7;max-width:50ch;color:var(--sepia)}
.snow-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.snow-grid figure{margin:0;min-width:0}
.snow-open{display:block;position:relative;width:100%;padding:0;border:0;background:#d3c8b7;cursor:zoom-in;overflow:hidden}
.snow-open img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block}
.snow-expand{position:absolute;right:10px;bottom:10px;background:#1a110ae6;color:white;width:30px;height:30px;display:grid;place-items:center}
.snow-grid figcaption{font-size:12px;color:var(--sepia);padding:11px 0;line-height:1.5}
.snow-dialog{border:0;padding:44px 18px 16px;background:#1a110a;color:#f4ecdc;width:min(1100px,94vw);max-height:94dvh}
.snow-dialog::backdrop{background:#000c}
.snow-dialog img{display:block;width:100%;height:min(72dvh,750px);object-fit:contain}
.snow-dialog p{text-align:center;font-size:14px;margin:14px 0 0}
.snow-close{position:absolute;right:0;top:0;width:44px;height:44px;border:0;background:transparent;color:white;font-size:30px;cursor:pointer}
@media(max-width:700px){.snow-gallery{padding-block:40px}.snow-heading{grid-template-columns:1fr;gap:18px}.snow-grid{grid-template-columns:1fr 1fr;gap:12px}.snow-heading>p{font-size:14px}}
@media(max-width:700px){.room-inclusions ul{grid-template-columns:1fr 1fr}.room-inclusions{padding:22px 16px}.room-inclusions li{font-size:13px}}
