:root{--ink:var(--azul-acero);--muted:var(--gris-texto);--paper:var(--blanco-hospedaje);--cream:var(--azul-niebla);--sage:var(--azul-cielo);--sage-dark:var(--azul-noche);--wood:var(--naranja);--line:var(--gris-linea);--white:var(--blanco);--max:1180px;--serif:var(--fuente-emocion);--sans:var(--fuente-operacion)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button,input,select,textarea{font:inherit}button{cursor:pointer}.container{width:min(calc(100% - 64px),var(--max));margin:0 auto}.announcement{min-height:34px;background:var(--ink);color:var(--azul-niebla);display:flex;justify-content:space-between;align-items:center;padding:0 32px;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.site-header{height:84px;background:var(--ink);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(255,255,255,.12)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--blanco)}.brand-mark{width:42px;height:42px;border-radius:8px;display:block;overflow:hidden;background:var(--sage-dark);box-shadow:0 4px 12px rgba(20,35,66,.18)}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand strong{display:block;font:600 23px var(--serif);line-height:1}.brand small{display:block;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:4px}.main-nav{display:flex;align-items:center;gap:29px;font-size:13px;color:var(--gris-linea)}.main-nav>a:not(.nav-cta){transition:color .2s}.main-nav>a:not(.nav-cta):hover{color:var(--naranja-texto)}.nav-cta{background:var(--wood);color:var(--azul-noche);padding:13px 18px;border-radius:2px}.nav-cta span,.button span,.text-link span{margin-left:8px}.menu-toggle{display:none;background:none;border:0;padding:8px}.menu-toggle span{display:block;width:25px;height:2px;background:var(--blanco);margin:5px}.hero{min-height:680px;position:relative;color:var(--blanco);overflow:hidden;display:flex;align-items:center}.hero-media{position:absolute;inset:0;background-image:url('../fotos/plaza de armas cusco.jpg');background-size:cover;background-position:center 43%;transform:scale(1.015)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,35,66,.84) 0%,rgba(20,35,66,.52) 46%,rgba(20,35,66,.16) 100%)}.hero-content{position:relative;padding:92px 0 110px}.eyebrow{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--sage-dark);font-weight:700;margin:0 0 20px}.eyebrow.light{color:var(--gris-linea)}.hero h1{font:600 clamp(47px,6vw,78px)/1.05 var(--serif);letter-spacing:-.04em;margin:0 0 26px;max-width:760px}.hero h1 em,h2 em{font-style:italic;font-weight:500;color:inherit}.hero-copy{font-size:17px;max-width:480px;color:var(--blanco-hospedaje);margin:0 0 34px}.hero-actions{display:flex;gap:12px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;padding:14px 21px;font-weight:700;font-size:12px;letter-spacing:.02em;transition:transform .2s,background .2s,border .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--sage);color:var(--ink)}.button-primary:hover{background:var(--azul-niebla)}.button-ghost{border-color:rgba(255,255,255,.62);color:white}.button-ghost:hover{background:rgba(255,255,255,.12)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:var(--azul-acero)}.button-light{background:var(--naranja-suave);color:var(--ink)}.button-outline{border-color:var(--ink);color:var(--ink)}.button-outline:hover{background:var(--ink);color:white}.hero-note{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--gris-linea);margin-top:52px}.note-dot{width:8px;height:8px;background:var(--naranja);border-radius:50%;box-shadow:0 0 0 5px rgba(255,79,18,.18)}.scroll-cue{position:absolute;bottom:28px;right:36px;display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;transform:rotate(-90deg);transform-origin:right bottom;color:var(--gris-linea)}.scroll-cue:first-letter{font-size:23px}.booking-strip{background:var(--azul-niebla);padding:21px 0;border-bottom:1px solid var(--gris-linea)}.booking-inner{display:flex;align-items:center;gap:38px}.booking-intro{min-width:180px}.mini-label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-dark);font-weight:700}.booking-intro strong{font:600 19px var(--serif)}.booking-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;width:100%;gap:0;background:var(--white);box-shadow:0 8px 25px rgba(20,35,66,.10)}.booking-form label{padding:10px 18px;border-right:1px solid var(--gris-linea)}.booking-form label span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;margin-bottom:2px}.booking-form input,.booking-form select{width:100%;border:0;background:transparent;color:var(--ink);font-size:13px;outline:0}.booking-form select{cursor:pointer}.booking-form .button{height:100%;border:0;white-space:nowrap}.section{padding:112px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.image-frame{height:530px;overflow:hidden;position:relative}.image-frame:after{content:'';position:absolute;inset:18px;border:1px solid rgba(255,255,255,.55);pointer-events:none}.welcome-copy{max-width:500px}.welcome-copy h2,.section-heading h2,.value-copy h2,.location-copy h2,.corporate-inner h2,.contact-intro h2{font:600 clamp(35px,4vw,51px)/1.08 var(--serif);letter-spacing:-.035em;margin:0 0 25px}.welcome-copy p,.value-copy>p,.location-copy>p,.contact-intro>p{color:var(--muted);font-size:15px;max-width:480px;margin:0 0 17px}.text-link{display:inline-block;color:var(--sage-dark);font-weight:700;font-size:13px;border-bottom:1px solid var(--sage-dark);padding-bottom:5px;margin-top:15px}.intention-section{background:var(--cream);padding-top:105px}.section-heading{margin-bottom:47px}.section-heading h2{margin-bottom:15px}.section-heading>p:last-child{color:var(--muted);max-width:470px}.centered{text-align:center}.centered>p:last-child{margin-left:auto;margin-right:auto}.intention-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.intention-card{background:var(--paper);display:grid;grid-template-columns:43% 57%;min-height:355px}.intention-image{position:relative;overflow:hidden;min-height:355px}.intention-image img{transition:transform .5s}.intention-card:hover img,.room-card:hover .room-image img{transform:scale(1.04)}.card-number{position:absolute;top:18px;left:18px;color:white;font:500 21px var(--serif);text-shadow:0 1px 8px var(--azul-noche)}.intention-body{padding:36px 28px}.intention-body h3{font:600 31px var(--serif);margin:0 0 12px}.intention-body>p:not(.eyebrow){font-size:13px;color:var(--muted);margin:0 0 14px}.intention-body ul{list-style:none;padding:0;margin:0 0 18px;color:var(--muted);font-size:12px;line-height:2}.intention-body li:before{content:'—';color:var(--naranja-texto);margin-right:7px}.row-heading{display:flex;justify-content:space-between;align-items:end}.row-heading>p{max-width:290px;color:var(--muted);font-size:14px;margin:0 0 7px}.rooms-grid{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:22px}.room-card{background:white;padding-bottom:23px}.room-image{height:300px;position:relative;overflow:hidden}.room-large .room-image{height:370px}.room-image img{transition:transform .5s}.room-tag{position:absolute;left:14px;top:14px;background:rgba(245,247,250,.92);padding:6px 10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sage-dark);font-weight:700}.image-open{position:absolute;right:14px;top:14px;border:0;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.9);font-size:14px;color:var(--ink)}.room-info{display:flex;justify-content:space-between;align-items:start;padding:22px 19px 0}.room-kicker{margin:0 0 5px;color:var(--naranja-texto);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}.room-info h3{font:600 25px var(--serif);margin:0}.room-price{text-align:right;font-weight:700;font-size:15px}.room-price small{display:block;color:var(--muted);font-weight:400;font-size:11px}.room-card>p{padding:0 19px;margin:11px 0;color:var(--muted);font-size:12px}.room-meta{padding:0 19px;display:flex;gap:13px;flex-wrap:wrap;color:var(--sage-dark);font-size:11px}.center-action{text-align:center;margin-top:43px}.value-section{background:var(--sage-dark);color:white}.value-copy{max-width:480px}.value-copy .eyebrow{color:var(--gris-linea)}.value-copy h2{color:white}.value-copy h2 em{color:inherit}.value-copy>p{color:var(--azul-cielo)}.value-copy .text-link{color:var(--azul-niebla);border-color:var(--azul-niebla)}.amenities-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.25);border-left:1px solid rgba(255,255,255,.25)}.amenity{padding:29px 25px 30px;border-right:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25)}.amenity-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--gris-linea);border-radius:50%;color:var(--blanco-hospedaje);font-size:19px;margin-bottom:16px}.amenity h3{font:600 22px var(--serif);margin:0 0 5px}.amenity p{font-size:12px;color:var(--gris-linea);margin:0}.quote-section{background:var(--cream);padding:100px 0}.quote-inner{max-width:780px;text-align:center}.quote-mark{display:block;color:var(--naranja-texto);font:700 80px/1 var(--serif);height:52px}.quote-inner blockquote{font:500 clamp(28px,4vw,45px)/1.17 var(--serif);letter-spacing:-.03em;margin:0 auto 23px}.quote-inner p{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.location-section{background:var(--paper)}.location-copy h2{max-width:460px}.distance-list{display:flex;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:19px 0;margin:28px 0}.distance-list div{display:flex;flex-direction:column}.distance-list strong{font:600 22px var(--serif);color:var(--sage-dark)}.distance-list span{font-size:11px;color:var(--muted);margin-top:3px}.map-card{height:425px;position:relative;overflow:hidden;background:var(--azul-niebla);border:1px solid var(--gris-linea)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(30deg,transparent 48%,rgba(255,255,255,.75) 49%,rgba(255,255,255,.75) 52%,transparent 53%),linear-gradient(115deg,transparent 47%,rgba(255,255,255,.7) 48%,rgba(255,255,255,.7) 51%,transparent 52%),linear-gradient(var(--gris-linea) 1px,transparent 1px),linear-gradient(90deg,var(--gris-linea) 1px,transparent 1px);background-size:140px 140px,180px 180px,48px 48px,48px 48px;opacity:.8}.map-road{position:absolute;background:var(--blanco);box-shadow:0 0 0 1px rgba(100,116,139,.25);height:16px;transform:rotate(-18deg)}.road-one{width:600px;top:210px;left:-120px}.road-two{width:550px;top:75px;left:90px;transform:rotate(23deg);height:10px}.map-pin{position:absolute;left:48%;top:48%;width:43px;height:43px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--sage-dark);color:var(--blanco);display:grid;place-items:center;font:600 20px var(--serif);box-shadow:0 8px 15px rgba(20,35,66,.25)}.map-pin::first-letter{transform:rotate(45deg)}.map-label{position:absolute;font-size:11px;color:var(--gris-texto)}.label-home{top:41%;left:55%;font-weight:700;color:var(--sage-dark)}.label-center{top:20%;right:12%}.label-airport{bottom:20%;left:12%}.map-caption{position:absolute;bottom:18px;left:18px;background:rgba(255,255,255,.92);padding:12px 15px;display:flex;flex-direction:column}.map-caption strong{font:600 20px var(--serif)}.map-caption span{font-size:11px;color:var(--muted)}.corporate-section{padding:79px 0;background:linear-gradient(100deg,var(--azul-noche),var(--azul-acero));color:white}.corporate-inner{display:flex;align-items:center;justify-content:space-between;gap:45px}.corporate-inner h2{margin-bottom:16px}.corporate-inner p:not(.eyebrow){max-width:560px;color:var(--gris-linea);font-size:14px;margin:0}.contact-section{background:var(--cream)}.contact-intro h2{max-width:530px}.contact-details{display:flex;gap:35px;margin-top:35px}.contact-details a{display:flex;flex-direction:column}.contact-details span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:5px}.contact-details strong{font-size:13px}.contact-form{background:var(--paper);padding:34px 38px;box-shadow:0 13px 30px rgba(100,116,139,.08)}.form-heading{display:flex;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:21px}.form-heading span{font:600 22px var(--serif);color:var(--naranja-texto)}.form-heading p{margin:0;font-weight:700;font-size:13px}.contact-form label{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:14px}.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--gris-linea);background:transparent;padding:10px 0 8px;color:var(--ink);outline:0;font-size:13px;resize:vertical}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--sage-dark)}.contact-form .button{margin-top:8px}.form-status{font-size:12px;color:var(--sage-dark);margin:12px 0 0}.site-footer{background:var(--ink);color:var(--blanco-hospedaje);padding-top:63px}.brand-footer{color:white}.brand-footer .brand-mark{background:var(--sage-dark)}.brand-footer small{color:var(--gris-linea)}.footer-main{display:flex;justify-content:space-between;gap:60px}.footer-links{display:flex;gap:100px}.footer-links div{display:flex;flex-direction:column;gap:7px;min-width:120px}.footer-links p{color:var(--naranja-texto);text-transform:uppercase;letter-spacing:.12em;font-size:11px;margin:0 0 7px}.footer-links a,.footer-links span{font-size:12px;color:var(--gris-linea)}.footer-links a:hover{color:var(--naranja-texto)}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.15);margin-top:55px;padding:17px 0 20px;color:var(--gris-linea);font-size:11px}.modal{position:fixed;inset:0;background:rgba(20,35,66,.94);z-index:50;display:none;place-items:center;padding:40px}.modal.open{display:grid}.modal img{width:auto;max-width:min(900px,90vw);height:auto;max-height:85vh;object-fit:contain}.modal-close{position:absolute;right:28px;top:20px;border:0;background:none;color:var(--blanco);font-size:38px;font-weight:200}.toast{position:fixed;right:24px;bottom:24px;z-index:60;background:var(--ink);color:var(--blanco);padding:14px 18px;font-size:13px;opacity:0;transform:translateY(15px);pointer-events:none;transition:.3s}.toast.show{opacity:1;transform:translateY(0)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.container{width:min(calc(100% - 38px),var(--max))}.main-nav{gap:16px}.booking-inner{display:block}.booking-intro{margin-bottom:13px}.booking-form{grid-template-columns:1fr 1fr}.booking-form label:nth-child(2){border-right:0}.booking-form .button{grid-column:1/-1;min-height:50px}.split{gap:45px}.intention-card{grid-template-columns:1fr}.intention-image{min-height:230px;height:230px}.rooms-grid{grid-template-columns:1fr 1fr}.room-large{grid-column:1/-1}.corporate-inner{align-items:start;flex-direction:column}.footer-links{gap:35px}}@media(max-width:680px){.announcement{padding:0 19px;font-size:11px}.announcement span:last-child{display:none}.site-header{height:72px}.menu-toggle{display:block}.main-nav{position:absolute;display:none;top:71px;left:0;right:0;padding:15px 19px 20px;background:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 10px 20px rgba(30,53,94,.09);flex-direction:column;align-items:stretch;gap:0}.main-nav.open{display:flex}.main-nav>a{padding:12px 0;border-bottom:1px solid var(--gris-linea)}.nav-cta{text-align:center;margin-top:10px}.hero{min-height:660px}.hero-media{background-position:61% center}.hero-shade{background:linear-gradient(90deg,rgba(20,35,66,.84),rgba(20,35,66,.3))}.hero-content{padding:70px 0 100px}.hero h1{font-size:48px}.hero-copy{font-size:15px}.hero-actions{align-items:stretch;flex-direction:column;width:max-content}.scroll-cue{right:18px}.booking-strip{padding:18px 0}.booking-form{grid-template-columns:1fr}.booking-form label{border-right:0;border-bottom:1px solid var(--gris-linea)}.section{padding:78px 0}.split,.intention-grid{grid-template-columns:1fr}.image-frame{height:370px}.row-heading{display:block}.row-heading>p{margin-top:20px}.rooms-grid{grid-template-columns:1fr}.room-large{grid-column:auto}.room-large .room-image,.room-image{height:300px}.value-split{gap:45px}.amenities-grid{grid-template-columns:1fr 1fr}.amenity{padding:22px 14px}.distance-list{gap:14px;justify-content:space-between}.distance-list strong{font-size:19px}.map-card{height:340px}.contact-details{flex-direction:column;gap:18px}.contact-form{padding:27px 23px}.footer-main{display:block}.footer-links{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.footer-bottom{display:block;line-height:1.8}.footer-bottom span{display:block}.footer-bottom span+span{margin-top:7px}.brand strong{font-size:21px}}




.brand-logo{display:block;width:min(220px,24vw);height:auto;max-height:54px;object-fit:contain}.brand-footer .brand-logo{width:min(220px,34vw)}@media(max-width:680px){.brand-logo{width:180px;max-width:52vw}.brand-footer .brand-logo{width:190px;max-width:70vw}}

/* Ficha individual de habitación */
.detail-page{background:var(--blanco)}.detail-intro{padding:34px 0 36px}.back-link{display:inline-block;color:var(--muted);font-size:12px;margin-bottom:26px}.detail-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.detail-heading h1{font:600 clamp(36px,4vw,54px)/1.05 var(--serif);letter-spacing:-.04em;margin:0 0 8px}.detail-subtitle{color:var(--muted);font-size:14px;margin:0}.detail-actions{display:flex;gap:8px}.icon-button{background:none;border:0;color:var(--ink);font-size:13px;text-decoration:underline;padding:8px}.icon-button:first-letter{font-size:18px}.property-gallery{height:490px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px;overflow:hidden;border-radius:12px}.property-gallery button{position:relative;padding:0;border:0;overflow:hidden;background:var(--azul-niebla)}.property-gallery img{transition:transform .3s}.property-gallery button:hover img{transform:scale(1.04)}.gallery-side{display:grid;grid-template-rows:1fr 1fr;gap:8px}.gallery-last span{position:absolute;right:16px;bottom:16px;padding:9px 13px;border-radius:4px;background:var(--blanco);color:var(--ink);font-size:11px;font-weight:700}.section-top{padding-top:58px}.detail-columns{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:80px;align-items:start}.detail-main{min-width:0}.property-summary{display:flex;justify-content:space-between;align-items:center}.property-summary h2{font:600 25px var(--serif);margin:0 0 5px}.property-summary p,.host-intro p,.reviews-heading p{margin:0;color:var(--muted);font-size:13px}.host-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--sage);color:var(--sage-dark);font:600 20px var(--serif)}.host-avatar-large{width:52px;height:52px;flex:none}.rating-line{display:flex;gap:8px;align-items:center;margin:20px 0;font-size:13px}.rating-line a{color:var(--ink);text-decoration:underline}.rating-star,.stars{color:var(--naranja-texto)}.detail-rule{height:1px;background:var(--line);margin:34px 0}.host-intro{display:flex;gap:17px;align-items:center}.host-intro h3{font:600 20px var(--serif);margin:0 0 5px}.host-intro .muted{font-size:11px;margin-top:7px}.muted{color:var(--muted);font-size:12px}.feature-list>div{display:flex;gap:18px;margin:23px 0}.feature-icon{width:25px;color:var(--naranja-texto);font-size:23px;line-height:1}.feature-list strong{font-size:14px}.feature-list p{color:var(--muted);font-size:12px;margin:3px 0 0}.content-title{font:600 29px var(--serif);margin:0 0 17px}.description{color:var(--gris-texto);font-size:14px;max-width:680px;margin:0 0 14px}.text-button{padding:0;background:none;border:0;color:var(--ink);font-weight:700;font-size:13px;text-decoration:underline}.text-button span{margin-left:8px;text-decoration:none}.amenity-list{display:grid;grid-template-columns:1fr 1fr;gap:18px 35px;margin:25px 0}.amenity-list span{font-size:13px;color:var(--gris-texto)}.reviews-heading{display:flex;justify-content:space-between;align-items:center}.reviews-heading .content-title{margin-bottom:5px}.review-badge{border:1px solid var(--line);padding:10px 14px;font-size:13px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:28px 0}.review-grid article{padding-right:18px}.review-person{display:flex;align-items:center;gap:10px;font-size:13px}.review-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--cream);font-weight:700}.review-grid article p{font-size:13px;color:var(--gris-texto);line-height:1.6}.review-grid small{color:var(--muted);font-size:11px}.mini-map{height:310px;position:relative;overflow:hidden;background:var(--azul-niebla);margin:25px 0 12px}.mini-map .map-grid{opacity:.8}.mini-map .map-pin{left:46%;top:45%}.map-city,.map-location{position:absolute;background:rgba(255,255,255,.9);padding:6px 9px;color:var(--muted);font-size:11px}.map-city{right:12%;top:20%}.map-location{left:42%;top:60%;font-weight:700;color:var(--ink)}.map-note{margin:0}.policies>div{border-bottom:1px solid var(--line);padding:18px 0}.policies>div:last-child{border:0}.policies strong{font-size:14px}.policies p{font-size:13px;color:var(--muted);margin:5px 0 0}.booking-card{position:sticky;top:112px;border:1px solid var(--gris-linea);border-radius:12px;padding:25px;box-shadow:0 8px 25px rgba(20,35,66,.12);background:var(--blanco)}.booking-price{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.booking-price strong{font:700 27px var(--sans);font-variant-numeric:lining-nums tabular-nums}.booking-price span{font-size:13px;color:var(--muted)}.booking-score{font-size:12px}.detail-booking-form{border:1px solid var(--gris-linea);border-radius:7px;overflow:hidden}.detail-booking-form label{display:block;font-size:11px;letter-spacing:.08em;color:var(--muted);font-weight:700;padding:10px 12px;border-bottom:1px solid var(--gris-linea)}.detail-booking-form input,.detail-booking-form select{display:block;width:100%;border:0;background:transparent;padding:4px 0 0;color:var(--ink);font-size:13px;outline:0}.date-fields{display:grid;grid-template-columns:1fr 1fr}.date-fields label:first-child{border-right:1px solid var(--gris-linea)}.detail-booking-form .button{width:100%;border:0;margin-top:14px}.booking-note{text-align:center;color:var(--muted);font-size:11px}.price-lines{border-top:1px solid var(--line);margin-top:22px;padding-top:17px;font-size:12px;color:var(--gris-texto)}.price-lines span,.price-lines b{display:flex;justify-content:space-between;margin-bottom:12px}.price-lines b{border-top:1px solid var(--line);padding-top:15px;color:var(--ink);font-size:13px;margin-top:18px}.contact-host{display:block;text-align:center;font-size:12px;margin-top:23px}.detail-footer{margin-top:75px}
@media(max-width:900px){.property-gallery{height:390px}.detail-columns{gap:35px;grid-template-columns:minmax(0,1fr) 320px}}
@media(max-width:680px){.detail-intro{padding-top:25px}.detail-heading{display:block}.detail-actions{margin-top:17px}.property-gallery{height:310px;grid-template-columns:1.5fr 1fr}.property-gallery .gallery-side:last-child{display:none}.detail-columns{display:block}.booking-card{position:static;margin-top:45px}.property-summary h2{font-size:22px}.amenity-list,.review-grid{grid-template-columns:1fr}.section-top{padding-top:35px}.detail-footer{margin-top:45px}}
.booking-intro-copy{margin:-8px 0 18px;color:var(--muted);font-size:12px;line-height:1.5}
.detail-value-section{background:var(--cream);padding:82px 0 86px}.detail-value-heading{max-width:650px}.detail-value-heading h2{font:600 clamp(34px,4vw,52px)/1.08 var(--serif);letter-spacing:-.035em;margin:0 0 20px}.detail-value-heading h2 em{color:inherit}.detail-value-heading>p:last-child{color:var(--muted);font-size:15px;max-width:560px;margin:0}.detail-value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:45px;border:1px solid var(--line)}.detail-value-grid article{background:var(--blanco);padding:28px 25px 30px}.detail-value-icon{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--wood);border-radius:50%;color:var(--naranja-texto);font-size:18px;margin-bottom:20px}.detail-value-grid h3{font:600 22px var(--serif);margin:0 0 8px}.detail-value-grid p{color:var(--muted);font-size:13px;margin:0}.corporate-note{display:flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ink);color:var(--blanco);padding:30px 34px;margin-top:22px}.corporate-note .eyebrow{color:var(--naranja-texto);margin-bottom:10px}.corporate-note h3{font:600 27px/1.1 var(--serif);margin:0 0 9px}.corporate-note p:not(.eyebrow){color:var(--gris-linea);max-width:650px;font-size:13px;margin:0}.corporate-note .button{flex:none;white-space:nowrap}@media(max-width:680px){.detail-value-section{padding:65px 0}.detail-value-grid{grid-template-columns:1fr;margin-top:32px}.corporate-note{display:block;padding:25px 22px}.corporate-note .button{margin-top:22px;width:100%}}
.announcement,.detail-page .announcement{display:none}.detail-value-heading,.detail-value-grid,.corporate-note{display:none}.detail-value-section{display:none;padding:0;background:transparent}
.site-links-section{background:var(--cream);padding:62px 0}.site-links-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.site-links-grid a{background:var(--blanco);padding:22px 20px;display:flex;flex-direction:column;gap:8px}.site-links-grid strong{font:600 18px var(--serif)}.site-links-grid span{font-size:11px;color:var(--muted)}.site-links-grid a:hover strong{color:var(--naranja-texto)}@media(max-width:680px){.site-links-grid{grid-template-columns:1fr 1fr}.site-links-grid a{padding:17px 14px}.site-links-grid strong{font-size:16px}}
@media(max-width:480px){.container{width:calc(100% - 28px)}.hero h1{font-size:42px}.hero-copy{font-size:14px}.section{padding:58px 0}.image-frame{height:300px}.property-gallery{height:265px;gap:4px}.property-gallery .gallery-side{gap:4px}.detail-heading h1{font-size:37px}.detail-actions{gap:0}.booking-card{padding:18px}.amenity-list{gap:12px}.review-grid{gap:18px}.corporate-note h3{font-size:23px}}
/* Movimiento sutil de la interfaz pública */
@media (prefers-reduced-motion: no-preference) {
  .detail-value-heading { display: block; }
  .detail-value-grid { display: grid; }
  .corporate-note { display: flex; }
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out); }
  .reveal.visible { opacity: 1; transform: translateY(0); }
  .hero-content { animation: hero-enter .9s ease both; }
  .hero-media { animation: hero-zoom 12s ease-out both; }
  .room-card, .intention-card, .amenity, .site-links-grid a { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
  .room-card:hover, .intention-card:hover { transform: translateY(-12px) scale(1.015); box-shadow: 0 18px 35px rgba(20,35,66,.16); }
  .room-card:hover .room-image img, .intention-card:hover img { transform: scale(1.04); }
  .room-image img, .intention-image img, .image-frame img { transition: transform .8s ease; }
  .button, .text-link, .icon-button { transition: transform .2s ease, background-color .2s ease, color .2s ease; }
  .button:hover, .icon-button:hover { transform: translateY(-2px); }
  .scroll-cue { animation: scroll-bounce 2.2s ease-in-out infinite; }
  @keyframes hero-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes hero-zoom { from { transform: scale(1.06); } to { transform: scale(1); } }
  @keyframes scroll-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(6px); } }
}
@media (prefers-reduced-motion: no-preference) and (max-width: 680px) {
  .corporate-note { display: block; }
}

/* Enlaces destacados: el borde se dibuja en sentido horario al pasar el cursor. */
.text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 7px;
  overflow: hidden;
  padding: 9px 12px;
  text-decoration: none;
}
.text-link:hover {
  color: var(--sage-dark);
  border-color: transparent;
}

/* Navegación principal: conserva el color y responde con elevación y subrayado. */
.main-nav > a:not(.nav-cta) {
  position: relative;
  display: inline-flex;
  color: inherit;
  transition: transform .2s ease;
}
.main-nav > a:not(.nav-cta)::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: -7px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.main-nav > a:not(.nav-cta):hover,
.main-nav > a:not(.nav-cta):focus-visible {
  color: inherit;
  transform: translateY(-3px);
}
.main-nav > a:not(.nav-cta):hover::after,
.main-nav > a:not(.nav-cta):focus-visible::after {
  transform: scaleX(1);
}

.footer-links a,
.footer-bottom a {
  position: relative;
  display: inline-flex;
  width: fit-content;
  color: inherit;
  transition: transform .2s ease;
}
.footer-links a::after,
.footer-bottom a::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: -4px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .2s ease;
}
.footer-links a:hover,
.footer-links a:focus-visible,
.footer-bottom a:hover,
.footer-bottom a:focus-visible {
  color: inherit;
  transform: translateY(-2px);
}
.footer-links a:hover::after,
.footer-links a:focus-visible::after,
.footer-bottom a:hover::after,
.footer-bottom a:focus-visible::after {
  transform: scaleX(1);
}

.site-links-grid a {
  transition: transform .2s ease, box-shadow .2s ease;
}
.site-links-grid a:hover,
.site-links-grid a:focus-visible {
  transform: translateY(-5px);
  box-shadow: 0 10px 24px rgba(20,35,66,.12);
}
.site-links-grid a:hover strong,
.site-links-grid a:focus-visible strong {
  color: inherit;
}

.main-nav > a.active:not(.nav-cta)::after { transform: scaleX(1); }
.whatsapp-float { position: fixed; right: 22px; bottom: 22px; z-index: 40; display: inline-flex; align-items: center; gap: 8px; padding: 11px 14px; border-radius: 999px; background: #1f9d62; color: #fff; font-size: 12px; font-weight: 700; box-shadow: 0 9px 22px rgba(20,35,66,.2); transition: transform .2s ease, box-shadow .2s ease; }
.whatsapp-float svg { width: 19px; height: 19px; fill: currentColor; }
.whatsapp-float:hover, .whatsapp-float:focus-visible { transform: translateY(-4px); box-shadow: 0 13px 28px rgba(20,35,66,.25); }
@media (max-width: 680px) { .whatsapp-float { right: 14px; bottom: 14px; padding: 12px; } .whatsapp-float span { display: none; } }

/* WhatsApp flotante: icono circular con etiqueta contextual. */
.whatsapp-float {
  width: 54px;
  height: 54px;
  justify-content: center;
  padding: 0;
  border-radius: 50%;
}
.whatsapp-float span {
  position: absolute;
  right: 64px;
  white-space: nowrap;
  padding: 8px 11px;
  border-radius: 5px;
  background: var(--ink);
  color: #fff;
  opacity: 0;
  pointer-events: none;
  transform: translateX(6px);
  transition: opacity .2s ease, transform .2s ease;
}
.whatsapp-float:hover span,
.whatsapp-float:focus-visible span {
  opacity: 1;
  transform: translateX(0);
}
@media (max-width: 680px) {
  .whatsapp-float { width: 50px; height: 50px; }
  .whatsapp-float span { display: none; }
}
.whatsapp-float { cursor: pointer; pointer-events: auto; }

.room-selector {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 22px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--paper);
}
.room-selector-label { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.room-selector-options { display: flex; gap: 7px; flex-wrap: wrap; }
.room-selector-options a { display: flex; align-items: baseline; gap: 7px; padding: 8px 11px; border: 1px solid transparent; border-radius: 6px; color: var(--muted); font-size: 12px; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.room-selector-options a small { font-size: 11px; }
.room-selector-options a:hover { border-color: var(--sage-dark); color: var(--sage-dark); transform: translateY(-2px); }
.room-selector-options a.active { border-color: var(--sage-dark); background: var(--sage-dark); color: var(--blanco); }

@media (max-width: 680px) {
  .container { width: calc(100% - 30px); }
  .announcement { min-height: 28px; padding: 0 15px; font-size: 8px; }
  .site-header { height: 68px; }
  .main-nav { top: 67px; }
  .hero { min-height: 600px; }
  .hero-content { padding: 65px 0 92px; }
  .hero h1 { font-size: clamp(40px, 12vw, 54px); }
  .home-page .booking-strip { padding: 24px 0; }
  .home-page .booking-inner { display: block; }
  .home-page .booking-intro { margin-bottom: 14px; }
  .home-page .booking-form { display: grid; gap: 10px; }
  .home-page .booking-form input,
  .home-page .booking-form select { width: 100%; min-height: 44px; }
  .home-page .booking-form button { width: 100%; min-height: 48px; }
  .booking-inner { gap: 15px; }
  .booking-form { box-shadow: 0 6px 18px rgba(20,35,66,.12); }
  .section { padding: 65px 0; }
  .room-selector { display: block; padding: 12px; }
  .room-selector-label { display: block; margin-bottom: 10px; }
  .room-selector-options { display: grid; grid-template-columns: repeat(3, 1fr); }
  .room-selector-options a { justify-content: center; padding: 9px 5px; font-size: 11px; }
  .room-selector-options a small { display: none; }
  .property-gallery { height: 275px; grid-template-columns: 1.55fr 1fr; gap: 5px; }
  .gallery-side { gap: 5px; }
  .gallery-last span { right: 8px; bottom: 8px; padding: 6px 8px; font-size: 11px; }
  .detail-heading h1 { font-size: 39px; }
  .detail-actions { justify-content: flex-start; }
  .booking-card { margin-top: 32px; }
  .footer-main, .footer-bottom { gap: 24px; }
}
.text-link::before,
.text-link::after {
  content: '';
  position: absolute;
  pointer-events: none;
  background: var(--wood);
}
.text-link::before {
  inset: 0 auto auto 0;
  width: 100%;
  height: 1px;
  transform: scaleX(0);
  transform-origin: left;
}
.text-link::after {
  inset: 0 0 auto auto;
  width: 1px;
  height: 100%;
  transform: scaleY(0);
  transform-origin: top;
}
.text-link:hover::before {
  animation: link-border-top .18s linear forwards;
}
.text-link:hover::after {
  animation: link-border-right .18s linear .18s forwards;
}
.text-link {
  background-image: linear-gradient(var(--wood), var(--wood)), linear-gradient(var(--wood), var(--wood));
  background-repeat: no-repeat;
  background-position: right bottom, left bottom;
  background-size: 1px 0, 0 1px;
}
.text-link:hover {
  animation: link-border-bottom-left .36s linear .36s forwards;
}
@keyframes link-border-top { to { transform: scaleX(1); } }
@keyframes link-border-right { to { transform: scaleY(1); } }
@keyframes link-border-bottom-left {
  0% { background-size: 1px 0, 0 1px; }
  50% { background-size: 1px 100%, 0 1px; }
  100% { background-size: 1px 100%, 100% 1px; }
}

/* Variante antihoraria rápida: arriba derecha → izquierda → abajo → derecha. */
.text-link::before {
  inset: 0 0 auto auto;
  transform-origin: right;
}
.text-link::after {
  inset: 0 auto auto 0;
  transform-origin: top;
}
.text-link:hover::before { animation: link-ccw-top .1s linear forwards; }
.text-link:hover::after { animation: link-ccw-left .1s linear .1s forwards; }
.text-link:hover { animation: link-ccw-bottom-right .2s linear .2s forwards; }
@keyframes link-ccw-top { to { transform: scaleX(1); } }
@keyframes link-ccw-left { to { transform: scaleY(1); } }
@keyframes link-ccw-bottom-right {
  0% { background-size: 1px 0, 0 1px; }
  50% { background-size: 1px 0, 100% 1px; }
  100% { background-size: 1px 100%, 100% 1px; }
}

/* Suaviza las esquinas de los controles sin convertirlos en píldoras. */
.button,
.text-link,
.nav-cta,
.checkout-button,
.icon-button,
button,
input[type='submit'],
input[type='button'] {
  border-radius: 5px;
}

/* Más profundidad y ritmo visual en la portada. */
.home-page .hero-content { max-width: 1180px; }
.home-page .hero .eyebrow { display: inline-flex; align-items: center; gap: 12px; }
.home-page .hero .eyebrow::before { content: ''; width: 30px; height: 1px; background: var(--naranja); }
.home-page .hero h1 { text-shadow: 0 8px 35px rgba(20,35,66,.22); }
.home-page .hero h1 em { color:inherit; }
.home-page .booking-strip { position: relative; z-index: 2; }
.home-page .welcome { background: linear-gradient(150deg, var(--blanco) 0%, var(--blanco-hospedaje) 75%); }
.home-page .welcome-copy h2::after,
.home-page .location-copy h2::after { content: ''; display: block; width: 58px; height: 3px; margin-top: 24px; background: var(--wood); }
.home-page .intention-section { background: linear-gradient(180deg, var(--azul-niebla), var(--blanco-hospedaje)); }
.home-page .intention-card,
.home-page .room-card { overflow: hidden; border: 1px solid var(--azul-cielo); box-shadow: 0 12px 30px rgba(20,35,66,.07); transition: box-shadow .25s ease, transform .25s ease; }
.home-page .intention-card:hover,
.home-page .room-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(20,35,66,.13); }
.home-page .room-tag { border-radius: 3px; box-shadow: 0 4px 12px rgba(20,35,66,.12); }
.home-page .value-section { background: radial-gradient(circle at 10% 15%, var(--azul-acero) 0, var(--azul-noche) 55%); }
.home-page .amenity { transition: background .2s ease; }
.home-page .amenity:hover { background: rgba(255,255,255,.07); }
.home-page .site-links-grid a { transition: background .2s ease; }
.home-page .site-links-grid a:hover { background: var(--blanco-hospedaje); }
@media (max-width: 680px) {
}
@media (prefers-reduced-motion: reduce) {
  .home-page .intention-card,
  .home-page .room-card,
  .home-page .site-links-grid a { transition: none; }
}
.booking-status:empty{display:none}
.booking-status{margin:10px 0 0;color:var(--naranja-texto);font-size:13px}

/* Galería adaptable al número real de fotos de cada habitación. */
.detail-page .property-gallery{position:relative;grid-template-columns:2fr 1fr 1fr;grid-template-rows:minmax(0,.92fr) minmax(0,1.08fr);transition:grid-template-columns .38s cubic-bezier(.22,.61,.36,1),grid-template-rows .38s cubic-bezier(.22,.61,.36,1)}
.detail-page .property-gallery.gallery-count-1{grid-template-columns:1fr}
.detail-page .property-gallery.gallery-count-2,
.detail-page .property-gallery.gallery-count-3{grid-template-columns:2fr 1fr}
.detail-page .property-gallery>.gallery-main{grid-column:1;grid-row:1/3}
.detail-page .property-gallery>.gallery-thumb{min-width:0;min-height:0}
.detail-page .property-gallery>button{transition:opacity .3s ease}
.detail-page .property-gallery>.gallery-thumb:nth-of-type(2){grid-column:2;grid-row:1}
.detail-page .gallery-count-2>.gallery-thumb:nth-of-type(2){grid-row:1/3}
.detail-page .property-gallery>.gallery-thumb:nth-of-type(3){grid-column:2;grid-row:2}
.detail-page .gallery-count-4>.gallery-thumb:nth-of-type(3){grid-column:3;grid-row:1}
.detail-page .gallery-count-4>.gallery-thumb:nth-of-type(4){grid-column:2/4;grid-row:2}
.detail-page .gallery-count-4>.gallery-thumb:nth-of-type(4) img,.detail-page .gallery-count-4>.gallery-thumb:nth-of-type(4) video{object-position:center;object-fit:cover}
@media(hover:hover) and (pointer:fine) and (min-width:681px){
  .detail-page .gallery-count-4:has(>.gallery-main:hover),
  .detail-page .gallery-count-4:has(>.gallery-main:focus-visible){grid-template-columns:2.8fr .7fr .7fr}
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(2):hover),
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(2):focus-visible){grid-template-columns:1.45fr 1.8fr .75fr;grid-template-rows:minmax(0,1.38fr) minmax(0,.62fr)}
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(3):hover),
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(3):focus-visible){grid-template-columns:1.45fr .75fr 1.8fr;grid-template-rows:minmax(0,1.38fr) minmax(0,.62fr)}
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(4):hover),
  .detail-page .gallery-count-4:has(>.gallery-thumb:nth-of-type(4):focus-visible){grid-template-columns:1.45fr 1fr 1fr;grid-template-rows:minmax(0,.52fr) minmax(0,1.48fr)}
  .detail-page .gallery-count-4:has(>button:hover)>button:not(:hover){opacity:.88}
}
.detail-page .gallery-open-count{position:absolute;right:12px;bottom:12px;padding:8px 11px;border-radius:9px;background:rgba(255,255,255,.94);color:var(--ink);font-size:11px;font-weight:700;box-shadow:0 4px 12px rgba(20,35,66,.15)}
.gallery-modal{grid-template-columns:56px minmax(0,1fr) 56px;grid-template-rows:minmax(0,1fr) auto;gap:8px 12px;padding:56px clamp(14px,5vw,72px) 28px}
.gallery-modal #modalImage{grid-column:2;grid-row:1;justify-self:center;align-self:center;max-width:100%;max-height:calc(100dvh - 125px)}
.detail-page .property-gallery img,.detail-page .property-gallery video{display:block;width:100%;height:100%;object-fit:cover}.gallery-play{position:absolute;inset:50% auto auto 50%;display:grid;width:46px;height:46px;place-items:center;transform:translate(-50%,-50%);border-radius:50%;background:rgba(20,35,66,.62);color:var(--blanco);font-size:17px;pointer-events:none}.gallery-modal #modalVideo{grid-column:2;grid-row:1;justify-self:center;align-self:center;width:auto;height:auto;max-width:100%;max-height:calc(100dvh - 125px);object-fit:contain;background:var(--azul-noche)}.gallery-modal [hidden]{display:none}
.gallery-prev,.gallery-next{grid-row:1;align-self:center;width:48px;height:48px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(255,255,255,.12);color:var(--blanco);font-size:34px;line-height:1}
.gallery-prev{grid-column:1}.gallery-next{grid-column:3}
.gallery-prev:hover,.gallery-next:hover,.gallery-prev:focus-visible,.gallery-next:focus-visible{background:rgba(255,255,255,.25)}
.gallery-counter{grid-column:2;grid-row:2;justify-self:center;color:var(--blanco);font-size:12px}
@media(max-width:680px){
  .detail-page .property-gallery{grid-template-columns:1.5fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr))}
  .detail-page .property-gallery.gallery-count-1{grid-template-columns:1fr}
  .detail-page .property-gallery>.gallery-thumb:nth-of-type(n+3){display:none}
  .detail-page .property-gallery>.gallery-thumb:nth-of-type(2){grid-column:2;grid-row:1/3}
  .gallery-modal{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px;padding:56px 8px 24px}
  .gallery-prev,.gallery-next{width:36px;height:36px;font-size:28px}
  .gallery-modal #modalImage{max-height:calc(100dvh - 110px)}
}

/* Detalles de la portada; el hero ocupa todo el ancho sin esquinas redondeadas. */
.home-page .hero{min-height:clamp(0px,calc(100svh - 128px),760px);align-items:flex-start}
.home-page .hero-content{padding-top:clamp(32px,min(5svh,5vw),72px);padding-bottom:clamp(52px,min(8svh,7vw),100px)}
.home-page .hero h1{max-width:700px}
.home-page .hero-copy{max-width:510px;line-height:1.65}
.home-page .hero-actions .button{border-radius:11px;min-height:49px;box-shadow:0 8px 22px rgba(20,35,66,.15)}
.home-page .hero-actions .button-ghost{box-shadow:none;backdrop-filter:blur(4px)}
.home-page .hero-actions .button:focus-visible{outline:3px solid var(--blanco);outline-offset:3px}
.home-page .room-card{border-radius:18px}
.home-page .room-card .room-image{border-radius:17px 17px 0 0}

/* Fotografías con recortes coherentes y profundidad suave. */
.home-page .hero-media{background-image:url('../fotos/hero-portada-1280.webp');background-position:center 54%}@media(max-width:800px){.home-page .hero-media{background-image:url('../fotos/hero-portada-800.webp')}}@media(min-width:1400px){.home-page .hero-media{background-image:url('../fotos/hero-portada-1920.webp')}}
.home-page .hero-shade{background:radial-gradient(circle at 77% 35%,rgba(255,214,199,.12),transparent 34%),linear-gradient(90deg,rgba(20,35,66,.88) 0%,rgba(20,35,66,.58) 46%,rgba(20,35,66,.19) 100%)}
.home-page .split-welcome .image-frame{border-radius:24px;box-shadow:0 22px 48px rgba(20,35,66,.15)}
.home-page .split-welcome .image-frame::after{border-radius:15px}
.home-page .split-welcome .image-frame img{object-position:center 48%}
.home-page .intention-card{border-radius:20px}
.home-page .intention-card .intention-image img{object-position:center 48%}
.home-page .room-image img{object-position:center 50%}
.home-page .room-card:hover .room-image img,.home-page .intention-card:hover .intention-image img{transform:scale(1.055)}
.home-page .map-card{border-radius:22px;overflow:hidden}
.home-page .amenity{border-radius:15px}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  .home-page .split-welcome .image-frame img{transition:transform .75s cubic-bezier(.22,.61,.36,1)}
  .home-page .split-welcome .image-frame:hover img{transform:scale(1.035)}
}
@media (prefers-reduced-motion:no-preference){
  html.motion-ready .home-page .motion-card{opacity:0;transform:translateY(24px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out),box-shadow .25s ease}
  html.motion-ready .home-page .motion-card.visible{opacity:1;transform:none}
  html.motion-ready .home-page .motion-card.visible:hover{transform:translateY(-5px)}
  .home-page .intention-card:nth-child(2),.home-page .room-card:nth-of-type(2){transition-delay:.1s}
  .home-page .room-card:nth-of-type(3){transition-delay:.18s}
}
@media(max-width:680px){
  .home-page .hero{min-height:0}
  .home-page .hero-content{padding-top:clamp(30px,5svh,58px);padding-bottom:clamp(48px,7svh,78px)}
  .home-page .hero-actions{flex-direction:column;align-items:stretch;gap:10px}
  .home-page .hero-actions .button{width:100%}
  .home-page .scroll-cue{display:none}
  .home-page .room-card{border-radius:15px}
  .home-page .room-card .room-image{border-radius:14px 14px 0 0}
  .home-page .split-welcome .image-frame{border-radius:18px;box-shadow:0 15px 32px rgba(20,35,66,.13)}
  .home-page .intention-card,.home-page .map-card{border-radius:16px}
}
@media(max-height:650px) and (min-width:681px){
  .home-page .hero-content{padding-top:28px;padding-bottom:44px}
}

/* Beneficios: aparición escalonada y respuesta al cursor. */
.home-page .amenities-grid{gap:8px;border:0;background:transparent}
.home-page .amenities-grid .amenity{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.035);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.home-page .amenities-grid .amenity::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(130deg,rgba(255,255,255,.13),rgba(255,255,255,0) 65%);opacity:0;transition:opacity .3s ease}
.home-page .amenities-grid .amenity-icon{transition:transform .35s ease,background .3s ease,border-color .3s ease,box-shadow .3s ease}
.home-page .amenities-grid .amenity-icon svg{width:21px;height:21px;display:block}
@media (hover:hover){
  .home-page .amenities-grid .amenity:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.55);box-shadow:0 16px 30px rgba(20,35,66,.2)}
  .home-page .amenities-grid .amenity:hover::before{opacity:1}
  .home-page .amenities-grid .amenity:hover .amenity-icon{transform:rotate(-12deg) scale(1.13);background:rgba(255,255,255,.15);border-color:var(--naranja-suave);box-shadow:0 0 0 7px rgba(255,255,255,.06)}
}
@media (prefers-reduced-motion:no-preference){
  html.motion-ready .home-page .amenities-grid .amenity.motion-card{transition:opacity .65s ease,transform .65s cubic-bezier(.22,.61,.36,1),background .25s ease,border-color .25s ease,box-shadow .25s ease}
  .home-page .amenities-grid .amenity:nth-child(2){transition-delay:.09s}
  .home-page .amenities-grid .amenity:nth-child(3){transition-delay:.18s}
  .home-page .amenities-grid .amenity:nth-child(4){transition-delay:.27s}
  html.motion-ready .home-page .amenities-grid .amenity.motion-card.visible:hover{transform:translateY(-7px)}
}
@media (prefers-reduced-motion:reduce){
  .home-page .amenities-grid .amenity,.home-page .amenities-grid .amenity::before,.home-page .amenities-grid .amenity-icon{transition:none}
}

/* Movimiento breve y localizado; el contenido permanece visible con movimiento reducido. */
@media (prefers-reduced-motion:no-preference){
  .reveal{transition-duration:.55s;transform:translateY(18px);transition-timing-function:var(--ease-out)}
  .hero-content{animation-duration:.55s}
  .hero-media{animation-duration:1.2s}
  .scroll-cue{animation:none}
  html.motion-ready .home-page .motion-card{transition-duration:.5s,.5s,.2s}
  html.motion-ready .home-page .amenities-grid .amenity.motion-card{transition-duration:.5s,.5s,.2s,.2s,.2s}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal.visible,.motion-card,.motion-card.visible{opacity:1;transform:none;animation:none;transition:none}
  .hero-content,.hero-media,.scroll-cue{animation:none;transform:none}
  .room-card,.intention-card,.amenity,.site-links-grid a,.room-image img,.intention-image img,.image-frame img,.button,.text-link,.icon-button,.whatsapp-float{animation:none;transition:none}
  .room-card:hover,.intention-card:hover,.button:hover,.icon-button:hover,.whatsapp-float:hover{transform:none}
}

/* Información Hogaresa: misma entrada por tarjetas, sin cambiar su color. */
.home-page .site-links-grid{gap:8px;border:0;background:transparent}
.home-page .site-links-grid a{border:1px solid var(--line);border-radius:15px;padding:22px 20px;box-shadow:0 5px 16px rgba(20,35,66,.04)}
.home-page .site-links-grid a:hover{background:var(--blanco)}
.home-page .site-links-grid a:hover strong{color:inherit}
.home-page .site-links-grid a:focus-visible{outline:3px solid var(--wood);outline-offset:3px}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  html.motion-ready .home-page .site-links-grid a.motion-card.visible:hover{transform:translateY(-7px);box-shadow:0 16px 30px rgba(20,35,66,.13)}
}
@media (prefers-reduced-motion:no-preference){
  html.motion-ready .home-page .site-links-grid a.motion-card{transition:opacity .5s ease,transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .2s ease}
  .home-page .site-links-grid a:nth-child(2){transition-delay:.09s}
  .home-page .site-links-grid a:nth-child(3){transition-delay:.18s}
  .home-page .site-links-grid a:nth-child(4){transition-delay:.27s}
}
@media (prefers-reduced-motion:reduce){
  .home-page .site-links-grid a,.home-page .site-links-grid a:hover{transition:none;transform:none;box-shadow:0 5px 16px rgba(20,35,66,.04)}
}
@media(max-width:680px){
  .home-page .site-links-grid a,.home-page .site-links-grid a:hover{padding:17px 14px}
}

/* Tarjetas de información con más aire y una señal visual clara al interactuar. */
.home-page .site-links-section{padding:72px 0 78px}
.home-page .site-links-section .eyebrow{margin-bottom:24px}
.home-page .site-links-grid{gap:18px}
.home-page .site-links-grid a,.home-page .site-links-grid a:hover{position:relative;min-height:170px;padding:23px 22px 22px;border:1px solid var(--azul-cielo);border-radius:19px;background:var(--blanco);box-shadow:0 10px 24px rgba(20,35,66,.07)}
.home-page .site-links-grid a::before{content:"";position:absolute;top:0;left:22px;width:40px;height:4px;border-radius:0 0 6px 6px;background:var(--wood)}
.home-page .site-links-grid .site-link-number{display:block;color:var(--gris-linea);font:600 13px var(--sans);letter-spacing:.12em;margin-bottom:16px}
.home-page .site-links-grid strong{font-size:19px;line-height:1.16;max-width:190px}
.home-page .site-links-grid .site-link-copy{max-width:185px;line-height:1.5;margin-top:2px}
.home-page .site-links-grid .site-link-arrow{position:absolute;right:22px;bottom:20px;display:grid;place-items:center;width:33px;height:33px;border:1px solid var(--azul-cielo);border-radius:50%;font-size:17px;color:var(--ink)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  html.motion-ready .home-page .site-links-grid a.motion-card.visible:hover{transform:translateY(-11px);box-shadow:0 23px 40px rgba(20,35,66,.16)}
  .home-page .site-links-grid a:hover .site-link-arrow{transform:translate(2px,-2px)}
}
@media (prefers-reduced-motion:no-preference){
  .home-page .site-links-grid .site-link-arrow{transition:transform .2s ease}
}
@media(max-width:900px){
  .home-page .site-links-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .home-page .site-links-section{padding:58px 0 64px}
  .home-page .site-links-grid{gap:13px}
  .home-page .site-links-grid a,.home-page .site-links-grid a:hover{min-height:155px;padding:20px 18px 20px;border-radius:17px}
  .home-page .site-links-grid strong{font-size:18px}
  .home-page .site-links-grid .site-link-number{margin-bottom:12px}
  .home-page .site-links-grid .site-link-arrow{right:17px;bottom:17px}
}
@media(max-width:440px){
  .home-page .site-links-grid{grid-template-columns:1fr}
  .home-page .site-links-grid a,.home-page .site-links-grid a:hover{min-height:140px}
  .home-page .site-links-grid .site-link-number{margin-bottom:13px}
}

/* En pantallas táctiles, la acción de cada habitación ocupa todo el ancho útil. */
@media (max-width:680px), (pointer:coarse){
  .room-card{padding-bottom:17px}
  .room-card>.room-link,.room-card>.room-link:hover{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 34px);min-height:50px;margin:18px 17px 0;padding:11px 16px;border:1px solid var(--ink);border-radius:11px;background:var(--ink);color:var(--blanco);box-sizing:border-box}
  .room-card>.room-link span{margin-left:auto;font-size:18px;line-height:1}
  .room-card>.room-link::before,.room-card>.room-link::after{display:none}
  .room-card>.room-link:hover{animation:none}
  .room-card>.room-link:focus-visible,.room-card>a:first-child:focus-visible{outline:3px solid var(--wood);outline-offset:3px}
}
@media (hover:none){
  .room-card:hover,.home-page .room-card:hover{transform:none;box-shadow:0 12px 30px rgba(20,35,66,.07)}
  .room-card:hover .room-image img,.home-page .room-card:hover .room-image img{transform:none}
}

.home-page .room-card{display:flex;flex-direction:column}
.home-page .room-card>a:first-child{display:flex;flex:1;flex-direction:column}
.home-page .room-card .room-info{min-height:74px}
.home-page .room-card>a:first-child>p{min-height:72px}
.home-page .room-card .room-meta{min-height:42px}
.home-page .booking-form input:focus-visible,
.home-page .booking-form select:focus-visible,
.home-page .button:focus-visible,
.home-page .nav-cta:focus-visible,
.home-page .room-selector-options a:focus-visible {
  outline:3px solid var(--wood);
  outline-offset:3px;
}



/* ===========================================================================
   AJUSTES DE COMPOSICIÓN
   Todo lo de abajo ataca una sola cosa: que la portada se sienta menos
   cuadrada. No cambia tipografías ni colores, solo ritmo, proporción y
   consistencia. Bloque autocontenido: borrarlo devuelve el estado anterior.
   =========================================================================== */

/* --- 1. Un solo sistema de radios ------------------------------------------
   La portada usaba 15, 17, 18, 19, 20, 22 y 24px para elementos del mismo
   rango. Siete valores no se leen como suavidad, se leen como descuido. */
:root { --r-sm: 4px; --r-md: 10px; --r-lg: 20px; }

.home-page .room-card,
.home-page .intention-card,
.home-page .map-card,
.home-page .amenity,
.home-page .site-links-grid a,
.home-page .split-welcome .image-frame { border-radius: var(--r-lg); }

.home-page .room-card .room-image { border-radius: var(--r-lg) var(--r-lg) 0 0; }
.home-page .split-welcome .image-frame::after { border-radius: var(--r-lg); }

/* --- 2. Ritmo vertical variable --------------------------------------------
   Antes todas las secciones tenían el mismo padding, así que el ojo recorría
   ocho bloques idénticos. Ahora las secciones que abren una idea respiran
   más, y las que continúan una idea van pegadas a la anterior: eso agrupa.
   clamp() resuelve el responsive sin duplicar breakpoints. */
.home-page .welcome           { padding-block: clamp(62px, 9vw, 130px) clamp(44px, 6vw, 84px); }
.home-page .intention-section { padding-block: clamp(40px, 5vw, 74px) clamp(46px, 6vw, 88px); }
.home-page .rooms-section     { padding-block: clamp(66px, 10vw, 146px); }
.home-page .value-section     { padding-block: clamp(58px, 8vw, 118px); }
.home-page .location-section  { padding-block: clamp(58px, 8vw, 116px) clamp(44px, 6vw, 82px); }
.home-page .site-links-section{ padding-block: clamp(34px, 4vw, 62px) clamp(46px, 6vw, 88px); }

/* --- 3. Proporción: que algo mande -----------------------------------------
   1.2fr .9fr .9fr es casi simétrico: tres cartas compitiendo. La primera
   habitación pasa a dominar de verdad. */
.home-page .rooms-grid { grid-template-columns: 1.65fr 1fr 1fr; gap: 26px; }

/* Las dos tarjetas de "¿Qué te trae a Cusco?" pesan lo mismo, así que no se
   les cambia el ancho: se desfasa la segunda. Rompe la línea recta sin
   inventar una jerarquía que no existe. */
.home-page .intention-grid > *:nth-child(2) { margin-top: clamp(20px, 3vw, 52px); }

@media (max-width: 900px) {
  .home-page .rooms-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 680px) {
  .home-page .rooms-grid { grid-template-columns: 1fr; }
  .home-page .intention-grid > *:nth-child(2) { margin-top: 0; }
}

/* --- 4. Que no todo viva en la misma caja ----------------------------------
   Todas las secciones compartían un contenedor de 1180px centrado, así que
   el sitio era el mismo rectángulo ocho veces. La sección de habitaciones,
   que es la que vende, se sale un poco de esa columna. */
.home-page .rooms-section > .container { width: min(calc(100% - 64px), 1280px); }
@media (max-width: 680px) {
  .home-page .rooms-section > .container { width: min(calc(100% - 38px), 1280px); }
}

/* --- 5. Texto mínimo legible -----------------------------------------------
   Había texto de 8 y 9px. En un celular al sol eso no se lee. */
.announcement,
.booking-form label span,
.detail-booking-form label,
.gallery-last span { font-size: 11px; }

/* --- 6. Tarjetas de habitación ---------------------------------------------
   El hueco muerto entre los servicios y el botón venía de tres min-height
   apilados (74px en el encabezado, 72px en la descripción, 42px en los
   servicios) puestos para igualar las tarjetas a la fuerza. Si el texto es
   corto, ese espacio reservado queda vacío. Se quitan y se igualan por donde
   corresponde: recortando la descripción a dos líneas. */
.home-page .room-card .room-info,
.home-page .room-card .room-meta,
.home-page .room-card > a:first-child > p { min-height: 0; }

.home-page .room-card > a:first-child > p {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; margin: 10px 0 16px; line-height: 1.55;
}

/* Los servicios quedan pegados abajo, así el aire sobrante se reparte en el
   bloque de texto y no en un agujero en mitad de la tarjeta. */
.home-page .room-card .room-meta { margin-top: auto; padding-bottom: 2px; }
.home-page .room-card .room-meta span { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; }

/* La navegación pasa al menú antes de que el enlace de viajes de trabajo la comprima. */
@media (min-width: 681px) and (max-width: 980px) {
  .menu-toggle { display: block; }
  .main-nav {
    position: absolute; display: none; top: 83px; left: 0; right: 0;
    padding: 18px max(32px, calc((100vw - 1180px) / 2)) 22px;
    background: var(--ink); border-bottom: 1px solid var(--line);
    box-shadow: 0 10px 20px rgba(30,53,94,.09);
    flex-direction: column; align-items: stretch; gap: 0;
  }
  .main-nav.open { display: flex; }
  .main-nav > a { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
  .main-nav .nav-cta { margin-top: 10px; text-align: center; }
}
.home-page .room-card .room-meta span + span::before {
  content: ""; width: 3px; height: 3px; border-radius: 50%;
  background: currentColor; opacity: .45; margin-right: 3px;
}

/* El precio ocupa el lugar que antes tenía el número de huéspedes suelto. */
.home-page .room-card .room-price {
  display: grid; justify-items: end; gap: 1px; align-content: start;
  font:700 19px var(--sans); line-height: 1.1; white-space: nowrap;font-variant-numeric:lining-nums tabular-nums}
.home-page .room-card .room-price small {
  display: block; color: var(--muted);
  font: 600 11px var(--sans); letter-spacing: .08em; text-transform: uppercase;
}
.nav-actions { display: none; }
@media (max-width: 980px) {
  .nav-actions { display: flex; align-items: center; gap: 12px; }
  .mobile-book-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 9px 15px; border-radius: 3px; background: var(--wood); color: var(--azul-noche); font-size: 12px; font-weight: 700; }
  .mobile-book-cta:focus-visible { outline: 2px solid var(--blanco); outline-offset: 3px; }
  .main-nav { top: 100%; }
  .main-nav .nav-cta { display: none; }
}
@media (max-width: 680px) {
  .nav-actions { gap: 7px; }
  .brand-logo { width: clamp(116px, 34vw, 165px); max-width: none; }
  .mobile-book-cta { min-height: 38px; padding: 8px 11px; }
}

/* Header público: una superficie tranquila que deja destacar el logo y la reserva. */
.site-header {
  background: rgba(20,35,66,.92);
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  backdrop-filter: blur(10px);
  transition: background-color .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.site-header.is-scrolled {
  background: rgba(20,35,66,.88);
  border-bottom-color: rgba(255, 255, 255, .08);
  box-shadow: 0 12px 30px rgba(20,35,66,.18);
  backdrop-filter: blur(12px);
}
.site-header .brand-logo { transition: opacity .2s ease; }
.site-header .brand:hover .brand-logo { opacity: .84; }
.site-header .main-nav { color: var(--azul-niebla); }
.site-header .main-nav > a:not(.nav-cta)::after {
  height: 2px;
  bottom: -9px;
  background: var(--naranja);
}
.site-header .main-nav > a:not(.nav-cta):hover,
.site-header .main-nav > a:not(.nav-cta):focus-visible {
  color: var(--blanco);
  transform: none;
}
.site-header .nav-cta,
.site-header .mobile-book-cta {
  background: var(--naranja);
  color: var(--azul-noche);
  font-weight: 750;
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.site-header .nav-cta:hover,
.site-header .mobile-book-cta:hover {
  background: var(--naranja);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(255,79,18,.22);
}
.site-header a:focus-visible,
.site-header button:focus-visible { outline: 2px solid var(--naranja); outline-offset: 4px; }
.site-header .menu-toggle { border-radius: 5px; transition: background-color .2s ease; }
.site-header .menu-toggle:hover,
.site-header .menu-toggle[aria-expanded="true"] { background: rgba(255, 255, 255, .1); }
@media (max-width: 980px) {
  .site-header .main-nav { background: var(--azul-noche); }
  .site-header .main-nav.open { animation: header-menu-in .2s ease-out both; }
  .site-header .main-nav > a:not(.nav-cta)::after { bottom: 5px; }
}
@keyframes header-menu-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header, .site-header *, .site-header .main-nav.open { animation: none; transition: none; }
}

/* Buscador del home: menos altura en móvil sin reducir el área táctil. */
@media (max-width: 680px) {
  .home-page .booking-strip { padding: 16px 0; }
  .home-page .booking-intro { margin-bottom: 10px; }
  .home-page .booking-form { gap: 8px; }
  .home-page .booking-form label { min-width: 0; padding: 8px 12px; }
  .home-page .booking-form input,
  .home-page .booking-form select { min-width: 0; min-height: 42px; font-size: 16px; }
  .home-page .booking-form button { min-height: 46px; }
}
@media (min-width: 360px) and (max-width: 680px) {
  .home-page .booking-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-page .booking-form label:first-child,
  .home-page .booking-form label:nth-child(4),
  .home-page .booking-form button { grid-column: 1 / -1; }
}

/* Bienvenida breve: deja visibles las habitaciones antes en la página. */
.home-page .welcome { padding-block: clamp(48px, 6vw, 82px) clamp(40px, 5vw, 68px); }
.home-page .split-welcome .image-frame { height: clamp(350px, 38vw, 470px); }
@media (max-width: 680px) {
  .home-page .split-welcome .image-frame { height: 340px; }
}
@media (prefers-reduced-motion: no-preference) {
  html.motion-ready .home-page .welcome.reveal { opacity: 1; transform: none; transition: none; }
  html.motion-ready .home-page .welcome .image-frame,
  html.motion-ready .home-page .welcome .welcome-copy {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 600ms var(--ease-out), transform 600ms var(--ease-out);
  }
  html.motion-ready .home-page .welcome .welcome-copy { transition-delay: .12s; }
  html.motion-ready .home-page .welcome.visible .image-frame,
  html.motion-ready .home-page .welcome.visible .welcome-copy { opacity: 1; transform: none; }
}
.home-page .room-card .room-info { align-items: baseline; gap: 14px; }
.home-page .room-card .room-info h3 { line-height: 1.15; }

/* Todas las habitaciones tienen el mismo peso para facilitar la comparación. */
.home-page .rooms-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.home-page .room-card .room-image { height: clamp(230px, 24vw, 300px); }
@media (max-width: 900px) {
  .home-page .rooms-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.home-page .room-card:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; width: min(100%, 580px); justify-self: center; }
@media (max-width: 680px) {
  .home-page .rooms-grid { grid-template-columns: 1fr; }
  .home-page .room-card:last-of-type:nth-of-type(odd) { grid-column: auto; width: 100%; }
}

/* --- 7. Aire interior de la tarjeta ----------------------------------------
   Dos problemas. Uno: la descripción se quedaba sin padding porque la regla
   que lo daba era `.room-card > p`, y el <p> cuelga del enlace, no de la
   tarjeta, así que el selector nunca la alcanzaba y el texto arrancaba más a
   la izquierda que el título. Dos: 19px de margen lateral es poco para una
   tarjeta de este ancho. Un solo valor para todo el contenido. */
.home-page .room-card { --card-pad: 26px; }

.home-page .room-card .room-info,
.home-page .room-card > a:first-child > p,
.home-page .room-card .room-meta { padding-inline: var(--card-pad); }

.home-page .room-card .room-info { padding-top: 24px; }
.home-page .room-card > .room-link {
  width: calc(100% - (var(--card-pad) * 2));
  margin-inline: var(--card-pad);
}
.home-page .room-card { padding-bottom: var(--card-pad); }
.home-page .room-card:focus-within { border-color: var(--naranja); box-shadow: 0 16px 32px rgba(20,35,66,.12); }
.home-page .room-card .room-link span { display: inline-block; transition: transform .2s ease; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .home-page .room-card .room-link:hover span { transform: translateX(4px); }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .room-card .room-link span { transition: none; }
}

@media (max-width: 680px) {
  .home-page .room-card { --card-pad: 22px; }
}

/* --- 8. Ficha de habitación: aire antes del pie ----------------------------
   .detail-layout solo tenía padding-top. La sección que venía después
   (.detail-value-section) está oculta con display:none, así que esta pasó a
   ser la última visible y quedaba pegada al pie: el sidebar de reserva
   terminaba justo donde empieza el azul. */
.detail-page .detail-layout { padding-bottom: clamp(56px, 7vw, 104px); }

/* La tarjeta de reserva es sticky; sin este respiro se pega al pie al final
   del scroll. */
.detail-page .booking-card { margin-bottom: 8px; }

/* La última condición dejaba una línea colgando sin nada debajo. */
.detail-page .policies > div:last-child { border-bottom: 0; }

/* Una transición apenas visible entre fondos, sin cambiar la altura de las secciones. */
.home-page { --section-blend: clamp(6px, .7vw, 10px); }
.home-page .reveal { opacity: 1; transform: none; transition: none; }
.home-page .booking-strip { box-shadow: inset 0 5px 8px -8px rgba(20,35,66,.1); }
.home-page .booking-form { grid-template-columns: minmax(145px,1.3fr) repeat(2,minmax(110px,1fr)) minmax(75px,.6fr) minmax(110px,.9fr) auto; }
@media (max-width: 950px) { .home-page .booking-inner { display: grid; grid-template-columns: 1fr; gap: 12px; } }
@media (min-width: 681px) and (max-width: 760px) {
  .home-page .booking-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-page .booking-form label:first-child, .home-page .booking-form label:nth-child(4), .home-page .booking-form button { grid-column: 1 / -1; }
}
@media (min-width: 360px) and (max-width: 680px) { .home-page .booking-form { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 359px) { .home-page .booking-form { grid-template-columns: 1fr; } }
.home-page .welcome { background: linear-gradient(180deg, var(--azul-niebla) 0, transparent var(--section-blend)), linear-gradient(150deg, var(--blanco) 0%, var(--blanco-hospedaje) 75%); }
.home-page .rooms-section { background: linear-gradient(180deg, var(--blanco) 0, var(--blanco-hospedaje) var(--section-blend)); }
.home-page .value-section { background: linear-gradient(180deg, var(--blanco-hospedaje) 0, transparent var(--section-blend)), radial-gradient(circle at 10% 15%, var(--azul-acero) 0, var(--azul-noche) 55%); }

/* La luz recorre cada CTA al pasar el cursor, sin mover su contenido. */
.home-page .hero-actions .button,
.home-page .booking-strip .button-dark {
  background-image: linear-gradient(rgba(255, 255, 255, .15), rgba(255, 255, 255, .15));
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size .32s cubic-bezier(.22, .61, .36, 1), background-color .22s ease, border-color .22s ease, color .22s ease, box-shadow .22s ease;
}
.home-page .site-header .nav-cta,
.home-page .site-header .mobile-book-cta {
  background-image: linear-gradient(rgba(255, 255, 255, .2), rgba(255, 255, 255, .2));
  background-repeat: no-repeat;
  background-size: 0% 100%;
  transition: background-size .32s cubic-bezier(.22, .61, .36, 1), background-color .22s ease, transform .22s ease, box-shadow .22s ease;
}
.home-page .hero-actions .button span,
.home-page .booking-strip .button-dark span {
  display: inline-block;
  transition: transform .22s ease;
}
.home-page .room-card .room-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 46px;
  padding: 11px 16px;
  border: 1px solid var(--gris-linea);
  border-radius: 10px;
  background-color: var(--azul-niebla);
  background-image: linear-gradient(var(--azul-acero), var(--azul-acero));
  background-repeat: no-repeat;
  background-size: 0% 100%;
  color: var(--azul-noche);
  animation: none;
  transition: background-size .32s cubic-bezier(.22, .61, .36, 1), color .3s ease, border-color .3s ease;
}
.home-page .room-card .room-link::before,
.home-page .room-card .room-link::after { display: none; }

/* Acciones secundarias: el subrayado aparece sin repetir el relleno de los CTA. */
.home-page .hero-actions .button-ghost {
  position: relative;
  overflow: hidden;
  background-image: none;
}
.home-page .hero-actions .button-ghost::after {
  content: '';
  position: absolute;
  left: 17px;
  right: 17px;
  bottom: 8px;
  height: 1px;
  background: var(--blanco);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s cubic-bezier(.22, .61, .36, 1);
}
.home-page .welcome .text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 0;
  background-image: none;
  animation: none;
  transition: color .25s ease;
}
.home-page .welcome .text-link::before {
  content: '';
  position: absolute;
  inset: auto 0 0;
  width: auto;
  height: 2px;
  background: var(--naranja);
  transform: scaleX(.24);
  transform-origin: left;
  animation: none;
  transition: transform .32s cubic-bezier(.22, .61, .36, 1);
}
.home-page .welcome .text-link::after { display: none; }
.home-page .welcome .text-link span { display: inline-block; margin-left: 0; transition: transform .28s ease; }
@media (hover: hover) {
  .home-page .hero-actions .button:hover,
  .home-page .booking-strip .button-dark:hover,
  .home-page .site-header .nav-cta:hover,
  .home-page .site-header .mobile-book-cta:hover,
  .home-page .room-card .room-link:hover { background-size: 100% 100%; }
  .home-page .hero-actions .button-primary:hover { background-color: var(--blanco); box-shadow: 0 10px 24px rgba(20,35,66,.19); }
  .home-page .hero-actions .button-ghost:hover { background-color: rgba(255, 255, 255, .13); border-color: var(--blanco); }
  .home-page .booking-strip .button-dark:hover { background-color: var(--azul-acero); }
  .home-page .room-card .room-link:hover { color: var(--blanco); border-color: var(--azul-acero); }
  .home-page .hero-actions .button:hover span,
  .home-page .booking-strip .button-dark:hover span { transform: translate(3px, -3px); }
  .home-page .hero-actions .button-ghost:hover::after,
  .home-page .hero-actions .button-ghost:focus-visible::after { transform: scaleX(1); }
  .home-page .welcome .text-link:hover { color: var(--naranja-texto); animation: none; }
  .home-page .welcome .text-link:hover::before { transform: scaleX(1); animation: none; }
  .home-page .welcome .text-link:hover span { transform: translate(4px, -3px); }
}
.home-page .welcome .text-link:focus-visible { color: var(--naranja-texto); animation: none; }
.home-page .welcome .text-link:focus-visible::before { transform: scaleX(1); animation: none; }
@media (max-width: 680px), (pointer: coarse) {
  .home-page .room-card > .room-link:active { background: var(--azul-cielo); }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .hero-actions .button,
  .home-page .hero-actions .button span,
  .home-page .booking-strip .button-dark,
  .home-page .booking-strip .button-dark span,
  .home-page .site-header .nav-cta,
  .home-page .site-header .mobile-book-cta,
  .home-page .room-card .room-link,
  .home-page .hero-actions .button-ghost::after,
  .home-page .welcome .text-link,
  .home-page .welcome .text-link::before,
  .home-page .welcome .text-link span { transition: none; }
}

/* Menú lateral público en tablet y móvil. */
.drawer-intro,
.drawer-bottom,
.menu-backdrop { display: none; }

@media (max-width: 980px) {
  body.menu-open { overflow: clip; }
  .menu-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    z-index: 19;
    width: 100%;
    border: 0;
    background: rgba(20,35,66,.58);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 200ms var(--ease-out), visibility 200ms;
  }
  body.menu-open .menu-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .site-header .main-nav,
  .site-header .main-nav.open {
    position: fixed;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    top: 118px;
    right: 0;
    left: auto;
    width: min(420px, 100vw);
    height: calc(100dvh - 118px);
    min-height: 0;
    padding: clamp(26px, 5vh, 48px) clamp(24px, 5vw, 42px) max(26px, env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, .13);
    box-shadow: -22px 28px 60px rgba(20,35,66,.24);
    background: var(--azul-noche);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    clip-path: inset(0 0 0 100%);
    animation: none;
    transition: clip-path 240ms var(--ease-drawer), opacity 180ms var(--ease-out), visibility 240ms;
  }
  .site-header .main-nav.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    clip-path: inset(0);
  }
  .drawer-intro { display: grid; gap: 9px; margin-bottom: clamp(24px, 4vh, 38px); }
  .drawer-intro span,
  .drawer-social > span {
    color: var(--naranja-texto);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
  }
  .drawer-intro strong {
    max-width: 12ch;
    color: var(--blanco);
    font: 500 clamp(29px, 5vw, 38px)/1.12 var(--serif);
    letter-spacing: -.035em;
  }
  .site-header .main-nav > a:not(.nav-cta) {
    display: flex;
    align-items: center;
    min-height: 56px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    color: var(--azul-niebla);
    font-size: 17px;
    font-weight: 500;
    transition: color .2s ease, padding-left .2s ease;
  }
  .site-header .main-nav > a:not(.nav-cta):hover,
  .site-header .main-nav > a:not(.nav-cta):focus-visible { color: var(--naranja-texto); padding-left: 5px; }
  .site-header .main-nav > a.active:not(.nav-cta) { color: var(--naranja-texto); }
  .site-header .main-nav > a:not(.nav-cta)::after { display: none; }
  .drawer-bottom { display: grid; gap: clamp(25px, 4vh, 38px); margin-top: auto; padding-top: 34px; }
  .drawer-book {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 53px;
    padding: 13px 17px;
    background: var(--naranja);
    color: var(--azul-noche);
    font-size: 13px;
    font-weight: 750;
    transition: background-color .2s ease, transform .2s ease;
  }
  .drawer-book:hover { background: var(--naranja); transform: translateY(-2px); }
  .drawer-social { display: grid; gap: 13px; padding-top: 23px; border-top: 1px solid rgba(255, 255, 255, .17); }
  .drawer-social-links { display: flex; flex-wrap: wrap; gap: 8px 20px; }
  .drawer-social-links a {
    color: var(--azul-niebla);
    font-size: 13px;
    transition: color .2s ease, transform .2s ease;
  }
  .drawer-social-links a:hover { color: var(--naranja-texto); transform: translateY(-2px); }
  .drawer-social-links a span { color: var(--naranja-texto); font-size: 11px; }
  .drawer-social small { color: var(--gris-linea); font-size: 11px; }
  .site-header .main-nav a:focus-visible { outline: 2px solid var(--naranja); outline-offset: 4px; }
  .site-header .menu-toggle { position: relative; z-index: 1; width: 42px; height: 42px; padding: 8px; }
  .site-header .menu-toggle span { margin: 5px auto; transition: transform .24s ease, opacity .18s ease; }
  .site-header .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(7px) rotate(45deg); }
  .site-header .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .site-header .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-7px) rotate(-45deg); }
}
@media (max-width: 680px) {
  .site-header .main-nav,
  .site-header .main-nav.open { top: 102px; height: calc(100dvh - 102px); }
}
@media (prefers-reduced-motion: reduce) {
  .menu-backdrop,
  .site-header .main-nav,
  .site-header .main-nav.open,
  .site-header .menu-toggle span { animation: none; transition: none; }
}
html, body { overflow-x: clip; }
@media (max-width: 680px) {
  .home-page .whatsapp-float.booking-in-view { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }
}
.toast { transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out); }
.home-page .hero-actions .button:active,
.home-page .booking-strip .button-dark:active { transform: scale(.97); transition-duration: 160ms; }
@media (hover: none) {
  .home-page .hero-actions .button:hover:not(:active),
  .home-page .booking-strip .button-dark:hover:not(:active) { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .toast { transform: none; transition: opacity 120ms ease; }
  .home-page .hero-actions .button:active,
  .home-page .booking-strip .button-dark:active { transform: none; }
}

/* Entrada editorial de una sola vez; el formulario permanece inmediato. */
@media (prefers-reduced-motion: no-preference) {
  .home-page .hero-content { animation: none; }
  .home-page .hero-content > .eyebrow,
  .home-page .hero-content > h1,
  .home-page .hero-content > .hero-copy,
  .home-page .hero-content > .hero-actions {
    animation: home-hero-line 480ms var(--ease-out) both;
  }
  .home-page .hero-content > h1 { animation-delay: 70ms; }
  .home-page .hero-content > .hero-copy { animation-delay: 140ms; }
  .home-page .hero-content > .hero-actions { animation-delay: 200ms; }
  @keyframes home-hero-line {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
  }
}
.home-page .rooms-section .section-heading .eyebrow { display: flex; align-items: center; gap: 12px; }
.home-page .rooms-section .section-heading .eyebrow::before {
  content: '';
  display: block;
  flex: none;
  width: 32px;
  height: 1px;
  background: var(--naranja);
  transform-origin: left center;
}
@media (prefers-reduced-motion: no-preference) {
  html.motion-ready .home-page .rooms-section .section-heading .eyebrow::before {
    transform: scaleX(0);
    transition: transform 500ms var(--ease-out);
  }
  html.motion-ready .home-page .rooms-section.visible .section-heading .eyebrow::before { transform: scaleX(1); }
}

/* Video del encabezado (configurable en Admin › Configuración). La foto de .hero-media queda
   debajo mientras carga; con movimiento reducido solo se muestra la foto. */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
@media (prefers-reduced-motion:reduce){.hero-video{display:none}}

/* Roles de color del manual de marca (H-10, H-11): navegación en Azul Noche;
   texto principal, botón primario y pie en Azul Acero (vía --ink). */
.announcement,.site-header{background:var(--azul-noche)}
/* Navegación: DM Sans Medium 500 (manual H-12), texto Azul Cielo sobre fondo oscuro (H-11). */
.main-nav{font-weight:500;color:var(--azul-cielo)}

/* Respuesta al toque en los botones de reserva del encabezado (frecuencia: decenas al día, sutil). */
@media (prefers-reduced-motion: no-preference) {
  .site-header .nav-cta, .site-header .mobile-book-cta, .drawer-book { transition: transform 160ms var(--ease-out), background-color .2s ease, box-shadow .2s ease; }
  .site-header .nav-cta:active, .site-header .mobile-book-cta:active, .drawer-book:active { transform: scale(.97); }
}

/* Video del hero: aparece con un fundido sobre la foto en vez de saltar (una vez por visita). */
html.motion-ready .hero-video { opacity: 0; transition: opacity 600ms var(--ease-out); }
html.motion-ready .hero-video.is-playing { opacity: 1; }

/* Visor de fotos: ocupa su sitio siempre (oculto con visibility) para poder hacer fundido.
   Abrir 220 ms, cerrar 150 ms; es un modal, así que queda centrado y no nace de un disparador. */
.modal { display: grid; visibility: hidden; opacity: 0; pointer-events: none; transition: opacity 150ms var(--ease-out), visibility 0s linear 150ms; }
.modal.open { visibility: visible; opacity: 1; pointer-events: auto; transition: opacity 220ms var(--ease-out), visibility 0s; }
@media (prefers-reduced-motion: no-preference) {
  .modal #modalImage, .modal #modalVideo { transform: scale(.96); transition: transform 150ms var(--ease-out); }
  .modal.open #modalImage, .modal.open #modalVideo { transform: scale(1); transition: transform 250ms var(--ease-out); }
}
