/* One original-colour photograph continues under the existing footer grid.
   Only the footer receives glass; the invitation keeps the unfiltered photo. */
.contact-footer-scene{position:relative;isolation:isolate;overflow:hidden;margin-left:calc(var(--page-left) * -1);margin-right:calc(var(--page-right) * -1);background:var(--paper)}
.contact-footer-scene #contact-us,.contact-footer-scene>footer{margin-left:0;margin-right:0}
#contact-us.contact-banner + footer .footer-main{border-top:0}
#contact-us.contact-banner{
  position:relative;isolation:isolate;min-height:clamp(760px,68vw,1100px);
  padding:clamp(96px,8vw,144px) var(--section-right) clamp(320px,28vw,480px) var(--page-left);
  background:var(--paper);color:var(--ink);
}
.contact-banner .contact-banner-media{
  position:absolute;inset:0 0 auto;height:calc(100% + var(--contact-footer-height,0px));z-index:-2;overflow:hidden;pointer-events:none;background:var(--paper);
}
.contact-banner .contact-banner-photo{
  --spa-image-x:50%;--spa-image-y:35%;
  position:absolute;inset:0;display:block;width:100%;height:100%;
  object-fit:cover;object-position:var(--spa-image-x) var(--spa-image-y);
  transform-origin:var(--spa-image-x) var(--spa-image-y);pointer-events:none;
}
.contact-banner .whatsapp-cta-inner{
  display:grid;grid-template-columns:var(--contact-copy-left,50%) minmax(0,1fr);align-items:start;
  column-gap:0;max-width:none;margin:0;text-align:left;
}
.contact-banner h2{
  max-width:100%;margin:0;padding-right:clamp(36px,5vw,88px);font-size:clamp(2.5rem,4vw,4.25rem);line-height:1.12;
  font-weight:400;letter-spacing:-.035em;text-wrap:balance;
}
.contact-banner .whatsapp-word{color:inherit}
.contact-banner .contact-banner-copy{min-width:0;max-width:36rem;padding-top:4px}
.contact-banner .contact-banner-copy p{
  max-width:46ch;margin:0;color:var(--ink);font-size:clamp(1rem,1.25vw,1.125rem);
  font-weight:400;line-height:1.65;letter-spacing:0;text-wrap:pretty;
}
#contact-us.contact-banner .whatsapp-button{
  min-width:224px;min-height:52px;max-width:100%;margin-top:28px;padding:14px 20px;
  border:1px solid var(--ink);border-radius:0;background:rgba(var(--paper-rgb),.3);
  color:var(--ink);font-size:1rem;line-height:1.4;
}
#contact-us.contact-banner .whatsapp-button:is(:hover,:focus-visible){background:var(--ink);color:var(--paper);border-color:var(--ink)}
#contact-us.contact-banner .whatsapp-button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
@media(max-width:900px){
  .contact-footer-scene{margin:0}
  #contact-us.contact-banner{margin:0;min-height:760px;padding:88px 24px 320px}
  .contact-banner .whatsapp-cta-inner{grid-template-columns:minmax(0,1fr);gap:26px}
  .contact-banner h2{padding-right:0;font-size:clamp(2.5rem,7.5vw,3.5rem)}
  .contact-banner .contact-banner-copy{max-width:32rem;padding-top:0}
  .contact-banner .contact-banner-photo{--spa-image-x:43%;--spa-image-y:50%}
}
@media(max-width:360px){
  #contact-us.contact-banner .whatsapp-button{min-width:0;width:100%}
}

/* A full-width aperture opens vertically. Crop/zoom remains owned by the image editor. */
#contact-us.contact-banner.is-contact-reveal-ready{background:var(--paper)}
#contact-us.contact-banner.is-contact-reveal-ready .contact-banner-media{
  /* Percentages refer to the extended image; keep the aperture in Contact. */
  clip-path:inset(calc(var(--contact-reveal-inset,49.65%) * var(--contact-photo-ratio,1)) 0 calc(var(--contact-reveal-inset,49.65%) * var(--contact-photo-ratio,1) + var(--contact-footer-height,0px)));
}
#contact-us.contact-banner.is-contact-copy-visible .contact-banner-media{clip-path:none}
/* Gate the group, not individual buttons: saved button transparency stays independent. */
#contact-us.contact-banner.is-contact-reveal-ready .whatsapp-cta-inner{
  opacity:0;transform:none;
  transition:opacity .6s ease;
}
#contact-us.contact-banner.is-contact-copy-visible .whatsapp-cta-inner{opacity:1}
#contact-us.contact-banner.is-contact-reveal-ready:not(.is-contact-copy-visible) .whatsapp-button{pointer-events:none}
#contact-us.contact-banner.is-contact-reveal-ready:focus-within .whatsapp-button{pointer-events:auto}
/* Keyboard access never waits for scrolling or animation. */
#contact-us.contact-banner.is-contact-reveal-ready:focus-within .contact-banner-media{clip-path:inset(0)}
#contact-us.contact-banner.is-contact-reveal-ready:focus-within .whatsapp-cta-inner,
#contact-us.contact-banner.is-contact-reveal-instant .whatsapp-cta-inner{opacity:1;transition:none}
@media(prefers-reduced-motion:reduce){
  #contact-us.contact-banner.is-contact-reveal-ready .contact-banner-media{clip-path:none}
  #contact-us.contact-banner.is-contact-reveal-ready .whatsapp-cta-inner{opacity:1;transition:none}
  #contact-us.contact-banner.is-contact-reveal-ready .whatsapp-button{pointer-events:auto}
}

/* A static, bounded glass pane. Keep most of the shared photo visible through it. */
.contact-footer-scene>footer{position:relative;background:rgba(var(--ink-rgb),var(--footer-glass-alpha,.42));color:var(--paper);border-top:1px solid rgba(var(--paper-rgb),.22);text-shadow:0 1px 2px rgba(0,0,0,.32)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .contact-footer-scene>footer{background:rgba(var(--ink-rgb),var(--footer-glass-alpha,.32));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
}
.contact-footer-scene .footer-address,.contact-footer-scene .footer-address>a,.contact-footer-scene .footer-legal,.contact-footer-scene .footer-nav a,.contact-footer-scene .social-links{color:rgba(var(--paper-rgb),.96)}
.contact-footer-scene .footer-nav .footer-nav-title{color:var(--paper)}
.contact-footer-scene footer a:is(:hover,:focus-visible){color:var(--paper)}
@media(prefers-reduced-transparency:reduce){.contact-footer-scene>footer{background:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}}

/* Home desktop keeps its contact links, without the separate boxed CTA. */
@media(min-width:1025px){
  .contact-footer-scene>footer .footer-contact{display:none}
}
