/* Mobile modal and confirmation polish V4. Booking engine, controls and colors untouched. */
.cardly-appt-v4-modal{
  box-sizing:border-box!important;background:#f7f8fa!important;border:0!important;
  border-radius:24px!important;box-shadow:0 20px 65px rgba(20,30,43,.16)!important;
  padding:0!important;outline:0!important;overflow-x:hidden!important;
}
.cardly-appt-v4-shell{
  box-sizing:border-box!important;background:transparent!important;border:0!important;
  outline:0!important;box-shadow:none!important;padding:0!important;
}
.cardly-appt-v4-modal .cardly-appt-topbar{
  background:#fff!important;border-bottom:1px solid #eef0f2!important;
  box-shadow:none!important;min-height:65px!important;
}
.cardly-appt-v4-modal [data-cardly-appt-hero]{
  background:linear-gradient(145deg,#fff,#fcfbf8)!important;
  border:1px solid #ebedf0!important;
  box-shadow:0 4px 24px rgba(21,34,51,.035)!important;
}
.cardly-appt-v4-modal .cardly-appt-close{
  border-radius:12px!important;background:#f4f5f7!important;
}
.cardly-appt-v4-modal .cardly-appt-close:hover{background:#e8ecf1!important}
.cardly-appt-v4-slot-count{
  display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;
  white-space:nowrap;margin-inline-start:10px;padding:4px 9px;border-radius:20px;
  font-size:12px;font-weight:700;line-height:1.45;color:#576474;background:#f1f4f5;
}
.cardly-appt-v4-confirmation{
  position:fixed!important;inset:0!important;z-index:2147483000!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom))!important;
  background:rgba(15,23,36,.39)!important;box-sizing:border-box!important;
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
}
.cardly-appt-v4-success-card{
  width:min(100%,430px);box-sizing:border-box;background:#fff;border-radius:24px;
  text-align:center;padding:36px 26px 28px;max-height:90dvh;overflow-y:auto;
  box-shadow:0 30px 90px rgba(15,23,36,.17);color:#172335;
  animation:cardlyBookingSuccessIn .2s ease-out both;
}
.cardly-appt-v4-success-check{
  display:grid;place-items:center;width:68px;height:68px;margin:0 auto 20px;
  border-radius:50%;background:#edf8f0;color:#2c9b61;font-size:36px;font-weight:750;
}
.cardly-appt-v4-success-card h2{margin:0 0 12px!important;font-size:26px!important;line-height:1.22!important;font-weight:800!important;letter-spacing:-.035em;color:#142235!important}
.cardly-appt-v4-success-card p{margin:0 auto 16px!important;max-width:340px!important;font-size:15px!important;line-height:1.65!important;color:#657385!important}
.cardly-appt-v4-success-details{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:14px;color:#475569;font-size:13px}
.cardly-appt-v4-success-details:empty{display:none}
.cardly-appt-v4-done{
  display:flex;align-items:center;justify-content:center;border:0;border-radius:13px;
  width:100%;min-height:50px;margin-top:20px;padding:10px 18px;
  color:#fff;background:#840e39;font-size:15px;font-weight:800;cursor:pointer;
}
.cardly-appt-v4-done:focus-visible{outline:3px solid #2f62c5;outline-offset:3px}
@keyframes cardlyBookingSuccessIn{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:640px){
  .cardly-appt-v4-modal{
    width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;
    max-height:calc(100dvh - 28px)!important;border-radius:23px!important;
    margin-inline:auto!important;
  }
  .cardly-appt-v4-modal .cardly-appt-topbar{padding:11px 16px!important;min-height:60px!important}
  .cardly-appt-v4-modal [data-cardly-appt-hero]{margin:12px!important;border-radius:18px!important;padding:18px 16px!important}
  .cardly-appt-v4-modal [data-cardly-appt-hero] h1,
  .cardly-appt-v4-modal [data-cardly-appt-hero] h2{font-size:clamp(23px,6vw,30px)!important}
  .cardly-appt-v4-success-card{padding:30px 21px 23px;border-radius:22px}
  .cardly-appt-v4-success-card h2{font-size:24px!important}
}
@media(prefers-reduced-motion:reduce){.cardly-appt-v4-success-card{animation:none}}

/* CARDLY_BUTTON_CENTER_V1 — presentation only; keep event handlers unchanged */
.public-card-column .cardly-inline-booking-trigger,
.public-card-column .cardly-lead-trigger {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding-inline: 48px !important;
  min-height: 50px;
  box-sizing: border-box;
}
/* Left icon is positioned independently of the centered label. */
.public-card-column .cardly-inline-booking-trigger > svg:first-child,
.public-card-column .cardly-lead-trigger > svg:first-child {
  position: absolute !important;
  inset-inline-start: 18px !important;
  margin: 0 !important;
  flex: none !important;
}
/* Label stays centered regardless of icon width or plus/minus state. */
.public-card-column .cardly-inline-booking-trigger > span:nth-of-type(1),
.public-card-column .cardly-lead-trigger > span:nth-of-type(1) {
  display: block !important;
  flex: none !important;
  width: auto !important;
  margin: 0 !important;
  text-align: center !important;
}
/* Expand/collapse indicator is pinned to the right edge. */
.public-card-column .cardly-inline-booking-trigger > span:last-child,
.public-card-column .cardly-lead-trigger > span:last-child {
  position: absolute !important;
  inset-inline-end: 18px !important;
  margin: 0 !important;
  flex: none !important;
  line-height: 1 !important;
}

/* CARDLY_BUTTON_CENTER_FINAL — CSS-only override */
.public-card-column .cardly-inline-booking-trigger,
.public-card-column .cardly-lead-trigger {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding-left: 52px !important;
    padding-right: 52px !important;
    box-sizing: border-box !important;
}

.public-card-column .cardly-inline-booking-trigger > svg:first-child,
.public-card-column .cardly-lead-trigger > svg:first-child {
    position: absolute !important;
    left: 18px !important;
    right: auto !important;
    margin: 0 !important;
}

.public-card-column .cardly-inline-booking-trigger > span:first-of-type,
.public-card-column .cardly-lead-trigger > span:first-of-type {
    position: static !important;
    flex: 0 1 auto !important;
    width: auto !important;
    margin: 0 !important;
    text-align: center !important;
}

.public-card-column .cardly-inline-booking-trigger > span:last-child,
.public-card-column .cardly-lead-trigger > span:last-child {
    position: absolute !important;
    right: 18px !important;
    left: auto !important;
    margin: 0 !important;
}


/* CARDLY_QR_DOWNLOAD_THEME_V1 */
.public-card-column {
    --cardly-qr-theme: var(--booking-primary, #831337);
}

/* QR modal download button */
body:has(.public-card-column) .qr-content button:not(.secondary),
body:has(.public-card-column) .qr-content .button:not(.secondary) {
    background: var(--cardly-qr-theme, #D5B174) !important;
    border-color: var(--cardly-qr-theme, #D5B174) !important;
    color: #1f2937 !important;
    transition: filter .2s ease, transform .2s ease !important;
}

body:has(.public-card-column) .qr-content button:not(.secondary):hover,
body:has(.public-card-column) .qr-content .button:not(.secondary):hover {
    filter: brightness(.95);
    transform: translateY(-1px);
}

