.whatsapp{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:max(24px,env(safe-area-inset-right));z-index:35;display:inline-flex;align-items:center;justify-content:center;gap:0;width:64px;height:64px;border-radius:50%;background:var(--forest);color:#fff;box-shadow:0 3px 16px rgba(0,0,0,.16);text-decoration:none;letter-spacing:0;transition:box-shadow 180ms ease,transform 180ms ease,opacity .25s,visibility .25s}
.whatsapp-icon{display:grid;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;box-shadow:none}
.whatsapp svg{display:block;width:36px;height:36px;fill:currentColor}
.whatsapp-label{display:block;position:absolute;right:calc(100% + 12px);padding:12px 16px;border-radius:6px;background:var(--forest);color:#fff;box-shadow:0 3px 16px rgba(0,0,0,.14);font:normal 600 .9375rem/1.4 var(--sans);max-width:calc(100vw - 112px);white-space:normal;width:max-content;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(4px);transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease}
.whatsapp-label::after{content:"";position:absolute;left:100%;top:0;bottom:0;width:12px}
.whatsapp:hover .whatsapp-label,.whatsapp:focus-visible .whatsapp-label{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.whatsapp:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,0,0,.24)}
.whatsapp:hover .whatsapp-icon{transform:none}
.whatsapp:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.whatsapp.hero-in-view,.whatsapp.contact-in-view{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:700px){.whatsapp{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}}
@media print{.whatsapp{display:none}}

/* Contact additions inherit the existing editorial typography and spacing. */
.contact-editorial-link{display:inline-flex;align-items:center;gap:24px;font:400 18px/1.5 var(--sans);color:inherit;text-decoration:none;border-bottom:1px solid var(--gold);padding:12px 0;text-align:left}
.contact-editorial-link svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3;flex:none;transition:transform .25s}
.contact-editorial-link:hover svg{transform:translateX(4px)}
.contact-editorial-link:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
.collection-invitation{margin:30px var(--gutter) 0;text-align:right}
.service-invitation{margin:0;padding:24px 4vw 64px;text-align:left;background:#fafaf8;color:var(--forest)}
.service-invitation-inner{max-width:1800px;margin:0 auto}

.villa-return{padding:24px var(--detail-gutter) 0}
.villa-return .back-collection{font-size:15px;min-height:44px;gap:14px}
.villa-return svg{fill:none;stroke:currentColor;stroke-width:1.3}
.villa-direct-contact{margin-top:32px;max-width:420px}
.villa-direct-contact p{font-size:18px;line-height:1.6;margin:0 0 18px}
.villa-contact-links{display:flex;flex-wrap:wrap;gap:12px 36px}
.villa-contact-links a{font-size:18px;gap:18px}
.villa-detail .whatsapp{bottom:calc(var(--inquiry-bar-height,0px) + 24px)}
.villa-detail #availability{scroll-margin-top:28px}
.villa-service-note{font-size:16px!important;line-height:1.65!important;margin-top:22px!important;max-width:620px}
@media(max-width:760px){.collection-invitation{margin:22px 24px 0;text-align:left}.service-invitation{margin:0;padding:12px 20px 44px;text-align:left}.contact-editorial-link{font-size:18px;gap:18px}.villa-direct-contact{margin-top:26px}.villa-detail .whatsapp{bottom:calc(var(--inquiry-bar-height,0px) + 16px)}.detail-header-link{max-width:160px;text-align:right;font-size:13px;line-height:1.4}}
@media(prefers-reduced-motion:reduce){.whatsapp,.whatsapp-label,.contact-editorial-link svg{transition:none}}

.villa-inquiry>*,.villa-inquiry-form>*,.villa-inquiry-form input{min-width:0}
@media(max-width:760px){.villa-inquiry{grid-template-columns:minmax(0,1fr)}.villa-inquiry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.villa-inquiry-form input{width:100%;max-width:100%}.villa-direct-contact{max-width:100%}}

/* Recommendation and carousel arrows share one row; tracking DOM remains unchanged. */
#collection{display:grid;grid-template-columns:minmax(0,1fr) auto}
#collection>.collection-heading,#collection>.property-rail,#collection>noscript{grid-column:1 / -1}
#collection>.collection-heading{grid-row:1}
#collection>.property-rail{grid-row:2;min-width:0}
#collection>.collection-controls{display:contents}
#collection .collection-arrow-pair{grid-column:2;grid-row:3;align-self:center;margin:26px var(--gutter) 0 24px}
#collection>.collection-invitation{grid-column:1;grid-row:3;align-self:center;margin:26px 0 0 var(--gutter);text-align:left;min-width:0}
#collection .property-pagination{grid-column:1 / -1;grid-row:4}
@media(max-width:760px){
 #collection .collection-arrow-pair{margin:20px 22px 0 16px}
 #collection>.collection-invitation{margin:20px 0 0 22px}
 #collection .collection-invitation .contact-editorial-link{white-space:normal;gap:12px;line-height:1.4}
 #collection .collection-controls .property-pagination{margin:12px 22px 0;justify-content:center;flex-wrap:wrap;gap:0}
}
