﻿main.librarypage section#reserve.reserve--image-cards{
  position:relative;
  isolation:isolate;
  margin:15px calc(50% - 50vw) 0;
  padding:clamp(36px, 4.2vw, 58px) clamp(24px, 4vw, 68px) clamp(52px, 5vw, 82px);
  overflow:hidden;
  background:
    radial-gradient(circle at 4% 2%, rgba(203,226,249,.9) 0 0, rgba(203,226,249,.9) 15%, transparent 15.2%),
    radial-gradient(circle at 96% 0%, rgba(214,228,248,.86) 0 0, rgba(214,228,248,.86) 19%, transparent 19.2%),
    linear-gradient(180deg, #f8fcff 0%, #eef7ff 54%, #f8fcff 100%);
}

main.librarypage section#reserve.reserve--image-cards::before{
  position:absolute;
  top:0;
  left:0;
  z-index:-1;
  width:260px;
  height:160px;
  background-image:radial-gradient(circle, rgba(255,255,255,.82) 0 3px, transparent 3.5px);
  background-size:25px 25px;
  content:"";
  opacity:.9;
}

main.librarypage section#reserve.reserve--image-cards::after{
  position:absolute;
  right:-70px;
  top:-96px;
  z-index:-1;
  width:min(760px, 52vw);
  height:min(340px, 28vw);
  border-radius:0 0 0 100%;
  background:linear-gradient(145deg, rgba(216,229,248,.82), rgba(245,250,255,.42));
  content:"";
}

main.librarypage #reserve.reserve--image-cards .reserve__head{
  position:relative;
  z-index:1;
  display:block;
  max-width:900px;
  margin:0 auto 28px;
  text-align:center;
}

main.librarypage #reserve.reserve--image-cards .reserve__title{
  position:relative;
  margin:0 0 10px;
  padding-left:0;
  border-left:none;
  color:var(--eca-blue);
  font-weight:800;
  letter-spacing:.2px;
  text-align:center;
}

main.librarypage #reserve.reserve--image-cards .reserve__title::after{
  display:block;
  width:64px;
  height:4px;
  margin:10px auto 0;
  border-radius:4px;
  background:linear-gradient(90deg, var(--eca-blue), var(--eca-orange));
  content:"";
  opacity:.9;
}

main.librarypage #reserve.reserve--image-cards .reserve__lede{
  max-width:760px;
  margin:0 auto;
  color:var(--ink-2);
  font-weight:600;
  line-height:1.5;
}

main.librarypage #reserve.reserve--image-cards .reservecards{
  position:relative;
  z-index:1;
  display:grid;
  width:min(2360px, calc(100vw - 96px));
  margin:0 auto;
  padding:0;
  gap:22px;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  list-style:none;
}

main.librarypage #reserve.reserve--image-cards .rescard{
  position:relative;
  display:block;
  min-height:238px;
  overflow:hidden;
  padding:0;
  border:1px solid rgba(178,197,218,.72);
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 30px rgba(23,55,83,.13);
  transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}

main.librarypage #reserve.reserve--image-cards .rescard::before{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg, #fff 0%, #fff 48%, rgba(255,255,255,.92) 58%, rgba(255,255,255,.14) 74%, transparent 100%);
  content:"";
  pointer-events:none;
}

main.librarypage #reserve.reserve--image-cards .rescard__media{
  position:absolute;
  top:7px;
  right:7px;
  bottom:7px;
  width:56%;
  border-radius:14px;
  background-color:#e9f2fa;
  background-position:center;
  background-size:cover;
  transform:scale(1.01);
  transition:transform .34s ease, filter .34s ease;
}

main.librarypage #reserve.reserve--image-cards .rescard__media::after{
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.66) 21%, rgba(255,255,255,0) 52%);
  content:"";
}

main.librarypage #reserve.reserve--image-cards .rescard__content{
  position:relative;
  z-index:2;
  display:grid;
  min-height:238px;
  width:58%;
  align-content:start;
  padding:24px 22px 24px;
}

main.librarypage #reserve.reserve--image-cards .resicon{
  display:grid;
  width:64px;
  height:64px;
  place-items:center;
  margin:0 0 17px;
  border:1px solid #d9e8f8;
  border-radius:50%;
  background:#fff;
  color:#096fd3;
  box-shadow:0 8px 18px rgba(9,61,104,.14);
  font-size:27px;
  transition:background .24s ease, color .24s ease, transform .24s ease;
}

main.librarypage #reserve.reserve--image-cards .rescard__title{
  min-height:52px;
  margin:0 0 14px;
  color:#082d5f;
  font-size:clamp(16px, .94vw, 22px);
  font-weight:800;
  line-height:1.2;
  letter-spacing:0;
}

main.librarypage #reserve.reserve--image-cards .rescard__desc{
  margin:0 0 24px;
  color:#354c67;
  font-size:clamp(14px, .84vw, 18px);
  font-weight:500;
  line-height:1.48;
}

main.librarypage #reserve.reserve--image-cards .rescard__cta{
  display:inline-flex;
  min-width:108px;
  min-height:42px;
  align-items:center;
  justify-content:center;
  align-self:end;
  justify-self:start;
  margin:0;
  padding:9px 22px;
  border:0;
  border-radius:9px;
  background:linear-gradient(135deg, #004C99, #003b78);
  color:#fff;
  box-shadow:0 8px 16px rgba(0,76,153,.24);
  font-size:16px;
  font-weight:800;
  line-height:1;
  text-decoration:none;
  transition:background .22s ease, box-shadow .22s ease, transform .22s ease;
}

main.librarypage #reserve.reserve--image-cards .rescard__cta::before,
main.librarypage #reserve.reserve--image-cards .rescard__cta::after{
  display:none;
  content:none;
}

main.librarypage #reserve.reserve--image-cards .reserve__stripe{
  display:none;
}

main.librarypage #reserve.reserve--image-cards .reserve__stripe span{
  flex:var(--reserve-stripe-grow, 1) 1 0;
  min-width:44px;
  border-radius:999px;
  background:var(--reserve-stripe-color);
}

@media (hover:hover) and (pointer:fine){
  main.librarypage #reserve.reserve--image-cards .rescard:hover,
  main.librarypage #reserve.reserve--image-cards .rescard:focus-within{
    border-color:rgba(94,160,219,.75);
    background:#fff;
    box-shadow:0 20px 42px rgba(23,55,83,.18);
    transform:translateY(-4px);
  }

  main.librarypage #reserve.reserve--image-cards .rescard:hover .rescard__media,
  main.librarypage #reserve.reserve--image-cards .rescard:focus-within .rescard__media{
    filter:saturate(1.05) contrast(1.03);
    transform:scale(1.055);
  }

  main.librarypage #reserve.reserve--image-cards .rescard:hover .resicon,
  main.librarypage #reserve.reserve--image-cards .rescard:focus-within .resicon{
    background:#f7fbff;
    color:#003b78;
    transform:translateY(-2px);
  }

  main.librarypage #reserve.reserve--image-cards .rescard:hover .rescard__title,
  main.librarypage #reserve.reserve--image-cards .rescard:focus-within .rescard__title,
  main.librarypage #reserve.reserve--image-cards .rescard:hover .rescard__desc,
  main.librarypage #reserve.reserve--image-cards .rescard:focus-within .rescard__desc{
    color:#082d5f;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__cta:hover,
  main.librarypage #reserve.reserve--image-cards .rescard__cta:focus{
    background:linear-gradient(135deg, #0b84e8, #064fa5);
    color:#fff;
    box-shadow:0 12px 24px rgba(3,90,183,.26);
    transform:translateY(-1px);
  }
}

@media (max-width:1480px){
  main.librarypage #reserve.reserve--image-cards .reservecards{
    width:min(1280px, calc(100vw - 52px));
    gap:18px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard{
    min-height:224px;
    padding:0;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__content{
    min-height:224px;
    width:64%;
    padding:18px 17px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__media{
    width:52%;
  }

  main.librarypage #reserve.reserve--image-cards .resicon{
    width:48px;
    height:48px;
    margin-bottom:12px;
    font-size:21px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__title{
    min-height:46px;
    margin-bottom:10px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__desc{
    margin-bottom:18px;
    font-size:13px;
    line-height:1.45;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__cta{
    min-width:98px;
    min-height:40px;
    font-size:15px;
  }
}

@media (max-width:1120px){
  main.librarypage #reserve.reserve--image-cards .reservecards{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width:680px){
  main.librarypage section#reserve.reserve--image-cards{
    margin-top:15px;
    padding-inline:18px;
  }

  main.librarypage #reserve.reserve--image-cards .reservecards{
    width:100%;
    grid-template-columns:1fr;
  }

  main.librarypage #reserve.reserve--image-cards .rescard{
    min-height:228px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__content{
    width:66%;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__media{
    width:58%;
  }

  main.librarypage #reserve.reserve--image-cards .reserve__stripe{
    width:100%;
    gap:8px;
  }
}

@media (max-width:460px){
  main.librarypage #reserve.reserve--image-cards .rescard__content{
    width:72%;
    padding:20px 16px;
  }

  main.librarypage #reserve.reserve--image-cards .rescard__media{
    width:50%;
    opacity:.72;
  }
}

@media (prefers-reduced-motion:reduce){
  main.librarypage #reserve.reserve--image-cards .rescard,
  main.librarypage #reserve.reserve--image-cards .rescard__media,
  main.librarypage #reserve.reserve--image-cards .resicon,
  main.librarypage #reserve.reserve--image-cards .rescard__cta{
    transition:none !important;
  }
}

.eca-library-reservation-wrapper{
  width:min(100%, 1140px);
  margin:0 auto;
}

.eca-library-reservation-form{
  color:#173a54;
  display:block;
  gap:0;
  margin:0;
  padding:0;
  overflow:hidden;
  border:1px solid #dce8f3;
  border-radius:18px;
  background:#fff;
  box-shadow:0 22px 56px rgba(6,35,62,.16);
}

.eca-library-reservation-form > *{
  min-width:0;
}

.eca-library-reservation-dialog .ui-dialog-content{
  max-height:min(calc(100vh - 132px), 900px) !important;
  padding:0 !important;
  overflow:auto;
  background:transparent;
}

.eca-library-reservation-dialog.ui-dialog{
  width:min(1180px, calc(100vw - 32px)) !important;
  max-width:calc(100vw - 32px) !important;
  z-index:1101 !important;
  padding:0;
  border:0;
  border-radius:22px;
  background:transparent;
  box-shadow:0 28px 90px rgba(0,18,39,.38);
}

body:has(.eca-library-reservation-dialog) .ui-widget-overlay{
  z-index:1100 !important;
}

.eca-library-reservation-dialog .ui-dialog-titlebar{
  border:0;
  background:#063b66;
  color:#fff;
}

.eca-library-reservation-intro h2,
.eca-library-reservation-confirmation h2{
  margin:0 0 5px;
  color:#063b66;
  font-size:32px;
  line-height:1.12;
}

.eca-reserve-steps{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  align-items:center;
  margin:0;
  padding:20px clamp(18px, 2.5vw, 30px);
  border-bottom:1px solid #e6edf5;
  background:linear-gradient(180deg, #fff, #f9fcff);
  list-style:none;
}

.eca-reserve-steps li{
  position:relative;
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
  color:#557087;
  font-size:13px;
  font-weight:800;
  letter-spacing:0;
}

.eca-reserve-steps li:not(:last-child)::after{
  position:absolute;
  top:50%;
  right:-9px;
  width:calc(100% - 138px);
  min-width:20px;
  height:1px;
  background:#d8e5f0;
  content:"";
  transform:translateY(-50%);
}

.eca-reserve-steps span{
  position:relative;
  z-index:1;
  display:grid;
  width:30px;
  height:30px;
  flex:0 0 30px;
  place-items:center;
  border:1px solid #cfe0ed;
  border-radius:50%;
  background:#fff;
  color:#567287;
  box-shadow:0 5px 14px rgba(5,42,73,.08);
}

.eca-reserve-steps .is-active{
  color:#0b456f;
}

.eca-reserve-steps .is-active span,
.eca-reserve-steps .is-complete span{
  border-color:#004C99;
  background:linear-gradient(135deg, #0e87d6, #075da8);
  color:#fff;
}

.eca-library-reservation-intro{
  padding:18px clamp(18px, 2.5vw, 30px) 14px;
  background:#fff;
}

.eca-library-reservation-intro h2{
  font-size:28px;
}

.eca-library-reservation-intro p,
.eca-library-reservation-confirmation p{
  margin:0;
  color:#49687e;
  font-size:15px;
}

.eca-library-reservation-form .form-item{
  margin:0;
}

.eca-library-reservation-form > .form-wrapper > legend,
.eca-library-reservation-form > fieldset > legend{
  color:#083c67;
  font-weight:800;
}

.eca-library-reservation-form input:not([type="radio"]):not([type="checkbox"]),
.eca-library-reservation-form textarea{
  width:100%;
  min-height:46px;
  border:1px solid #c7ddea;
  border-radius:12px;
  background:#fff;
  color:#12354e;
  box-shadow:inset 0 1px 2px rgba(4,39,69,.05);
}

.eca-library-reservation-form textarea{
  min-height:100px;
}

.eca-library-reservation-form .eca-reserve-space-options .form-radios{
  display:grid;
  gap:8px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.eca-library-reservation-form .eca-reserve-booking-type{
  margin:0 0 15px;
  padding:0;
  border:0;
  background:transparent;
}

.eca-library-reservation-form .eca-reserve-booking-type legend{
  margin-bottom:8px;
  color:#214c6b;
  font-size:12px;
  font-weight:900;
}

.eca-library-reservation-form .eca-reserve-booking-type .form-radios,
.eca-library-reservation-form .eca-reserve-booking-type .fieldset-wrapper > div:first-child{
  display:grid;
  gap:6px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  padding:5px;
  border:1px solid #cce1ef;
  border-radius:12px;
  background:#f3f8fc;
}

.eca-library-reservation-form .eca-reserve-space-options .fieldset-wrapper > div:first-child,
.eca-library-reservation-form .eca-reserve-slot-options .fieldset-wrapper > div:first-child{
  display:grid;
  gap:8px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.eca-library-reservation-form .eca-reserve-space-options .form-item{
  position:relative;
}

.eca-library-reservation-form .eca-reserve-booking-type .form-item{
  position:relative;
}

.eca-library-reservation-form .eca-reserve-booking-type input,
.eca-library-reservation-form .eca-reserve-space-options input,
.eca-library-reservation-form .eca-reserve-slot-options input{
  position:absolute;
  opacity:0;
}

.eca-library-reservation-form .eca-reserve-booking-type label,
.eca-library-reservation-form .eca-reserve-space-options label,
.eca-library-reservation-form .eca-reserve-slot-options label{
  display:flex;
  min-height:44px;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:11px 13px;
  border:1px solid #cce1ef;
  border-radius:8px;
  background:#fff;
  color:#0c466f;
  cursor:pointer;
  font-weight:700;
  line-height:1.3;
  text-align:center;
  transition:border-color .2s ease, background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.eca-library-reservation-form .eca-reserve-booking-type label{
  min-height:34px;
  padding:8px 10px;
  border-color:transparent;
  border-radius:9px;
  background:transparent;
  color:#496a83;
  font-size:12px;
}

.eca-library-reservation-form .eca-reserve-booking-type input:checked + label,
.eca-library-reservation-form .eca-reserve-space-options input:checked + label,
.eca-library-reservation-form .eca-reserve-slot-options input:checked + label{
  border-color:#004C99;
  background:linear-gradient(135deg, #0878bd, #095888);
  color:#fff;
  box-shadow:0 12px 24px rgba(13,125,188,.22);
}

.eca-library-reservation-schedule{
  display:grid;
  grid-template-columns:minmax(280px, .96fr) minmax(340px, 1.16fr) minmax(235px, .78fr);
  align-items:stretch;
  gap:0;
  margin:6px clamp(18px, 2.5vw, 30px) 22px;
  overflow:hidden;
  border:1px solid #dbe7f2;
  border-radius:12px;
  background:#fff;
  box-shadow:0 12px 34px rgba(8,45,77,.08);
}

.eca-library-reservation-date,
.eca-library-reservation-time,
.eca-library-reservation-summary{
  min-width:0;
  padding:22px;
  border-right:1px solid #e0eaf3;
  background:#fff;
}

.eca-library-reservation-summary{
  border-right:0;
  background:linear-gradient(180deg, #fff, #f8fbfe);
}

.eca-library-reservation-date h3,
.eca-library-reservation-time h3,
.eca-library-reservation-summary h3,
.eca-library-reservation-review h3{
  margin:0 0 12px;
  color:#0d3d63;
  font-size:15px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:0;
}

.eca-library-reservation-time > p{
  min-height:18px;
  margin:-6px 0 12px;
  color:#365d7b;
  font-size:13px;
  font-weight:800;
}

.eca-library-reservation-form .eca-reserve-slot-options{
  min-width:0;
  margin:0 0 18px;
  padding:0;
  border:0;
  background:transparent;
}

.eca-library-reservation-form .eca-reserve-slot-options legend,
.eca-library-reservation-form .eca-reserve-space-options legend{
  margin-bottom:9px;
  color:#214c6b;
  font-size:13px;
  font-weight:900;
}

.eca-library-reservation-form .eca-reserve-slot-options .description{
  margin-top:10px;
  color:#557287;
  font-size:12px;
}

.eca-reserve-calendar__header{
  display:grid;
  grid-template-columns:40px 1fr 40px;
  gap:10px;
  align-items:center;
  margin-bottom:12px;
  text-align:center;
}

.eca-reserve-calendar__header strong{
  color:#063b66;
  font-size:18px;
}

.eca-reserve-calendar__nav{
  width:40px;
  height:40px;
  border:1px solid #c6dfee;
  border-radius:8px;
  background:#fff;
  color:#096ca7;
  font-size:18px;
  font-weight:900;
}

.eca-reserve-calendar__nav:disabled{
  opacity:.36;
}

.eca-reserve-calendar__week,
.eca-reserve-calendar__grid{
  display:grid;
  grid-template-columns:repeat(7, minmax(0, 1fr));
  gap:6px;
}

.eca-reserve-calendar__week{
  margin-bottom:6px;
  color:#668399;
  font-size:12px;
  font-weight:800;
  text-align:center;
}

.eca-reserve-calendar__day{
  position:relative;
  aspect-ratio:1;
  min-height:36px;
  border:1px solid transparent;
  border-radius:50%;
  background:transparent;
  color:#0d466d;
  font-weight:800;
}

.eca-reserve-calendar__day:disabled{
  color:#b3bfca;
  cursor:not-allowed;
}

.eca-reserve-calendar__day:not(:disabled):not(.is-selected)::after{
  position:absolute;
  bottom:4px;
  left:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:#39b56c;
  content:"";
  transform:translateX(-50%);
}

.eca-reserve-calendar__day.is-outside{
  opacity:.42;
}

.eca-reserve-calendar__day.is-selected{
  border-color:#004C99;
  background:linear-gradient(135deg, #004C99, #075788);
  color:#fff;
  box-shadow:0 10px 18px rgba(13,125,188,.23);
}

.eca-reserve-calendar__day.is-in-range{
  border-color:#b9dcf7;
  border-radius:12px;
  background:#e9f6ff;
  color:#075788;
}

.eca-reserve-calendar__day.is-range-start,
.eca-reserve-calendar__day.is-range-end{
  border-radius:50%;
}

.eca-reserve-calendar__selection,
.eca-reserve-slot-status{
  margin:11px 0 0;
  color:#47677f;
  font-size:13px;
  font-weight:700;
}

.eca-reserve-calendar__selection{
  min-height:18px;
}

.eca-reserve-calendar__legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-top:16px;
  color:#61798c;
  font-size:12px;
  font-weight:800;
}

.eca-reserve-calendar__legend span{
  display:inline-flex;
  align-items:center;
  gap:7px;
}

.eca-reserve-calendar__legend span::before{
  width:9px;
  height:9px;
  border-radius:50%;
  background:#3bb66e;
  content:"";
}

.eca-reserve-calendar__legend span:nth-child(2)::before{
  background:#c6d0da;
}

.eca-reserve-calendar__legend span:nth-child(3)::before{
  background:#0b72c9;
}

.eca-reserve-calendar__window{
  margin:16px 0 0;
  padding:12px 13px;
  border:1px solid #bfdcff;
  border-radius:8px;
  background:#edf6ff;
  color:#365d7a;
  font-size:12px;
  font-weight:700;
  line-height:1.45;
}

.eca-library-reservation-form .eca-reserve-slot-options .form-radios{
  display:grid;
  gap:9px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.eca-library-reservation-form .eca-reserve-slot-options label.is-unavailable{
  border-color:#e2eaf0;
  background:#f2f6f9;
  color:#879cac;
  cursor:not-allowed;
}

.eca-library-reservation-summary dl,
.eca-library-reservation-review dl{
  display:grid;
  gap:15px;
  margin:0;
}

.eca-library-reservation-summary dl > div,
.eca-library-reservation-review dl > div{
  position:relative;
  margin:0;
  padding-left:27px;
}

.eca-library-reservation-summary dl > div::before,
.eca-library-reservation-review dl > div::before{
  position:absolute;
  top:3px;
  left:0;
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  border-radius:5px;
  background:#e8f4ff;
  color:#0876c9;
  content:"";
}

.eca-library-reservation-summary dl > div:nth-child(1)::before,
.eca-library-reservation-review dl > div:nth-child(1)::before{
  border-radius:50%;
  content:"";
  box-shadow:inset 0 0 0 5px #0876c9;
}

.eca-library-reservation-summary dl > div:nth-child(2)::before,
.eca-library-reservation-review dl > div:nth-child(2)::before{
  box-shadow:inset 0 0 0 2px #0876c9;
}

.eca-library-reservation-summary dl > div:nth-child(3)::before,
.eca-library-reservation-summary dl > div:nth-child(4)::before,
.eca-library-reservation-summary dl > div:nth-child(5)::before,
.eca-library-reservation-review dl > div:nth-child(3)::before,
.eca-library-reservation-review dl > div:nth-child(4)::before,
.eca-library-reservation-review dl > div:nth-child(5)::before{
  border-radius:50%;
  box-shadow:inset 0 0 0 2px #0876c9;
}

.eca-library-reservation-summary dt,
.eca-library-reservation-review dt{
  margin:0 0 3px;
  color:#294c68;
  font-size:12px;
  font-weight:900;
}

.eca-library-reservation-summary dd,
.eca-library-reservation-review dd{
  margin:0;
  color:#092f4c;
  font-size:13px;
  font-weight:700;
  line-height:1.45;
  overflow-wrap:anywhere;
}

.eca-library-reservation-summary__note{
  margin:22px 0 0;
  padding:14px;
  border:1px solid #f0d492;
  border-radius:8px;
  background:#fff8e8;
  color:#4b5660;
  font-size:12px;
  font-weight:700;
  line-height:1.45;
}

.eca-library-reservation-form .eca-library-reservation-details{
  display:grid;
  gap:13px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin:6px clamp(18px, 2.5vw, 30px) 22px;
  padding:24px;
  border:1px solid #d6e7f2;
  border-radius:12px;
  background:linear-gradient(180deg, #fff, #f8fbfe);
  box-shadow:0 12px 34px rgba(8,45,77,.08);
}

.eca-library-reservation-form .eca-library-reservation-details > .fieldset-wrapper{
  display:grid;
  gap:13px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.eca-library-reservation-form .eca-library-reservation-details legend{
  padding-inline:7px;
  color:#063b66;
  font-weight:900;
}

.eca-library-reservation-form .eca-library-reservation-details .form-item-purpose{
  grid-column:1 / -1;
}

.eca-library-reservation-actions{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto auto;
  gap:10px;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  justify-self:stretch;
  grid-column:1 / -1;
  margin:0;
  padding:16px clamp(18px, 2.5vw, 30px);
  border-top:1px solid #e5edf4;
  background:#fbfdff;
}

#edit-actions.eca-library-reservation-actions{
  width:100%;
}

.eca-library-reservation-actions .button,
.eca-library-reservation-confirmation .button{
  min-height:48px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg, #004C99, #075788);
  color:#fff;
  box-shadow:0 13px 26px rgba(13,125,188,.24);
  font-weight:900;
}

.eca-library-reservation-actions [data-eca-reserve-next],
.eca-library-reservation-actions [data-eca-reserve-back]{
  display:none;
  align-items:center;
  justify-content:center;
  min-width:104px;
}

.eca-library-reservation-actions [data-eca-reserve-back]{
  border:1px solid #c7ddeb;
  background:#fff;
  color:#0c466f;
  box-shadow:none;
}

.eca-library-reservation-actions__status{
  min-height:18px;
  margin:0;
  color:#9a4a21;
  font-size:13px;
  font-weight:800;
}

.eca-library-reservation-form.is-step-enhanced .eca-library-reservation-actions [data-eca-reserve-next],
.eca-library-reservation-form.is-step-enhanced .eca-library-reservation-actions [data-eca-reserve-back]{
  display:inline-flex;
}

.eca-library-reservation-form.is-step-enhanced[data-reserve-step="schedule"] .eca-library-reservation-details,
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="schedule"] .eca-library-reservation-review,
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="details"] .eca-library-reservation-schedule,
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="details"] .eca-library-reservation-review,
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="review"] .eca-library-reservation-schedule,
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="review"] .eca-library-reservation-details{
  display:none;
}

.eca-library-reservation-form.is-step-enhanced[data-reserve-step="schedule"] [data-eca-reserve-back],
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="schedule"] .eca-library-reservation-actions input[type="submit"],
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="details"] .eca-library-reservation-actions input[type="submit"],
.eca-library-reservation-form.is-step-enhanced[data-reserve-step="review"] [data-eca-reserve-next]{
  display:none;
}

.eca-library-reservation-review{
  display:none;
  gap:12px;
  margin:6px clamp(18px, 2.5vw, 30px) 22px;
  padding:24px;
  border:1px solid #d6e7f2;
  border-radius:12px;
  background:linear-gradient(180deg, #fff, #f8fbfe);
  box-shadow:0 12px 34px rgba(8,45,77,.08);
}

.eca-library-reservation-form.is-step-enhanced[data-reserve-step="review"] .eca-library-reservation-review{
  display:grid;
}

.eca-library-reservation-review > p{
  margin:-6px 0 4px;
  color:#547286;
  font-size:14px;
}

.eca-reserve-review-grid{
  display:grid;
  gap:14px;
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.eca-reserve-review-grid section{
  min-width:0;
  padding:18px;
  border:1px solid #dce8f2;
  border-radius:10px;
  background:#fff;
}

.eca-reserve-review-grid h4{
  margin:0 0 14px;
  color:#0c466f;
  font-size:14px;
  font-weight:900;
}

.eca-library-reservation-confirmation{
  display:grid;
  justify-items:center;
  gap:10px;
  padding:clamp(28px, 5vw, 54px);
  border:1px solid #d8e8f4;
  border-radius:20px;
  background:#fff;
  box-shadow:0 22px 56px rgba(6,35,62,.16);
  text-align:center;
}

.eca-library-reservation-confirmation > span{
  display:grid;
  width:64px;
  height:64px;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(135deg, #004C99, #075788);
  color:#fff;
  box-shadow:0 14px 28px rgba(13,125,188,.25);
  font-size:28px;
}

@media (hover:hover) and (pointer:fine){
  .eca-library-reservation-form .eca-reserve-booking-type label:hover,
  .eca-library-reservation-form .eca-reserve-space-options label:hover,
  .eca-library-reservation-form .eca-reserve-slot-options label:not(.is-unavailable):hover,
  .eca-reserve-calendar__day:not(:disabled):hover{
    border-color:#82c4eb;
    box-shadow:0 10px 20px rgba(13,125,188,.12);
    transform:translateY(-1px);
  }
}

@media (max-width:760px){
  .eca-library-reservation-schedule{
    grid-template-columns:1fr;
  }

  .eca-library-reservation-date,
  .eca-library-reservation-time{
    border-right:0;
    border-bottom:1px solid #e0eaf3;
  }

  .eca-reserve-review-grid,
  .eca-library-reservation-form .eca-library-reservation-details,
  .eca-library-reservation-form .eca-library-reservation-details > .fieldset-wrapper{
    grid-template-columns:1fr;
  }

  .eca-library-reservation-form .eca-reserve-space-options .form-radios{
    grid-template-columns:1fr;
  }

  .eca-library-reservation-form .eca-reserve-booking-type .form-radios,
  .eca-library-reservation-form .eca-reserve-booking-type .fieldset-wrapper > div:first-child{
    grid-template-columns:1fr;
  }

  .eca-reserve-steps{
    gap:10px;
  }

  .eca-reserve-steps li:not(:last-child)::after{
    display:none;
  }
}

@media (max-width:480px){
  .eca-library-reservation-form{
    border-radius:16px;
  }

  .eca-reserve-steps{
    grid-template-columns:1fr;
    padding:15px;
  }

  .eca-library-reservation-intro,
  .eca-library-reservation-actions{
    padding-inline:15px;
  }

  .eca-library-reservation-intro h2,
  .eca-library-reservation-confirmation h2{
    font-size:24px;
  }

  .eca-library-reservation-schedule,
  .eca-library-reservation-form .eca-library-reservation-details,
  .eca-library-reservation-review{
    margin-inline:15px;
    border-radius:16px;
  }

  .eca-library-reservation-date,
  .eca-library-reservation-time,
  .eca-library-reservation-summary,
  .eca-library-reservation-form .eca-reserve-slot-options,
  .eca-library-reservation-form .eca-library-reservation-details{
    padding:13px;
    border-radius:15px;
  }

  .eca-library-reservation-form .eca-reserve-slot-options .form-radios{
    grid-template-columns:1fr;
  }

  .eca-library-reservation-form .eca-reserve-space-options .fieldset-wrapper > div:first-child,
  .eca-library-reservation-form .eca-reserve-slot-options .fieldset-wrapper > div:first-child{
    grid-template-columns:1fr;
  }

  .eca-library-reservation-actions{
    grid-template-columns:1fr;
    justify-items:stretch;
  }

  .eca-library-reservation-actions .button{
    width:100%;
  }

  .eca-reserve-calendar__week,
  .eca-reserve-calendar__grid{
    gap:4px;
  }
}

@media (prefers-reduced-motion:reduce){
  .eca-library-reservation-form label,
  .eca-reserve-calendar__day,
  .eca-library-reservation-actions .button{
    transition:none !important;
  }
}
