/* V103 — appointment selector, phone access, persistent card CTA energy */
:root{--v103-red:#ff2029;--v103-glow:rgba(255,32,41,.72)}

/* Phone access */
.header-phone,.footer-phone,.menu-phone,.inline-phone,.appointment-phone,.v103-call-cta{
  color:#fff;text-decoration:none;font-weight:800;
}
.header-phone{margin-left:auto;margin-right:14px;font:800 .78rem "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.inline-phone{color:#ff5259;text-decoration:underline;text-underline-offset:3px}
.appointment-phone{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin:8px 0 12px;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:#0b0d11;color:#fff;letter-spacing:.06em}
.v103-call-cta{gap:10px}
.footer-phone{color:#ff555c!important}

/* Appointment modal stays centered and fixed, never drifts sideways */
#appointmentModal[open]{
  position:fixed!important;
  inset:50% auto auto 50%!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  width:min(760px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:min(92dvh,920px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
#appointmentModal form,#appointmentModal .fields,#appointmentModal label{min-width:0;max-width:100%}

/* Make the brand caption fully visible and give the brand area its own scroll lane */
#appointmentModal .brand-picker{
  display:block!important;
  min-width:0!important;
  width:100%!important;
  margin:22px 0!important;
  padding:22px 14px 16px!important;
  overflow:visible!important;
  border-radius:16px!important;
  background:#f7f7f5!important;
  color:#15161a!important;
}
#appointmentModal .brand-picker legend{
  position:static!important;
  display:block!important;
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  margin:0 0 8px!important;
  padding:0 2px!important;
  color:#101116!important;
  font:800 clamp(1.25rem,5vw,1.75rem) "Barlow Condensed",sans-serif!important;
  line-height:1.05!important;
  letter-spacing:.02em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  overflow:visible!important;
}
#appointmentModal .brand-picker-hint{margin:0 2px 14px!important;color:#555!important;line-height:1.45!important}
#appointmentModal .brand-choice-grid{
  display:flex!important;
  flex-wrap:nowrap!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  padding:2px 4px 12px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scroll-snap-type:x proximity!important;
  overscroll-behavior-inline:contain!important;
  touch-action:pan-x!important;
  -webkit-overflow-scrolling:touch!important;
  scrollbar-width:thin;
}
#appointmentModal .brand-choice{
  flex:0 0 clamp(190px,64vw,245px)!important;
  min-width:190px!important;
  scroll-snap-align:start!important;
}

/* Cards 01–04: run the same visual reaction normally reserved for hover */
.experience-v66 .experience-v66-card .experience-v66-copy .button{
  position:relative!important;
  overflow:hidden!important;
  border-color:rgba(255,68,75,.92)!important;
  background:linear-gradient(135deg,#ee111a 0%,#b90911 54%,#17191e 100%)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 0 18px rgba(255,30,40,.62),0 12px 30px rgba(0,0,0,.48)!important;
  animation:v103HoverAlive 2.35s ease-in-out infinite!important;
  will-change:transform,filter,box-shadow;
}
.experience-v66 .experience-v66-card:nth-child(2) .button{animation-delay:.28s!important}
.experience-v66 .experience-v66-card:nth-child(3) .button{animation-delay:.56s!important}
.experience-v66 .experience-v66-card:nth-child(4) .button{animation-delay:.84s!important}
.experience-v66 .experience-v66-card .experience-v66-copy .button::before{
  content:""!important;position:absolute!important;inset:-35% auto -35% -55%!important;width:42%!important;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent)!important;
  transform:skewX(-18deg)!important;animation:v103Sweep 2.35s ease-in-out infinite!important;pointer-events:none!important;
}
.experience-v66 .experience-v66-card .experience-v66-copy .button::after{
  content:""!important;position:absolute!important;inset:-5px!important;border-radius:inherit!important;
  border:1px solid rgba(255,45,55,.72)!important;box-shadow:0 0 22px rgba(255,25,35,.7)!important;
  animation:v103Ring 2.35s ease-in-out infinite!important;pointer-events:none!important;
}
@keyframes v103HoverAlive{
  0%,100%{transform:translateY(-2px) scale(1.01);filter:brightness(1.05);box-shadow:0 0 16px rgba(255,30,40,.55),0 12px 28px rgba(0,0,0,.46)}
  45%{transform:translateY(-7px) scale(1.045);filter:brightness(1.28) saturate(1.15);box-shadow:0 0 34px rgba(255,30,40,.95),0 18px 38px rgba(0,0,0,.58)}
  52%{transform:translate3d(-1.5px,-7px,0) rotate(-.35deg) scale(1.045)}
  57%{transform:translate3d(1.5px,-7px,0) rotate(.35deg) scale(1.045)}
  62%{transform:translateY(-6px) scale(1.035)}
}
@keyframes v103Sweep{0%,28%{left:-55%;opacity:0}40%{opacity:1}68%,100%{left:125%;opacity:0}}
@keyframes v103Ring{0%,100%{opacity:.35;transform:scale(.99)}50%{opacity:1;transform:scale(1.025)}}

@media(max-width:900px){
  .header-phone{display:none}
  .v103-call-cta{width:100%}
}
@media(max-width:620px){
  #appointmentModal[open]{width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:94dvh!important;padding:28px 14px 22px!important}
  #appointmentModal .brand-picker{padding:20px 10px 14px!important}
  #appointmentModal .brand-choice{flex-basis:78vw!important;min-width:220px!important}
  .experience-v66 .experience-v66-card .experience-v66-copy .button{animation-duration:2.7s!important}
}
@media(prefers-reduced-motion:reduce){
  .experience-v66 .experience-v66-card .experience-v66-copy .button,
  .experience-v66 .experience-v66-card .experience-v66-copy .button::before,
  .experience-v66 .experience-v66-card .experience-v66-copy .button::after{animation:none!important}
}
