/* Phone layout: keep the resort identity, adapt the composition to touch. */
@media(max-width:700px){
 html{scroll-padding-top:calc(var(--ribbon-height,122px) + 12px)}
 body{overflow-x:clip}
 .wrap,.chapter-disclosure{width:calc(100% - 36px);max-width:100%;min-width:0}
 .header .nav{width:calc(100% - 28px);min-height:82px;padding:10px 0;gap:10px;flex-wrap:nowrap}
 .header .brand{width:140px;flex:0 1 140px;min-width:105px;margin-right:auto}
 .language-switch{flex-shrink:0}.language-switch button{min-width:36px;min-height:44px}
 .header .menu{min-height:44px;min-width:52px;padding:8px 6px;font-size:13px;flex-shrink:0}
 .header .local-info{position:static;display:flex;justify-content:center;gap:16px;padding:0 14px 8px;font-size:10px}
 .header.open .links{grid-template-columns:1fr;gap:0;padding:10px 22px;max-height:70svh;overscroll-behavior:contain}
 .header.open .links a{font-size:19px;line-height:1.25;max-width:none;min-height:48px;padding:11px 0;text-transform:none;border-bottom:1px solid #4f5b4b20}
 .booking-ribbon{padding:8px 12px;min-height:0}
 .booking-ribbon-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px;gap:6px}
 .booking-ribbon label{padding:0 3px;overflow:hidden}.booking-ribbon label span{font-size:11px;line-height:1.4}
 .booking-ribbon input{box-sizing:border-box;font-size:16px;width:100%;min-width:0;min-height:44px;padding:4px 0;letter-spacing:-.03em}
 .booking-ribbon .button{width:100%;min-height:44px;font-size:13px;margin:0;grid-column:1/-1}
 .hero{height:auto;min-height:480px;max-height:none;align-items:flex-end}
 .hero-content{padding:100px 0 40px;width:calc(100% - 36px)}
 .hero-location{font-size:10px;line-height:1.6;letter-spacing:.08em}
 .hero h1{font-size:clamp(42px,11.5vw,65px);line-height:1.08;margin:20px auto;max-width:14ch}
 .hero-content>p{font-size:15px;line-height:1.65;max-width:32ch}
 .hero-actions{display:flex;flex-direction:column;gap:10px;align-items:center;margin-top:24px}.hero-actions a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
 .hero-playback{min-width:44px;min-height:44px}
 .essence{width:100%;padding:48px 22px}.essence h2{font-size:clamp(32px,8.5vw,42px);line-height:1.12}.essence p{font-size:15px;line-height:1.75}.essence-more summary{padding:12px 0;min-height:44px}
 .section{padding:44px 0}.intro h2,.section-head h2,.reserve-copy h2{font-size:clamp(32px,8.5vw,42px);line-height:1.15;overflow-wrap:break-word}
 .section-head>p,.intro p,.room-copy>p,.experience-detail p,.service-grid p,.destination p,.reserve-copy p,.contact-copy p{font-size:15px;line-height:1.75}
 .reference-photo-strip .amenity-image{height:auto!important;aspect-ratio:4/5;object-fit:cover}.reference-photo-strip .amenity strong{font-size:22px;line-height:1.2}.reference-photo-strip .amenity span{font-size:12px;line-height:1.5}
 .villa-photo img,.room-image img,.experience-photo img,.corporate-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
 .reference-collage{display:flex!important;gap:16px!important;overflow-x:auto!important;scroll-snap-type:x mandatory;margin:0;padding:0 0 14px}
 .reference-collage .real-photo,.reference-collage .real-photo:nth-child(n){flex:0 0 88%!important;width:auto;min-width:0;margin:0;padding:0!important;border:0}
 .reference-collage .real-photo:nth-child(n) img{height:auto;aspect-ratio:4/5;object-fit:cover}.reference-collage figcaption{font-size:12px;line-height:1.5;padding:12px}
 .photo-story:has(.reference-collage)>.rail-controls{display:flex}
 .real-photo-grid,.service-grid,.destination-grid{max-width:100%;margin-right:0;padding-right:0}
 .service-grid>article,.couples .service-grid article,.destination{min-width:0;flex-basis:90%}
 .service-grid h3,.destination h3{font-size:30px;line-height:1.2}
 #experiencias .tab{padding:18px 14px;min-height:64px}#experiencias .tab strong{font-size:26px;line-height:1.2}
 .room-option{padding:16px}.room-option summary{font-size:27px;min-height:48px}.room-option-content p{font-size:14px;line-height:1.7}
 .form,.contact-form{grid-template-columns:minmax(0,1fr);padding:22px 16px;gap:18px}.form .field{min-width:0}.form .field input,.form .field select,.form .field textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;font-size:16px;min-height:48px}
 .form .field label{font-size:13px}.form .policy-consent{font-size:12px;line-height:1.7}.form .button{white-space:normal;width:100%;min-height:48px;line-height:1.4}.form .full{grid-column:1}
 .query-details>div{grid-template-columns:1fr;gap:4px}.query-details dd{overflow-wrap:anywhere}
 .contact-copy .button{font-size:13px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
 .footer>.wrap{width:calc(100% - 36px)}.footer-links{gap:8px 18px}.footer-links a{min-height:44px;display:flex;align-items:center;font-size:12px;overflow-wrap:anywhere}.footer{padding-bottom:90px}
 .whatsapp-float{bottom:calc(16px + env(safe-area-inset-bottom));right:16px;min-width:48px;min-height:48px}
 .cookie-banner{bottom:calc(80px + env(safe-area-inset-bottom));max-height:50svh;overflow:auto}.cookie-banner p{font-size:13px}.cookie-actions .privacy-button{min-height:44px;font-size:12px}
}
@media(max-width:360px){.header .brand{flex-basis:115px}.header .nav{gap:5px}.language-switch button{min-width:32px}.booking-ribbon-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.booking-ribbon .quick-guests{grid-column:1}.booking-ribbon .button{grid-column:2;font-size:12px}.hero h1{font-size:41px}}
