.card-copy h3 a{display:flex;align-items:center;justify-content:space-between;gap:20px}.card-copy h3 a span{font-family:"DM Sans",sans-serif;font-size:24px;transition:transform .25s}.card-copy h3 a:hover span{transform:translateX(5px)}
.card-slider{height:390px;position:relative;overflow:hidden;background:#ddd}
.card-slider-track{height:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.card-slider-track::-webkit-scrollbar{display:none}
.card-slide{height:100%;min-width:100%;scroll-snap-align:start;overflow:hidden}
.card-slide img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.card-slide:hover img{transform:scale(1.025)}
.card-slider-actions{position:absolute;left:15px;bottom:15px;z-index:3;display:flex;align-items:center;gap:3px;padding:4px;border-radius:999px;background:rgba(255,253,249,.94);box-shadow:0 4px 18px rgba(16,42,36,.16)}
.card-slider-actions button{width:34px;height:34px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--forest);font:600 17px "DM Sans",sans-serif;cursor:pointer;transition:background .2s}
.card-slider-actions button:hover{background:var(--sand)}
.slider-count{min-width:48px;text-align:center;color:var(--forest);font-size:11px;font-weight:600}
.card-open{position:absolute;right:15px;bottom:15px;z-index:3;background:var(--paper);padding:12px 16px;border-radius:999px;color:var(--forest);font-size:11px;font-weight:600;box-shadow:0 4px 18px rgba(16,42,36,.16)}
.detail-page{background:var(--paper);padding-top:1px}.detail-page.detail-sage{background:#edf0e9}.back-link{display:block;width:max-content;max-width:calc(100% - 44px);margin:42px auto 0;padding-bottom:8px;border-bottom:1px solid var(--forest);font-size:13px;font-weight:600}.detail-page .property-detail{padding-top:58px;background:transparent}.detail-intro h1{font:500 clamp(43px,5vw,72px)/.98 "Fraunces",serif;letter-spacing:-.045em;margin:0;color:var(--forest)}
.booking-options{max-width:1100px;margin:90px auto 0;padding:48px;background:var(--forest);color:white;display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:65px;align-items:center}
.booking-options .eyebrow{color:#dbc1af;margin-bottom:15px}
.booking-options h2{font:500 clamp(34px,4vw,52px)/1 "Fraunces",serif;letter-spacing:-.04em;margin:0}
.booking-options>div>p:not(.eyebrow){max-width:500px;margin:20px 0 25px;color:rgba(255,255,255,.78);font-size:15px;line-height:1.65}
.booking-direct{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:370px;padding:15px 18px;border:1px solid rgba(255,255,255,.55);font-size:13px;font-weight:600;transition:background .2s,color .2s}
.booking-direct:hover{background:white;color:var(--forest)}
.platform-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.platform-list.single{grid-template-columns:1fr}
.platform-list>div{padding:20px;background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr;gap:10px}
.platform-list strong{font:500 20px "Fraunces",serif;color:var(--forest);margin-bottom:5px}
.platform{position:relative;display:flex;min-height:66px;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 3px 12px rgba(18,49,40,.06);transition:transform .2s,box-shadow .2s,border-color .2s}
.platform:hover,.platform:focus-visible{transform:translateY(-2px);box-shadow:0 7px 18px rgba(18,49,40,.13)}
.platform:focus-visible{outline:3px solid rgba(183,107,72,.3);outline-offset:2px}
.platform-brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:750;letter-spacing:-.4px;line-height:1}
.platform-action{font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:#6d716c}
.platform-arrow{font-size:20px;line-height:1}
.platform.booking{border-color:#c8d9ef;color:#003b95}
.platform.booking .platform-brand{font-family:Arial,sans-serif}
.platform.booking .platform-brand span{color:#0896ff}
.platform.booking:hover,.platform.booking:focus-visible{border-color:#003b95}
.platform.airbnb{border-color:#ffd0d8;color:#ff385c}
.platform.airbnb .platform-brand{font-family:Arial,sans-serif;font-size:22px}
.platform-airbnb-mark{width:25px;height:25px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.platform.airbnb:hover,.platform.airbnb:focus-visible{border-color:#ff385c}
.amenities{max-width:1100px;margin:58px auto 0;display:flex;gap:10px;flex-wrap:wrap}.amenities span{padding:12px 17px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px}.property-nav{max-width:1100px;margin:70px auto 0;padding-top:25px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-weight:600;font-size:13px}.property-nav a{padding:10px 0}.property-nav a:hover{color:var(--clay)}
@media(hover:none){.card-image span{opacity:1;transform:none}}
@media(max-width:900px){.back-link{margin-top:30px}.detail-page .property-detail{padding-top:45px}.detail-intro h1{font-size:clamp(40px,9vw,62px)}.card-slider{height:65vw;min-height:370px;max-height:620px}.booking-options{grid-template-columns:1fr;gap:38px;padding:38px}.platform-list{max-width:620px}}
@media(max-width:520px){.property-nav{align-items:flex-start;flex-direction:column}.amenities{margin-top:45px}.card-copy h3 a span{font-size:20px}.card-slider{height:430px;min-height:0}.card-slider-actions{left:10px;bottom:10px}.card-open{right:10px;bottom:10px;padding:11px 13px}.booking-options{margin-top:65px;padding:30px 22px}.platform-list{grid-template-columns:1fr}.booking-options h2{font-size:38px}.booking-direct{font-size:12px}}

/* La imagen de portada mantiene más presencia que las fichas de alojamientos. */
@media(max-width:900px){.hero-photo{aspect-ratio:auto;min-height:560px}.hero-photo>img{object-position:40% center}}
@media(max-width:520px){.hero-photo{height:520px;min-height:520px;margin-left:12px;margin-right:12px}.hero-photo>img{object-position:38% center}}

/* Identidad y contacto */
.brand strong{font:500 19px/.95 "Fraunces",serif}
.brand em{font:500 19px/.95 "Fraunces",serif;font-style:normal;color:var(--clay)}
.brand small{font-size:8px;letter-spacing:.2em;margin-top:6px}
.brand-mark path{stroke-linecap:round;stroke-linejoin:round}
.contact{padding:120px clamp(24px,8vw,130px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,.72fr);gap:clamp(55px,8vw,120px);align-items:start}
.contact-copy>p:not(.eyebrow){max-width:580px;line-height:1.7;margin:30px 0;color:#f4dfd4}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin-top:38px}
.contact-links a{font:500 clamp(18px,2vw,25px) "Fraunces",serif;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:8px;overflow-wrap:anywhere}
.contact-links span{display:block;font:600 9px "DM Sans",sans-serif;text-transform:uppercase;letter-spacing:.18em;color:#f4d8c7;margin-bottom:5px}
.contact-form{background:var(--paper);color:var(--ink);padding:32px;border-radius:3px;box-shadow:0 20px 60px rgba(57,27,16,.18)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form label{display:block;margin-bottom:18px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--forest)}
.contact-form label>span{font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:9px;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;padding:10px 2px 11px;color:var(--ink);font:400 16px "DM Sans",sans-serif;outline:none}
.contact-form textarea{resize:vertical}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--forest)}
.contact-form button{width:100%;border:0;background:var(--forest);color:white;padding:16px 20px;font:600 13px "DM Sans",sans-serif;display:flex;justify-content:space-between;cursor:pointer;transition:.2s}
.contact-form button:hover{background:var(--forest-dark)}
.form-note{margin:12px 0 0;font-size:10px;line-height:1.5;color:var(--muted)}
.footer-contact{display:flex;gap:30px;flex-wrap:wrap;font-size:15px}
.footer-contact a{border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px;font-weight:500}
@media(max-width:900px){.contact{grid-template-columns:1fr;gap:55px}.footer-contact{flex-direction:column;gap:10px}}
@media(max-width:520px){.brand strong,.brand em{font-size:16px}.brand small{font-size:7px}.contact{padding:85px 20px}.contact-form{padding:24px 20px}.form-row{grid-template-columns:1fr;gap:0}.contact-links a{font-size:17px}footer{gap:28px}.footer-contact{font-size:16px;line-height:1.45}.footer-contact a{overflow-wrap:anywhere}}

/* Cabecera móvil con mayor presencia */
@media(max-width:900px){
  .site-header{height:104px;padding-left:24px;padding-right:24px}
  .site-header .brand{gap:15px}
  .site-header .brand-mark{width:54px;height:54px;flex:0 0 54px}
  .site-header .brand strong,.site-header .brand em{font-size:21px;line-height:.95}
  .site-header .brand small{font-size:9px;margin-top:8px}
  .site-header .menu-toggle{font-size:15px;padding:12px 0}
  .site-header .nav{top:104px}
}
@media(max-width:390px){
  .site-header{height:98px;padding-left:18px;padding-right:18px}
  .site-header .brand{gap:11px}
  .site-header .brand-mark{width:49px;height:49px;flex-basis:49px}
  .site-header .brand strong,.site-header .brand em{font-size:18px}
  .site-header .brand small{font-size:8px}
  .site-header .menu-toggle{font-size:14px}
  .site-header .nav{top:98px}
}

/* Contacto directo por WhatsApp */
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:100;display:flex;align-items:center;gap:10px;padding:10px 18px 10px 11px;border:1px solid rgba(23,92,56,.12);border-radius:999px;background:#fff;color:#175c38;font-size:14px;font-weight:700;box-shadow:0 12px 34px rgba(16,42,36,.25);transition:transform .2s ease,box-shadow .2s ease}
.whatsapp-float:hover{transform:translateY(-2px);box-shadow:0 15px 38px rgba(16,42,36,.32)}
.whatsapp-float:focus-visible{outline:3px solid var(--paper);outline-offset:3px}
.whatsapp-float svg{width:38px;height:38px;flex:0 0 38px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.14))}
.whatsapp-float .whatsapp-bubble{fill:#25d366;stroke:#fff;stroke-width:1.15;stroke-linejoin:round}
.whatsapp-float .whatsapp-phone{fill:#fff}
@media(max-width:520px){.whatsapp-float{right:16px;bottom:16px;width:64px;height:64px;padding:0;justify-content:center}.whatsapp-float span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.whatsapp-float svg{width:52px;height:52px}}

/* Contenido local para buscadores y visitantes */
.city-copy{max-width:540px;margin:24px 0 0;color:var(--muted);font-size:16px;line-height:1.7}
.cities>div+div .city-copy{color:rgba(255,255,255,.72)}
