/* Quiet, persistent contact routes. Attention is brief and never loops in CSS. */
.contact-dock{position:fixed;right:26px;bottom:max(28px,env(safe-area-inset-bottom));z-index:19;display:flex;flex-direction:column;gap:12px;transition:opacity 180ms ease,visibility 180ms ease}
.contact-dock-action{position:relative;display:grid;place-items:center;width:52px;height:52px;border:1px solid #173d3226;border-radius:50%;text-decoration:none;box-shadow:0 5px 18px #152f251a;isolation:isolate;touch-action:manipulation;transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease}
.contact-dock-whatsapp{background:#173d32;color:#fff;border-color:#173d32}
.contact-dock-email{background:#f9f7f1;color:#173d32}
/* Reserve the corner for contact without covering the film's pause control. */
body:has(.contact-dock) .film-control,body.atelier-site:has(.contact-dock) .film-control{right:102px}
body:has(.contact-dock) .atelier-hero-foot{padding-right:75px}
.contact-dock-action>svg{display:block;pointer-events:none}
.contact-dock-action:after{content:'';position:absolute;inset:-1px;border:1px solid #b645286b;border-radius:50%;pointer-events:none;opacity:0;z-index:-1}
.contact-dock-label{position:absolute;right:calc(100% + 14px);top:50%;padding:10px 13px;background:#f9f7f1;border:1px solid #173d3226;border-radius:3px;color:#173d32;font-size:12px;line-height:1.4;white-space:nowrap;box-shadow:0 4px 18px #152f2512;pointer-events:none;opacity:0;visibility:hidden;transform:translate(5px,-50%);transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease}
.contact-dock-action:focus-visible{outline:2px solid #b64528;outline-offset:5px;transition:none}
.contact-dock-action:focus-visible .contact-dock-label{opacity:1;visibility:visible;transform:translate(0,-50%);transition:none}
.contact-dock-action.is-nudging:after{animation:contact-ring 1.65s cubic-bezier(.22,1,.36,1) both}
.contact-dock-action.is-nudging>svg{animation:contact-note 1.15s ease-in-out both}
.contact-dock-action.is-nudging .contact-dock-label{opacity:1;visibility:visible;transform:translate(0,-50%)}
@keyframes contact-ring{0%{opacity:0;transform:scale(1)}25%{opacity:.5}100%{opacity:0;transform:scale(1.8)}}
@keyframes contact-note{0%,100%{transform:none}25%{transform:translateY(-2px) rotate(-7deg)}50%{transform:translateY(-2px) rotate(6deg)}75%{transform:rotate(-3deg)}}
@media(hover:hover) and (pointer:fine){
 .contact-dock-action:hover{background:#b64528;border-color:#b64528;color:#fff}
 .contact-dock-action:hover .contact-dock-label{opacity:1;visibility:visible;transform:translate(0,-50%)}
}
body:has(dialog[open]) .contact-dock,body.mobile-menu-open .contact-dock,
body:has(.site-header.has-open-folio) .contact-dock,
body:has(:is(input,textarea,select):focus) .contact-dock{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:600px){
 body:has(.contact-dock) .film-control,body.atelier-site:has(.contact-dock) .film-control{right:82px}
 body:has(.contact-dock) .atelier-hero-foot{padding-right:0}
 .contact-dock{right:16px;bottom:calc(86px + env(safe-area-inset-bottom));gap:10px}
 .contact-dock-action{width:46px;height:46px}
 .contact-dock-label{right:calc(100% + 10px);max-width:calc(100vw - 98px);white-space:normal;width:max-content;font-size:11px}
 /* WhatsApp now lives in the dock; keep the bottom bar dedicated to the brief. */
 body:has(.contact-dock) .mobile-actions>a{display:none}
}
@media(prefers-reduced-motion:reduce){
 .contact-dock,.contact-dock *{animation:none!important;transition:none!important}
 .contact-dock-action:after{animation:none!important}
}
@media print{.contact-dock{display:none}}

/* The company-profile film retains its production provenance on small screens. */
@media(max-width:700px){body[data-page="home"] .atelier-hero-foot>span{display:block;font-size:6px;line-height:1.5;letter-spacing:.04em;max-width:140px;text-align:right}}
