/* Direct franchise contact with collision-aware visibility. */
html{scroll-padding-bottom:84px}
.franchise-floating{position:fixed;inset-inline-end:max(22px,env(safe-area-inset-right));inset-block-end:max(20px,env(safe-area-inset-bottom));z-index:19;display:inline-flex;align-items:center;gap:9px;max-width:calc(100vw - 32px);min-height:46px;padding:10px 17px 10px 13px;border:1px solid #d6cdc0;border-radius:999px;background:var(--paper);color:var(--ink);box-shadow:0 3px 16px #211d1a17;font-size:.8125rem;font-weight:600;line-height:1.4;transition:background .2s,border-color .2s}
.franchise-floating svg{flex-shrink:0;color:#276c4c}
.franchise-floating:hover{background:#fffaf4;border-color:#a99785}
.franchise-floating.is-collision-hidden{visibility:hidden;opacity:0;pointer-events:none;animation:none}
.franchise-floating::before{content:"";position:absolute;inset:-1px;border:1px solid var(--coral);border-radius:inherit;pointer-events:none;opacity:0}
@media(prefers-reduced-motion:no-preference){
 .franchise-floating{animation:franchise-arrive .65s cubic-bezier(.22,1,.36,1) .25s backwards;transition:background .2s,border-color .2s,transform .25s ease}
 .franchise-floating::before{animation:franchise-halo 6s ease-out 1.1s 3}
 .franchise-floating svg{transform-origin:center;animation:franchise-greeting 6s ease-in-out 1.1s 3}
 .franchise-floating:is(:hover,:focus-visible)::before,.franchise-floating:is(:hover,:focus-visible) svg{animation:none}
 .franchise-floating:active{transform:translateY(0) scale(.98)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.franchise-floating:hover{transform:translateY(-3px)}}
@keyframes franchise-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes franchise-halo{0%{opacity:0;transform:scale(1)}5%{opacity:.65;transform:scale(1)}30%,100%{opacity:0;transform:scale(1.14,1.34)}}
@keyframes franchise-greeting{0%,3%,18%,100%{transform:rotate(0)}6%{transform:rotate(-9deg)}10%{transform:rotate(7deg)}14%{transform:rotate(-4deg)}}
body:has(dialog[open]) .franchise-floating,body:has(#navigation.is-open) .franchise-floating{visibility:hidden}
@media(max-width:980px){
 body:has(main input:focus,main textarea:focus,main select:focus) .franchise-floating{visibility:hidden}
}
@media(max-width:640px){
 .franchise-floating{inset-inline-end:max(16px,env(safe-area-inset-right));inset-block-end:max(16px,env(safe-area-inset-bottom));padding-inline:12px 15px;font-size:.75rem}
}
@media(max-width:480px){
 .franchise-floating{inline-size:48px;block-size:48px;min-height:48px;padding:0;justify-content:center;border-radius:50%}
 .franchise-floating>span{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.franchise-floating{transition:none}}
