
:root{--paper:#fffdf9;--cream:#f4eee5;--ink:#171c19;--muted:#6e736f;--green:#315943;--green2:#234533;--sand:#d9c1a4;--line:#e6ded3}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}a{text-decoration:none;color:inherit}img{display:block;width:100%}
.header{height:78px;display:flex;align-items:center;gap:32px;padding:0 5.5vw;position:sticky;top:0;background:rgba(255,253,249,.94);backdrop-filter:blur(12px);z-index:30;border-bottom:1px solid var(--line)}.brand{margin-right:auto;display:flex;flex-direction:column}.brand b{font:26px Georgia,serif;letter-spacing:.11em}.brand span{font-size:8px;letter-spacing:.17em;color:var(--muted)}nav{display:flex;gap:24px;font-size:13px}.top-cta,.secondary{display:inline-block;border-radius:10px;padding:12px 19px;font-weight:700;font-size:13px}.top-cta{background:var(--green);color:#fff}.secondary{background:rgba(255,255,255,.88)}.secondary.beige{background:#e6d4bd}
.hero{height:700px;position:relative;display:flex;align-items:center;padding:5.5vw}.hero>img{position:absolute;inset:0;height:100%;object-fit:cover}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,14,12,.62),rgba(15,14,12,.2) 55%,rgba(15,14,12,.06))}.hero-copy{position:relative;color:white;z-index:2;max-width:610px}.script{font:italic 31px Georgia,serif;margin:0 0 18px}.hero-copy h1{font:76px/1 Georgia,serif;letter-spacing:.02em;margin:0}.hero-copy h2{font:32px Georgia,serif;margin:10px 0 14px}.hero-copy>p:not(.script){font-size:17px;max-width:480px}.hero-copy .secondary{margin-top:8px;color:var(--ink)}
.search-card{position:relative;z-index:3;margin-left:auto;width:360px;background:white;border-radius:22px;padding:25px;box-shadow:0 24px 60px rgba(0,0,0,.2)}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800;color:var(--green);margin:0 0 10px}.eyebrow.light{color:#ead8c4}.search-card h3{font:31px Georgia,serif;margin:0}.muted{color:var(--muted);font-size:13px}.search-card label,.booking-form label{font-size:12px;font-weight:700;display:block;margin:12px 0}input,select,textarea{width:100%;font:inherit;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:white;color:var(--ink)}button{font:inherit;cursor:pointer}.search-card button,.booking-form button{border:0;width:100%;border-radius:10px;background:var(--green);color:white;padding:14px;font-weight:800}.result{font-size:13px;margin-top:12px}.result.ok{background:#e9f4ec;color:#205738;padding:10px;border-radius:9px}.result.bad{background:#f9e9e6;color:#7c2f25;padding:10px;border-radius:9px}
.icons{display:grid;grid-template-columns:repeat(6,1fr);padding:28px 5.5vw;border-bottom:1px solid var(--line)}.icons div{text-align:center}.icons b{display:block;font:25px Georgia,serif}.icons span{font-size:12px;color:var(--muted)}
.section{padding:82px 5.5vw}.apartment{display:grid;grid-template-columns:.72fr 1.28fr;gap:6vw;align-items:center}.copy h2,.location h2,.booking h2{font:46px/1.08 Georgia,serif;margin:0 0 18px}.copy>p:not(.eyebrow){color:var(--muted);font-size:17px}.feature-images{display:grid;grid-template-columns:1fr 1fr;gap:12px}.feature-images figure,.gallery figure{margin:0;position:relative;border-radius:16px;overflow:hidden}.feature-images img{height:360px;object-fit:cover}.feature-images figcaption,.gallery figcaption{position:absolute;bottom:0;left:0;right:0;padding:40px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:white;font-weight:700;font-size:13px}
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;padding:0 5.5vw 82px}.gallery img{height:280px;object-fit:cover}
.location{display:grid;grid-template-columns:1.2fr .8fr;padding-top:0}.destination{min-height:430px;border-radius:20px 0 0 20px;padding:50px;color:white;background:radial-gradient(circle at 70% 20%,rgba(196,160,105,.3),transparent 25%),linear-gradient(145deg,#1c4033,#55745e);display:flex;flex-direction:column;justify-content:flex-end}.destination h2{font-size:58px}.location-copy{padding:52px;background:var(--cream);border-radius:0 20px 20px 0}.booking{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;background:var(--green);color:white}.booking>div>p:not(.eyebrow){color:#d9e4dd}.booking-form{background:white;color:var(--ink);padding:27px;border-radius:20px}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}footer{padding:30px 5.5vw;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}footer div{display:flex;flex-direction:column}footer b{color:var(--ink);font:22px Georgia,serif;letter-spacing:.1em}.mobile-cta{display:none}
@media(max-width:900px){.header nav,.header .top-cta{display:none}.header{padding:0 18px}.hero{height:auto;min-height:900px;padding:42px 18px 22px;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch}.hero>img{object-position:center}.shade{background:linear-gradient(0deg,rgba(15,14,12,.72),rgba(15,14,12,.08) 65%)}.hero-copy{margin-bottom:20px}.hero-copy h1{font-size:56px}.search-card{width:100%;margin:0}.icons{grid-template-columns:repeat(3,1fr);gap:22px;padding:28px 18px}.section{padding:62px 18px}.apartment,.location,.booking{grid-template-columns:1fr}.copy h2,.location h2,.booking h2{font-size:38px}.feature-images{grid-template-columns:1fr 1fr}.feature-images img{height:240px}.gallery{grid-template-columns:1fr 1fr;padding:0 18px 62px}.gallery figure:last-child{grid-column:span 2}.gallery img{height:220px}.destination,.location-copy{border-radius:18px}.two{grid-template-columns:1fr}.mobile-cta{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:40}.mobile-cta a{display:block;background:var(--green);color:white;padding:15px;text-align:center;border-radius:999px;font-weight:800;box-shadow:0 9px 30px rgba(0,0,0,.24)}footer{padding-bottom:90px}}

.discover{padding-top:30px}.discover-head{max-width:760px;margin-bottom:28px}.discover-head h2{font:46px/1.08 Georgia,serif;margin:0 0 16px}.discover-head>p:not(.eyebrow){color:var(--muted);font-size:17px}.destination-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:14px}.destination-grid figure{margin:0;border-radius:18px;overflow:hidden;position:relative;background:#eee}.destination-grid img{height:420px;object-fit:cover}.destination-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:70px 22px 20px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:white;display:flex;flex-direction:column;gap:4px}.destination-grid figcaption b{font:26px Georgia,serif}.destination-grid figcaption span{font-size:13px}.credits{font-size:10px;color:var(--muted);margin-top:10px}.location{align-items:stretch}.location-copy{border-radius:20px 0 0 20px}.map-wrap{min-height:430px;border-radius:0 20px 20px 0;overflow:hidden;background:#ddd}.map-wrap iframe{width:100%;height:100%;min-height:430px;border:0}.location-copy button{border:0;cursor:pointer}.seo-local{max-width:900px}
@media(max-width:900px){.discover-head h2{font-size:38px}.destination-grid{grid-template-columns:1fr}.destination-grid img{height:320px}.location-copy,.map-wrap{border-radius:18px}.map-wrap,.map-wrap iframe{min-height:360px}}

.seo-links{background:#fbf8f3}.seo-links>div:first-child{max-width:720px}.seo-links h2,.availability-section h2{font:44px/1.1 Georgia,serif;margin:0 0 14px}.seo-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.seo-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:15px;background:white}.seo-card b{font:23px Georgia,serif}.seo-card span{font-size:13px;color:var(--muted)}.availability-section{background:white}.calendar-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.calendar-head>div:first-child{max-width:720px}.calendar-controls{display:flex;gap:8px}.calendar-controls button{border:1px solid var(--line);background:white;color:var(--ink);width:44px;height:44px;border-radius:50%}.calendar-legend{display:flex;gap:20px;font-size:12px;color:var(--muted);margin:18px 0}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.free-dot{background:#dce9df}.busy-dot{background:#d8b4a9}.availability-calendar{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.cal-month{border:1px solid var(--line);border-radius:16px;padding:18px}.cal-month h3{font:24px Georgia,serif;margin:0 0 14px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-grid .dow{font-size:10px;color:var(--muted);text-align:center;padding:4px}.cal-day{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:#eef5ef;font-size:12px}.cal-day.busy{background:#f0dcd6;color:#70483f;text-decoration:line-through}.cal-day.past{background:#f4f3f0;color:#aaa}.cal-day.empty{background:transparent}.nearby{display:grid;gap:7px;margin:18px 0;color:var(--muted);font-size:13px}.footer-links{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.content-page{min-height:70vh}.content-hero{padding:88px 5.5vw 55px;background:linear-gradient(135deg,#f4eee5,#fffdf9);max-width:none}.content-hero h1{font:56px/1.05 Georgia,serif;max-width:900px;margin:0 0 16px}.content-hero>p:not(.eyebrow){max-width:760px;color:var(--muted);font-size:18px}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw;padding:70px 5.5vw}.content-grid h2,.answer-box h2{font:35px/1.1 Georgia,serif;margin:28px 0 10px}.content-grid h2:first-child{margin-top:0}.content-grid p{color:var(--muted)}.content-grid figure{margin:0}.content-grid figure img{border-radius:18px;max-height:620px;object-fit:cover}.content-grid figcaption{font-size:11px;color:var(--muted);padding:7px 3px}.stacked-photos{display:grid;gap:14px}.answer-box{margin:0 5.5vw 70px;padding:32px;border-radius:18px;background:var(--cream)}.answer-box h2{margin-top:0}.quick-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-facts span{padding:15px;background:white;border-radius:11px;display:flex;flex-direction:column;font-size:13px;color:var(--muted)}.quick-facts b{color:var(--ink)}.faq-list{max-width:900px;margin:55px auto;padding:0 18px}.faq-list details{border-bottom:1px solid var(--line);padding:17px 0}.faq-list summary{cursor:pointer;font-weight:700;font-size:17px}.faq-list p{color:var(--muted)}.content-credit{margin:0 5.5vw 70px}.header a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #c9a87a;outline-offset:3px}
@media(max-width:900px){.seo-card-grid,.availability-calendar,.content-grid,.quick-facts{grid-template-columns:1fr}.seo-links h2,.availability-section h2{font-size:36px}.calendar-head{flex-direction:column}.content-hero{padding:60px 18px 42px}.content-hero h1{font-size:43px}.content-grid{padding:50px 18px}.answer-box{margin:0 18px 55px}.footer-links{justify-content:flex-end}}


.photo-gallery-open{border:0;cursor:pointer}.gallery-click,.gallery-more{cursor:pointer}.gallery-more-overlay{position:absolute;inset:0;background:rgba(18,31,25,.5);display:grid;place-content:center;text-align:center;color:white}.gallery-more-overlay b{font:32px Georgia,serif}.gallery-more-overlay span{font-size:12px;margin-top:4px}.destination-grid-three{grid-template-columns:repeat(3,1fr)}.destination-grid-three img{height:390px}.wine-callout{margin-top:18px;border-radius:20px;background:linear-gradient(135deg,#294d3a,#163526);color:white;padding:32px;display:grid;grid-template-columns:.9fr 1.4fr auto;gap:28px;align-items:center}.wine-callout h3{font:34px/1.08 Georgia,serif;margin:0}.wine-callout p{margin:0;color:#e3ece6}.wine-callout a{white-space:nowrap;background:#fff;color:#1c3327;padding:12px 16px;border-radius:10px;font-weight:800;font-size:13px}.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:45;background:#1f6f4a;color:#fff;border-radius:999px;padding:13px 18px;display:flex;align-items:center;gap:8px;box-shadow:0 12px 35px rgba(0,0,0,.24);font-size:13px}.whatsapp-float span{font-size:21px}.gallery-modal[hidden]{display:none}.gallery-modal{position:fixed;inset:0;z-index:100;background:rgba(10,12,11,.94);display:grid;place-items:center;padding:60px 80px}.gallery-modal figure{margin:0;max-width:min(1100px,88vw);max-height:82vh;display:flex;flex-direction:column;align-items:center}.gallery-modal img{max-height:76vh;max-width:100%;width:auto;object-fit:contain;border-radius:12px}.gallery-modal figcaption{color:white;margin-top:10px;font-size:13px}.gallery-close,.gallery-nav{position:absolute;border:0;background:rgba(255,255,255,.12);color:white;border-radius:50%;display:grid;place-items:center}.gallery-close{right:24px;top:22px;width:46px;height:46px;font-size:32px}.gallery-nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:42px}.gallery-nav.prev{left:20px}.gallery-nav.next{right:20px}.gallery-counter{position:absolute;bottom:22px;color:white;font-size:12px;letter-spacing:.08em}.modal-open{overflow:hidden}
@media(max-width:900px){.destination-grid-three{grid-template-columns:1fr}.destination-grid-three img{height:300px}.wine-callout{grid-template-columns:1fr;gap:16px}.wine-callout h3{font-size:30px}.whatsapp-float{right:16px;bottom:78px;padding:12px 15px}.gallery-modal{padding:60px 12px}.gallery-nav{width:42px;height:42px;font-size:34px}.gallery-nav.prev{left:8px}.gallery-nav.next{right:8px}.gallery-modal img{max-height:70vh}}



/* Galería principal: seis fotos visibles, sin botón "ver todas" */
.gallery.gallery-six{grid-template-columns:repeat(3,1fr)}
.gallery.gallery-six img{height:285px}.gallery-click{cursor:zoom-in}

/* Opiniones Booking.com · carrusel */
.reviews-section{background:#f8f4ee;overflow:hidden}.reviews-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:30px}.reviews-head>div:first-child{max-width:760px}.reviews-head h2{font:46px/1.08 Georgia,serif;margin:0 0 14px}.reviews-head p:not(.eyebrow){color:var(--muted);font-size:16px;margin:0}.booking-score{min-width:155px;background:var(--green);color:#fff;border-radius:18px;padding:18px 20px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:2px 12px;box-shadow:0 10px 28px rgba(31,62,45,.13)}.booking-score span{font-size:12px;font-weight:800;grid-column:1/3}.booking-score b{font:42px/1 Georgia,serif}.booking-score b small{font:14px Arial,sans-serif;font-weight:400;opacity:.8}.booking-score em{font-style:normal;font-size:12px;align-self:center}.reviews-carousel{position:relative}.review-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 50px}.review-viewport::-webkit-scrollbar{display:none}.review-track{display:flex;gap:16px}.review-card{flex:0 0 calc((100% - 32px)/3);scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;min-height:220px;display:flex;flex-direction:column}.review-meta{display:flex;align-items:center;gap:11px}.review-meta>span:last-child{display:flex;flex-direction:column}.review-meta small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.review-score{background:var(--green);color:#fff;border-radius:9px 9px 9px 2px;padding:7px 8px;font-weight:800;font-size:13px}.review-card p{font:19px/1.45 Georgia,serif;margin:24px 0 18px}.review-stay{margin-top:auto;font-size:11px;color:var(--muted)}.review-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green);font:28px/1 Georgia,serif;box-shadow:0 6px 20px rgba(0,0,0,.08)}.review-prev{left:0}.review-next{right:0}.review-dots{display:flex;justify-content:center;gap:7px;margin-top:18px}.review-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#c9c1b7}.review-dots button.active{width:24px;border-radius:8px;background:var(--green)}.reviews-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px}.reviews-footer p{font-size:11px;color:var(--muted);margin:0}.reviews-footer .secondary{white-space:nowrap}
@media(max-width:1049px){.review-card{flex-basis:calc((100% - 16px)/2)}.gallery.gallery-six{grid-template-columns:repeat(2,1fr)}}
@media(max-width:699px){.reviews-head{align-items:flex-start;flex-direction:column}.reviews-head h2{font-size:38px}.booking-score{width:100%}.review-viewport{margin:0 36px}.review-card{flex-basis:100%;min-height:0}.review-nav{width:32px;height:32px}.reviews-footer{align-items:flex-start;flex-direction:column}.gallery.gallery-six{grid-template-columns:1fr 1fr}.gallery.gallery-six img{height:220px}}

/* v8 · Servicios visuales y ajustes de presentación */
.amenities-section{padding:34px 5.5vw 40px;background:#fff;border-bottom:1px solid var(--line)}
.amenities-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:20px}.amenities-head h2{font:36px/1.08 Georgia,serif;margin:0;max-width:760px}.amenities-controls{display:none;gap:8px}.amenities-controls button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--green);font:27px/1 Georgia,serif}
.amenities-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.amenity-card{min-width:0;border:1px solid var(--line);border-radius:17px;padding:18px 14px;background:linear-gradient(180deg,#fff,#fbf8f3);display:flex;flex-direction:column;align-items:flex-start;min-height:145px}.amenity-icon{width:42px;height:42px;border-radius:13px;background:#e8f0ea;color:var(--green);display:grid;place-items:center;margin-bottom:15px}.amenity-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.amenity-card b{font-size:14px;line-height:1.25}.amenity-card small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.35}
.gallery-more{position:relative}.gallery-more-overlay{pointer-events:none;inset:auto 12px 12px auto;left:auto;top:auto;background:rgba(23,43,33,.88);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;align-items:flex-end;color:#fff}.gallery-more-overlay b{font:20px/1 Georgia,serif}.gallery-more-overlay span{font-size:10px;margin-top:2px}
.reviews-kicker{margin-bottom:24px}.reviews-section .reviews-head,.reviews-section .booking-score,.reviews-section .reviews-footer{display:none!important}
.discover{padding-left:0;padding-right:0}.discover-intro-callout{width:100%;background:linear-gradient(135deg,#294d3a,#163526);color:#fff;padding:72px 5.5vw;margin-bottom:26px}.discover-intro-callout h2{font:clamp(42px,6vw,78px)/1.02 Georgia,serif;margin:0 0 22px;max-width:1250px}.discover-intro-callout p:not(.eyebrow){font-size:clamp(18px,2vw,25px);line-height:1.55;max-width:1180px;color:#e7eee9;margin:0}.discover .destination-grid,.discover .wine-callout{margin-left:5.5vw;margin-right:5.5vw}.seo-links{display:none!important}
@media(max-width:1150px){.amenities-track{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:699px){
  .amenities-section{padding:28px 0 30px}.amenities-head{padding:0 18px;align-items:flex-end}.amenities-head h2{font-size:31px}.amenities-controls{display:flex}.amenities-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 18px}.amenities-viewport::-webkit-scrollbar{display:none}.amenities-track{display:flex;gap:12px;width:max-content}.amenity-card{flex:0 0 74vw;max-width:290px;scroll-snap-align:start;min-height:158px;padding:20px}.amenity-icon{width:50px;height:50px}.amenity-icon svg{width:27px;height:27px}.amenity-card b{font-size:16px}.amenity-card small{font-size:12px}.discover-intro-callout{padding:55px 18px}.discover-intro-callout h2{font-size:43px}.discover-intro-callout p:not(.eyebrow){font-size:18px}.discover .destination-grid,.discover .wine-callout{margin-left:18px;margin-right:18px}
}

/* v9: carrusel de servicios en una sola línea en todos los tamaños */
.amenities-controls{display:flex}
.amenities-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.amenities-viewport::-webkit-scrollbar{display:none}
.amenities-track{display:flex!important;grid-template-columns:none!important;gap:12px;width:max-content}
.amenity-card{flex:0 0 220px;min-width:220px;scroll-snap-align:start}
@media(max-width:900px){.amenity-card{flex-basis:74vw;min-width:0;max-width:290px}}

/* v9: 'Descubre el entorno' con el mismo lenguaje visual que 'Tierra de vino' */
.discover-intro-callout{margin:0 5.5vw 18px!important;width:auto!important;border-radius:20px!important;background:linear-gradient(135deg,#294d3a,#163526)!important;color:#fff!important;padding:32px!important;display:grid!important;grid-template-columns:.9fr 1.4fr!important;gap:28px!important;align-items:center!important}
.discover-intro-callout h2{font:34px/1.08 Georgia,serif!important;margin:0!important;max-width:none!important}
.discover-intro-callout p:not(.eyebrow){font-size:16px!important;line-height:1.55!important;max-width:none!important;color:#e3ece6!important;margin:0!important}
.discover-intro-callout .eyebrow{margin-bottom:10px!important}
@media(max-width:900px){.discover-intro-callout{margin:0 18px 18px!important;padding:28px!important;grid-template-columns:1fr!important;gap:16px!important}.discover-intro-callout h2{font-size:30px!important}.discover-intro-callout p:not(.eyebrow){font-size:16px!important}}

/* v11 · Precio por noche visible en Calendario de Boa Vista */
.cal-day{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.05;overflow:hidden}
.cal-day-number{font-size:12px;line-height:1;font-weight:700}
.cal-day-price{display:block;max-width:100%;font-size:9px;line-height:1.05;font-weight:800;color:var(--green);white-space:nowrap;letter-spacing:-.02em}
.cal-day.busy .cal-day-price{color:#70483f}
.cal-day.past .cal-day-price{color:#999}
.cal-day.custom-price:not(.busy):not(.past){box-shadow:inset 0 0 0 1px rgba(49,89,67,.2)}
.calendar-legend .price-legend{color:var(--muted);font-size:11px;font-weight:700}
@media(max-width:420px){.cal-month{padding:14px}.cal-grid{gap:3px}.cal-day-price{font-size:8px}.cal-day-number{font-size:11px}}

/* v15 · Nuevo flujo visual de reserva */
.hero-reserve-card{position:relative;z-index:3;margin-left:auto;width:min(390px,34vw);background:rgba(255,253,249,.96);border:1px solid rgba(255,255,255,.55);border-radius:24px;padding:28px;box-shadow:0 24px 60px rgba(0,0,0,.18);color:var(--ink);backdrop-filter:blur(12px)}
.hero-reserve-card .direct-badge{display:inline-flex;padding:7px 10px;border-radius:999px;background:#f3e7ca;color:#7b5a19;font-size:10px;font-weight:900;letter-spacing:.12em}
.hero-reserve-card h3{font:32px/1.08 Georgia,serif;margin:16px 0 10px;color:#173243}.hero-reserve-card p{margin:0 0 20px;color:var(--muted);font-size:14px;line-height:1.55}.hero-reserve-card small{display:block;margin-top:13px;color:var(--muted);font-size:10px;line-height:1.45}.hero-reserve-link{display:flex;align-items:center;justify-content:space-between;gap:18px;border-radius:12px;background:var(--green);color:#fff;padding:15px 17px;font-size:13px;font-weight:800}.hero-reserve-link span{font-size:22px;line-height:1}

.reservation-experience{padding:78px 4.5vw 34px;background:linear-gradient(180deg,#fbf8f3 0,#fffdf9 82%);border-bottom:1px solid var(--line)}
.reservation-heading{max-width:1380px;margin:0 auto 24px;display:grid;grid-template-columns:1fr auto;gap:36px;align-items:end}.reservation-heading>div{max-width:720px}.reservation-heading h1{font:clamp(43px,4.5vw,68px)/1.02 Georgia,serif;color:#173243;margin:0 0 12px;letter-spacing:-.025em}.reservation-heading>div>p:last-child{font-size:17px;color:#52606a;margin:0}
.booking-steps{list-style:none;display:flex;align-items:flex-start;gap:0;margin:0;padding:0 0 5px;min-width:330px}.booking-steps li{position:relative;display:grid;grid-template-columns:42px;justify-items:center;gap:5px;color:#858b8f;font-size:11px;min-width:110px}.booking-steps li:not(:last-child)::after{content:"";position:absolute;top:20px;left:76px;width:68px;height:1px;background:#c8cecc}.booking-steps span{width:42px;height:42px;border:1px solid #cbd1cf;background:#fff;border-radius:50%;display:grid;place-items:center;font:18px Georgia,serif;color:#6d7678;position:relative;z-index:1}.booking-steps b{font-size:11px}.booking-steps li.active{color:var(--green)}.booking-steps li.active span{background:var(--green);border-color:var(--green);color:#fff}.booking-steps li.done{color:var(--green)}.booking-steps li.done span{background:#dfeae2;border-color:#c4d7c9;color:var(--green)}.booking-steps li.done:not(:last-child)::after{background:#8eaa98}
.reservation-layout{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.85fr) minmax(330px,.92fr);gap:22px;align-items:start}.reservation-main{min-width:0;display:grid;gap:18px}.reservation-calendar-card,.reservation-summary-card{background:#fff;border:1px solid #ece5db;border-radius:22px;box-shadow:0 10px 34px rgba(44,53,48,.055)}
.reservation-calendar-card{padding:22px}.reservation-calendar-top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:6px}.reservation-calendar-top>div:first-child{display:grid;gap:2px}.calendar-kicker{font-size:9px;letter-spacing:.15em;font-weight:900;color:var(--green)}.reservation-calendar-top strong{font:20px Georgia,serif;color:#173243}.reservation-controls button{width:38px;height:38px;font-size:24px;border-radius:50%;box-shadow:none}
.reservation-calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.reservation-calendar.loading{opacity:.48;pointer-events:none}.reservation-calendar .cal-month{border:0;border-radius:0;padding:16px 10px 6px;min-width:0}.reservation-calendar .cal-month+ .cal-month{border-left:1px solid #eee7de;padding-left:26px}.reservation-calendar .cal-month h3{text-align:center;font:26px/1.1 Georgia,serif;color:#173243;margin:0 0 18px}.reservation-calendar .cal-grid{gap:5px}.reservation-calendar .cal-grid .dow{font-size:10px;font-weight:800;color:#627078;padding:4px 0 8px}.reservation-calendar .cal-day{appearance:none;-webkit-appearance:none;width:100%;min-width:0;aspect-ratio:1.12;border:1px solid #e2e5e3!important;border-radius:9px;background:#fff!important;color:#183244;text-decoration:none!important;padding:4px 2px!important;box-shadow:none!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:border-color .15s,background .15s,transform .15s;cursor:pointer}.reservation-calendar .cal-day:not(:disabled):hover{border-color:#78a59b!important;transform:translateY(-1px)}.reservation-calendar .cal-day-number{font-size:12px;color:inherit}.reservation-calendar .cal-day-price{font-size:9px;color:#173f4d;font-weight:800}.reservation-calendar .cal-day.busy,.reservation-calendar .cal-day.past{background:#f0f0ee!important;border-color:#efefed!important;color:#9a9d9b}.reservation-calendar .cal-day.busy .cal-day-price,.reservation-calendar .cal-day.past .cal-day-price{color:#a2a5a3}.reservation-calendar .cal-day:disabled{cursor:not-allowed}.reservation-calendar .cal-day.in-range{background:#e9f5f3!important;border-color:#c5e3df!important;color:#1d5e60}.reservation-calendar .cal-day.selected{background:#5b9d99!important;border-color:#5b9d99!important;color:#fff}.reservation-calendar .cal-day.selected .cal-day-price{color:#fff}.reservation-calendar .cal-day.start{border-radius:10px}.reservation-calendar .cal-day.checkout-possible{background:#f2f5f3!important;border-style:dashed!important;color:#547066}.reservation-calendar .cal-day.empty{border:0!important;background:transparent!important;pointer-events:none}.reservation-legend{margin:16px 4px 10px;padding-top:14px;border-top:1px solid #eee9e1;display:flex;flex-wrap:wrap;gap:18px}.reservation-legend .free-dot{background:#fff;border:1px solid #d5dcd9}.reservation-legend .busy-dot{background:#ededeb}.reservation-legend .selected-dot{background:#bfe4e1}.reservation-legend .price-legend{margin-left:auto}.date-selection-bar{min-height:48px;margin-top:10px;padding:11px 14px;border-radius:12px;background:#eaf4f2;color:#1e4f55;display:flex;align-items:center;gap:10px;font-size:12px}.selection-icon{font-size:19px}.date-selection-bar button{margin-left:auto;border:0;background:transparent;color:#1f5960;text-decoration:underline;font-size:11px;font-weight:800;padding:7px}.date-selection-bar b{font-weight:800}
.reservation-story{height:185px;border-radius:18px;overflow:hidden;position:relative;background:#183c32;color:#fff}.reservation-story>img{position:absolute;inset:0;height:100%;object-fit:cover}.reservation-story::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,42,35,.86) 0%,rgba(17,42,35,.58) 48%,rgba(17,42,35,.12) 78%)}.reservation-story-overlay{position:absolute;z-index:2;left:24px;top:50%;transform:translateY(-50%);max-width:420px}.reservation-story-overlay h3{font:30px/1.04 Georgia,serif;margin:0 0 7px}.reservation-story-overlay p:last-child{font-size:12px;margin:0;color:#edf4ef}.story-note{position:absolute;right:25px;bottom:24px;z-index:2;font:italic 19px/1.2 Georgia,serif;text-align:right;text-shadow:0 1px 12px rgba(0,0,0,.25)}
.reservation-summary-card{position:sticky;top:96px;padding:20px 20px 18px}.summary-card-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}.summary-card-head small{font-size:10px;color:var(--muted)}.best-price-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#f6ecd5;color:#775719;padding:7px 10px;font-size:10px;font-weight:900}.guest-panel h3,.price-summary h3,.booking-details h3{font:22px Georgia,serif;color:#173243;margin:0 0 12px}.guest-control{border:1px solid #e3e3df;border-radius:12px;display:grid!important;grid-template-columns:auto 1fr 78px;align-items:center;gap:11px;padding:10px 11px;margin:0!important;box-shadow:0 3px 12px rgba(0,0,0,.035)}.guest-control .guest-icon{width:34px;height:34px;border-radius:50%;background:#e7eeea;color:#557263;display:grid;place-items:center;font-size:9px}.guest-control>span:nth-child(2){display:grid}.guest-control small{font-size:10px;color:var(--muted);font-weight:500}.guest-control b{font-size:11px}.guest-control select{margin:0;padding:8px 9px;border-radius:8px}.minimum-stay{display:flex;gap:8px;align-items:center;background:#eef2ea;color:#215f4a;border-radius:12px;padding:11px 13px;font-size:12px;font-weight:800;margin:14px 0}.stay-dates{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;border-top:1px solid #eee8e0;border-bottom:1px solid #eee8e0;padding:14px 0;margin:2px 0 14px}.stay-dates>div:not(.date-arrow){display:grid;gap:2px}.stay-dates small{font-size:8px;letter-spacing:.12em;color:#7d8587;font-weight:900}.stay-dates b{font-size:12px;color:#173243}.stay-dates span{font-size:9px;color:#8b908f}.date-arrow{color:#93a19b}.price-summary h3{font-size:18px;margin-bottom:10px}.price-row,.price-total{display:flex;justify-content:space-between;align-items:center;gap:16px}.price-row{font-size:12px;padding:5px 0}.price-row span{color:#546169}.price-total{border-top:1px solid #dddcd7;margin-top:8px;padding:13px 0 7px}.price-total>span{font:22px Georgia,serif;color:#173243;display:grid}.price-total>span small{font:9px Arial,sans-serif;color:var(--muted);margin-top:3px}.price-total>b{font:31px Georgia,serif;color:#18716f}.reservation-message{margin:7px 0 10px;padding:9px 10px;border-radius:9px;background:#f5f3ef;color:#65706e;font-size:10px;line-height:1.45}.reservation-message.ok{background:#e9f4ec;color:#205738}.reservation-message.bad{background:#f9e9e6;color:#7c2f25}.reservation-message.warning{background:#fff2d8;color:#785a1d}.reservation-message.loading{background:#edf4f4;color:#356068}.reservation-primary,.reservation-secondary{width:100%;border-radius:11px;padding:13px 14px;font-weight:800}.reservation-primary{border:0;background:linear-gradient(135deg,#176e6d,#2f7f79);color:#fff;display:flex;align-items:center;justify-content:center;gap:12px}.reservation-primary:disabled{opacity:.42;cursor:not-allowed}.reservation-secondary{margin-top:8px;border:1px solid #2b7b78;background:#fff;color:#226b69}.reservation-secondary:disabled{opacity:.42;cursor:not-allowed}.reservation-trust{display:grid;grid-template-columns:1fr;gap:7px;border-top:1px solid #eee8e0;border-bottom:1px solid #eee8e0;margin:14px 0;padding:12px 2px;color:#4c6463;font-size:10px}.reservation-trust span{display:flex;align-items:center;gap:8px}.reservation-trust b{width:20px;color:#17706d;text-align:center}.reservation-note{background:#f1f3ed;border-radius:11px;padding:11px 12px;display:grid;gap:2px;color:#315744}.reservation-note b{font-size:11px}.reservation-note span{font-size:9px;color:#65736d}
.booking-details{margin:15px -3px 13px;padding:15px;border-radius:14px;background:#fbf8f3;border:1px solid #e9e0d5}.booking-details[hidden]{display:none}.booking-details-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.booking-details-head h3{font-size:20px;margin:3px 0 6px}.booking-details-head button{border:0;background:#fff;width:30px;height:30px;border-radius:50%;font-size:20px;color:#59635f}.form-step-badge{font-size:8px;letter-spacing:.13em;font-weight:900;color:var(--green)}.booking-form-modern{padding:0!important;background:transparent!important}.booking-form-modern label{margin:9px 0;font-size:10px}.booking-form-modern input,.booking-form-modern textarea{margin-top:4px;padding:10px 11px;border-radius:9px;font-size:12px}.booking-form-modern .optional{color:var(--muted);font-weight:400}.booking-form-modern .final-submit{margin-top:11px}.booking-form-modern .two{gap:8px}.booking-form-modern .result{margin-bottom:0}
.reservation-benefits{max-width:1380px;margin:22px auto 0;border-top:1px solid #e7e0d7;padding:18px 8px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;color:#66706d;font-size:10px}.reservation-benefits span{display:flex;align-items:center;justify-content:center;gap:8px}.reservation-benefits b{color:#44514d;font-size:10px}

@media(max-width:1100px){.hero-reserve-card{width:360px}.reservation-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr)}.reservation-calendar .cal-month+ .cal-month{padding-left:18px}.reservation-calendar-card{padding:16px}.reservation-story-overlay{max-width:350px}}
@media(max-width:900px){.hero{min-height:780px}.hero-reserve-card{width:100%;margin:0}.reservation-experience{padding:54px 18px 28px}.reservation-heading{grid-template-columns:1fr;gap:24px}.reservation-heading h1{font-size:45px}.booking-steps{min-width:0;width:100%;justify-content:flex-start}.booking-steps li{min-width:96px}.booking-steps li:not(:last-child)::after{left:68px;width:58px}.reservation-layout{grid-template-columns:1fr}.reservation-summary-card{position:relative;top:auto}.reservation-benefits{grid-template-columns:1fr 1fr}.reservation-calendar .cal-month+ .cal-month{border-left:0;border-top:1px solid #eee7de;padding:24px 10px 6px}.reservation-calendar{grid-template-columns:1fr}.reservation-story{height:220px}}
@media(max-width:560px){.reservation-experience{padding-left:12px;padding-right:12px}.reservation-heading{padding:0 6px}.reservation-heading h1{font-size:39px}.reservation-heading>div>p:last-child{font-size:14px}.booking-steps li{min-width:88px;grid-template-columns:36px}.booking-steps span{width:36px;height:36px;font-size:16px}.booking-steps li:not(:last-child)::after{top:18px;left:61px;width:54px}.reservation-calendar-card{padding:12px;border-radius:18px}.reservation-calendar-top{padding:2px 4px 4px}.reservation-calendar-top strong{font-size:17px}.reservation-calendar .cal-month{padding-left:2px;padding-right:2px}.reservation-calendar .cal-month+ .cal-month{padding-left:2px;padding-right:2px}.reservation-calendar .cal-month h3{font-size:23px}.reservation-calendar .cal-grid{gap:3px}.reservation-calendar .cal-day{aspect-ratio:.92;border-radius:7px!important}.reservation-calendar .cal-day-number{font-size:11px}.reservation-calendar .cal-day-price{font-size:8px}.reservation-legend{gap:10px;font-size:10px}.reservation-legend .price-legend{width:100%;margin-left:0}.date-selection-bar{align-items:flex-start;flex-wrap:wrap}.date-selection-bar button{margin-left:28px}.reservation-story{height:190px}.reservation-story-overlay{left:17px;max-width:72%}.reservation-story-overlay h3{font-size:25px}.reservation-story-overlay p:last-child{display:none}.story-note{font-size:15px;right:15px;bottom:17px}.reservation-summary-card{padding:17px 14px}.summary-card-head{align-items:flex-start}.stay-dates{grid-template-columns:1fr auto 1fr}.reservation-benefits{grid-template-columns:1fr;padding-left:10px}.reservation-benefits span{justify-content:flex-start}.booking-form-modern .two{grid-template-columns:1fr}}

/* v15 · jerarquía editorial tras situar la reserva como apertura de página */
.hero-copy .hero-property-title{font:76px/1 Georgia,serif;letter-spacing:.02em;margin:0}.hero-copy .hero-place-title{font:32px Georgia,serif;margin:10px 0 14px}.reservation-heading h1{margin-top:0}
@media(max-width:900px){.hero-copy .hero-property-title{font-size:56px}}

/* =========================================================
   v17 · Rediseño visual premium / reserva orientada a conversión
   ========================================================= */
.v18{
  --paper:#fbfaf7;
  --surface:#ffffff;
  --cream:#f4f0e9;
  --cream-2:#eee7dd;
  --ink:#17231f;
  --ink-soft:#33413c;
  --muted:#707a75;
  --green:#245c4b;
  --green2:#193f34;
  --green-soft:#e6f0eb;
  --sage:#789889;
  --sand:#d4b88d;
  --line:#e7e2da;
  --shadow:0 18px 55px rgba(25,42,34,.08);
  background:var(--paper);
}
.v18 .eyebrow{font-size:10px;letter-spacing:.2em;color:var(--green);margin-bottom:12px}
.v18 .eyebrow.light{color:#e7d7bd}

/* Cabecera */
.v18 .header{height:82px;padding:0 clamp(20px,5vw,76px);gap:34px;background:rgba(251,250,247,.91);border-bottom:1px solid rgba(231,226,218,.8);backdrop-filter:blur(18px);box-shadow:0 6px 28px rgba(26,40,34,.035)}
.v18 .brand b{font-size:24px;letter-spacing:.16em;color:var(--green2)}
.v18 .brand span{font-size:7.5px;letter-spacing:.2em;margin-top:3px}
.v18 .header nav{gap:22px;font-size:12px;color:#48544f}
.v18 .header nav a{position:relative;padding:29px 0 27px;transition:color .18s ease}
.v18 .header nav a::after{content:"";position:absolute;left:0;right:100%;bottom:21px;height:1px;background:var(--green);transition:right .18s ease}
.v18 .header nav a:hover{color:var(--green)}
.v18 .header nav a:hover::after{right:0}
.v18 .top-cta{border-radius:999px;padding:11px 19px;background:var(--green2);box-shadow:0 8px 22px rgba(25,63,52,.14);transition:transform .18s ease,background .18s ease}
.v18 .top-cta:hover{transform:translateY(-1px);background:var(--green)}

/* Hero editorial */
.v18 .hero{height:min(76vh,720px);min-height:610px;padding:clamp(32px,5vw,76px);align-items:flex-end;overflow:hidden}
.v18 .hero>img{object-position:center 53%;transform:scale(1.002)}
.v18 .shade{background:linear-gradient(90deg,rgba(12,25,20,.78) 0%,rgba(12,25,20,.48) 42%,rgba(12,25,20,.14) 76%,rgba(12,25,20,.08) 100%),linear-gradient(0deg,rgba(10,22,18,.22),transparent 45%)}
.v18 .hero-copy{max-width:760px;padding-bottom:38px}
.v18 .hero-copy .script{font-size:clamp(24px,2.4vw,35px);margin-bottom:15px;color:#f3e9d9}
.v18 .hero-copy .hero-property-title{font-size:clamp(60px,7.2vw,102px);line-height:.9;letter-spacing:.035em;text-shadow:0 8px 34px rgba(0,0,0,.16)}
.v18 .hero-copy .hero-place-title{font:500 clamp(18px,2vw,29px)/1.2 Georgia,serif;margin:15px 0 16px;color:#fff}
.v18 .hero-copy .hero-lead{font-size:clamp(15px,1.45vw,19px)!important;line-height:1.6;max-width:590px;margin:0;color:rgba(255,255,255,.9)}

/* Reserva ligeramente superpuesta */
.v18 .reservation-experience{position:relative;z-index:8;margin:34px auto 0;padding:0 clamp(16px,4vw,58px) 26px;background:transparent;border:0}
.v18 .reservation-heading{max-width:1400px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;padding:26px 36px 20px;box-shadow:0 12px 34px rgba(25,42,34,.04);align-items:center}
.v18 .reservation-heading h1,.v18 .reservation-heading h2{font-size:clamp(40px,4vw,60px);color:var(--green2);margin:0 0 10px}
.v18 .reservation-heading>div>p:last-child{font-size:15px;line-height:1.6;max-width:710px;color:var(--muted)}
.v18 .booking-steps{min-width:300px}
.v18 .booking-steps li{min-width:100px;font-size:10px}
.v18 .booking-steps span{width:38px;height:38px;font-size:15px}
.v18 .booking-steps li:not(:last-child)::after{top:18px;left:69px;width:62px;background:#d7ddd9}
.v18 .reservation-layout{max-width:1400px;background:var(--surface);border:1px solid var(--line);border-top:0;border-radius:0 0 26px 26px;padding:0 28px 30px;grid-template-columns:minmax(0,1.78fr) minmax(320px,.78fr);gap:26px;box-shadow:var(--shadow)}
.v18 .reservation-calendar-card,.v18 .reservation-summary-card{border:0;box-shadow:none;border-radius:18px}
.v18 .reservation-calendar-card{padding:10px 6px 4px;background:#fff}
.v18 .reservation-calendar-top{padding:4px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.v18 .calendar-kicker{font-size:8px;color:var(--sage)}
.v18 .reservation-calendar-top strong{font-size:19px;color:var(--green2)}
.v18 .reservation-controls button{width:40px;height:40px;border-color:#dedbd4;background:#fbfaf7;color:var(--green2);transition:background .18s ease,transform .18s ease}
.v18 .reservation-controls button:hover{background:var(--green-soft);transform:translateY(-1px)}
.v18 .reservation-calendar{gap:0}
.v18 .reservation-calendar .cal-month{border:0;border-radius:0;padding:3px 24px 5px 8px}
.v18 .reservation-calendar .cal-month+.cal-month{border-left:1px solid var(--line);padding-left:30px;padding-right:8px}
.v18 .reservation-calendar .cal-month h3{font-size:25px;color:var(--green2);margin-bottom:18px;text-transform:capitalize}
.v18 .reservation-calendar .cal-grid{gap:5px}
.v18 .reservation-calendar .cal-grid .dow{font-size:9px;letter-spacing:.1em;font-weight:800;color:#949c98;padding:4px 0 8px}
.v18 .reservation-calendar .cal-day{min-height:54px;aspect-ratio:auto;border:1px solid transparent!important;border-radius:10px!important;background:#fff!important;gap:4px;padding:5px 2px!important;transition:background .15s ease,border-color .15s ease,transform .15s ease}
.v18 .reservation-calendar .cal-day:not(:disabled):not(.selected):hover{background:#f2f7f4!important;border-color:#b7cfc4!important;transform:translateY(-1px)}
.v18 .reservation-calendar .cal-day-number{font-size:12px;font-weight:700;color:#25332e}
.v18 .reservation-calendar .cal-day-price{font-size:9px;color:var(--green);font-weight:800}
.v18 .reservation-calendar .cal-day.busy,.v18 .reservation-calendar .cal-day.past{background:#f4f3f0!important;border-color:#f4f3f0!important;opacity:.62}
.v18 .reservation-calendar .cal-day.busy .cal-day-number,.v18 .reservation-calendar .cal-day.past .cal-day-number{color:#9ca19e;text-decoration:none}
.v18 .reservation-calendar .cal-day.busy .cal-day-price,.v18 .reservation-calendar .cal-day.past .cal-day-price{color:#a9adaa}
.v18 .reservation-calendar .cal-day.in-range{background:#e6f2ed!important;border-radius:3px!important;border-color:#e6f2ed!important}
.v18 .reservation-calendar .cal-day.selected{background:var(--green)!important;border-color:var(--green)!important;box-shadow:0 7px 15px rgba(36,92,75,.16)}
.v18 .reservation-calendar .cal-day.selected .cal-day-number,.v18 .reservation-calendar .cal-day.selected .cal-day-price{color:#fff}
.v18 .reservation-calendar .cal-day.checkout-possible{background:#f4f7f5!important;border:1px dashed #a8beb4!important}
.v18 .reservation-calendar .cal-day.custom-price:not(.busy):not(.past):not(.selected){border-color:#d9c8aa!important;background:#fffdf8!important}
.v18 .reservation-legend{margin:18px 8px 10px;padding-top:15px;gap:17px;font-size:10px}
.v18 .reservation-legend i{width:9px;height:9px}
.v18 .reservation-legend .selected-dot{background:var(--green)}
.v18 .reservation-legend .busy-dot{background:#d8d6d1}
.v18 .date-selection-bar{margin:12px 8px 0;min-height:52px;background:#edf5f1;color:#2c5b4e;border:1px solid #dcebe4;border-radius:12px;padding:12px 14px}
.v18 .selection-icon{font-size:16px}
.v18 .date-selection-bar button{color:var(--green);text-decoration:none;border-radius:999px;background:#fff;padding:7px 10px}

/* Resumen de estancia */
.v18 .reservation-summary-card{position:sticky;top:104px;padding:22px;background:#f8f6f1;border:1px solid #e7e0d6;box-shadow:0 12px 34px rgba(36,54,45,.055)}
.v18 .summary-card-head{margin-bottom:16px;justify-content:flex-start}
.v18 .summary-card-head small{font-size:9px;text-align:right;max-width:120px}
.v18 .best-price-badge{background:#efe3ca;color:#715722;padding:7px 11px;letter-spacing:.02em}
.v18 .best-price-badge::before{content:"◆";font-size:8px}
.v18 .guest-panel h3,.v18 .price-summary h3,.v18 .booking-details h3{font-size:20px;color:var(--green2)}
.v18 .guest-control{background:#fff;border-color:#e2ded6;box-shadow:none;padding:10px;border-radius:11px}
.v18 .guest-control .guest-icon{background:var(--green-soft);color:var(--green);font-size:14px}.v18 .guest-control .guest-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.v18 .guest-control select{border-color:#e4e0d9;background:#fbfaf7;font-weight:800}
.v18 .minimum-stay{background:#e8efe9;color:#315e4f;border-radius:10px;margin:12px 0;padding:10px 12px;font-size:11px}
.v18 .minimum-icon{font-size:15px}
.v18 .stay-dates{background:#fff;border:1px solid #e6e1d9;border-radius:12px;padding:12px;margin:12px 0 15px}
.v18 .stay-dates b{font-size:12px;color:var(--green2)}
.v18 .price-summary{padding-top:2px}
.v18 .price-row{font-size:11px;padding:5px 0}
.v18 .price-total{margin-top:10px;padding-top:14px}
.v18 .price-total>span{font-size:21px}
.v18 .price-total>b{font-size:30px;color:var(--green)}
.v18 .reservation-message{font-size:11px;background:#fff;border:1px solid #e9e4dc;margin:10px 0;padding:11px 12px}.v18 .reservation-message[hidden]{display:none}.v18 .reservation-message.warning{background:#fff4db;border-color:#ecd69e;color:#6d5011}.v18 .reservation-message.bad{background:#fff0ed;border-color:#ebc1b8}.v18 .reservation-message.loading{background:#eef5f2;border-color:#d6e5de}
.v18 .reservation-primary{min-height:48px;border-radius:999px;background:var(--green2);box-shadow:0 9px 20px rgba(25,63,52,.15);font-size:12px;transition:transform .18s ease,background .18s ease}
.v18 .reservation-primary:not(:disabled):hover{background:var(--green);transform:translateY(-1px)}
.v18 .reservation-secondary{border:0;background:transparent;color:var(--green);font-size:10px;text-decoration:underline;text-underline-offset:3px;margin-top:5px;padding:8px}
.v18 .reservation-trust{grid-template-columns:1fr 1fr;border:0;margin:12px 0 10px;padding:0;gap:7px;font-size:9px;color:#61716a}
.v18 .reservation-trust span{align-items:flex-start}
.v18 .reservation-trust b{width:auto;color:var(--green)}

.v18 .booking-details{background:#fff;border-color:#e3ddd4;margin-top:14px}
.v18 .booking-details-head button{border:1px solid var(--line)}

/* Contenido editorial */
.v18 .section{padding:clamp(74px,8vw,118px) clamp(20px,5.5vw,84px)}
.v18 .apartment{grid-template-columns:.82fr 1.18fr;gap:clamp(38px,6vw,90px);max-width:1460px;margin:0 auto;padding-top:42px}
.v18 .copy h2{font-size:clamp(38px,4.1vw,60px);color:var(--green2);letter-spacing:-.025em}
.v18 .copy>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:630px}
.v18 .apartment-highlights{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:28px}
.v18 .apartment-highlights span{padding:13px 0;border-top:1px solid var(--line);display:grid;gap:2px}
.v18 .apartment-highlights b{font:17px Georgia,serif;color:var(--green2)}
.v18 .apartment-highlights small{font-size:9px;color:var(--muted)}
.v18 .feature-images{gap:14px;align-items:stretch}
.v18 .feature-images figure{border-radius:20px;box-shadow:0 16px 34px rgba(30,45,37,.08)}
.v18 .feature-images figure:first-child{transform:none}
.v18 .feature-images img{height:420px;object-position:center}

.v18 .section-heading{max-width:1460px;margin:0 auto 25px;padding:0 clamp(20px,5.5vw,84px);display:flex;justify-content:space-between;align-items:end;gap:30px}
.v18 .section-heading h2{font:clamp(36px,4vw,56px)/1.05 Georgia,serif;color:var(--green2);margin:0;letter-spacing:-.02em}
.v18 .section-heading>p{max-width:450px;color:var(--muted);font-size:14px;line-height:1.6;margin:0}
.v18 .gallery.gallery-six{max-width:1460px;margin:0 auto;padding:0 clamp(20px,5.5vw,84px) clamp(74px,8vw,110px);grid-template-columns:1.1fr 1.1fr .72fr .72fr .72fr;grid-template-rows:240px 240px;gap:10px}
.v18 .gallery.gallery-six figure{border-radius:16px}
.v18 .gallery.gallery-six figure:first-child{grid-column:1 / 3;grid-row:1 / 3}.v18 .gallery.gallery-six figure:nth-child(2){grid-column:3}.v18 .gallery.gallery-six figure:nth-child(3){grid-column:4}.v18 .gallery.gallery-six figure:nth-child(4){grid-column:3;grid-row:2}.v18 .gallery.gallery-six figure:nth-child(5){grid-column:4;grid-row:2}.v18 .gallery.gallery-six figure:nth-child(6){grid-column:5;grid-row:1 / 3}
.v18 .gallery.gallery-six img{height:100%;min-height:100%;object-fit:cover;transition:transform .35s ease}
.v18 .gallery.gallery-six figure:hover img{transform:scale(1.025)}
.v18 .gallery.gallery-six figcaption{padding:55px 16px 14px;font-size:11px}

.v18 .amenities-section{padding:74px clamp(20px,5.5vw,84px) 82px;background:#f5f2ec;border:0}
.v18 .amenities-head{max-width:1460px;margin:0 auto 25px}
.v18 .amenities-head h2{font-size:clamp(34px,3.6vw,50px);color:var(--green2);letter-spacing:-.02em}
.v18 .amenities-controls button{background:#fff;border-color:#ddd8cf}
.v18 .amenities-viewport{max-width:1460px;margin:0 auto}
.v18 .amenities-track{gap:10px}
.v18 .amenity-card{flex-basis:205px;min-width:205px;min-height:148px;background:#fff;border-color:#e2ddd4;border-radius:14px;padding:17px;transition:transform .18s ease,box-shadow .18s ease}
.v18 .amenity-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(31,48,39,.07)}
.v18 .amenity-icon{width:40px;height:40px;border-radius:50%;background:var(--green-soft)}

.v18 .reviews-section{background:#fff;padding-top:90px;padding-bottom:100px}
.v18 .reviews-heading{max-width:1460px;margin:0 auto 30px}
.v18 .reviews-heading h2{font:clamp(36px,4vw,56px)/1.05 Georgia,serif;color:var(--green2);max-width:760px;margin:0;letter-spacing:-.02em}
.v18 .reviews-kicker{margin-bottom:10px}
.v18 .reviews-carousel{max-width:1460px;margin:0 auto}
.v18 .review-card{border-color:#e6e1d9;border-radius:16px;background:#fbfaf7;min-height:220px}
.v18 .review-card p{font-size:18px;color:#34413c}
.v18 .review-score{background:var(--green2)}
.v18 .review-nav{border-color:#ddd8cf;box-shadow:none}

/* Entorno y ubicación */
.v18 .discover{padding-top:0;padding-bottom:100px;background:#fbfaf7}
.v18 .discover-intro-callout{max-width:1460px;margin:0 auto 16px!important;border-radius:24px!important;background:linear-gradient(135deg,#183f34,#2e6452)!important;padding:42px!important}
.v18 .discover-intro-callout h2{font-size:clamp(32px,3.4vw,49px)!important;letter-spacing:-.02em}
.v18 .discover .destination-grid,.v18 .discover .wine-callout{max-width:1460px;margin-left:auto;margin-right:auto}
.v18 .destination-grid-three{gap:10px}
.v18 .destination-grid figure{border-radius:18px}
.v18 .destination-grid-three img{height:360px}
.v18 .wine-callout{border-radius:20px;background:linear-gradient(135deg,#2a503e,#193a2e);padding:35px}

.v18 .location{max-width:1460px;margin:0 auto;grid-template-columns:.85fr 1.15fr;gap:0;padding-top:100px;padding-bottom:100px}
.v18 .location-copy{padding:50px;background:#f0ece4;border-radius:22px 0 0 22px}
.v18 .location-copy h2{font-size:clamp(35px,3.6vw,52px);color:var(--green2)}
.v18 .map-wrap{border-radius:0 22px 22px 0;min-height:470px}
.v18 .map-wrap iframe{min-height:470px}

.v18 .final-booking-cta{margin:0 clamp(20px,5.5vw,84px) 70px;min-height:260px;border-radius:26px;padding:46px clamp(30px,5vw,72px);display:flex;align-items:center;justify-content:space-between;gap:40px;background:linear-gradient(120deg,rgba(16,55,43,.96),rgba(44,97,77,.94)),url('/images/salon-comedor.jpg') center/cover;color:#fff;overflow:hidden}
.v18 .final-booking-cta h2{font:clamp(38px,4.3vw,62px)/1 Georgia,serif;margin:0 0 12px}
.v18 .final-booking-cta p:not(.eyebrow){margin:0;color:#e6eee9;font-size:15px}
.v18 .final-booking-cta a{flex:0 0 auto;background:#fff;color:var(--green2);padding:15px 20px;border-radius:999px;font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(0,0,0,.13)}

.v18 footer{padding:30px clamp(20px,5.5vw,84px) 38px;border-top:1px solid var(--line);background:#fff}
.v18 footer b{color:var(--green2)}
.v18 .footer-links{font-size:11px}
.v18 .whatsapp-float{background:#255d4b;box-shadow:0 10px 25px rgba(0,0,0,.16)}

/* Móvil: un mes + barra inferior con total */
@media(max-width:1100px){
  .v18 .header nav{gap:15px}.v18 .header nav a{font-size:11px}
  .v18 .reservation-layout{grid-template-columns:minmax(0,1.4fr) minmax(310px,.8fr)}
  .v18 .gallery.gallery-six{grid-template-rows:220px 220px}
}
@media(max-width:900px){
  .v18 .header{height:70px}
  .v18 .hero{min-height:650px;height:78vh;padding:28px 20px 56px;justify-content:flex-end;align-items:flex-start}
  .v18 .shade{background:linear-gradient(0deg,rgba(11,27,21,.8) 0%,rgba(11,27,21,.48) 45%,rgba(11,27,21,.1) 78%)}
  .v18 .hero-copy{padding-bottom:16px;margin:0}
  .v18 .hero-copy .hero-property-title{font-size:64px}
  .v18 .hero-copy .hero-place-title{font-size:22px}
  .v18 .hero-facts{gap:6px;margin-top:20px}
  .v18 .reservation-experience{margin-top:20px;padding:0 14px 28px}
  .v18 .reservation-heading{grid-template-columns:1fr;padding:27px 22px 22px;gap:20px}
  .v18 .reservation-heading h1,.v18 .reservation-heading h2{font-size:43px}
  .v18 .booking-steps{width:100%;min-width:0}
  .v18 .booking-steps li{flex:1;min-width:0}
  .v18 .booking-steps li:not(:last-child)::after{left:68%;width:64%}
  .v18 .reservation-layout{grid-template-columns:1fr;padding:0 15px 18px;gap:16px}
  .v18 .reservation-summary-card{position:relative;top:auto}
  .v18 .apartment{grid-template-columns:1fr}
  .v18 .feature-images figure:first-child{transform:none}
  .v18 .feature-images img{height:300px}
  .v18 .section-heading{align-items:flex-start;flex-direction:column}
  .v18 .gallery.gallery-six{grid-template-columns:1fr 1fr;grid-template-rows:300px 210px 210px}
  .v18 .gallery.gallery-six figure:first-child{grid-column:1/3;grid-row:auto}.v18 .gallery.gallery-six figure:nth-child(n+2){grid-column:auto;grid-row:auto}.v18 .gallery.gallery-six figure:nth-child(6){grid-column:auto;grid-row:auto}
  .v18 .discover-intro-callout{margin:0 18px 16px!important;padding:30px!important}
  .v18 .discover .destination-grid,.v18 .discover .wine-callout{margin-left:18px;margin-right:18px}
  .v18 .location{grid-template-columns:1fr;padding-left:18px;padding-right:18px}
  .v18 .location-copy,.v18 .map-wrap{border-radius:18px}
  .v18 .map-wrap{margin-top:10px}
  .v18 .final-booking-cta{margin:0 18px 82px;padding:35px 28px;min-height:290px;flex-direction:column;align-items:flex-start;justify-content:center}
  .v18 .mobile-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;left:10px;right:10px;bottom:10px;background:rgba(255,255,255,.96);border:1px solid #e3ddd4;border-radius:18px;padding:8px 8px 8px 14px;box-shadow:0 12px 35px rgba(23,38,31,.18);backdrop-filter:blur(14px)}
  .v18 .mobile-cta>div{display:grid;gap:1px;min-width:0}.v18 .mobile-cta small{font-size:8px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.v18 .mobile-cta b{font:18px Georgia,serif;color:var(--green2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .v18 .mobile-cta a{width:auto;min-width:112px;padding:12px 17px;border-radius:999px;background:var(--green2);box-shadow:none;font-size:11px}
  .v18 .whatsapp-float{bottom:84px}
}
@media(max-width:720px){
  .v18 .reservation-calendar .cal-month:nth-child(2){display:none}
  .v18 .reservation-calendar{grid-template-columns:1fr}
  .v18 .reservation-calendar .cal-month{padding:3px 4px 5px}
  .v18 .reservation-calendar .cal-month+.cal-month{border:0;padding:3px 4px 5px}
  .v18 .reservation-calendar .cal-day{min-height:52px}
  .v18 .reservation-legend .price-legend{width:100%;margin-left:0}
  .v18 .reservation-trust{grid-template-columns:1fr}
}
@media(max-width:560px){
  .v18 .brand b{font-size:20px}.v18 .brand span{font-size:6.5px}
  .v18 .hero{min-height:610px;padding-bottom:42px}
  .v18 .hero-copy .hero-property-title{font-size:53px}
  .v18 .hero-copy .hero-place-title{font-size:19px}
  .v18 .hero-copy .hero-lead{font-size:14px!important;line-height:1.55}
    .v18 .reservation-experience{padding-left:9px;padding-right:9px}
  .v18 .reservation-heading{padding:24px 16px 18px;border-radius:20px 20px 0 0}
  .v18 .reservation-heading h1,.v18 .reservation-heading h2{font-size:38px}
  .v18 .reservation-heading>div>p:last-child{font-size:13px}
  .v18 .booking-steps{padding-top:2px}.v18 .booking-steps span{width:34px;height:34px}.v18 .booking-steps li:not(:last-child)::after{top:16px}
  .v18 .reservation-layout{padding:0 8px 12px;border-radius:0 0 20px 20px}
  .v18 .reservation-calendar-card{padding:8px 3px 3px}
  .v18 .reservation-calendar-top{padding:3px 4px 14px}
  .v18 .reservation-calendar-top strong{font-size:17px}
  .v18 .reservation-calendar .cal-month h3{font-size:22px;margin-bottom:13px}
  .v18 .reservation-calendar .cal-grid{gap:3px}
  .v18 .reservation-calendar .cal-day{min-height:48px;border-radius:8px!important}
  .v18 .reservation-calendar .cal-day-number{font-size:11px}.v18 .reservation-calendar .cal-day-price{font-size:8px}
  .v18 .date-selection-bar{margin-left:3px;margin-right:3px}
  .v18 .reservation-summary-card{padding:16px 13px;border-radius:15px}
  .v18 .stay-dates{padding:10px}
  .v18 .section{padding-left:18px;padding-right:18px}
  .v18 .apartment-highlights{grid-template-columns:1fr}.v18 .apartment-highlights span{grid-template-columns:1fr 1fr;align-items:center}
  .v18 .feature-images{grid-template-columns:1fr 1fr}.v18 .feature-images img{height:220px}
  .v18 .section-heading{padding-left:18px;padding-right:18px}
  .v18 .gallery.gallery-six{padding-left:18px;padding-right:18px;grid-template-rows:250px 170px 170px}
  .v18 .gallery.gallery-six figcaption{font-size:9px}
  .v18 .reviews-heading{margin-bottom:22px}.v18 .review-viewport{margin:0 30px}
  .v18 .destination-grid-three img{height:290px}
  .v18 footer{flex-direction:column;gap:18px}.v18 .footer-links{justify-content:flex-start}
}


/* v18 · Ajustes solicitados */
.v18 .hero-facts{display:grid;grid-template-columns:repeat(4,minmax(112px,1fr));gap:10px;max-width:650px;margin-top:30px}
.v18 .hero-fact{min-height:72px;display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(16,34,27,.34);backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.v18 .hero-fact-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:rgba(255,255,255,.12);color:#f3eadc}
.v18 .hero-fact-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.v18 .hero-fact>span:last-child{display:grid;gap:1px}
.v18 .hero-fact b{font:19px/1 Georgia,serif;color:#fff}
.v18 .hero-fact small{font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.v18 .reservation-heading>div{display:flex;align-items:center}
.v18 .reservation-heading h2{margin-bottom:0}
.v18 .compact-guests{margin:0 0 12px}
.v18 .compact-guests .guest-control{grid-template-columns:auto 1fr 76px}
.v18 .price-total>span{font:11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:800}
.v18 .reservation-alert{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:flex-start;margin-top:15px;padding:13px 14px;border:1px solid #d7e4dd;border-left:4px solid var(--green);border-radius:12px;background:#f0f6f3;color:#294f42}
.v18 .reservation-alert-icon{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font:700 13px Georgia,serif}
.v18 .reservation-alert>span:last-child{display:grid;gap:3px}
.v18 .reservation-alert b{font-size:11px}
.v18 .reservation-alert small{font-size:9.5px;line-height:1.45;color:#61716a}
.v18 .gallery-heading,.v18 .amenities-head{padding-top:0}
@media(max-width:900px){
  .v18 .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:430px;margin-top:22px}
  .v18 .hero-fact{min-height:64px;padding:10px 11px}
  .v18 .apartment{padding-top:34px}
}
@media(max-width:560px){
  .v18 .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .v18 .hero-fact{min-height:58px;border-radius:13px;padding:8px 9px;gap:8px}
  .v18 .hero-fact-icon{width:29px;height:29px;border-radius:9px}
  .v18 .hero-fact-icon svg{width:16px;height:16px}
  .v18 .hero-fact b{font-size:16px}.v18 .hero-fact small{font-size:7.5px}
  .v18 .reservation-heading{padding-top:22px}
  .v18 .reservation-alert{padding:12px}
}


/* v19 · Ajustes de ritmo, ubicación y presentación editorial */
.v18 .gallery-intro-card{
  max-width:1460px;
  margin:0 auto 24px;
  padding:0 clamp(20px,5.5vw,84px);
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  gap:20px;
}
.v18 .gallery-intro-mark{
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  border:1px solid #d9d3c9;background:#f5f2ec;color:var(--green2);
  font:700 13px/1 Arial,sans-serif;letter-spacing:.12em;
}
.v18 .gallery-intro-copy{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.v18 .gallery-intro-copy h2{font:clamp(34px,3.8vw,54px)/1.03 Georgia,serif;color:var(--green2);margin:0;letter-spacing:-.025em;max-width:720px}
.v18 .gallery-intro-copy p{max-width:470px;margin:0;color:var(--muted);font-size:14px;line-height:1.6}

.v18 .reviews-section{padding-bottom:46px}
.v18 .reviews-heading h2{max-width:none;white-space:nowrap;font-size:clamp(34px,3.7vw,54px)}
.v18 .discover{padding-top:0}
.v18 .discover-intro-callout{margin-top:0!important}

.v18 .location{grid-template-columns:.72fr 1.28fr;padding-top:52px;padding-bottom:58px}
.v18 .location-copy{padding:30px 34px;border-radius:18px 0 0 18px;display:flex;flex-direction:column;justify-content:center}
.v18 .location-copy .eyebrow{margin-bottom:8px}
.v18 .location-copy h2{font-size:clamp(30px,3vw,44px);margin:0 0 12px}
.v18 .location-copy p{margin:0 0 12px;line-height:1.55}
.v18 .location-copy .secondary{margin-top:6px;align-self:flex-start}
.v18 .map-wrap{border-radius:0 18px 18px 0;min-height:340px}
.v18 .map-wrap iframe{min-height:340px;height:340px}

@media(max-width:1100px){
  .v18 .reviews-heading h2{white-space:normal}
}
@media(max-width:900px){
  .v18 .gallery-intro-card{grid-template-columns:48px 1fr;gap:14px;padding-left:18px;padding-right:18px}
  .v18 .gallery-intro-mark{width:44px;height:44px}
  .v18 .gallery-intro-copy{align-items:flex-start;flex-direction:column;gap:10px;padding:18px 0}
  .v18 .gallery-intro-copy h2{font-size:38px}
  .v18 .reviews-section{padding-bottom:34px}
  .v18 .location{padding-top:36px;padding-bottom:44px}
  .v18 .location-copy{padding:26px;border-radius:18px}
  .v18 .map-wrap{min-height:300px;margin-top:8px;border-radius:18px}
  .v18 .map-wrap iframe{min-height:300px;height:300px}
}
@media(max-width:560px){
  .v18 .gallery-intro-card{grid-template-columns:1fr;gap:10px;margin-bottom:18px}
  .v18 .gallery-intro-mark{display:none}
  .v18 .gallery-intro-copy h2{font-size:34px}
  .v18 .gallery-intro-copy p{font-size:13px}
  .v18 .location{padding-top:28px;padding-bottom:36px}
  .v18 .location-copy{padding:22px}
}

/* v19 · Ajuste fino de separación vertical */
.v18 .reviews-section{padding-bottom:32px}
.v18 .discover{padding-bottom:36px}
.v18 .location{padding-top:24px;padding-bottom:48px}
.v18 .map-wrap{min-height:320px}
.v18 .map-wrap iframe{min-height:320px;height:320px}
@media(max-width:900px){
  .v18 .reviews-section{padding-bottom:26px}
  .v18 .discover{padding-bottom:28px}
  .v18 .location{padding-top:18px;padding-bottom:36px}
  .v18 .map-wrap{min-height:280px}
  .v18 .map-wrap iframe{min-height:280px;height:280px}
}


/* =========================================================
   v20 · Unificación de ancho, reserva compacta y carruseles
   ========================================================= */
.v18{--site-max:1400px;--site-gutter:clamp(18px,4vw,58px)}
.v18 .reservation-heading,.v18 .reservation-layout{max-width:var(--site-max)}
.v18 .apartment,.v18 .gallery.gallery-six,.v18 .amenities-head,.v18 .amenities-viewport,.v18 .reviews-heading,.v18 .reviews-carousel,.v18 .discover-intro-callout,.v18 .discover .destination-grid,.v18 .discover .wine-callout,.v18 .location,.v18 .final-booking-cta{width:calc(100% - (var(--site-gutter) * 2));max-width:var(--site-max);margin-left:auto;margin-right:auto}
.v18 .apartment,.v18 .gallery.gallery-six,.v18 .location{padding-left:0;padding-right:0}
.v18 .amenities-section,.v18 .reviews-section,.v18 .discover{padding-left:0;padding-right:0}
.v18 .final-booking-cta{margin-bottom:58px}
.v18 .date-selection-bar.check-times{justify-content:flex-start;gap:10px;background:#f3f6f2;color:#496057}
.v18 .date-selection-bar.check-times span:last-child{font-size:11px;letter-spacing:.01em}
.v18 .date-selection-bar.check-times b{color:var(--green2)}
.v18 .date-selection-bar.check-times i{font-style:normal;color:#a3aca7;margin:0 5px}
.v18 .compact-guests .guest-control{grid-template-columns:auto 1fr 76px}
.v18 .price-summary{margin-top:10px}
.v18 .reservation-alert-important{border:1px solid #ead7a8;border-left:5px solid #c18b2f;background:linear-gradient(135deg,#fff8e8,#fffdf7);color:#5b451d;box-shadow:0 8px 22px rgba(112,82,27,.08)}
.v18 .reservation-alert-important .reservation-alert-icon{background:#c18b2f}
.v18 .reservation-alert-important small{color:#745f35}
.v18 .apartment{padding-top:32px;padding-bottom:54px}
.v18 .gallery.gallery-six{grid-template-columns:1.15fr .85fr .85fr;grid-template-rows:250px 250px;gap:10px;padding-bottom:62px}
.v18 .gallery.gallery-six figure:first-child{grid-column:1;grid-row:1 / 3}
.v18 .gallery.gallery-six figure:nth-child(2){grid-column:2;grid-row:1}
.v18 .gallery.gallery-six figure:nth-child(3){grid-column:3;grid-row:1}
.v18 .gallery.gallery-six figure:nth-child(4){grid-column:2;grid-row:2}
.v18 .gallery.gallery-six figure:nth-child(5){grid-column:3;grid-row:2}
.v18 .gallery.gallery-six figure:nth-child(n+6){display:none}
.v18 .amenities-section{padding-top:54px;padding-bottom:64px}
.v18 .amenities-head{display:flex;align-items:center;justify-content:space-between;gap:24px}
.v18 .amenities-head h2{white-space:nowrap;font-size:clamp(18px,3.1vw,46px);line-height:1.05;margin:0}
.v18 .amenities-viewport{scroll-behavior:smooth;overscroll-behavior-inline:contain}
.v18 .reviews-heading{margin-bottom:22px}
.v18 .reviews-heading h2{margin-top:0}
.v18 .discover-intro-callout{margin-bottom:16px!important}
.v18 .wine-callout{margin-top:16px}
.v18 .location{grid-template-columns:.68fr 1.32fr;padding-top:16px;padding-bottom:38px}
.v18 .location-copy{padding:24px 28px}
.v18 .location-copy .location-address{font:600 clamp(12px,1.15vw,16px)/1.45 Arial,Helvetica,sans-serif;letter-spacing:.01em;margin:0 0 10px;color:var(--green2);white-space:nowrap}
.v18 .location-copy>p:not(.eyebrow){font-size:12px;margin-bottom:10px}
.v18 .map-wrap,.v18 .map-wrap iframe{min-height:270px;height:270px}
.v18 footer{display:flex;justify-content:center;align-items:center;padding:26px var(--site-gutter) 34px}
.v18 footer .footer-links-centered{width:100%;max-width:var(--site-max);display:flex;flex-direction:row;justify-content:center;align-items:center;gap:clamp(18px,3vw,38px);font-size:12px;text-align:center}
.v18 footer .footer-links-centered a{position:relative;color:#5f6964}
.v18 footer .footer-links-centered a+a::before{content:"·";position:absolute;left:calc(-1 * clamp(10px,1.6vw,20px));color:#b1b5b2}
@media(max-width:900px){.v18{--site-gutter:18px}.v18 .gallery.gallery-six{grid-template-columns:1fr 1fr;grid-template-rows:280px 190px 190px}.v18 .gallery.gallery-six figure:first-child{grid-column:1/3;grid-row:1}.v18 .gallery.gallery-six figure:nth-child(n+2){grid-column:auto;grid-row:auto}.v18 .amenities-head h2{font-size:clamp(17px,4.3vw,30px)}.v18 .location{grid-template-columns:1fr;padding-top:12px;padding-bottom:30px}.v18 .location-copy .location-address{white-space:normal;font-size:13px}.v18 .map-wrap,.v18 .map-wrap iframe{min-height:250px;height:250px}}
@media(max-width:560px){.v18{--site-gutter:14px}.v18 .date-selection-bar.check-times span:last-child{font-size:10px}.v18 .date-selection-bar.check-times i{margin:0 2px}.v18 .gallery.gallery-six{grid-template-rows:230px 165px 165px}.v18 .amenities-head{gap:10px}.v18 .amenities-head h2{font-size:16px;letter-spacing:-.02em}.v18 .amenities-controls{gap:4px}.v18 .amenities-controls button{width:32px;height:32px}.v18 footer .footer-links-centered{gap:16px;flex-wrap:wrap;font-size:11px}.v18 footer .footer-links-centered a+a::before{display:none}}


/* =========================================================
   v23 · Hero editorial y ajuste global de ritmo/ancho
   ========================================================= */
.v18 .hero{
  height:min(72vh,680px);
  min-height:570px;
  padding:0;
  display:flex;
  align-items:flex-end;
  background:#17251f;
}
.v18 .hero>img{object-position:center 52%}
.v18 .hero .shade{background:linear-gradient(90deg,rgba(12,24,19,.18),rgba(12,24,19,.02) 58%,rgba(12,24,19,.08)),linear-gradient(0deg,rgba(12,24,19,.20),transparent 46%)}
.v18 .hero-copy{
  width:calc(100% - (var(--site-gutter) * 2));
  max-width:var(--site-max);
  margin:0 auto;
  padding:0 0 34px;
  color:var(--ink);
}
.v18 .hero-panel{
  width:min(660px,100%);
  padding:30px 32px 22px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:24px;
  background:rgba(255,253,249,.93);
  backdrop-filter:blur(16px);
  box-shadow:0 20px 54px rgba(12,30,23,.20);
}
.v18 .hero-kicker{
  margin:0 0 10px;
  color:#527264;
  font:700 10px/1.2 Arial,Helvetica,sans-serif;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.v18 .hero-copy .hero-property-title{
  margin:0;
  color:var(--green2);
  font-size:clamp(54px,6vw,82px);
  line-height:.9;
  letter-spacing:.025em;
  text-shadow:none;
}
.v18 .hero-copy .hero-place-title{
  margin:12px 0 22px;
  color:#5f6e67;
  font:500 clamp(17px,1.7vw,23px)/1.25 Georgia,serif;
}
.v18 .hero-facts{
  max-width:none;
  margin-top:0;
  padding-top:17px;
  border-top:1px solid #dedbd4;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.v18 .hero-fact{
  min-height:50px;
  gap:9px;
  padding:5px 12px;
  border:0;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
  box-shadow:none;
}
.v18 .hero-fact+.hero-fact{border-left:1px solid #e3e0d9}
.v18 .hero-fact:first-child{padding-left:0}
.v18 .hero-fact:last-child{padding-right:0}
.v18 .hero-fact-icon{
  width:31px;height:31px;border-radius:10px;
  background:#edf3ee;color:var(--green2);
}
.v18 .hero-fact-icon svg{width:17px;height:17px}
.v18 .hero-fact b{font:18px/1 Georgia,serif;color:var(--green2)}
.v18 .hero-fact small{font-size:8px;color:#748078;letter-spacing:.07em}

/* El bloque de servicios y el bloque de entorno usan exactamente la retícula global. */
.v18 .amenities-head,
.v18 .amenities-viewport,
.v18 .discover-intro-callout,
.v18 .discover .destination-grid,
.v18 .discover .wine-callout{
  width:calc(100% - (var(--site-gutter) * 2))!important;
  max-width:var(--site-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.v18 .amenities-head{padding-left:0!important;padding-right:0!important}
.v18 .discover-intro-callout{box-sizing:border-box}

/* Google Maps -> opiniones: transición compacta. */
.v18 .location{padding-bottom:12px}
.v18 .reviews-section{padding-top:18px}
.v18 .reviews-heading{margin-top:0}

@media(max-width:900px){
  .v18 .hero{height:72vh;min-height:590px;padding:0}
  .v18 .hero-copy{width:calc(100% - 36px);padding-bottom:24px;margin:0 auto}
  .v18 .hero-panel{padding:24px 22px 18px;border-radius:20px}
  .v18 .hero-copy .hero-property-title{font-size:58px}
  .v18 .hero-copy .hero-place-title{font-size:19px;margin-bottom:18px}
  .v18 .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:9px}
  .v18 .hero-fact{padding:5px 9px}
  .v18 .hero-fact:nth-child(odd){padding-left:0;border-left:0}
  .v18 .hero-fact:nth-child(even){border-left:1px solid #e3e0d9}
  .v18 .hero-fact:nth-child(n+3){border-top:1px solid #ece9e2;padding-top:10px}
  .v18 .location{padding-bottom:8px}
  .v18 .reviews-section{padding-top:14px}
}
@media(max-width:560px){
  .v18 .hero{height:68vh;min-height:540px}
  .v18 .hero-copy{width:calc(100% - 28px);padding-bottom:18px}
  .v18 .hero-panel{padding:20px 17px 15px;border-radius:17px}
  .v18 .hero-kicker{font-size:8px;margin-bottom:8px}
  .v18 .hero-copy .hero-property-title{font-size:49px}
  .v18 .hero-copy .hero-place-title{font-size:16px;margin:9px 0 15px}
  .v18 .hero-fact{min-height:43px;gap:7px}
  .v18 .hero-fact-icon{width:27px;height:27px}
  .v18 .hero-fact b{font-size:15px}
  .v18 .hero-fact small{font-size:7px}
}

/* v23 · Sin separación vertical entre ubicación y opiniones */
.v18 .location{padding-bottom:0}
.v18 .reviews-section{padding-top:0}
@media(max-width:900px){
  .v18 .location{padding-bottom:0}
  .v18 .reviews-section{padding-top:0}
}


/* =========================================================
   v24 · Hero inmersivo sin caja · foco en imagen y conversión
   ========================================================= */
.v24 .hero{
  height:min(78vh,760px);
  min-height:620px;
  position:relative;
  align-items:flex-end;
  overflow:hidden;
  background:#12241d;
}
.v24 .hero>img{
  object-position:center 51%;
  transform:scale(1.012);
}
.v24 .hero .shade{
  background:
    linear-gradient(90deg,rgba(7,21,16,.62) 0%,rgba(7,21,16,.25) 46%,rgba(7,21,16,.04) 74%),
    linear-gradient(0deg,rgba(7,21,16,.72) 0%,rgba(7,21,16,.14) 42%,rgba(7,21,16,.02) 68%);
}
.v24 .hero-copy.hero-copy-v24{
  width:calc(100% - (var(--site-gutter) * 2));
  max-width:var(--site-max);
  margin:0 auto;
  padding:0 0 clamp(30px,4.2vw,54px);
  color:#fff;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(24px,3.2vw,38px);
}
.v24 .hero-editorial{
  max-width:820px;
  padding:0;
  background:none;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
}
.v24 .hero-location{
  margin:0 0 14px;
  font:800 10px/1.2 Arial,Helvetica,sans-serif;
  letter-spacing:.22em;
  color:rgba(255,255,255,.78);
  text-transform:uppercase;
}
.v24 .hero-copy .hero-property-title{
  margin:0;
  color:#fff;
  font-size:clamp(68px,8.3vw,118px);
  line-height:.82;
  letter-spacing:.018em;
  text-shadow:0 10px 35px rgba(0,0,0,.22);
}
.v24 .hero-tagline{
  margin:18px 0 0;
  color:#f4eadb;
  font:italic clamp(21px,2vw,30px)/1.2 Georgia,serif;
}
.v24 .hero-facts{
  width:min(760px,100%);
  max-width:760px;
  margin:0;
  padding:16px 0 0;
  border-top:1px solid rgba(255,255,255,.30);
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
}
.v24 .hero-fact{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:2px 18px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
}
.v24 .hero-fact:first-child{padding-left:0}
.v24 .hero-fact+.hero-fact{border-left:1px solid rgba(255,255,255,.24)}
.v24 .hero-fact-icon{
  width:32px;height:32px;
  flex:0 0 32px;
  display:grid;place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.10);
  color:#fff;
}
.v24 .hero-fact-icon svg{width:17px;height:17px}
.v24 .hero-fact>span:last-child{display:grid;gap:2px}
.v24 .hero-fact b{font:600 17px/1 Georgia,serif;color:#fff}
.v24 .hero-fact small{font-size:8px;letter-spacing:.085em;text-transform:uppercase;color:rgba(255,255,255,.67)}

/* La reserva comienza después del hero, sin solapes ni cajas flotantes. */
.v24 .reservation-experience{margin-top:0!important}

@media(max-width:900px){
  .v24 .hero{height:72vh;min-height:600px}
  .v24 .hero .shade{background:linear-gradient(0deg,rgba(7,21,16,.78) 0%,rgba(7,21,16,.20) 62%,rgba(7,21,16,.05) 82%)}
  .v24 .hero-copy.hero-copy-v24{width:calc(100% - 36px);padding-bottom:32px;gap:24px}
  .v24 .hero-copy .hero-property-title{font-size:clamp(60px,13vw,88px)}
  .v24 .hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));width:min(520px,100%);row-gap:11px}
  .v24 .hero-fact{padding:4px 12px}
  .v24 .hero-fact:nth-child(odd){padding-left:0;border-left:0}
  .v24 .hero-fact:nth-child(even){border-left:1px solid rgba(255,255,255,.22)}
  .v24 .hero-fact:nth-child(n+3){border-top:1px solid rgba(255,255,255,.16);padding-top:12px}
}
@media(max-width:560px){
  .v24 .hero{height:68vh;min-height:540px}
  .v24 .hero-copy.hero-copy-v24{width:calc(100% - 28px);padding-bottom:24px;gap:20px}
  .v24 .hero-location{font-size:8px;letter-spacing:.18em;margin-bottom:10px}
  .v24 .hero-copy .hero-property-title{font-size:54px}
  .v24 .hero-tagline{font-size:19px;margin-top:12px}
  .v24 .hero-facts{padding-top:12px;row-gap:8px}
  .v24 .hero-fact{min-height:40px;padding:3px 8px;gap:7px}
  .v24 .hero-fact-icon{width:27px;height:27px;flex-basis:27px}
  .v24 .hero-fact-icon svg{width:15px;height:15px}
  .v24 .hero-fact b{font-size:14px}
  .v24 .hero-fact small{font-size:6.7px}
}

/* =========================================================
   v25 · Refinado UX, retícula, microanimaciones y carrusel
   ========================================================= */
html{scroll-padding-top:98px}
.v25 [id]{scroll-margin-top:98px}
.v25{--site-max:1400px;--site-gutter:clamp(16px,4vw,58px);--section-gap:72px}
.v25 .header{transition:height .28s ease,background .28s ease,box-shadow .28s ease}
.v25.header-compact .header{height:66px;background:rgba(251,250,247,.97);box-shadow:0 8px 28px rgba(25,42,34,.07)}
.v25.header-compact .header nav a{padding-top:21px;padding-bottom:20px}.v25.header-compact .header nav a::after{bottom:14px}

/* Retícula y ritmo vertical homogéneo */
.v25 .reservation-experience,.v25 .apartment,.v25 .gallery.gallery-six,.v25 .amenities-head,.v25 .amenities-viewport,.v25 .discover-intro-callout,.v25 .discover .destination-grid,.v25 .discover .wine-callout,.v25 .location,.v25 .reviews-heading,.v25 .reviews-carousel,.v25 .final-booking-cta{width:calc(100% - (var(--site-gutter) * 2));max-width:var(--site-max);margin-left:auto;margin-right:auto}
.v25 .apartment{padding-top:var(--section-gap);padding-bottom:var(--section-gap)}
.v25 .gallery.gallery-six{padding-bottom:var(--section-gap)}
.v25 .amenities-section{padding-top:var(--section-gap);padding-bottom:var(--section-gap)}
.v25 .discover{padding-top:var(--section-gap);padding-bottom:0}
.v25 .location{padding-top:var(--section-gap);padding-bottom:30px}
.v25 .reviews-section{padding-top:30px;padding-bottom:var(--section-gap)}
.v25 .final-booking-cta{margin-top:0;margin-bottom:var(--section-gap)}

/* Hero más integrado y orientado a conversión */
.v25 .hero{height:min(78vh,760px);min-height:620px}
.v25 .hero>img{transition:transform 8s cubic-bezier(.2,.65,.25,1)}
.v25 .hero:hover>img{transform:scale(1.025)}
.v25 .hero-copy.hero-copy-v24{padding-bottom:42px}
.v25 .hero-editorial{max-width:850px}
.v25 .hero-location{opacity:.82}
.v25 .hero-property-title{letter-spacing:.045em}
.v25 .hero-tagline{max-width:560px}
.v25 .hero-facts{background:rgba(9,27,21,.25);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:10px 16px;backdrop-filter:blur(9px);width:min(760px,100%)}

/* Fotos */
.v25 .feature-images figure,.v25 .gallery figure,.v25 .destination-grid figure{transform:translateZ(0)}
.v25 .feature-images img,.v25 .gallery img,.v25 .destination-grid img{transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.v25 .feature-images figure:hover img,.v25 .gallery figure:hover img,.v25 .destination-grid figure:hover img{transform:scale(1.035);filter:saturate(1.04)}

/* WhatsApp integrado en la paleta, sin verde de marca externo */
.v25 .whatsapp-float{background:#b07b45;color:#fff;box-shadow:0 12px 30px rgba(105,72,37,.22);transition:transform .2s ease,background .2s ease,box-shadow .2s ease}
.v25 .whatsapp-float:hover{background:#956536;transform:translateY(-2px);box-shadow:0 15px 34px rgba(105,72,37,.28)}

/* Carrusel editorial de servicios */
.v25 .amenities-head{margin-bottom:22px}.v25 .amenities-controls{display:flex;gap:7px}
.v25 .amenities-controls button{border:1px solid var(--line);background:#fff;color:var(--green2);width:42px;height:42px;border-radius:50%;font-size:25px;box-shadow:0 5px 18px rgba(25,42,34,.05);transition:transform .2s ease,background .2s ease}
.v25 .amenities-controls button:hover{background:var(--green2);color:#fff;transform:translateY(-1px)}
.v25 .amenities-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:14px 0 20px;scroll-behavior:smooth}
.v25 .amenities-viewport::-webkit-scrollbar{display:none}
.v25 .amenities-track{display:flex!important;gap:18px;width:max-content;padding:0 8px}
.v25 .amenity-card{flex:0 0 min(390px,calc((min(var(--site-max),calc(100vw - (var(--site-gutter) * 2))) - 36px)/3));min-width:280px;min-height:210px;padding:28px 26px;border-radius:22px;background:linear-gradient(145deg,#fff,#f7f3ec);scroll-snap-align:center;opacity:.78;transform:scale(.97);transition:opacity .5s ease,transform .5s ease,box-shadow .5s ease,border-color .5s ease}
.v25 .amenity-card.is-focus{opacity:1;transform:scale(1);border-color:#b7c8be;box-shadow:0 18px 42px rgba(25,63,52,.10)}
.v25 .amenity-icon{width:54px;height:54px;border-radius:17px;margin-bottom:22px;background:#e2ece6}
.v25 .amenity-icon svg{width:28px;height:28px}.v25 .amenity-card b{font:600 20px/1.2 Georgia,serif;color:var(--green2)}.v25 .amenity-card small{font-size:12px;line-height:1.5;margin-top:8px}

/* Mapa y opiniones: separados, pero relacionados */
.v25 .location{padding-bottom:32px}.v25 .reviews-section{padding-top:28px}
.v25 .map-wrap,.v25 .location-copy{min-height:300px}.v25 .map-wrap iframe{min-height:300px}

/* Microanimaciones sobrias */
.v25 .reveal-section{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.v25 .reveal-section.is-visible{opacity:1;transform:none}
.v25 .reservation-primary,.v25 .top-cta,.v25 .final-booking-cta a{transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.v25 .reservation-primary:not(:disabled):hover,.v25 .final-booking-cta a:hover{transform:translateY(-2px)}

@media(max-width:900px){
  html{scroll-padding-top:82px}.v25 [id]{scroll-margin-top:82px}.v25{--section-gap:54px;--site-gutter:18px}
  .v25 .location{padding-top:var(--section-gap);padding-bottom:24px}.v25 .reviews-section{padding-top:24px}
  .v25 .amenity-card{flex-basis:min(78vw,320px);min-width:min(78vw,320px);opacity:.82}.v25 .amenity-card.is-focus{opacity:1}
  .v25 .amenities-track{padding:0 18px}
}
@media(max-width:560px){
  .v25{--section-gap:44px;--site-gutter:14px}.v25 .hero{min-height:650px}.v25 .hero-facts{padding:8px 10px;border-radius:14px}
  .v25 .amenities-head h2{white-space:normal;font-size:27px}.v25 .amenity-card{flex-basis:82vw;min-width:82vw;min-height:190px;padding:24px 22px}
  .v25 .location{padding-bottom:20px}.v25 .reviews-section{padding-top:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.v25 *{scroll-behavior:auto!important}.v25 .reveal-section{opacity:1;transform:none;transition:none}.v25 .hero>img,.v25 .feature-images img,.v25 .gallery img,.v25 .destination-grid img{transition:none}}

/* =========================================================
   v26 · Accesibilidad, navegación móvil y control de movimiento
   ========================================================= */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:16px;top:10px;z-index:300;transform:translateY(-160%);background:#173b30;color:#fff;padding:11px 16px;border-radius:9px;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.22);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
.v26 #top:focus{outline:none}

/* Menú móvil real */
.v26 .menu-toggle{display:none;border:1px solid var(--line);background:#fff;color:var(--green2);border-radius:10px;min-height:44px;padding:8px 11px;align-items:center;gap:9px;font-weight:800}
.v26 .menu-toggle-label{font-size:12px}
.v26 .menu-toggle-icon{display:grid;gap:4px;width:18px}
.v26 .menu-toggle-icon i{display:block;height:2px;border-radius:2px;background:currentColor;transition:transform .2s ease,opacity .2s ease}
.v26 .mobile-nav-reserve{display:none}
.v26.mobile-menu-open{overflow:hidden}
.v26 .header a:focus-visible,.v26 .menu-toggle:focus-visible,.v26 button:focus-visible,.v26 input:focus-visible,.v26 select:focus-visible,.v26 textarea:focus-visible,.v26 [role="button"]:focus-visible{outline:3px solid #a96f32;outline-offset:3px}

/* Controles de carrusel visibles y utilizables */
.v26 .carousel-pause{width:auto!important;min-width:76px!important;height:42px!important;padding:0 12px!important;border-radius:999px!important;font:700 11px/1 Arial,sans-serif!important;letter-spacing:.02em}
.v26 .review-control-row{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:18px}
.v26 .review-control-row .review-dots{margin-top:0}
.v26 .review-pause{border:1px solid var(--line);background:#fff;color:var(--green2)}
.v26 .review-pause:hover,.v26 .review-pause[aria-pressed="true"]{background:var(--green2);color:#fff}
.v26 .amenities-controls .carousel-pause[aria-pressed="true"]{background:var(--green2);color:#fff}

/* Galería: foco inequívoco y objetivo táctil */
.v26 .gallery-click[role="button"]{outline:none}
.v26 .gallery-click[role="button"]:focus-visible{box-shadow:0 0 0 4px #fff,0 0 0 7px #a96f32}
.v26 .gallery-modal button{min-width:44px;min-height:44px}

/* Contraste AA del botón flotante con texto blanco */
.v26 .whatsapp-float{background:#82552d}
.v26 .whatsapp-float:hover{background:#6f4522}

/* Estados dinámicos */
.v26 .reservation-message.loading::before{content:"";display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-right:7px;vertical-align:-1px;animation:v26spin .8s linear infinite}
@keyframes v26spin{to{transform:rotate(360deg)}}

@media(max-width:900px){
  .v26 .header{position:sticky;overflow:visible;gap:12px}
  .v26 .menu-toggle{display:inline-flex;margin-left:auto}
  .v26 .header .top-cta{display:none}
  .v26 .header nav{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 8px);flex-direction:column;gap:3px;padding:10px;background:rgba(255,253,249,.99);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 45px rgba(18,39,31,.18);max-height:calc(100vh - 100px);overflow:auto}
  .v26 .header nav.is-open{display:flex}
  .v26 .header nav a{display:block;padding:13px 14px!important;border-radius:10px;font-size:14px!important;color:var(--ink)}
  .v26 .header nav a::after{display:none!important}
  .v26 .header nav a:hover,.v26 .header nav a:focus-visible{background:#f1eee7;color:var(--green2)}
  .v26 .header nav .mobile-nav-reserve{display:block;margin-top:5px;background:var(--green2);color:#fff;text-align:center;font-weight:800}
  .v26 .brand b{font-size:21px}.v26 .brand span{font-size:7px}
  .v26 .reviews-heading h2{white-space:normal}
}
@media(max-width:560px){
  .v26 .menu-toggle-label{display:none}
  .v26 .menu-toggle{width:44px;justify-content:center;padding:8px}
  .v26 .carousel-pause{min-width:70px!important;padding:0 10px!important;font-size:10px!important}
  .v26 .review-nav{width:44px;height:44px}
  .v26 .gallery-modal{padding:58px 12px 70px}
  .v26 .gallery-nav.prev{left:8px}.v26 .gallery-nav.next{right:8px}
}

/* Reflow razonable al ampliar texto/zoom */
@media(max-width:420px){
  .v26 .hero-facts{grid-template-columns:1fr 1fr}
  .v26 .booking-steps{overflow-x:auto;padding-bottom:4px}
  .v26 .reservation-benefits{grid-template-columns:1fr}
  .v26 .reviews-carousel{width:calc(100% - 20px)}
}
@media(prefers-reduced-motion:reduce){
  .skip-link,.v26 .menu-toggle-icon i{transition:none}
  .v26 .reservation-message.loading::before{animation:none;border-right-color:currentColor}
}


/* =========================================================
   v27 · Conversión, simplificación visual y refinamiento móvil
   ========================================================= */
.v27 .form-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Mensaje de confianza antes de enviar: informa sin alarmar */
.v27 .reservation-trust-card{
  display:flex;align-items:flex-start;gap:12px;margin-top:18px;padding:15px 16px;
  border:1px solid #c8d9cf;border-radius:15px;background:#f2f7f4;color:#24483d;
}
.v27 .reservation-trust-card .reservation-alert-icon{
  flex:0 0 28px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  background:#315943;color:#fff;font-weight:900;font-size:14px
}
.v27 .reservation-trust-card b{display:block;font:700 13px/1.25 Arial,sans-serif;margin:1px 0 3px}
.v27 .reservation-trust-card small{display:block;font-size:11px;line-height:1.45;color:#4d665d}

/* Servicios: solo los más decisivos en el carrusel; el resto bajo demanda */
.v27 .amenities-more{width:calc(100% - (var(--site-gutter) * 2));max-width:var(--site-max);margin:8px auto 0}
.v27 .amenities-more>summary{
  width:max-content;list-style:none;cursor:pointer;margin:0 auto;padding:11px 17px;border:1px solid var(--line);
  border-radius:999px;background:#fff;color:var(--green2);font:800 11px/1 Arial,sans-serif;letter-spacing:.02em;
  transition:background .2s ease,color .2s ease,border-color .2s ease
}
.v27 .amenities-more>summary::-webkit-details-marker{display:none}
.v27 .amenities-more>summary::after{content:" +"}
.v27 .amenities-more[open]>summary::after{content:" −"}
.v27 .amenities-more>summary:hover,.v27 .amenities-more>summary:focus-visible{background:var(--green2);color:#fff;border-color:var(--green2)}
.v27 .amenities-more-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.v27 .amenities-more-grid .amenity-card{
  min-width:0;min-height:145px;width:auto;opacity:1;transform:none;padding:20px;border-radius:17px;box-shadow:none
}
.v27 .amenities-more-grid .amenity-icon{width:42px;height:42px;border-radius:13px;margin-bottom:14px}
.v27 .amenities-more-grid .amenity-icon svg{width:22px;height:22px}
.v27 .amenities-more-grid .amenity-card b{font-size:16px}
.v27 .amenities-more-grid .amenity-card small{font-size:11px}

/* Opiniones: tres testimonios útiles y una introducción discreta */
.v27 .reviews-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}
.v27 .reviews-intro{max-width:420px;margin:0;color:#718077;font-size:12px;line-height:1.5;text-align:right}
.v27 #reviewTrack{align-items:stretch}
.v27 .review-card{height:auto}

/* Un poco más de aire en la conversión y menos ruido visual */
.v27 .reservation-summary-card{box-shadow:0 18px 50px rgba(29,54,45,.08)}
.v27 .price-total{padding-top:17px;margin-top:5px;border-top:1px solid #d9dfdb}
.v27 .best-price-badge{letter-spacing:.03em}

/* Refinamiento móvil real: tamaños táctiles, teclado iOS y safe-area */
@media(max-width:900px){
  .v27 .amenities-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v27 .reviews-heading{display:block}.v27 .reviews-intro{margin-top:8px;text-align:left;max-width:560px}
  .v27 .reservation-summary-card{position:relative;top:auto}
}
@media(max-width:560px){
  .v27 input,.v27 select,.v27 textarea{font-size:16px}
  .v27 .reservation-experience{padding-bottom:24px}
  .v27 .reservation-calendar-card{padding:14px 10px}
  .v27 .cal-day{min-height:58px}
  .v27 .cal-day .price{font-size:9px}
  .v27 .reservation-summary-card{padding:18px 15px;border-radius:19px}
  .v27 .amenities-more-grid{grid-template-columns:1fr}
  .v27 .amenities-more-grid .amenity-card{min-height:118px}
  .v27 .mobile-cta{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .v27 .whatsapp-float{bottom:calc(82px + env(safe-area-inset-bottom))}
}

/* =========================================================
   v28 · Jerarquía de contenido, retícula y ritmo visual
   ========================================================= */
.v28{
  --site-max:1240px;
  --section-gap:48px;
}

/* Una única retícula para todos los bloques principales */
.v28 .hero-copy.hero-copy-v24,
.v28 .apartment,
.v28 .gallery.gallery-six,
.v28 .amenities-head,
.v28 .amenities-viewport,
.v28 .amenities-more,
.v28 .reservation-experience,
.v28 .discover-intro-callout,
.v28 .discover .destination-grid,
.v28 .discover .wine-callout,
.v28 .location,
.v28 .reviews-heading,
.v28 .reviews-carousel,
.v28 .final-booking-cta{
  width:calc(100% - (var(--site-gutter) * 2));
  max-width:var(--site-max);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}

/* Apartamento: texto e imágenes comparten exactamente el mismo ancho */
.v28 .apartment{
  display:block;
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .apartment .copy{
  width:100%;
  max-width:none;
}
.v28 .apartment .copy h2,
.v28 .apartment .copy>p:not(.eyebrow){
  max-width:none;
  width:100%;
}
.v28 .apartment .copy>p:not(.eyebrow){
  margin-bottom:0;
}
.v28 .feature-images{
  width:100%;
  margin-top:28px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.v28 .feature-images img{
  width:100%;
  height:360px;
}

/* Galería y servicios: evitar dobles espacios entre secciones consecutivas */
.v28 .gallery.gallery-six{
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .amenities-section{
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .amenities-head{
  margin-bottom:12px;
}
.v28 .amenities-head h2{
  margin-bottom:0;
}
.v28 .amenities-viewport{
  padding-top:8px;
  padding-bottom:12px;
}

/* Tarjetas más compactas sin romper la retícula del bloque */
.v28 .amenities-track{
  gap:14px;
  padding:0 4px;
}
.v28 .amenity-card{
  flex-basis:340px;
  min-width:270px;
  min-height:188px;
  padding:23px 22px;
}
.v28 .amenity-icon{
  width:49px;
  height:49px;
  margin-bottom:17px;
}
.v28 .amenity-card b{font-size:18px}

/* Servicios ampliados: tres por línea en escritorio */
.v28 .amenities-more{margin-top:8px}
.v28 .amenities-more-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.v28 .amenities-more-grid .amenity-card{
  width:100%;
  min-width:0;
  min-height:132px;
}

/* Reserva después de producto + servicios, con el mismo ancho y ritmo */
.v28 .reservation-experience{
  margin-top:var(--section-gap)!important;
  margin-bottom:0!important;
  padding:0;
  background:transparent;
  border-bottom:0;
}
.v28 .reservation-heading{
  margin-bottom:22px;
}

/* Secciones posteriores con una única cadencia vertical */
.v28 .discover{
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .discover-intro-callout{
  margin-top:0!important;
  margin-bottom:18px!important;
}
.v28 .location{
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .reviews-section{
  padding-top:var(--section-gap);
  padding-bottom:0;
}
.v28 .reviews-heading{
  display:block;
  margin-bottom:22px;
}
.v28 .reviews-heading h2{margin-bottom:0}
.v28 .final-booking-cta{
  margin-top:var(--section-gap);
  margin-bottom:var(--section-gap);
}

@media(max-width:900px){
  .v28{--section-gap:38px}
  .v28 .feature-images img{height:270px}
  .v28 .gallery.gallery-six{padding-top:var(--section-gap);padding-bottom:0}
  .v28 .amenities-section{padding-top:var(--section-gap);padding-bottom:0}
  .v28 .amenities-track{padding-left:0;padding-right:0}
  .v28 .amenity-card{flex-basis:min(76vw,310px);min-width:min(76vw,310px)}
  .v28 .amenities-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v28 .reservation-experience{margin-top:var(--section-gap)!important;margin-bottom:0!important}
}

@media(max-width:560px){
  .v28{--section-gap:30px}
  .v28 .feature-images{grid-template-columns:1fr;gap:10px;margin-top:20px}
  .v28 .feature-images img{height:245px}
  .v28 .amenities-section{padding-top:var(--section-gap);padding-bottom:0}
  .v28 .amenities-head{margin-bottom:8px}
  .v28 .amenity-card{flex-basis:78vw;min-width:78vw;min-height:176px}
  .v28 .amenities-more-grid{grid-template-columns:1fr}
  .v28 .reservation-heading{margin-bottom:16px}
}


/* =========================================================
   v29 · Home unificado y navegación de mayor contraste
   ========================================================= */
.v29{
  --home-bg:#f7f4ee;
  background:var(--home-bg);
}
/* Un mismo lienzo cálido para todo el home; las tarjetas mantienen contraste. */
.v29 main,
.v29 .apartment,
.v29 .gallery.gallery-six,
.v29 .amenities-section,
.v29 .reservation-experience,
.v29 .discover,
.v29 .location,
.v29 .reviews-section{
  background:var(--home-bg)!important;
}
.v29 footer{
  background:var(--home-bg)!important;
  border-top-color:#ddd7cd;
}
.v29 .reservation-calendar-card,
.v29 .reservation-summary-card,
.v29 .amenity-card,
.v29 .review-card,
.v29 .location-copy{
  background:#fffdf9;
}
/* Cabecera con más presencia sin competir con el hero. */
.v29 .header{
  background:rgba(247,244,238,.97);
  border-bottom:1px solid #d8d1c6;
  box-shadow:0 7px 24px rgba(28,49,40,.055);
}
.v29 .header nav{
  gap:6px;
  font-size:12px;
}
.v29 .header nav a{
  padding:10px 12px;
  border-radius:999px;
  color:#294c3b;
  font-weight:800;
  letter-spacing:.015em;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.v29 .header nav a::after{display:none}
.v29 .header nav a:hover,
.v29 .header nav a:focus-visible,
.v29 .header nav a.is-current{
  color:#173c2f;
  background:#e7ede8;
  box-shadow:inset 0 0 0 1px #cbd7cf;
}
.v29 .header nav a:hover{transform:translateY(-1px)}
.v29 .header nav a.is-current{background:#dce8e0}
.v29 .top-cta{
  padding:12px 20px;
  border-radius:999px;
  box-shadow:0 7px 18px rgba(35,69,51,.16);
}
.v29.header-compact .header nav a{padding:9px 11px}

@media(max-width:900px){
  .v29 .header nav{gap:3px;background:rgba(247,244,238,.995)}
  .v29 .header nav a{
    padding:13px 14px!important;
    border-radius:10px;
    color:var(--ink);
    box-shadow:none;
  }
  .v29 .header nav a:hover,
  .v29 .header nav a:focus-visible,
  .v29 .header nav a.is-current{
    transform:none;
    background:#e7ede8;
    color:var(--green2);
  }
  .v29 .header nav .mobile-nav-reserve{
    background:var(--green2);
    color:#fff;
  }
}


/* =========================================================
   v30 · Opiniones, carrusel exacto y resumen sticky
   ========================================================= */
.v30 .review-stay:empty,
.v30 .review-stay[hidden]{display:none!important}

/* Opiniones antes de ubicación y un ritmo equilibrado entre ambos bloques. */
.v30 .reviews-section{padding-bottom:var(--section-gap)!important}
.v30 .location{padding-top:0!important}

/* Carrusel: exactamente 3 tarjetas completas en escritorio, sin tarjetas parciales. */
.v30 .amenities-viewport{
  overflow:hidden!important;
  padding:10px 0 16px!important;
  scroll-snap-type:none!important;
}
.v30 .amenities-track{
  display:flex!important;
  gap:14px!important;
  padding:0!important;
  width:100%;
}
.v30 .amenities-track .amenity-card{
  flex:0 0 calc((100% - 28px)/3)!important;
  min-width:calc((100% - 28px)/3)!important;
  max-width:calc((100% - 28px)/3)!important;
  scroll-snap-align:none!important;
}
.v30 .amenities-track .amenity-card.is-focus{transform:none}

/* El resumen permanece anclado mientras se recorre el calendario en escritorio. */
.v30 .reservation-layout{align-items:start!important}
.v30 .reservation-summary-card{
  position:sticky!important;
  top:92px!important;
  align-self:start!important;
  height:max-content!important;
  max-height:calc(100vh - 112px);
  overflow:auto;
  z-index:5;
}

@media(max-width:900px){
  .v30 .amenities-track .amenity-card{
    flex-basis:calc((100% - 14px)/2)!important;
    min-width:calc((100% - 14px)/2)!important;
    max-width:calc((100% - 14px)/2)!important;
  }
  .v30 .reservation-summary-card{position:relative!important;top:auto!important;max-height:none;overflow:visible}
}
@media(max-width:560px){
  .v30 .amenities-track .amenity-card{
    flex-basis:100%!important;
    min-width:100%!important;
    max-width:100%!important;
  }
}

/* =========================================================
   v32 · Tema configurable + selector ES/GL/EN
   ========================================================= */
.v32,
.content-page{color:var(--ink)}
.v32{background:var(--theme-page)}
.v32 main{background:var(--theme-page)}
.v32 .header,
.content-page~.header{background:var(--theme-header)!important}
.v32 .apartment,
.v32 .gallery,
.v32 .amenities-section,
.v32 .discover,
.v32 .reviews-section,
.v32 .location{background:var(--theme-section)!important}
.v32 .reservation-experience{background:var(--theme-reservation)!important}
.v32 .reservation-summary-card,
.v32 .amenity-card,
.v32 .review-card,
.v32 .location-copy,
.v32 .calendar-shell,
.v32 .cal-month,
.v32 .booking-details,
.v32 .amenities-more,
.v32 .destination-grid figure{background:var(--theme-card)!important}
.v32 footer,body>footer{background:var(--theme-footer)!important}
.v32 .final-booking-cta{background:var(--green2)!important}
.v32 .shade{background:linear-gradient(90deg,color-mix(in srgb,var(--theme-hero-overlay) 68%,transparent),color-mix(in srgb,var(--theme-hero-overlay) 22%,transparent) 58%,transparent)}
.content-page{background:var(--theme-page)}
.content-page .content-hero{background:linear-gradient(135deg,var(--theme-section),var(--theme-card))}
.content-page .answer-box,.content-page .faq-list details{background:var(--theme-card)}

.language-switcher{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--theme-card) 92%,transparent);box-shadow:0 4px 14px rgba(0,0,0,.035)}
.language-option{appearance:none;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:5px;padding:6px 7px;border-radius:999px;font:800 9px/1 Arial,sans-serif;cursor:pointer;letter-spacing:.04em}
.language-option:hover,.language-option:focus-visible{background:color-mix(in srgb,var(--green) 10%,var(--theme-card));color:var(--green2)}
.language-option[aria-pressed="true"]{background:var(--green);color:#fff}
.flag{display:inline-block;width:19px;height:13px;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.16);position:relative;overflow:hidden;flex:none;background:#fff}
/* Bandeira de Galicia: campo branco cunha banda azul diagonal. */
.flag-gl::after{content:"";position:absolute;width:27px;height:4px;background:#62a3d8;left:-4px;top:4px;transform:rotate(32deg);transform-origin:center}
/* España */
.flag-es{background:linear-gradient(#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75%)}
/* Inglés · bandera de estrellas y franjas */
.flag-en{background:repeating-linear-gradient(to bottom,#b22234 0 1px,#fff 1px 2px);position:relative}
.flag-en::before{content:"";position:absolute;left:0;top:0;width:9px;height:7px;background:#3c3b6e}
.flag-en::after{content:"✦ ✦\A ✦ ✦";white-space:pre;position:absolute;left:1px;top:-1px;color:#fff;font-size:4px;line-height:3px;letter-spacing:.5px}

@media(max-width:1100px){
  .language-option span:not(.flag){display:none}
  .language-option{padding:6px}
}
@media(max-width:900px){
  .language-switcher{margin-left:auto;margin-right:4px}
  .v32 .header nav{background:var(--theme-header)!important}
  .v32 .shade{background:linear-gradient(0deg,color-mix(in srgb,var(--theme-hero-overlay) 72%,transparent),color-mix(in srgb,var(--theme-hero-overlay) 8%,transparent) 68%)}
}
.v32 .cal-day:not(.busy):not(.past):not(.selected):not(.in-range){background:var(--theme-available)!important}
.v32 .cal-day.busy{background:var(--theme-occupied)!important}
.v32 .reservation-alert,.v32 .reservation-message.neutral,.v32 .amenities-more>summary{background:var(--theme-notice)!important}
.v32 .secondary,.v32 .calendar-controls button{background:var(--theme-soft)!important}
body>header.header{background:var(--theme-header)!important}
body>footer{background:var(--theme-footer)!important}
.v32 .apartment{background:var(--theme-apartment)!important}
.v32 .gallery{background:var(--theme-gallery)!important}
.v32 .amenities-section{background:var(--theme-services)!important}
.v32 .discover{background:var(--theme-environment)!important}
.v32 .reviews-section{background:var(--theme-reviews)!important}
.v32 .location{background:var(--theme-location)!important}


/* v35 · pie legal y páginas legales configurables */
.v18 .site-footer, .site-footer{background:var(--theme-footer);border-top:1px solid var(--line);padding:24px var(--site-gutter,clamp(20px,5.5vw,84px)) 30px;display:block}
.footer-stack{width:100%;max-width:var(--site-max,1240px);margin:0 auto;display:grid;gap:14px;justify-items:center}
.footer-legal-links{display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;font-size:14px}
.footer-legal-links a{position:relative;color:var(--ink);font-weight:500;text-decoration:none}
.footer-legal-links a+a::before{content:"·";position:absolute;left:-12px;color:var(--muted)}
.footer-legal-links a:hover{text-decoration:underline;text-underline-offset:3px}
.site-footer .footer-links-centered{width:100%;max-width:none!important;justify-content:center!important;font-size:11px;opacity:.8}
.legal-page{background:var(--theme-page);color:var(--ink)}
.legal-main{min-height:70vh;padding:110px clamp(20px,5.5vw,84px) 64px;background:var(--theme-page)}
.legal-document{max-width:920px;margin:0 auto;background:var(--theme-card);border:1px solid var(--line);border-radius:22px;padding:clamp(26px,5vw,58px);box-shadow:0 18px 55px rgba(34,45,38,.06)}
.legal-document h1{font:clamp(30px,3.4vw,44px)/1.08 Georgia,serif;margin:8px 0 26px;color:var(--green2)}
.legal-document h2{font:23px/1.2 Georgia,serif;margin:30px 0 9px;color:var(--ink)}
.legal-copy p{font-size:15px;line-height:1.72;color:var(--muted);margin:0 0 16px}
.legal-back{display:inline-block;margin-bottom:22px;color:var(--green);font-weight:700;text-decoration:none}
@media(max-width:700px){.footer-legal-links{gap:12px 16px;font-size:12px}.footer-legal-links a+a::before{display:none}.legal-main{padding:86px 14px 42px}.legal-document{padding:24px 18px;border-radius:16px}.legal-document h1{font-size:31px}.legal-document h2{font-size:21px}}

/* =========================================================
   v36.1 · Ajustes de fondos en servicios y reserva
   ========================================================= */
/* El contenedor de "Ver todos los servicios" hereda visualmente el fondo
   de la sección de servicios en lugar de crear una caja blanca independiente. */
.v32 .amenities-more{
  background:transparent!important;
}

/* La cabecera y el cuerpo de la reserva forman una única superficie blanca,
   evitando la franja de color entre "Elige tus fechas" y el calendario. */
.v32 .reservation-heading,
.v32 .reservation-layout{
  background:#fff!important;
}
.v28 .reservation-heading{
  margin-bottom:0!important;
}


/* v38 · alternativas de reserva externas */
.external-booking-options{margin-top:14px;padding-top:2px}
.external-booking-divider{display:flex;align-items:center;gap:10px;margin:8px 0 10px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.09em}
.external-booking-divider::before,.external-booking-divider::after{content:"";height:1px;flex:1;background:var(--line)}
.external-booking-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.external-booking-button{min-height:45px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:11px;text-decoration:none;font-size:11px;font-weight:900;transition:transform .16s ease,box-shadow .16s ease}
.external-booking-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(26,37,32,.12)}
.external-booking-button.booking{background:#003b95;color:#fff}
.external-booking-button.airbnb{background:#ff385c;color:#fff}
.external-booking-mark{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.16);font-size:11px}
.external-booking-note{display:block;margin-top:7px;text-align:center;color:var(--muted);font-size:9px;line-height:1.35}
@media(max-width:560px){.external-booking-buttons{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.external-booking-button{transition:none}}


/* =========================================================
   v40 · navegación limpia, hero superior y servicios esenciales
   ========================================================= */
.v40 .header #mainNav{margin-right:auto}
.v40 .language-switcher{margin-left:0}
.v40 .language-option{padding:6px 7px}
.v40 .language-option .flag{width:22px;height:15px}

/* El texto principal del hero se sitúa arriba a la izquierda; las características permanecen abajo. */
.v40 .hero{align-items:stretch}
.v40 .hero-copy.hero-copy-v24{
  height:100%;
  padding-top:clamp(34px,4.2vw,58px);
  padding-bottom:clamp(28px,3.8vw,50px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.v40 .hero-editorial{align-self:flex-start}
.v40 .hero-facts{margin-top:auto}

/* El carrusel comparte exactamente el lienzo general del home. */
.v40 .amenities-section{background:var(--theme-page)!important}

/* Servicios: únicamente icono + nombre. */
.v40 .amenity-card{
  justify-content:center;
  align-items:center;
  text-align:center;
  min-height:154px;
}
.v40 .amenity-icon{margin:0 auto 14px}
.v40 .amenity-card b{font-size:17px;line-height:1.25}
.v40 .amenities-more-grid .amenity-card{min-height:128px}

/* Si limpieza es 0, la fila no ocupa espacio. */
.v40 #cleaningFeeRow[hidden]{display:none!important}

@media(max-width:900px){
  .v40 .menu-toggle{margin-left:0}
  .v40 .language-switcher{margin-left:auto;margin-right:0}
  .v40 .hero-copy.hero-copy-v24{padding-top:28px;padding-bottom:28px}
}


/* =========================================================
   v43 · Selección de fechas clara + confirmación de reserva
   ========================================================= */
.v43 .booking-date-picker-summary{
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;
  margin:10px 10px 5px;border:2px solid color-mix(in srgb,var(--green) 78%,#fff);border-radius:14px;
  background:#fff;overflow:hidden;box-shadow:0 7px 22px rgba(34,63,51,.06)
}
.v43 .booking-date-field{display:grid;gap:3px;padding:11px 14px;min-width:0;transition:background .16s ease,box-shadow .16s ease}
.v43 .booking-date-field small{font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:900}
.v43 .booking-date-field strong{font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v43 .booking-date-field.active{background:color-mix(in srgb,var(--theme-soft) 78%,#fff);box-shadow:inset 0 -3px 0 var(--green)}
.v43 .booking-date-field.complete small{color:var(--green)}
.v43 .booking-date-arrow{display:grid;place-items:center;padding:0 7px;color:var(--green);font-weight:900;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.v43 .booking-date-hint{margin:7px 14px 10px;color:var(--muted);font-size:11px;font-weight:700;text-align:center}
.v43 .reservation-calendar .cal-day.preview-range{background:#e5f3ee!important;border-color:#cfe7de!important;border-radius:4px!important;color:#245f53}
.v43 .reservation-calendar .cal-day.preview-end{background:#fff!important;border:2px solid var(--green)!important;color:var(--green2);box-shadow:0 5px 12px rgba(49,89,67,.10)}
.v43 .reservation-calendar .cal-day.preview-end .cal-day-price{color:var(--green)}
.v43 .reservation-calendar .cal-day.selected.start,.v43 .reservation-calendar .cal-day.selected.end{position:relative;z-index:2;box-shadow:0 7px 17px rgba(36,92,75,.20)}
.v43 .reservation-calendar .cal-day.in-range{background:#cfe9df!important;border-color:#cfe9df!important;color:#174f43;box-shadow:inset 0 2px 0 rgba(49,89,67,.05),inset 0 -2px 0 rgba(49,89,67,.05)}
.v43 .reservation-calendar .cal-day.range-blocked{opacity:.45;cursor:not-allowed}
.v43 .booking-result-success{padding:0!important;background:transparent!important;color:inherit!important}
.v43 .booking-success-card{display:grid;grid-template-columns:58px 1fr;gap:16px;margin-top:14px;padding:18px;border:1px solid #b9ddc5;border-radius:16px;background:linear-gradient(145deg,#f3fbf5,#e7f5eb);box-shadow:0 14px 34px rgba(34,91,55,.12);text-align:left}
.v43 .booking-success-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#2d7c4a;color:#fff;font-size:31px;font-weight:900;box-shadow:0 8px 20px rgba(45,124,74,.22)}
.v43 .booking-success-copy{min-width:0}.v43 .booking-success-kicker{display:block;color:#2d6e45;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.v43 .booking-success-copy h4{margin:0 0 10px;font:24px/1.1 Georgia,serif;color:#173b29}
.v43 .booking-success-status{display:grid;gap:3px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #d3e8da;margin-bottom:11px}
.v43 .booking-success-status b{color:#7a5b16;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.v43 .booking-success-status span{font-size:11px;line-height:1.45;color:#466052}
.v43 .booking-success-card dl{display:grid;gap:7px;margin:0}.v43 .booking-success-card dl>div{display:grid;grid-template-columns:105px 1fr;gap:9px;align-items:start}.v43 .booking-success-card dt{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#708078;font-weight:900}.v43 .booking-success-card dd{margin:0;font-size:12px;font-weight:800;color:#24392e;word-break:break-word}
.v43 .booking-success-new{margin-top:12px!important;width:auto!important;padding:9px 12px!important;background:#fff!important;color:var(--green)!important;border:1px solid #9fcab0!important;font-size:10px!important}
.v43 .booking-details.booking-complete .booking-form-modern>label,.v43 .booking-details.booking-complete .booking-form-modern>.two,.v43 .booking-details.booking-complete .booking-form-modern>.final-submit{display:none!important}
@media(max-width:560px){
  .v43 .booking-date-picker-summary{margin-left:2px;margin-right:2px}.v43 .booking-date-field{padding:10px 9px}.v43 .booking-date-field strong{font-size:11px}.v43 .booking-date-arrow{padding:0 4px}.v43 .booking-success-card{grid-template-columns:1fr}.v43 .booking-success-icon{width:48px;height:48px;font-size:25px}.v43 .booking-success-card dl>div{grid-template-columns:1fr;gap:1px}
}

/* v43.1 · rango de fechas más visible y selección de salida estable */
.v43 .reservation-calendar .cal-day.selected.start,.v43 .reservation-calendar .cal-day.selected.end{background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}
.v43 .reservation-calendar .cal-day.selected.start .cal-day-price,.v43 .reservation-calendar .cal-day.selected.end .cal-day-price{color:#fff!important}
.v43 .reservation-calendar .cal-day.in-range .cal-day-number,.v43 .reservation-calendar .cal-day.in-range .cal-day-price{color:#174f43!important}
.v43 .reservation-calendar .cal-day.preview-range .cal-day-number,.v43 .reservation-calendar .cal-day.preview-range .cal-day-price{color:#245f53!important}


/* =========================================================
   v44.1 · Confirmación de reserva amplia y legible en PC
   ========================================================= */
.v44 .reservation-layout.booking-success-mode{
  grid-template-columns:1fr!important;
  align-items:start!important;
}
.v44 .reservation-layout.booking-success-mode .reservation-main{
  display:none!important;
}
.v44 .reservation-layout.booking-success-mode .reservation-summary-card{
  position:static!important;
  top:auto!important;
  width:min(100%,920px)!important;
  max-width:920px!important;
  justify-self:center!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.v44 .reservation-layout.booking-success-mode .summary-card-head,
.v44 .reservation-layout.booking-success-mode .guest-panel,
.v44 .reservation-layout.booking-success-mode .price-summary,
.v44 .reservation-layout.booking-success-mode #availabilityMessage,
.v44 .reservation-layout.booking-success-mode #continueBooking,
.v44 .reservation-layout.booking-success-mode #externalBookingOptions{
  display:none!important;
}
.v44 .reservation-layout.booking-success-mode .booking-details{
  display:block!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}
.v44 .reservation-layout.booking-success-mode .booking-details-head{
  display:none!important;
}
.v44 .reservation-layout.booking-success-mode #bookingResult{
  width:100%!important;
  margin:0!important;
}
.v44 .reservation-layout.booking-success-mode .booking-success-card{
  width:100%;
  grid-template-columns:72px minmax(0,1fr);
  gap:22px;
  padding:28px 30px;
  border-radius:22px;
  box-shadow:0 18px 48px rgba(34,91,55,.14);
}
.v44 .reservation-layout.booking-success-mode .booking-success-icon{
  width:72px;
  height:72px;
  font-size:38px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-kicker{
  font-size:11px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-copy h4{
  font-size:34px;
  margin-bottom:16px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-status{
  grid-template-columns:minmax(180px,.48fr) minmax(0,1fr);
  align-items:center;
  gap:16px;
  padding:14px 16px;
  margin-bottom:18px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-status b{
  font-size:13px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-status span{
  font-size:13px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-card dl{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-card dl>div{
  display:block;
  min-width:0;
  padding:14px 15px;
  border:1px solid #d6e8dc;
  border-radius:12px;
  background:rgba(255,255,255,.76);
}
.v44 .reservation-layout.booking-success-mode .booking-success-card dt{
  margin-bottom:6px;
  font-size:10px;
}
.v44 .reservation-layout.booking-success-mode .booking-success-card dd{
  font-size:14px;
  line-height:1.4;
  word-break:normal;
  overflow-wrap:anywhere;
}
.v44 .reservation-layout.booking-success-mode .booking-success-card dl>div:first-child dd{
  white-space:nowrap;
  overflow-wrap:normal;
  font-size:16px;
  letter-spacing:.04em;
}
.v44 .reservation-layout.booking-success-mode .booking-success-new{
  margin-top:18px!important;
  padding:11px 16px!important;
  font-size:12px!important;
}
@media(max-width:720px){
  .v44 .reservation-layout.booking-success-mode .reservation-summary-card{width:100%!important}
  .v44 .reservation-layout.booking-success-mode .booking-success-card{grid-template-columns:1fr;padding:20px 16px;gap:14px}
  .v44 .reservation-layout.booking-success-mode .booking-success-icon{width:54px;height:54px;font-size:29px}
  .v44 .reservation-layout.booking-success-mode .booking-success-copy h4{font-size:28px}
  .v44 .reservation-layout.booking-success-mode .booking-success-status{grid-template-columns:1fr;gap:6px}
  .v44 .reservation-layout.booking-success-mode .booking-success-card dl{grid-template-columns:1fr}
}

/* v46 · fondo continuo de Entorno y asistente de preguntas */
body.environment-page,body.assistant-page{background:var(--home-bg,var(--theme-page))}
.environment-page .content-page,.environment-page .content-hero,.environment-page .content-grid,.environment-page .answer-box{background:var(--home-bg,var(--theme-page))!important}
.environment-page .content-hero{border-bottom:1px solid var(--line);padding-top:44px}
.environment-page .answer-box{border:1px solid var(--line)}
@media(max-width:900px){.environment-page .content-hero{padding-top:32px}}
.assistant-content{background:var(--home-bg,var(--theme-page))!important;min-height:75vh}
.assistant-hero{background:var(--home-bg,var(--theme-page))!important;padding-bottom:36px;border-bottom:1px solid var(--line)}
.assistant-shell{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:24px;padding:42px 5.5vw 26px;max-width:1280px;margin:0 auto}
.assistant-chat-card,.assistant-question-card{background:var(--theme-card);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 34px rgba(32,45,37,.06)}
.assistant-chat-card{overflow:hidden}.assistant-chat-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line)}.assistant-chat-head>div{display:grid}.assistant-chat-head small{color:var(--muted);font-size:11px;margin-top:2px}.assistant-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:12px;font-weight:900;letter-spacing:.05em}
.assistant-chat{min-height:310px;max-height:520px;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:12px;background:color-mix(in srgb,var(--theme-card) 88%,var(--theme-page))}
.assistant-message{max-width:82%;padding:12px 14px;border-radius:16px;line-height:1.45;font-size:14px;box-shadow:0 3px 10px rgba(20,30,24,.04)}.assistant-bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:5px}.assistant-user{align-self:flex-end;background:var(--green);color:#fff;border-bottom-right-radius:5px}
.assistant-chat-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:16px 18px;border-top:1px solid var(--line)}.assistant-chat-actions .top-cta{display:inline-flex;align-items:center;justify-content:center}
.assistant-question-card{padding:22px}.assistant-question-card h2{font:30px/1.1 Georgia,serif;margin:0 0 8px}.assistant-question-card>p{color:var(--muted);font-size:13px;margin:0 0 18px}.assistant-questions{display:grid;gap:9px}.assistant-question{width:100%;text-align:left;padding:12px 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:750}.assistant-question:hover{background:var(--theme-soft);filter:none;border-color:var(--green);transform:translateY(-1px)}
.assistant-contact-box{max-width:1139px;margin:10px auto 70px;background:var(--theme-card)!important;border:1px solid var(--line)}
@media(max-width:900px){.assistant-shell{grid-template-columns:1fr;padding:28px 18px 22px}.assistant-question-card{order:-1}.assistant-chat{min-height:260px}.assistant-contact-box{margin:8px 18px 55px}}
@media(max-width:560px){.assistant-chat-actions{align-items:stretch;flex-direction:column}.assistant-chat-actions button,.assistant-chat-actions a{width:100%}.assistant-message{max-width:92%}}


/* v47 · contacto público y asistente flotante */
.contact-section{background:var(--theme-section);display:grid;grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr);gap:clamp(32px,6vw,88px);align-items:start;padding-top:72px;padding-bottom:78px}
.contact-copy{max-width:520px}.contact-copy h2{font:clamp(34px,4.3vw,54px)/1.04 Georgia,serif;margin:8px 0 18px;color:var(--green2)}.contact-copy>p:not(.eyebrow){font-size:16px;line-height:1.7;color:var(--muted)}.contact-alt{margin-top:24px;padding:16px 18px;border-left:3px solid var(--green);background:var(--theme-notice);border-radius:0 12px 12px 0}
.contact-form{background:var(--theme-card);border:1px solid var(--line);border-radius:20px;padding:clamp(22px,3vw,34px);box-shadow:0 16px 42px rgba(26,42,34,.07);display:grid;gap:16px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.contact-form label{display:grid;gap:7px;font-size:12px;font-weight:800;color:var(--ink)}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 13px;font:inherit;font-size:14px;color:var(--ink);outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.contact-form textarea{resize:vertical;min-height:120px}.contact-form .optional{font-weight:500;color:var(--muted)}.contact-privacy{grid-template-columns:auto 1fr!important;align-items:start;font-weight:500!important;line-height:1.45}.contact-privacy input{width:18px;height:18px;margin-top:1px}.contact-privacy a{color:var(--green);font-weight:700}.contact-submit{width:max-content;min-width:190px}.contact-result{min-height:20px;font-size:13px;font-weight:700}.contact-result.success{color:#23613f}.contact-result.error{color:#9e3f34}
.assistant-float{position:fixed;right:22px;bottom:22px;z-index:70;border:0;background:var(--green);color:#fff;border-radius:999px;padding:10px 17px 10px 10px;display:flex;align-items:center;gap:10px;box-shadow:0 14px 38px rgba(0,0,0,.24);font:inherit;cursor:pointer}.assistant-float:hover{background:var(--green2)}.assistant-float-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.18);font:700 20px Georgia,serif}.assistant-float b{font-size:13px;white-space:nowrap}
.assistant-widget[hidden]{display:none}.assistant-widget{position:fixed;right:22px;bottom:84px;z-index:69;width:min(390px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 116px));overflow:hidden;background:var(--theme-card);border:1px solid var(--line);border-radius:20px;box-shadow:0 24px 70px rgba(17,31,23,.24);display:flex;flex-direction:column}.assistant-widget-head{display:flex;justify-content:space-between;align-items:center;padding:14px 15px;background:var(--green);color:#fff}.assistant-widget-head>div{display:flex;align-items:center;gap:10px}.assistant-widget-head>div>span:last-child{display:grid;gap:1px}.assistant-widget-head small{font-size:10px;opacity:.82}.assistant-widget-head .assistant-avatar{background:rgba(255,255,255,.17);color:#fff}.assistant-widget-head button{border:0;background:transparent;color:#fff;font-size:26px;line-height:1;width:34px;height:34px;border-radius:50%;cursor:pointer}.assistant-widget-head button:hover{background:rgba(255,255,255,.12)}.assistant-widget-body{padding:15px;overflow:auto}.assistant-widget-welcome{margin:0 0 12px;padding:11px 12px;background:var(--theme-soft);border-radius:12px;font-size:13px;line-height:1.45}.assistant-widget-questions{display:grid;gap:7px}.assistant-widget-questions button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 11px;text-align:left;color:var(--ink);font:inherit;font-size:12px;font-weight:750;cursor:pointer}.assistant-widget-questions button:hover,.assistant-widget-questions button.active{border-color:var(--green);background:var(--theme-soft)}.assistant-widget-loading{font-size:12px;color:var(--muted)}.assistant-widget-answer{margin-top:12px;border-left:3px solid var(--green);background:var(--theme-notice);padding:11px 12px;border-radius:0 10px 10px 0;font-size:12px;line-height:1.5}.assistant-widget-answer strong{display:block;margin-bottom:4px}.assistant-widget-answer p{margin:0;color:var(--muted)}.assistant-widget-fallback{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.assistant-widget-fallback strong{font-size:13px}.assistant-widget-fallback p{font-size:12px;line-height:1.45;color:var(--muted);margin:5px 0 9px}.assistant-whatsapp{display:inline-flex;align-items:center;gap:7px;background:#1f6f4a;color:#fff;border-radius:9px;padding:10px 12px;font-size:12px;font-weight:800;text-decoration:none}.assistant-whatsapp:hover{filter:brightness(.94)}.assistant-full-link{display:inline-block;margin-top:12px;color:var(--green);font-size:12px;font-weight:800;text-decoration:none}.assistant-full-link:hover{text-decoration:underline}.assistant-contact-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.assistant-contact-actions .secondary{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:11px 15px}
@media(max-width:900px){.contact-section{grid-template-columns:1fr;gap:26px}.contact-copy{max-width:none}.contact-grid{grid-template-columns:1fr}.assistant-float{right:14px;bottom:76px}.assistant-widget{right:12px;bottom:138px;max-height:calc(100vh - 170px)}}
@media(max-width:560px){.contact-section{padding-top:50px;padding-bottom:58px}.contact-form{padding:18px}.assistant-float b{display:none}.assistant-float{padding:9px}.assistant-widget{left:10px;right:10px;width:auto}.assistant-contact-actions{align-items:stretch;flex-direction:column}.assistant-contact-actions a{width:100%}}

/* v54 · mantiene el ritmo de los apartados dinámicos con la apariencia de v51. */
.environment-info-block:not(:first-child) h2{margin-top:28px}
