/* Keep action labels and their spacing in normal document flow. */
.button,.nav-cta,.footer-contact-link,.footer-whatsapp,.guide-feature-link,
.book-primary,.book-email-button,.book-access-card a,.calendar-actions a,
.calendar-shell button{
 max-width:100%;min-height:44px;line-height:1.4;text-align:center;
 white-space:normal;overflow-wrap:anywhere;flex-shrink:0;
}
.hero-actions,.welco-cta-actions{flex-wrap:wrap;row-gap:16px}
.contact-intro>.service-index{margin:28px 0 24px;gap:16px 24px}
.contact-intro>.service-index .service-link{margin:0;line-height:1.6;padding:8px 0}
.contact-intro>.contact-email-button{vertical-align:top}
.service-heading>*,.welco-service-copy,.tier-card,.calendar-card{min-width:0}
.tier-card a{max-width:100%;line-height:1.5;overflow-wrap:anywhere}
.calendar-header{flex-wrap:wrap;gap:16px}
.calendar-actions>*{max-width:100%;min-width:0}
.book-founder>a{max-width:100%;overflow-wrap:anywhere}
body:not(.book-site) footer{padding-bottom:100px}
@media(min-width:901px) and (max-width:1360px){
 body:not(.book-site) .nav{height:76px}
 body:not(.book-site) .nav .menu{display:block}
 body:not(.book-site) .nav nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--cream);padding:25px 5vw;flex-direction:column;align-items:flex-start;border-top:1px solid var(--line)}
 body:not(.book-site) .nav nav.open{display:flex}
}
@media(max-width:900px){
 .hero{display:flex;align-items:flex-end;height:auto;min-height:max(620px,calc(100svh - 76px));padding:70px 7vw}
 .hero-content{position:relative;left:auto;right:auto;bottom:auto;width:100%;min-width:0}
 .hero h1{overflow-wrap:break-word}
}
@media(max-width:560px){
 .button,.book-primary,.book-email-button,.guide-feature-link{min-width:0}
 .book-primary{gap:12px}
 .calendar-actions{align-items:stretch}
 .calendar-actions>*{width:100%}
 .calendar-slots button{padding:12px 8px}
 .calendar-header .brand{min-width:0}
 .footer-hours div{flex-wrap:wrap;gap:4px 12px}
}

/* Responsive interaction corrections: keep touch controls reachable. */
.menu{min-width:44px;min-height:44px;cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--aqua,#357c79);outline-offset:4px}
#destinations .place{display:flex;align-items:flex-end;min-height:500px;padding:32px 35px}
#destinations .place>div{position:relative;left:auto;right:auto;bottom:auto;width:100%;min-width:0}
#destinations .place:after{background:linear-gradient(0deg,rgba(5,38,38,.93),rgba(5,38,38,.55) 42%,transparent 78%)}
#destinations .place p{max-width:620px;color:#fff}
@media(max-width:1360px){
 body:not(.book-site) .nav nav{max-height:calc(100dvh - 76px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(25px + env(safe-area-inset-bottom,0px))}
 body:not(.book-site) .nav nav a{display:inline-flex;align-items:center;min-height:44px}
 body:not(.book-site) .nav nav .service-language{display:flex;gap:12px}
 body:not(.book-site) .nav nav{row-gap:8px}
}
@media(max-width:900px){
 .book-nav nav{position:static;max-height:none;padding:0;border:0;background:transparent;flex-direction:row;align-items:center}
 #destinations .place{min-height:420px;padding:28px}
 .footer-location{transform:none}
}
@media(max-width:560px){
 #destinations .place{padding:28px 22px}
 #destinations .place h3{font-size:clamp(2rem,10vw,3rem)}
 #destinations .place p{font-size:1rem;line-height:1.6}
 .pv-chat-form input,.calendar-label input,.calendar-label select{font-size:16px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Preserve the bottle group when the approved bath image uses a portrait frame. */
img[src*="welco-bath-transparent-labels"]{object-position:45% 50%}

/* Compact footer after removing the illustrative map. */
footer.footer-compact{grid-template-columns:minmax(0,1.15fr) minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:36px 48px;padding:48px 5vw 84px}
.footer-compact>div{min-width:0;align-self:start}
.footer-compact .footer-identity{display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.footer-compact .footer-brand{margin:0;align-self:flex-start}
.footer-compact .footer-location{transform:none}
.footer-compact .footer-location p{margin:0;line-height:1.6}
.footer-compact .footer-contact h3{font-size:clamp(1.9rem,2.5vw,2.5rem);margin:0 0 18px}
.footer-compact .footer-hours{margin-bottom:0}
.footer-compact .copyright{margin:0!important;padding-top:24px}
@media(min-width:561px) and (max-width:900px){
 footer.footer-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 40px}
 .footer-compact .footer-identity{grid-column:1/-1;gap:16px}
}
@media(max-width:560px){
 footer.footer-compact{grid-template-columns:minmax(0,1fr);gap:32px;padding:36px 7vw 84px}
 .footer-compact .footer-identity{gap:16px}
 .footer-compact .footer-hours{max-width:100%}
}

/* Prime Villas contact and an independent area for hospitality partners. */
footer.footer-with-partners{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 48px}
.footer-with-partners .footer-identity{grid-column:1;grid-row:1}
.footer-with-partners .footer-contact{grid-column:1;grid-row:2}
.footer-with-partners .footer-partner{grid-column:2;grid-row:1 / 3;align-self:start;padding-top:14px}
.footer-with-partners .partner-label{font-family:"DM Sans",sans-serif;font-size:14px;font-weight:700;line-height:1;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);margin:0 0 24px}
.footer-with-partners .hospitality-partners{align-items:flex-start;justify-content:flex-start;gap:24px}
.footer-with-partners .hospitality-partner-logo{width:130px;height:auto;max-width:100%}
@media(max-width:560px){
 footer.footer-with-partners{grid-template-columns:minmax(0,1fr);gap:28px}
 .footer-with-partners .footer-identity,.footer-with-partners .footer-contact,.footer-with-partners .footer-partner{grid-column:1;grid-row:auto}
 .footer-with-partners .footer-partner{padding-top:0}
}

.footer-signoff{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px 24px}
.prime-instagram{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:var(--deep);font-size:12px;overflow-wrap:anywhere}
.prime-instagram svg{width:22px;height:22px;flex-shrink:0}
.prime-instagram:hover{color:var(--aqua)}
.prime-instagram:focus-visible{outline:2px solid var(--deep);outline-offset:4px;border-radius:4px}
