.oca-booking{--oca-orange:#F09E04;--oca-blue:#3E80E9;--oca-ink:#1D1D1B;--oca-cream:#ECE8E1;font-family:Mulish,Arial,sans-serif;color:var(--oca-ink);width:100%;max-width:none;margin:0;box-sizing:border-box}.oca-booking *{box-sizing:border-box}.oca-booking__shell{border:1px solid #dedad4;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 16px 42px #1d1d1b10}.oca-booking__hero{background:var(--oca-ink);color:white;padding:30px 34px}.oca-booking__eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--oca-orange)}.oca-booking h2,.oca-booking h3{font-family:'TT Commons Pro',Mulish,Arial,sans-serif;margin:0;line-height:1.13}.oca-booking h2{font-size:clamp(30px,3.7vw,46px);max-width:660px;margin:7px 0}.oca-booking__hero p{color:#e0ddd8;font-size:14px;max-width:660px;line-height:1.6;margin:8px 0 14px}.oca-booking__tags{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:#f2eee9}.oca-booking__tags span:before{content:'✳';color:var(--oca-orange);padding-right:7px}.oca-booking__main{padding:28px 34px}.oca-booking__steps{display:flex;gap:10px;margin-bottom:26px}.oca-booking__step{flex:1;font-size:12px;color:#777;padding-bottom:11px;border-bottom:3px solid #eae8e4}.oca-booking__step.is-current,.oca-booking__step.is-done{border-color:var(--oca-orange);color:var(--oca-ink);font-weight:700}.oca-booking__layout{display:grid;grid-template-columns:1.5fr .85fr;gap:28px}.oca-booking__aside{background:#f6f4f0;padding:22px;border-radius:14px;align-self:start}.oca-booking__aside h3{font-size:23px;margin-bottom:10px}.oca-booking__aside p{font-size:13px;line-height:1.65;color:#595650;margin:10px 0}.oca-booking__muted{font-size:13px;color:#68645e}.oca-booking__panel h3{font-size:28px;margin-bottom:8px}.oca-booking__controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0}.oca-booking__zone{border:1px solid #dcd8d2;border-radius:9px;background:white;padding:9px;max-width:270px;font:inherit;font-size:13px;width:100%;color:var(--oca-ink)}.oca-booking__dates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:14px 0 20px}.oca-booking__date{border:1px solid #e2e0dc;border-radius:10px;background:#f8f7f4;padding:13px 4px;min-height:69px;cursor:pointer;text-align:center;color:var(--oca-ink)}.oca-booking__date small{display:block;font-size:11px;color:#777;margin-bottom:4px}.oca-booking__date strong{font-size:18px}.oca-booking__date[aria-pressed=true]{background:var(--oca-ink);border-color:var(--oca-ink);color:white}.oca-booking__date[aria-pressed=true] small{color:#e2ddd5}.oca-booking__times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0 18px}.oca-booking__time{padding:12px 7px;border:1px solid #dad7d1;border-radius:9px;background:#fff;cursor:pointer;font:inherit;font-weight:700}.oca-booking__time[aria-pressed=true]{background:var(--oca-ink);color:#fff;border-color:var(--oca-orange);outline:1px solid var(--oca-orange)}.oca-booking__btn{background:var(--oca-orange);color:#171717;border:0;border-radius:10px;padding:13px 20px;font:inherit;font-weight:800;cursor:pointer;min-height:44px}.oca-booking__btn:disabled{opacity:.45;cursor:not-allowed}.oca-booking__btn--outline{border:1px solid #ccc;background:#fff;font-weight:700}.oca-booking__actions{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.oca-booking__fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.oca-booking__field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;min-width:0}.oca-booking__field--wide{grid-column:1/-1}.oca-booking__field input,.oca-booking__field select,.oca-booking__field textarea{width:100%;min-width:0;font:inherit;color:var(--oca-ink);border:1px solid #d1ccc4;border-radius:9px;background:white;padding:12px;font-weight:400;min-height:44px}.oca-booking__field textarea{min-height:95px;resize:vertical}.oca-booking__field input:focus,.oca-booking__field select:focus,.oca-booking__field textarea:focus{outline:2px solid #3e80e950;border-color:var(--oca-blue)}.oca-booking__field .oca-booking__required{color:#ac5d12}.oca-booking__section{grid-column:1/-1;margin-top:10px;font-weight:800;font-size:15px;border-bottom:1px solid #e5e1dc;padding-bottom:9px}.oca-booking__phone{display:grid;grid-template-columns:140px 1fr;gap:7px}.oca-booking__message{font-size:13px;color:#a0312d;margin:8px 0}.oca-booking__success{padding:18px;text-align:center}.oca-booking__success .oca-booking__check{font-size:44px;color:var(--oca-blue)}.oca-booking__pill{font-size:11px;background:#fff3d9;padding:6px 10px;border-radius:999px;font-weight:700;display:inline-block;margin-bottom:15px}.oca-booking__lang{float:right;background:transparent;color:white;border:1px solid #67635b;border-radius:7px;padding:5px 9px;cursor:pointer}.oca-booking__backlink{border:0;background:transparent;text-decoration:underline;color:var(--oca-blue);font:inherit;cursor:pointer;padding:6px 0}.oca-booking__loading{padding:50px;text-align:center}.oca-booking__summary{background:#f7f5f1;border-radius:10px;padding:12px 15px;margin-bottom:20px;font-size:13px}.oca-booking__status{color:#756348;font-size:13px;padding:14px;background:#fff8e8;border-radius:9px}.oca-booking button:focus-visible{outline:3px solid var(--oca-blue);outline-offset:2px}@media(max-width:720px){.oca-booking__hero{padding:23px 20px}.oca-booking__main{padding:21px 17px}.oca-booking__layout{display:flex;flex-direction:column}.oca-booking__aside{order:-1;width:100%;padding:14px}.oca-booking__aside p{display:none}.oca-booking__aside h3{font-size:19px;margin:0}.oca-booking__dates{gap:4px}.oca-booking__date{min-height:60px;padding:8px 2px}.oca-booking__times{grid-template-columns:repeat(2,1fr)}.oca-booking__fields{grid-template-columns:1fr}.oca-booking__phone{grid-template-columns:115px 1fr}.oca-booking__controls{align-items:stretch;flex-direction:column}.oca-booking__zone{max-width:none}.oca-booking__actions .oca-booking__btn{flex:1}.oca-booking__step{font-size:11px}}

/* v0.1.2: WPBakery mobile columns can impose narrow content boxes.
   Let the booking component use the phone viewport with a modest 12px gutter. */
@media screen and (max-width: 767px) {
  .oca-booking[data-oca-booking] {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100vw - 24px) !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-width: 0;
  }
  .oca-booking__shell, .oca-booking__main, .oca-booking__panel, .oca-booking__layout {
    min-width: 0;
    max-width: 100%;
  }
  .oca-booking__hero { padding: 22px 18px; }
  .oca-booking__main { padding: 20px 15px; }
  .oca-booking__dates { grid-template-columns: repeat(7, minmax(0,1fr)); }
  .oca-booking__date { min-width:0; }
}

/* v0.1.3: protect OC title typography against WPBakery / theme heading overrides.
   Reuse site-loaded TT Commons Pro; do not bundle or expose font assets. */
.oca-booking.oca-booking h2,
.oca-booking.oca-booking h3 {
  font-family: 'TT Commons Pro', 'TT Commons', 'Mulish', Arial, sans-serif !important;
  font-style: normal !important;
  font-weight: 700 !important;
  font-stretch: normal !important;
  letter-spacing: -0.015em !important;
  text-transform: none !important;
  text-decoration: none !important;
  text-indent: 0 !important;
  opacity: 1 !important;
  line-height: 1.12 !important;
}
.oca-booking.oca-booking .oca-booking__hero h2 {
  color: #FFFFFF !important;
  font-size: clamp(30px, 3.7vw, 46px) !important;
  margin: 7px 0 !important;
}
.oca-booking.oca-booking .oca-booking__panel h3 {
  color: #1D1D1B !important;
  font-size: 28px !important;
}
.oca-booking.oca-booking .oca-booking__aside h3 {
  color: #1D1D1B !important;
  font-size: 23px !important;
}
.oca-booking.oca-booking .oca-booking__success h3 {
  color: #1D1D1B !important;
}
@media(max-width:720px) {
  .oca-booking.oca-booking .oca-booking__aside h3 { font-size:19px !important; }
}

/* v0.1.4: consistent zone controls, selected-date and WordPress theme resets */
.oca-booking.oca-booking .oca-booking__controls{
 display:grid !important;
 grid-template-columns:minmax(0,1fr) minmax(220px, min(35%, 320px)) !important;
 align-items:center !important;
 gap:16px !important;
 width:100% !important;
}
.oca-booking.oca-booking .oca-booking__controls .oca-booking__muted{
 display:block !important;
 margin:0 !important;
 padding:0 !important;
 line-height:1.4 !important;
 white-space:normal !important;
}
.oca-booking.oca-booking select.oca-booking__zone{
 display:block !important;
 box-sizing:border-box !important;
 width:100% !important;
 min-width:0 !important;
 max-width:none !important;
 height:46px !important;
 padding:10px 14px !important;
 border-radius:10px !important;
 background-color:#fff !important;
 color:#1D1D1B !important;
}
.oca-booking.oca-booking button.oca-booking__date[aria-pressed="true"]{
 background-color:#1D1D1B !important;
 color:#fff !important;
 border-color:#1D1D1B !important;
 box-shadow:inset 0 0 0 2px #F09E04 !important;
}
.oca-booking.oca-booking button.oca-booking__date[aria-pressed="true"] strong,
.oca-booking.oca-booking button.oca-booking__date[aria-pressed="true"] small{color:#fff !important;}
.oca-booking.oca-booking button.oca-booking__date[aria-pressed="false"]{
 background-color:#f8f7f4 !important;
 color:#1D1D1B !important;
 box-shadow:none !important;
}
.oca-booking.oca-booking button.oca-booking__date[aria-pressed="false"] strong{color:#1D1D1B !important;}
@media(max-width:720px){
 .oca-booking.oca-booking .oca-booking__controls{
   grid-template-columns:minmax(0,1fr) !important;
   gap:8px !important;
 }
}

/* v0.1.5 — stable timezone inset from initial paint and every re-render. */
.oca-booking.oca-booking select.oca-booking__zone,
.oca-booking.oca-booking .oca-booking__controls select[data-tz] {
  padding-left:18px !important;
  padding-inline-start:18px !important;
  text-indent:0 !important;
  margin-left:0 !important;
  box-sizing:border-box !important;
}
/* External API consent controls (v0.2). */
.oca-booking .oca-booking__consent{display:grid;gap:12px;margin:20px 0;font-size:14px;line-height:1.5}
.oca-booking .oca-booking__consent label{display:flex;align-items:flex-start;flex-wrap:wrap;gap:7px}
.oca-booking .oca-booking__consent input[type=checkbox]{width:17px;height:17px;flex:none;margin:2px 2px 0 0;accent-color:#F09E04}
.oca-booking .oca-booking__honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}

/* v0.2.1 calendar and submission feedback */
.oca-booking .oca-booking__calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 10px}
.oca-booking .oca-booking__calendar-nav strong{font-size:13px;text-align:center}
.oca-booking .oca-booking__calendar-nav button{border:1px solid #ddd;background:#fff;color:#1D1D1B;border-radius:8px;padding:7px 15px;cursor:pointer}
.oca-booking .oca-booking__calendar-nav button:disabled{opacity:.3;cursor:default}
.oca-booking .oca-booking__month-divider{grid-column:1/-1;color:#3E80E9;font-size:12px;font-weight:700;border-bottom:1px solid #ddd;padding:8px 0 4px}
.oca-booking.oca-booking button.oca-booking__date:disabled,.oca-booking.oca-booking button.oca-booking__date[aria-disabled="true"]{background:#f1f1f1!important;color:#aaa!important;border-color:#eee!important;opacity:.48!important;cursor:not-allowed!important;box-shadow:none!important}
.oca-booking.oca-booking button.oca-booking__date:disabled strong,.oca-booking.oca-booking button.oca-booking__date:disabled small{color:#aaa!important}
.oca-booking__processing{display:flex;align-items:center;gap:12px;padding:14px;background:#ECE8E1;border-radius:10px;font-size:14px;margin:16px 0}
.oca-booking__spinner{display:inline-block;flex:none;width:19px;height:19px;border:2px solid #ddd;border-top-color:#F09E04;border-radius:50%;animation:oca-booking-spin .8s linear infinite}
@keyframes oca-booking-spin{to{transform:rotate(360deg)}}

/* v0.2.2: Compass-inspired compact booking layout; all changes scoped to this plugin. */
.oca-booking.oca-booking .oca-booking__hero { padding: 15px 24px 13px !important; }
.oca-booking.oca-booking .oca-booking__hero h2 { font-size:clamp(24px,2.3vw,34px) !important; line-height:1.08 !important; margin:2px 0 5px !important; max-width:none; }
.oca-booking.oca-booking .oca-booking__hero p { font-size:13px; line-height:1.38; margin:3px 0 8px; max-width:920px; }
.oca-booking.oca-booking .oca-booking__tags { gap:12px; font-size:11px; line-height:1.3; }
.oca-booking.oca-booking .oca-booking__lang {padding:3px 8px;font-size:12px;}
.oca-booking.oca-booking .oca-booking__main { padding:15px 22px 18px !important; }
.oca-booking.oca-booking .oca-booking__steps { margin-bottom:13px; gap:9px; }
.oca-booking.oca-booking .oca-booking__step { padding-bottom:7px; font-size:11px; border-bottom-width:2px; }
.oca-booking.oca-booking .oca-booking__layout {display:flex; flex-direction:column; gap:12px;}
.oca-booking.oca-booking .oca-booking__panel { min-width:0; }
.oca-booking.oca-booking .oca-booking__panel h3 { font-size:23px !important; margin:0 0 11px; }
.oca-booking.oca-booking .oca-booking__split { display:grid; grid-template-columns:minmax(250px,.9fr) minmax(320px,1.1fr); gap:25px; align-items:start; }
.oca-booking.oca-booking .oca-booking__calendar-column,.oca-booking.oca-booking .oca-booking__slots-column { min-width:0; }
.oca-booking.oca-booking .oca-booking__controls { grid-template-columns:minmax(0,1fr) !important; gap:4px !important; margin:0 0 9px; }
.oca-booking.oca-booking .oca-booking__controls .oca-booking__muted {font-size:12px;}
.oca-booking.oca-booking select.oca-booking__zone {height:39px !important; padding:7px 14px 7px 18px !important; font-size:12px;}
.oca-booking.oca-booking .oca-booking__calendar-nav {margin:5px 0 5px;gap:5px;}
.oca-booking.oca-booking .oca-booking__calendar-nav button {padding:4px 10px;min-height:29px;}
.oca-booking.oca-booking .oca-booking__calendar-nav strong {font-size:12px;}
.oca-booking.oca-booking .oca-booking__dates {gap:4px; margin:5px 0 0;}
.oca-booking.oca-booking .oca-booking__date {border-radius:8px; padding:5px 1px; min-height:49px;}
.oca-booking.oca-booking .oca-booking__date small {font-size:9px;margin-bottom:2px;}
.oca-booking.oca-booking .oca-booking__date strong {font-size:15px;}
.oca-booking.oca-booking .oca-booking__month-divider {font-size:10px; padding:3px 0;}
.oca-booking.oca-booking .oca-booking__selected-day {display:block; font-size:14px; margin:0 0 4px;}
.oca-booking.oca-booking .oca-booking__slots-column>.oca-booking__muted {margin-top:3px !important;font-size:11px;}
.oca-booking.oca-booking .oca-booking__times {grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:10px 0 9px;}
.oca-booking.oca-booking .oca-booking__time {padding:7px 3px; min-height:35px; font-size:12px; font-weight:600;border-radius:8px;}
.oca-booking.oca-booking .oca-booking__actions {margin-top:8px;}
.oca-booking.oca-booking .oca-booking__btn {min-height:38px;padding:9px 16px;font-size:13px;}
.oca-booking.oca-booking .oca-booking__aside {border-top:1px solid #e6e2dc;background:#f8f7f4;border-radius:10px;padding:9px 13px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;}
.oca-booking.oca-booking .oca-booking__aside h3 {font-size:15px !important;margin:0;flex:0 1 auto;}
.oca-booking.oca-booking .oca-booking__aside p {margin:0;font-size:11px;line-height:1.4;flex:1 1 220px;}
.oca-booking.oca-booking .oca-booking__aside p:last-child {display:none;}
.oca-booking.oca-booking .oca-booking__pill {margin-bottom:8px;}
@media(max-width:900px){
 .oca-booking.oca-booking .oca-booking__split{grid-template-columns:minmax(0,1fr);gap:16px;}
 .oca-booking.oca-booking .oca-booking__times{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media(max-width:720px){
 .oca-booking.oca-booking .oca-booking__hero{padding:12px 15px !important;}
 .oca-booking.oca-booking .oca-booking__hero h2{font-size:25px !important;}
 .oca-booking.oca-booking .oca-booking__hero p{font-size:12px;line-height:1.35;}
 .oca-booking.oca-booking .oca-booking__main{padding:12px 13px 16px !important;}
 .oca-booking.oca-booking .oca-booking__panel h3{font-size:21px !important;}
 .oca-booking.oca-booking .oca-booking__dates{gap:3px;}
 .oca-booking.oca-booking .oca-booking__date{min-height:47px;}
 .oca-booking.oca-booking .oca-booking__times{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;}
 .oca-booking.oca-booking .oca-booking__aside{display:block;padding:10px 12px;}
 .oca-booking.oca-booking .oca-booking__aside h3{font-size:15px !important;}
}
@media(max-width:400px){.oca-booking.oca-booking .oca-booking__times{grid-template-columns:repeat(2,minmax(0,1fr));}}


/* v0.2.3: remove duplicate hero metadata line and move booking info panel directly below header across breakpoints. */
.oca-booking.oca-booking .oca-booking__tags{display:none !important;}
.oca-booking.oca-booking .oca-booking__aside--top{
  border:1px solid #e6e2dc;
  background:#f8f7f4;
  border-radius:12px;
  padding:10px 13px;
  display:flex;
  gap:12px;
  align-items:baseline;
  flex-wrap:wrap;
  margin:0 0 12px 0;
}
.oca-booking.oca-booking .oca-booking__aside--top h3{font-size:15px !important;margin:0;flex:0 1 auto;}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-meta{font-size:11px;line-height:1.35;color:#68645e;margin:0;flex:0 1 auto;}
.oca-booking.oca-booking .oca-booking__aside--top p{margin:0;font-size:11px;line-height:1.4;flex:1 1 220px;}
.oca-booking.oca-booking .oca-booking__aside--top p:last-child{display:none;}
@media(max-width:720px){
  .oca-booking.oca-booking .oca-booking__aside--top{display:block;padding:10px 12px;}
  .oca-booking.oca-booking .oca-booking__aside--top h3{font-size:15px !important;margin-bottom:3px;}
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-meta{display:block;margin:0 0 5px;}
  .oca-booking.oca-booking .oca-booking__aside--top p{display:block;font-size:11px;}
}


/* v0.2.4 booking type summary panel refinement */
.oca-booking.oca-booking .oca-booking__aside--top{
  display:grid !important;
  grid-template-columns:minmax(320px, 0.95fr) minmax(280px, 1.35fr);
  gap:0 !important;
  align-items:center;
  padding:14px 18px !important;
  border:1px solid #e6e2dc !important;
  border-radius:18px !important;
  background:#faf9f6 !important;
  margin:0 0 14px 0 !important;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-lead{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  padding-right:18px;
  border-right:1px solid #e3dfd8;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-icon{
  width:44px;
  height:44px;
  min-width:44px;
  border-radius:999px;
  background:#efe7d7;
  color:#1D1D1B;
  display:flex;
  align-items:center;
  justify-content:center;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-icon svg{width:22px;height:22px;display:block;}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-main{min-width:0;}
.oca-booking.oca-booking .oca-booking__aside--top h3{
  font-family:'TT Commons Pro',Mulish,Arial,sans-serif;
  font-size:21px !important;
  line-height:1.08;
  margin:0 0 4px 0 !important;
  color:#1D1D1B;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-meta{
  display:block;
  margin:0 !important;
  font-size:11px;
  line-height:1.45;
  color:#726d66;
  letter-spacing:.01em;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy{
  min-width:0;
  padding-left:18px;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy p{
  margin:0 !important;
  font-size:13px !important;
  line-height:1.5 !important;
  color:#6b665f;
}
.oca-booking.oca-booking .oca-booking__aside--top > p:last-child{display:none !important;}
.oca-booking.oca-booking .oca-booking__aside--top > p:not(.oca-booking__aside-meta){display:none !important;}
@media(max-width:900px){
  .oca-booking.oca-booking .oca-booking__aside--top{
    grid-template-columns:1fr;
    padding:12px 14px !important;
  }
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-lead{
    padding-right:0;
    padding-bottom:10px;
    border-right:0;
    border-bottom:1px solid #e3dfd8;
  }
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy{
    padding-left:0;
    padding-top:10px;
  }
}
@media(max-width:720px){
  .oca-booking.oca-booking .oca-booking__aside--top{
    display:block !important;
    padding:12px 14px !important;
    border-radius:14px !important;
  }
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-lead{
    border-bottom:0;
    padding:0;
    gap:12px;
    align-items:flex-start;
  }
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-icon{
    width:40px;height:40px;min-width:40px;
  }
  .oca-booking.oca-booking .oca-booking__aside--top h3{font-size:18px !important;margin-bottom:3px !important;}
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-meta{font-size:11px;}
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy{padding:8px 0 0 0;}
  .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy p{font-size:12px !important;line-height:1.45 !important;}
}

/* v0.2.5: Override legacy broad :last-child paragraph hiding in the booking summary. */
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-main > p.oca-booking__aside-meta,
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy > p {
 display:block !important;
 visibility:visible !important;
 opacity:1 !important;
 color:#6b665f !important;
}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-meta {font-size:12px !important;}
.oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy > p {font-size:13px !important;line-height:1.5 !important;}
@media(max-width:720px){
 .oca-booking.oca-booking .oca-booking__aside--top .oca-booking__aside-copy > p {font-size:12px !important;}
}

/* Eligibility / contact state — inherits the existing Oxford Comma palette */
.oca-booking__eligibility{max-width:660px;margin:32px auto;padding:clamp(24px,5vw,52px);border-radius:22px;background:#fff;text-align:center;box-shadow:0 10px 38px rgba(29,29,27,.08)}
.oca-booking__eligibility-icon{font-size:32px;color:#3e80e9;margin-bottom:18px}
.oca-booking__eligibility h3{font-size:clamp(26px,3vw,39px);line-height:1.14;margin:0 0 20px;color:#1d1d1b}
.oca-booking__eligibility-body{line-height:1.7;white-space:normal;margin:0 0 28px;color:#333}
.oca-booking__eligibility .oca-booking__btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;max-width:100%;overflow-wrap:anywhere}
.oca-booking__eligibility .oca-booking__muted{margin:16px 0 0;overflow-wrap:anywhere}
@media(max-width:600px){.oca-booking__eligibility{margin:16px 0;padding:28px 18px}}

/* Optional post-confirmation action loaded from Compass Booking Rules. */
.oca-booking__post-action{max-width:620px;margin:24px auto 8px;padding:23px;text-align:left;border:1px solid #e6dfd2;border-radius:16px;background:#f8f6f1;box-shadow:0 7px 22px rgba(29,29,27,.04)}
.oca-booking__post-action-heading{display:flex;align-items:center;gap:13px;margin-bottom:13px}
.oca-booking__post-action-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;border-radius:12px;background:#ece8e1;color:#f09e04;font-size:29px;font-weight:bold}
.oca-booking__post-action h4{margin:0 0 3px;font-size:clamp(19px,2vw,24px);line-height:1.2;font-weight:800;color:#1d1d1b}
.oca-booking__post-action p{margin:12px 0 17px;font-size:14px;line-height:1.65;color:#46413c}
.oca-booking__post-action .oca-booking__post-action-button{display:inline-block;text-decoration:none;text-align:center;max-width:100%;white-space:normal}
.oca-booking__post-action .oca-booking__post-action-note{font-size:12px;color:#69645d;margin:13px 0 0}
@media(max-width:600px){.oca-booking__post-action{padding:19px 16px}.oca-booking__post-action .oca-booking__post-action-button{display:block;width:100%}}

/* v0.2.11 — OC native decal treatment and type system for the confirmation next step.
   Background art is deliberately clipped inside the card, never stacked above content.
   Decal is positioned so its centre sits behind the first letter of the heading. */
.oca-booking.oca-booking .oca-booking__post-action{
  position:relative;isolation:isolate;overflow:hidden;
  max-width:620px;padding:clamp(22px,4vw,30px);background:#f8f6f1;
  text-align:left;
}
.oca-booking.oca-booking .oca-booking__post-action-decal{
  pointer-events:none;position:absolute;z-index:0;
  width:210px;height:200px;top:-24px;left:-18px;
  background:url('./oc-decal.svg') center/contain no-repeat;
  transform:rotate(-13deg);opacity:.18;
}
.oca-booking.oca-booking .oca-booking__post-action-content{position:relative;z-index:1;}
.oca-booking.oca-booking .oca-booking__post-action-heading{display:block;margin-bottom:15px;}
.oca-booking.oca-booking .oca-booking__post-action-text{position:relative;}
.oca-booking.oca-booking .oca-booking__post-action h4{
  font-family:'TT Commons Pro','TT Commons',Mulish,Arial,sans-serif !important;
  font-weight:700 !important;font-style:normal !important;
  font-size:clamp(23px,3vw,31px) !important;line-height:1.09 !important;
  text-transform:none !important;letter-spacing:-.015em !important;
  margin:0 0 5px !important;color:#1d1d1b !important;
}
.oca-booking.oca-booking .oca-booking__post-action p,
.oca-booking.oca-booking .oca-booking__post-action .oca-booking__muted,
.oca-booking.oca-booking .oca-booking__post-action-button{
  font-family:Mulish,Arial,sans-serif !important;
  text-transform:none !important;letter-spacing:normal !important;
}
.oca-booking.oca-booking .oca-booking__post-action .oca-booking__post-action-button{
  display:table;margin:20px auto 0;max-width:100%;white-space:normal;
  text-align:center;text-decoration:none;
}
.oca-booking.oca-booking .oca-booking__post-action .oca-booking__post-action-note{
  text-align:center !important;margin:14px auto 0 !important;
}
@media(max-width:600px){
  .oca-booking.oca-booking .oca-booking__post-action-decal{width:170px;height:160px;top:-18px;left:-20px;opacity:.14;}
  .oca-booking.oca-booking .oca-booking__post-action .oca-booking__post-action-button{display:block;width:100%;}
}
/* Release B — discreet Website Enquiries, isolated from Booking state */
.oca-booking .oca-booking__enquiry-invite{margin:26px 0 0;border:1px solid #d9e6f6;border-radius:16px;background:linear-gradient(115deg,#f6f9ff,#fff);padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.oca-booking.oca-booking .oca-booking__enquiry-invite h4{font-family:'TT Commons Pro','TT Commons',Mulish,Arial,sans-serif !important;font-weight:700 !important;font-style:normal !important;font-size:clamp(21px,2vw,25px) !important;line-height:1.15 !important;letter-spacing:-.015em !important;text-transform:none !important;color:#1d1d1b !important;margin:0 0 8px !important}
.oca-booking .oca-booking__enquiry-invite p{font-size:14px;line-height:1.6;max-width:530px;margin:0;color:#4b5563}
.oca-booking .oca-booking__enquiry-overlay{position:fixed;inset:0;z-index:2147483000;background:rgba(18,25,38,.56);display:flex;justify-content:center;align-items:center;padding:24px 12px;overflow-y:auto}
.oca-booking .oca-booking__enquiry-modal{position:relative;background:#fff;border-radius:22px;box-shadow:0 24px 90px rgba(0,0,0,.22);width:min(100%,590px);max-height:calc(100dvh - 40px);overflow-y:auto;padding:34px 36px;color:#1d1d1b}
.oca-booking .oca-booking__enquiry-modal h2{font-size:clamp(26px,4vw,36px);font-weight:750;line-height:1.12;color:#1d1d1b;margin:10px 30px 12px 0}
.oca-booking .oca-booking__enquiry-kicker{font-size:11px;letter-spacing:.15em;color:#3e80e9;font-weight:750}
.oca-booking .oca-booking__enquiry-x{position:absolute;right:17px;top:12px;background:transparent;border:0;color:#1d1d1b;font-size:32px;cursor:pointer}
.oca-booking .oca-booking__enquiry-form{display:grid;gap:16px;margin-top:24px}
.oca-booking .oca-booking__enquiry-form>label:not(.oca-booking__enquiry-check){display:grid;gap:6px;font-size:14px;font-weight:650}
.oca-booking .oca-booking__enquiry-form input[type=email],.oca-booking .oca-booking__enquiry-form input[name=name],.oca-booking .oca-booking__enquiry-form textarea{width:100%;box-sizing:border-box;background:#fff;color:#1d1d1b;border:1px solid #ced5de;border-radius:10px;padding:13px 14px;font:inherit;font-weight:400;line-height:1.5}
.oca-booking .oca-booking__enquiry-form :is(input,textarea):focus-visible{outline:2px solid #3e80e9;outline-offset:2px;border-color:#3e80e9}
.oca-booking .oca-booking__enquiry-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5}
.oca-booking .oca-booking__enquiry-check input{margin-top:4px;flex-shrink:0;accent-color:#3e80e9}
.oca-booking .oca-booking__enquiry-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px}
.oca-booking .oca-booking__enquiry-success{padding:17px;border-radius:12px;background:#f1f7fd;border:1px solid #c5dff5;line-height:1.65;margin:22px 0}
@media(max-width:640px){.oca-booking .oca-booking__enquiry-modal{padding:28px 20px;max-height:calc(100dvh - 20px)}.oca-booking .oca-booking__enquiry-overlay{padding:10px}.oca-booking .oca-booking__enquiry-invite{padding:20px}.oca-booking .oca-booking__enquiry-invite .oca-booking__btn{width:100%;text-align:center;justify-content:center}}

/* v0.2.14 — premium enquiry CTA, revealed when its panel enters the viewport. */
.oca-booking.oca-booking .oca-booking__enquiry-invite .oca-booking__enquiry-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:17px;min-height:58px;min-width:205px;
  padding:16px 24px;border-radius:14px;border:1px solid #276cca;
  background:linear-gradient(125deg,#3e80e9 0%,#3475d8 100%);color:#fff;
  font-family:Mulish,Arial,sans-serif;font-size:15px;font-weight:750;letter-spacing:-.01em;
  box-shadow:0 9px 20px rgba(62,128,233,.17),inset 0 1px 0 rgba(255,255,255,.2);
  cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,background .24s ease,border-color .24s ease;
}
.oca-booking.oca-booking .oca-booking__enquiry-cta:hover{
  background:linear-gradient(125deg,#3475d8,#265fba);border-color:#265fba;
  transform:translateY(-3px);box-shadow:0 14px 27px rgba(62,128,233,.28),inset 0 1px 0 rgba(255,255,255,.2);
}
.oca-booking.oca-booking .oca-booking__enquiry-cta:active{transform:translateY(-1px);}
.oca-booking.oca-booking .oca-booking__enquiry-cta:focus-visible{outline:3px solid #f09e04;outline-offset:4px;}
.oca-booking .oca-booking__enquiry-cta-arrow{font-size:20px;line-height:1;transition:transform .24s ease;}
.oca-booking .oca-booking__enquiry-cta:hover .oca-booking__enquiry-cta-arrow{transform:translateX(5px);}
.oca-booking .oca-booking__enquiry-invite--pending .oca-booking__enquiry-cta{opacity:0;transform:translateY(18px) scale(.96);}
.oca-booking .oca-booking__enquiry-invite--revealed .oca-booking__enquiry-cta{animation:oca-enquiry-cta-reveal .72s cubic-bezier(.2,.85,.22,1) both;}
@keyframes oca-enquiry-cta-reveal{0%{opacity:0;transform:translateY(18px) scale(.96);box-shadow:0 0 0 rgba(62,128,233,0);}65%{opacity:1;transform:translateY(-2px) scale(1.015);}100%{opacity:1;transform:translateY(0) scale(1);}}
@media(max-width:640px){.oca-booking.oca-booking .oca-booking__enquiry-invite .oca-booking__enquiry-cta{width:100%;min-height:58px;}}
@media(prefers-reduced-motion:reduce){
  .oca-booking .oca-booking__enquiry-invite--pending .oca-booking__enquiry-cta{opacity:1;transform:none;}
  .oca-booking .oca-booking__enquiry-invite--revealed .oca-booking__enquiry-cta{animation:none;}
  .oca-booking.oca-booking .oca-booking__enquiry-cta,.oca-booking .oca-booking__enquiry-cta-arrow{transition:none;}
}
