/* Shared feedback for static and dynamically created controls. */
:is(button,.button,[role="button"],.choice-button span,.coverage-option){
 transition:translate .18s ease,scale .12s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease;
 -webkit-tap-highlight-color:#b796ee33;
 touch-action:manipulation;
}
:is(button,.button,[role="button"]):not(:disabled):not([aria-disabled="true"]){cursor:pointer}
:is(a,button,summary,[role="button"]):focus-visible{
 outline:3px solid #b796ee;outline-offset:4px;
 box-shadow:0 0 0 2px #261833;
}
a{transition:color .18s ease,text-decoration-color .18s ease}
summary{transition:color .18s ease,background-color .18s ease}
:is(.button,.coverage-grid a,.quote-phone)>span{display:inline-block;transition:translate .18s ease}
@media(hover:hover) and (pointer:fine){
 :is(button,.button,[role="button"]):not(:disabled):not([aria-disabled="true"]):hover{
 translate:0 -2px;box-shadow:0 5px 16px #7952ba35;
 }
 .button:hover{transform:none;background:#68439e;border-color:#b796ee}
 :is(.home-chat-button,.v-primary):not(:disabled):hover{background:#68439e;border-color:#c9aaf4;color:#fff}
 .v-close:hover{background:#39264c;border-radius:6px}
 .edit:hover{background:#eee8f6;color:#54307e}
 :is(.choice-button:hover span,.coverage-option:hover){border-color:#9570ca;box-shadow:0 3px 12px #7952ba20;translate:0 -1px}
 :is(.button,.coverage-grid a,.quote-phone):hover>span{translate:3px -2px}
 a:not(.button):not(.brand):not(.q-brand):hover{text-decoration:underline;text-underline-offset:5px;text-decoration-color:#b796ee}
 summary:hover{color:#7952ba}
}
:is(button,.button,[role="button"]):not(:disabled):not([aria-disabled="true"]):active{
 translate:0 1px;scale:.98;box-shadow:inset 0 2px 5px #0002;
}
.choice-button:active span,.coverage-option:active{scale:.99}
:is(button,.button,[role="button"]):is(:disabled,[aria-disabled="true"]){
 translate:none;scale:1;transform:none;box-shadow:none;opacity:.6;cursor:not-allowed;
}
input[type="file"]::file-selector-button{
 background:#7952ba;color:#fff;border:1px solid #7952ba;border-radius:5px;
 padding:10px 14px;margin-right:12px;cursor:pointer;font:inherit;
 transition:background-color .18s ease;
}
input[type="file"]::file-selector-button:hover{background:#604095}
/* Phone and V actions share the primary controls' tactile feedback. */
a[href^="tel:"]{
 display:inline-block;
 transition:translate .18s ease,scale .12s ease,color .18s ease,border-color .18s ease,text-shadow .18s ease;
 -webkit-tap-highlight-color:#b796ee33;touch-action:manipulation;
}
@media(hover:hover) and (pointer:fine){
 a[href^="tel:"]:hover{translate:0 -2px;color:#7952ba;border-color:#b796ee;text-shadow:0 3px 14px #7952ba35}
 :is(.hero,.quote,.v-dialog) a[href^="tel:"]:hover{color:#d5b8ff}
 :is(.home-chat-button,.v-launcher):not(:disabled):hover{background:#68439e;border-color:#d5b8ff;box-shadow:0 6px 22px #7952ba66}
}
a[href^="tel:"]:active{translate:0 1px;scale:.98;color:#b796ee;text-shadow:none}
/* More pronounced lift for the three contact actions. */
@media(hover:hover) and (pointer:fine){
 :is(a[href^="tel:"],.home-chat-button,.v-launcher):not(:disabled):hover:not(:active){
  translate:0 -5px;scale:1.045;
 }
 :is(.home-chat-button,.v-launcher):not(:disabled):hover:not(:active){box-shadow:0 10px 26px #7952ba70}
 a[href^="tel:"]:hover:not(:active){text-shadow:0 5px 18px #b796ee80}
}
@media(prefers-reduced-motion:reduce){
 :is(button,.button,[role="button"],.choice-button span,.coverage-option,a,summary),
 :is(.button,.coverage-grid a,.quote-phone)>span{transition:none!important;translate:none!important;scale:1!important}
 .button:hover{transform:none}
 html{scroll-behavior:auto}
}
