/* =========================================================
   Alfa Park V35 — mobile booking hardening.
   Fixes live price clipping, extras layout and all remaining
   Amelia blue active/selected states on desktop + mobile.
   ========================================================= */

/* Keep Amelia visually inside Alfa Park brand even when the plugin injects
   its own blue CSS variables inline. !important is intentional here. */
body.apv-booking-page .am-fs__wrapper,
body.apv-booking-page .amelia-v2-booking{
  --am-c-primary:#173c28!important;
  --am-c-success:#173c28!important;
  --am-c-main-heading-text:#102217!important;
  --am-c-main-text:#1a2c25!important;
  --am-c-sb-bgr:#102217!important;
  --am-c-inp-border:#d6e0d8!important;
  --am-c-btn-prim:#173c28!important;
  --am-c-btn-prim-text:#ffffff!important;
  --am-c-btn-sec:#102217!important;
  --am-c-btn-sec-text:#ffffff!important;
}

/* Amelia also injects button-scoped variables; neutralise those in the
   date/time flow so no #1246D6 / #265CF2 flashes survive selection. */
body.apv-booking-page.apv-stage-datetime .am-button,
body.apv-booking-page.apv-stage-datetime .el-button,
body.apv-booking-page.apv-stage-datetime .am-fs__main-heading .am-button{
  --am-c-btn-first:#173c28!important;
  --am-c-btn-second:#ffffff!important;
  --am-c-btn-first-op80:rgba(23,60,40,.8)!important;
  --am-c-btn-first-op30:rgba(23,60,40,.3)!important;
  --am-c-btn-first-op20:rgba(23,60,40,.12)!important;
}

/* Date selection: cover current + alternate Amelia/FullCalendar states. */
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.fc-day-selected .fc-daygrid-day-number,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.am-advsc__dayGridMonth-cell__selected .fc-daygrid-day-number,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day[aria-selected="true"] .fc-daygrid-day-number,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.is-selected .fc-daygrid-day-number,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day-number.is-selected,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day-number[aria-selected="true"]{
  background:#173c28!important;
  border-color:#173c28!important;
  color:#caff3d!important;
  -webkit-text-fill-color:#caff3d!important;
  box-shadow:0 9px 20px rgba(23,60,40,.18)!important;
}
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.fc-day-today .fc-daygrid-day-number{
  border-color:#b8c8bb!important;
  background:#eef5e8!important;
  color:#173c28!important;
  -webkit-text-fill-color:#173c28!important;
}
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.fc-day-today.fc-day-selected .fc-daygrid-day-number,
body.apv-booking-page.apv-stage-datetime .fc-daygrid-day.fc-day-today[aria-selected="true"] .fc-daygrid-day-number{
  background:#173c28!important;
  color:#caff3d!important;
  -webkit-text-fill-color:#caff3d!important;
}

/* Time selection: force every known selected state to the forest/lime pair. */
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.am-advsc__slots-item__selected,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.apv-is-selected,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.is-selected,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item[aria-selected="true"]{
  background:#173c28!important;
  border-color:#173c28!important;
  color:#caff3d!important;
  -webkit-text-fill-color:#caff3d!important;
  box-shadow:0 11px 24px rgba(23,60,40,.18)!important;
}
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.am-advsc__slots-item__selected *,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.apv-is-selected *,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item.is-selected *,
body.apv-booking-page.apv-stage-datetime .am-advsc__slots-item[aria-selected="true"] *{
  color:#caff3d!important;
  -webkit-text-fill-color:#caff3d!important;
}

/* Live price card: never let the sticky CTA visually crop the price card. */
body.apv-booking-page .apv-res-live-price{
  box-sizing:border-box!important;
  overflow:visible!important;
}
body.apv-booking-page .apv-res-live-price>span,
body.apv-booking-page .apv-res-live-price>strong,
body.apv-booking-page .apv-res-live-price>small{
  flex:0 0 auto!important;
  max-width:100%!important;
}

@media(max-width:700px){
  /* Price needs its own breathing room above the sticky continue button. */
  body.apv-booking-page .apv-res-configurator{
    gap:10px!important;
    padding:14px 14px 8px!important;
    overflow:visible!important;
  }
  body.apv-booking-page .apv-res-live-price{
    min-height:96px!important;
    height:auto!important;
    margin:0 0 8px!important;
    padding:14px 16px!important;
    border-radius:15px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"label price" "note note"!important;
    align-items:center!important;
    column-gap:12px!important;
    row-gap:7px!important;
    position:relative!important;
    z-index:2!important;
  }
  body.apv-booking-page .apv-res-live-price>span{
    grid-area:label!important;
    margin:0!important;
    font-size:9px!important;
    line-height:1.2!important;
  }
  body.apv-booking-page .apv-res-live-price>strong{
    grid-area:price!important;
    margin:0!important;
    font-size:30px!important;
    line-height:1!important;
    white-space:nowrap!important;
    text-align:right!important;
  }
  body.apv-booking-page .apv-res-live-price>small{
    grid-area:note!important;
    margin:0!important;
    font-size:9px!important;
    line-height:1.4!important;
  }
  body.apv-booking-page .apv-res-custom-actions{
    margin-top:0!important;
    padding-top:10px!important;
  }

  /* Extras: row 1 = title + price; row 2 = quantity control. This prevents
     long titles from being squeezed beneath the counter. */
  body.apv-booking-page.apv-stage-extras .am-fs__extras-main .am-collapse-item{
    overflow:hidden!important;
    border-radius:15px!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    gap:10px 12px!important;
    min-height:0!important;
    padding:14px!important;
    box-sizing:border-box!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-left{
    grid-column:1!important;
    grid-row:1!important;
    min-width:0!important;
    width:auto!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1.3!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    color:#102217!important;
    -webkit-text-fill-color:#102217!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right{
    display:contents!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .card-text,
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .apv-extra-unit-price{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    width:auto!important;
    margin:0!important;
    align-self:center!important;
    justify-self:end!important;
    color:#173c28!important;
    -webkit-text-fill-color:#173c28!important;
    font:900 13px/1 Montserrat,sans-serif!important;
    white-space:nowrap!important;
    text-align:right!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input-number{
    grid-column:1/-1!important;
    grid-row:2!important;
    justify-self:end!important;
    width:120px!important;
    height:40px!important;
    margin:0!important;
    grid-template-columns:38px 44px 38px!important;
    grid-template-rows:40px!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input-number__decrease,
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input-number__increase{
    width:38px!important;
    height:40px!important;
  }
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input,
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input__wrapper,
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-right .el-input__inner{
    width:44px!important;
    height:40px!important;
    line-height:40px!important;
  }
}

@media(max-width:390px){
  body.apv-booking-page .apv-res-live-price{padding:13px 14px!important;column-gap:8px!important}
  body.apv-booking-page .apv-res-live-price>strong{font-size:27px!important}
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header{padding:12px!important;gap:9px!important}
  body.apv-booking-page.apv-stage-extras .am-fs__extras-card__header-left{font-size:12px!important}
}
