@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--ink:#263a31;--cream:#f7f5ef;--earth:#a65d3d;--muted:#69766f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--cream);font-family:'DM Sans',sans-serif;color:var(--ink)}a{color:inherit}button{font:inherit;cursor:pointer}.wrap{width:min(1160px,90%);margin:auto}.header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:#f9f8f3}.brand{text-decoration:none;display:flex;flex-direction:column;letter-spacing:.16em;font-weight:700;font-size:19px}.brand small{font-size:9px;letter-spacing:.19em;font-weight:600;margin-top:4px}.header nav{display:flex;gap:36px;align-items:center;font-size:14px}.header nav a{text-decoration:none}.nav-contact{padding:12px 20px;border:1px solid #8d9b90;border-radius:25px}.hero{height:min(710px,78vh);min-height:500px;position:relative;color:white;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,28,21,.76),rgba(13,28,21,.07))}.hero-copy{position:absolute;top:50%;left:max(5%,calc((100% - 1160px)/2));transform:translateY(-50%);max-width:650px}.hero-copy>p:not(.eyebrow){max-width:440px;font-size:17px;line-height:1.7}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--earth);margin:0 0 20px}.light{color:#e8c0a4}h1,h2{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.035em;font-weight:500;line-height:1.08;margin:0}h1{font-size:clamp(56px,7vw,100px)}h2{font-size:clamp(38px,4.5vw,64px)}h1 em,h2 em{font-weight:500}.actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.button{border:1px solid transparent;text-decoration:none;display:inline-flex;align-items:center;gap:30px;padding:15px 22px;border-radius:3px;font-weight:600;font-size:13px}.primary{background:#f8f5ed;color:var(--ink)}.glass{border-color:#ffffff99;color:#fff}.hero-mark{position:absolute;bottom:25px;right:5%;font-size:10px;letter-spacing:.2em}.intro{padding:100px 0 50px;display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.intro p,.section-head>p,.contact p{line-height:1.8;color:var(--muted)}.intro .lead{color:var(--ink);font-family:Georgia,serif;font-size:21px;line-height:1.55;margin-top:0}.notice{border-left:2px solid var(--earth);padding-left:15px;font-size:14px}.gallery-intro{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px;height:330px}.photo,.room-image{border:0;padding:0;position:relative;overflow:hidden;background:#ddd}.photo img,.room-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.photo:hover img,.room-image:hover img{transform:scale(1.05)}.photo span{position:absolute;left:15px;bottom:15px;color:white;background:#23382ce0;padding:10px 14px;font-size:12px}.section{padding:105px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:40px}.section-head>p{max-width:330px;margin:0}.floor-grid,.equip-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.floor,.equip-grid article{background:#fff;padding:35px;border:1px solid #e7e6dd}.floor-num,.room-index{font:italic 23px Georgia;color:var(--earth)}h3{font-family:Georgia,serif;font-weight:500;font-size:25px}.floor ul{padding-left:20px;color:#65736b;line-height:2}.equipment{background:#e9ede3;padding:90px 0}.equip-grid article{background:transparent;border-color:#cad4c8}.equip-grid p{color:#627067;line-height:1.7}.icon{font-size:28px;color:var(--earth)}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.room{background:white;border:1px solid #e8e9e1}.room-image{width:100%;height:205px}.room-image span{position:absolute;right:12px;bottom:12px;background:white;border-radius:50%;width:34px;height:34px;display:grid;place-items:center}.room>div{padding:22px}.room h3{font-size:21px;margin:12px 0}.room p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.room-index{font-size:16px}.outline{background:transparent;border-color:#91a093;color:var(--ink);margin-top:30px}.location{background:#263f32;color:white;padding:90px 0}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.location p{line-height:1.8}.light-button{background:#f5f3e9;color:var(--ink);margin-top:15px}.location-card{background:#e4e9dc;color:var(--ink);min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.location-card span{font-size:42px}.location-card p{font-size:10px;letter-spacing:.2em;margin:10px}.location-card strong{font:36px Georgia}.location-card a{font-size:13px;margin-top:24px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact-card{background:#fff;padding:35px;border:1px solid #e8e9e1}.contact-card>p{font-size:11px;letter-spacing:.17em;font-weight:700}.contact-phone{display:block;font:28px Georgia;text-decoration:none}.whatsapp{display:inline-block;color:#187443;font-weight:700;margin-top:20px}.more-phones{margin-top:30px;font-size:13px;line-height:2;color:var(--muted)}footer{background:#1d3027;color:#ebeee8;padding:40px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:12px}.footer-inner .brand{font-size:16px}dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;padding:0;background:#111e18f5;color:white}dialog::backdrop{background:#000c}.viewer-top{position:absolute;top:25px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center}.viewer-top button,.arrow{border:0;background:transparent;color:white;font-size:26px}.arrow{position:absolute;top:50%;font-size:50px;z-index:2}.prev{left:3%}.next{right:3%}dialog figure{height:100%;margin:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:65px 8%}dialog figure img{max-width:100%;max-height:80%;object-fit:contain}figcaption{font-size:13px;margin-top:14px;color:#ddd}@media(max-width:700px){.header{height:auto;min-height:78px;gap:14px;padding:15px 5%;flex-wrap:wrap}.header nav{gap:15px;flex-wrap:wrap;font-size:12px}.nav-contact{padding:7px 12px}.hero{min-height:510px}.intro,.contact,.location-grid{grid-template-columns:1fr;gap:25px}.intro{padding-top:70px}.gallery-intro{height:260px;grid-template-columns:1fr 1fr}.gallery-intro .main-photo{grid-row:span 2}.gallery-intro .photo{min-height:0}.section{padding:70px 0}.section-head{display:block}.section-head>p{margin-top:20px}.floor-grid,.equip-grid{grid-template-columns:1fr}.room-grid{grid-template-columns:1fr 1fr;gap:12px}.room-image{height:150px}.room>div{padding:15px}.room h3{font-size:18px}.footer-inner{align-items:flex-start;flex-direction:column}.location{padding:70px 0}}@media(max-width:380px){.room-grid{grid-template-columns:1fr}.header nav{gap:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.contact-form{grid-column:2;background:#fff;border:1px solid #e8e9e1;padding:35px}.contact-form h3{margin:0 0 22px}.form-fields{display:grid;gap:15px}.contact-form label{display:grid;gap:6px;font-size:13px;font-weight:600}.contact-form label>span{font-weight:400}.contact-form input:not([type=checkbox]),.contact-form textarea{width:100%;padding:11px 12px;border:1px solid #cad4c8;border-radius:3px;background:#fcfcfa;font:inherit;color:var(--ink)}.contact-form textarea{resize:vertical}.contact-form .form-privacy{display:flex;align-items:flex-start;gap:9px;font-weight:400;line-height:1.5}.form-privacy input{margin-top:3px}.form-trap{position:absolute!important;left:-10000px}.form-submit{justify-self:start;background:var(--ink);color:white;cursor:pointer}.form-submit:disabled{opacity:.6;cursor:wait}.form-status{font-size:14px;line-height:1.5}.form-status[data-state=error]{color:#a13732}.form-status[data-state=success]{color:#187443}@media(max-width:700px){.contact-form{grid-column:auto}.contact-form,.contact-card{padding:25px}}

/* El formulario ocupa toda la sección; los campos cortos comparten fila. */
.contact{row-gap:32px}
.contact-form{grid-column:1 / -1}
.form-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 22px}
.form-fields label:has(textarea),.form-fields .form-privacy{grid-column:1 / -1}
.contact-form .optional{font-weight:400;color:var(--muted)}
@media(max-width:700px){.contact-form{grid-column:1}.form-fields{grid-template-columns:1fr}.form-fields label:has(textarea),.form-fields .form-privacy{grid-column:auto}}
/* Marca y paisaje proceden de la web original. */
.brand-original img{display:block;width:150px;max-width:100%;height:auto}
.location-card{position:relative;overflow:hidden;color:white;isolation:isolate}
.location-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.location-card::before{content:'';position:absolute;inset:0;background:rgba(20,42,30,.66);z-index:-1}
.location-card a{color:white}
@media(max-width:380px){.brand-original img{width:135px}}
.directions{margin-top:26px;max-width:440px}.directions label{display:block;margin-bottom:9px;font-size:13px;font-weight:600}.directions>div{display:flex;gap:8px}.directions input{min-width:0;flex:1;padding:12px;border:1px solid #b9c4b9;border-radius:3px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.directions button{padding:12px 16px;border:1px solid #e7ede6;border-radius:3px;background:transparent;color:white;font:inherit;font-size:13px;white-space:nowrap}
/* Las fotografías de cada espacio mantienen su agrupación original. */
.notice{padding:14px 18px;background:#f0e8dc;border-left:3px solid var(--earth);color:var(--ink)!important;line-height:1.55!important}
.notice strong{font-size:12px;letter-spacing:.03em}
.floor-link,.room-link{padding:0;border:0;background:none;color:#965338;font-weight:700;font-size:13px;text-align:left}
.floor-link:hover,.room-link:hover{text-decoration:underline}
.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rooms-floor{grid-column:1 / -1;margin:28px 0 0;padding-bottom:13px;border-bottom:1px solid #d9ded5;font-size:28px}
.rooms-floor:first-child{margin-top:0}
.room{display:flex;flex-direction:column}
.room-previews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;height:165px;overflow:hidden}
.room-preview{border:0;padding:0;overflow:hidden;background:#e8e9e1}
.room-preview img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.room-preview:hover img{transform:scale(1.05)}
.room .room-details{padding:22px 24px;display:flex;flex:1;flex-direction:column;align-items:flex-start}
.room h4{font:500 22px Georgia,serif;margin:0 0 10px}
.room .room-link{margin-top:16px}
@media(max-width:700px){.room-grid{grid-template-columns:1fr;gap:16px}.rooms-floor{margin-top:22px;font-size:25px}.room-previews{height:145px}.room .room-details{padding:18px}.room h4{font-size:20px}}
@media(prefers-reduced-motion:reduce){.room-preview img{transition:none}}
/* Iconos discretos para identificar plantas y tipos de estancia. */
.floor-heading{display:flex;align-items:center;gap:15px}.floor-heading h3{margin:0}.floor-icon,.section-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;background:#eef1e9;color:#45614d;border-radius:50%}.floor-icon svg,.section-icon svg{width:22px;height:22px}.rooms-floor{display:flex;align-items:center;gap:12px}.rooms-floor .section-icon{width:38px;height:38px}.room h4{display:flex;align-items:center;gap:11px;line-height:1.3}.room h4 .section-icon{width:34px;height:34px;color:#965338;background:#f5eee6}.room h4 .section-icon svg{width:19px;height:19px}
/* El visor aprovecha el espacio disponible manteniendo la proporción de la foto. */
dialog figure{height:100%;padding:70px 7% 48px}
dialog figure img{display:block;width:100%;height:calc(100dvh - 160px);max-width:1600px;max-height:none;object-fit:contain}
dialog figcaption{text-align:center;max-width:90%;line-height:1.45}
@media(max-width:700px){dialog figure{padding:70px 12% 55px}dialog figure img{height:calc(100dvh - 180px)}.arrow{font-size:40px}}
dialog figure img{width:auto;height:auto;max-width:min(100%,1600px);max-height:calc(100dvh - 160px)}
@media(max-width:700px){dialog figure img{height:auto;max-height:calc(100dvh - 180px)}}
/* Equipamiento presentado como lista, con iconos decorativos y etiquetas accesibles. */
.equipment-panels{display:grid;grid-template-columns:1.45fr 1fr;gap:18px;align-items:stretch}
.equipment-panel{background:#f8faf5;border:1px solid #d8e1d4;padding:32px}
.equipment-title{display:flex;align-items:flex-start;gap:16px;margin-bottom:26px}
.equipment-number{font:italic 21px Georgia,serif;color:var(--earth);padding-top:2px}
.equipment-title h3{margin:0;font-size:25px}.equipment-title p{margin:7px 0 0;color:#627067;font-size:14px;line-height:1.5}
.equipment-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px 13px}
.equipment-bedrooms .equipment-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.equipment-list li{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);font-size:13px;line-height:1.35}
.equip-symbol{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;background:#e8eee4;color:#42614c;border-radius:50%}
.equip-symbol svg{width:19px;height:19px}.equipment-note{margin:25px 0 0;padding-top:17px;border-top:1px solid #dfe6da;color:#627067;font-size:13px;line-height:1.5}
@media(max-width:900px){.equipment-panels{grid-template-columns:1fr}.equipment-bedrooms .equipment-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.equipment-panel{padding:23px}.equipment-list,.equipment-bedrooms .equipment-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 10px}.equipment-list li{font-size:12px}.equipment-title{margin-bottom:22px}.equipment-title h3{font-size:22px}}
