/* Consistent feedback for existing controls, including CMS-created items. */
:root { --hover-glow:0 0 0 3px #5268d716,0 7px 20px #5268d726; }
:is(.button,.contact-top,.price-contact-button,.contact-action,.gift-option,.price-tab,.balloon-tab,.faq-tab):not(:disabled):not([aria-disabled="true"]) {
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,filter .2s ease;
  -webkit-tap-highlight-color:#5268d724;
}
.world-card:not(.disabled) { transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease; }
.nav a,.site-footer a,.contact-number,.logo { transition:color .2s ease,text-shadow .2s ease,filter .2s ease; }
.nav a::after { content:''; position:absolute; left:3px; right:3px; bottom:0; height:2px; background:var(--orange); transform:scaleX(0); transform-origin:center; transition:transform .2s ease; pointer-events:none; }
.nav a.active::after { display:none; }
.estimate-field :is(input,select) { transition:border-color .2s ease,box-shadow .2s ease; }

/* A selected item keeps a softer glow after the pointer leaves. */
.gift-option[aria-pressed="true"] { box-shadow:inset 0 0 0 1px var(--orange),0 0 0 3px #5268d710,0 4px 14px #5268d714; }
.price-tab[aria-selected="true"] { background:#fff4ec; box-shadow:0 -3px 12px #5268d70a; }
.faq-tab[aria-selected="true"] { border-color:var(--orange); box-shadow:0 0 0 3px #5268d712; }

@media(hover:hover) and (pointer:fine) {
  :is(.button,.contact-top,.price-contact-button,.contact-action):not(:disabled):not([aria-disabled="true"]):hover {
    border-color:var(--orange); box-shadow:var(--hover-glow); filter:none;
  }
  :is(.button-primary,.contact-top,.price-contact-button,.contact-action--phone):not(:disabled):hover { background:#2e446b; color:#fff; }
  .button:not(.button-primary):not(:disabled):hover,.contact-action:not(.contact-action--phone):hover { background:#f0f4fc; color:#415b9a; }
  .world-card:not(.disabled):hover { border-color:#acbce2; box-shadow:0 0 0 2px #5268d712,0 12px 28px #5268d720; }
  .gift-option:not(:disabled):hover { border-color:var(--orange); background:#f3f6fd; box-shadow:var(--hover-glow); }
  :is(.price-tab,.balloon-tab):not(:disabled):hover { color:#415b9a; background:#eef2fb; box-shadow:inset 0 -2px var(--orange),0 0 12px #5268d716; }
  .faq-tab:not(:disabled):hover { border-color:var(--orange); box-shadow:var(--hover-glow); }
  .faq-tab:not(:disabled):not([aria-selected="true"]):hover { color:#415b9a; background:#f0f4fc; }
  .nav a:hover,.site-footer a:hover,.contact-number:hover { color:#5268b7; text-shadow:0 0 14px #5268d728; }
  .nav a:hover::after { transform:scaleX(1); }
  .logo:hover { filter:drop-shadow(0 2px 7px #5268d730); }
  .estimate-field :is(input,select):not(:disabled):hover { border-color:#aebfdf; box-shadow:0 0 0 3px #5268d70d; }
}

/* The same feedback is available when navigating with a keyboard. */
:is(a,button,input,select):focus-visible { outline:2px solid #5268b7; outline-offset:4px; }
:is(.button,.contact-top,.price-contact-button,.contact-action,.gift-option,.price-tab,.balloon-tab,.faq-tab):not(:disabled):focus-visible {
  border-color:var(--orange); box-shadow:var(--hover-glow);
}
.world-card:not(.disabled):has(a:focus-visible) { border-color:#acbce2; box-shadow:0 0 0 2px #5268d712,0 12px 28px #5268d720; }
.nav a:focus-visible::after { transform:scaleX(1); }
.estimate-field :is(input,select):focus-visible { border-color:var(--orange); box-shadow:0 0 0 3px #5268d718; }

/* Touch screens use press feedback instead of a persistent hover. */
@media(hover:none) {
  .button:hover,.contact-top:hover { filter:none; }
  .gift-option:not([aria-pressed="true"]):hover { border-color:#e0e6ef; background:#fff; }
  .price-tab:not([aria-selected="true"]):hover { color:#737985; }
  .contact-action:hover { background:#fff; }
  .contact-action--phone:hover { background:#2e446b; }
}
:is(.button,.contact-top,.price-contact-button,.contact-action,.gift-option,.price-tab,.balloon-tab,.faq-tab):not(:disabled):not([aria-disabled="true"]):is(:active,.is-touch-pressed) {
  box-shadow:inset 0 0 0 2px #5268d745,0 0 0 3px #5268d718; filter:brightness(.97);
}
.nav a:active,.site-footer a:active,.contact-number:active { color:#5268b7; }
button:disabled:hover { filter:none; }
@media(prefers-reduced-motion:reduce) {
  :is(.button,.contact-top,.price-contact-button,.contact-action,.gift-option,.price-tab,.balloon-tab,.faq-tab,.world-card,.nav a,.site-footer a,.contact-number,.logo,.estimate-field input,.estimate-field select):not(:disabled):not([aria-disabled="true"]),.nav a::after { transition:none; }
  :is(.button,.contact-top,.price-contact-button,.contact-action,.gift-option,.price-tab,.balloon-tab,.faq-tab,.world-card):not(:disabled):not([aria-disabled="true"]):is(:hover,:active,.is-touch-pressed) { transform:none; }
}
