/* These controls must not inherit the host page's generic button skin.
   !important is intentional: San Giuseppe wraps the widget in an ID-scoped rule. */
.adm-layout-open-day button {
  appearance:none!important; -webkit-appearance:none!important; display:block!important; margin:0!important;
  width:auto!important; height:auto!important; min-width:0!important; min-height:0!important; padding:0!important;
  border:0!important; border-radius:0!important; background:transparent!important; color:inherit!important;
  font:inherit!important; letter-spacing:normal!important; text-transform:none!important; text-decoration:none!important;
  text-shadow:none!important; box-shadow:none!important; transform:none!important;
  transition:background-color .15s ease,border-color .15s ease!important;
}

/* Open Day palette and controls stay scoped to this layout. */
.adm-odm.adm-layout-open-day {
  --adm-primary:#164b7a!important; --adm-accent:#1261b4!important;
  --adm-text:#081b39!important; --adm-muted:#596477!important;
  --adm-border:#dce1e8!important; --adm-card-bg:#fff!important;
  --adm-panel-bg:#f2f7fc!important; --adm-front-bg:#fff!important;
  --adm-button-bg:#ffc400!important; --adm-button-text:#081b39!important;
  --adm-button-hover-bg:#f0b800!important; --adm-button-hover-text:#081b39!important;
  color:var(--adm-text)!important; background:#fff!important; border:1px solid #e4e9ef!important;
  font-size:16px!important; line-height:1.5!important; isolation:isolate!important;
}
.adm-layout-open-day *, .adm-layout-open-day *::before, .adm-layout-open-day *::after { box-sizing:border-box!important; }
.adm-odm.adm-layout-open-day [hidden] { display:none!important; }
.adm-layout-open-day button { font-family:inherit!important; letter-spacing:normal!important; text-transform:none!important; }
.adm-layout-open-day button:focus-visible, .adm-layout-open-day a:focus-visible,
.adm-layout-open-day input:focus-visible, .adm-layout-open-day select:focus-visible {
  outline:3px solid #1261b4!important; outline-offset:4px!important;
}
.adm-layout-open-day .adm-od-hero {
  padding:40px clamp(20px,6vw,64px) 28px!important; position:relative!important; overflow:hidden!important;
  background:#edf5ff!important; color:#081b39!important; isolation:isolate!important;
}
.adm-layout-open-day .adm-od-hero::before, .adm-layout-open-day .adm-od-hero::after {
  content:""!important; position:absolute!important; width:700px!important; height:700px!important; border:1px solid currentColor!important;
  opacity:.09!important; border-radius:50%!important; pointer-events:none!important; z-index:-1!important;
}
.adm-layout-open-day .adm-od-hero::before { left:-440px!important; top:-420px!important; }
.adm-layout-open-day .adm-od-hero::after { right:-430px!important; top:-560px!important; }
.adm-layout-open-day.adm-openday-dark .adm-od-hero { background:linear-gradient(115deg,#123a61,#154f87)!important; color:#fff!important; }
.adm-layout-open-day .adm-od-eyebrow { margin:0 0 10px!important; color:#7b5900!important; font-weight:800!important; font-size:14px!important; letter-spacing:.16em!important; text-transform:uppercase!important; }
.adm-layout-open-day.adm-openday-dark .adm-od-eyebrow { color:#ffd144!important; }
.adm-layout-open-day .adm-od-hero h2 { color:inherit!important; font-size:clamp(30px,4.4vw,58px)!important; line-height:1.07!important; letter-spacing:-.04em!important; font-weight:800!important; margin:0!important; max-width:850px!important; }
.adm-layout-open-day .adm-od-subtitle { color:inherit!important; opacity:.85!important; margin:12px 0 0!important; font-size:clamp(17px,2.3vw,24px)!important; line-height:1.4!important; }
.adm-layout-open-day .adm-od-steps { display:flex!important; align-items:center!important; gap:24px!important; padding:0!important; margin:28px 0 0!important; list-style:none!important; font-size:17px!important; }
.adm-layout-open-day .adm-od-steps li { display:flex!important; align-items:center!important; gap:12px!important; color:inherit!important; opacity:.6!important; margin:0!important; }
.adm-layout-open-day .adm-od-steps li + li::before { content:""!important; display:block!important; width:clamp(24px,8vw,110px)!important; height:2px!important; background:currentColor!important; margin-right:12px!important; opacity:.5!important; }
.adm-layout-open-day .adm-od-steps li.is-current { opacity:1!important; font-weight:750!important; }
.adm-layout-open-day .adm-od-steps li > span { display:grid!important; place-items:center!important; width:40px!important; height:40px!important; flex:0 0 40px!important; border:2px solid currentColor!important; border-radius:50%!important; font-size:21px!important; font-weight:750!important; }
.adm-layout-open-day .adm-od-steps li.is-current > span { background:#ffc400!important; color:#081b39!important; border-color:#ffc400!important; }
.adm-layout-open-day .adm-od-content, .adm-layout-open-day .adm-od-details { padding:28px clamp(20px,6vw,64px)!important; }
.adm-layout-open-day h3 { font-size:clamp(25px,3vw,34px)!important; letter-spacing:-.035em!important; color:#081b39!important; line-height:1.2!important; font-weight:800!important; margin:0 0 20px!important; }
.adm-layout-open-day .adm-od-section-head { display:flex!important; align-items:center!important; justify-content:space-between!important; gap:10px!important; }
.adm-layout-open-day .adm-od-date-nav { display:flex!important; gap:8px!important; margin-bottom:18px!important; }
.adm-layout-open-day .adm-od-date-nav button { border:1px solid #dce1e8!important; color:#164b7a!important; background:#fff!important; width:38px!important; height:38px!important; border-radius:50%!important; padding:0!important; cursor:pointer!important; font-size:22px!important; }
.adm-layout-open-day .adm-od-date-nav button:disabled { opacity:.35!important; cursor:default!important; }
.adm-layout-open-day .adm-od-dates { display:flex!important; gap:14px!important; overflow-x:auto!important; scroll-snap-type:x proximity!important; padding:4px 4px 10px!important; margin:0 -4px!important; scrollbar-width:thin!important; scrollbar-color:#b1bfd0 transparent!important; }
.adm-layout-open-day .adm-od-date { display:flex!important; flex-direction:column!important; align-items:center!important; justify-content:center!important; gap:0!important; min-height:190px!important; position:relative!important; flex:1 0 calc((100% - 42px)/4)!important; min-width:140px!important; max-width:50%!important; scroll-snap-align:start!important; border:2px solid #e0e4ea!important; border-radius:14px!important; background:#fff!important; color:#081b39!important; padding:28px 15px 18px!important; text-align:center!important; cursor:pointer!important; line-height:1.1!important; box-shadow:0 3px 8px rgba(15,40,65,.025)!important; }
.adm-layout-open-day .adm-od-date:hover { border-color:#1261b4!important; }
.adm-layout-open-day .adm-od-date[aria-pressed="true"] { border-color:#1261b4!important; background:#fff!important; box-shadow:0 0 0 1px #1261b4!important; }
.adm-layout-open-day .adm-od-weekday, .adm-layout-open-day .adm-od-month { display:block!important; text-transform:uppercase!important; font-size:16px!important; font-weight:800!important; }
.adm-layout-open-day .adm-od-date > strong { display:block!important; font-size:clamp(44px,5.6vw,64px)!important; font-weight:800!important; letter-spacing:-.035em!important; margin:3px 0!important; }
.adm-layout-open-day .adm-od-year { display:block!important; margin-top:7px!important; color:#596477!important; font-size:14px!important; }
.adm-layout-open-day .adm-od-date small { display:block!important; font-size:11px!important; margin-top:8px!important; color:#596477!important; }
.adm-layout-open-day .adm-od-check { display:block!important; width:25px!important; height:25px!important; border:2px solid #a7afbd!important; border-radius:50%!important; flex:0 0 25px!important; }
.adm-layout-open-day .adm-od-date > .adm-od-check { position:absolute!important; top:12px!important; right:12px!important; width:23px!important; height:23px!important; }
.adm-layout-open-day [aria-pressed="true"] > .adm-od-check { border-color:#1261b4!important; background:#1261b4!important; position:relative!important; }
.adm-layout-open-day .adm-od-date[aria-pressed="true"] > .adm-od-check { position:absolute!important; }
.adm-layout-open-day [aria-pressed="true"] > .adm-od-check::after { content:""!important; position:absolute!important; width:7px!important; height:12px!important; border:solid #fff!important; border-width:0 3px 3px 0!important; transform:rotate(45deg)!important; top:3px!important; left:7px!important; }
.adm-layout-open-day .adm-od-scroll-hint { color:#596477!important; margin:4px 0 0!important; font-size:14px!important; }
.adm-layout-open-day .adm-od-scroll-hint span { margin-left:8px!important; }
.adm-layout-open-day .adm-od-times { margin-top:30px!important; }
.adm-layout-open-day .adm-od-times h3 { margin-bottom:8px!important; }
.adm-layout-open-day .adm-od-date-caption { color:#596477!important; font-size:18px!important; margin:0 0 18px!important; }
.adm-layout-open-day .adm-od-period + .adm-od-period { border-top:1px solid #dce1e8!important; margin-top:22px!important; padding-top:18px!important; }
.adm-layout-open-day .adm-od-period h4 { color:#081b39!important; font-size:20px!important; font-weight:800!important; margin:0 0 12px!important; display:flex!important; gap:10px!important; align-items:center!important; }
.adm-layout-open-day .adm-od-period h4 > span { color:#b77f00!important; font-size:30px!important; line-height:1!important; }
.adm-layout-open-day .adm-od-slots { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:12px 18px!important; }
.adm-layout-open-day .adm-od-slot-wrap { min-width:0!important; display:flex!important; flex-direction:column!important; }
.adm-layout-open-day .adm-od-slot-wrap:only-child { grid-column:1 / -1!important; }
.adm-layout-open-day .adm-od-slot { display:flex!important; flex:1!important; align-items:center!important; justify-content:space-between!important; gap:14px!important; width:100%!important; border:2px solid #e0e4ea!important; border-radius:10px!important; color:#081b39!important; background:#fff!important; text-align:left!important; padding:16px 18px!important; cursor:pointer!important; line-height:1.3!important; box-shadow:0 2px 6px rgba(15,40,65,.025)!important; }
.adm-layout-open-day .adm-od-slot:hover:not(:disabled) { border-color:#1261b4!important; }
.adm-layout-open-day .adm-od-slot[aria-pressed="true"] { border-color:#1261b4!important; background:#edf6ff!important; box-shadow:0 0 0 1px #1261b4!important; }
.adm-layout-open-day .adm-od-slot:disabled { color:#667085!important; background:#f1f3f6!important; cursor:not-allowed!important; box-shadow:none!important; }
.adm-layout-open-day .adm-od-slot:disabled .adm-od-check { border-color:#d0d5de!important; }
.adm-layout-open-day .adm-od-slot-content { min-width:0!important; }
.adm-layout-open-day .adm-od-slot strong { display:block!important; font-size:clamp(18px,2.4vw,25px)!important; letter-spacing:-.035em!important; white-space:normal!important; }
.adm-layout-open-day .adm-od-slot-title, .adm-layout-open-day .adm-od-slot small { display:block!important; font-size:14px!important; margin-top:3px!important; overflow-wrap:anywhere!important; }
.adm-layout-open-day .adm-od-slot-title { color:#596477!important; }
.adm-layout-open-day .adm-od-slot-wrap .adm-spots, .adm-layout-open-day .adm-od-slot-wrap .adm-price { margin:5px 0 0!important; font-size:13px!important; color:#596477!important; }
.adm-layout-open-day .adm-od-location { display:flex!important; align-items:center!important; gap:16px!important; background:#f2f7fc!important; border-radius:16px!important; padding:18px!important; margin-top:28px!important; }
.adm-layout-open-day .adm-od-location-icon { width:52px!important; height:52px!important; flex:0 0 52px!important; display:grid!important; place-items:center!important; color:#123a61!important; background:#e4effa!important; border-radius:50%!important; }
.adm-layout-open-day .adm-od-location > div { flex:1!important; min-width:0!important; }
.adm-layout-open-day .adm-od-location strong { display:block!important; font-size:16px!important; line-height:1.3!important; }
.adm-layout-open-day .adm-od-location p { color:#596477!important; margin:4px 0 0!important; font-size:14px!important; overflow-wrap:anywhere!important; }
.adm-layout-open-day .adm-od-location a { color:#0f59a5!important; font-size:14px!important; font-weight:600!important; text-decoration:underline!important; padding:12px 0 12px 18px!important; border-left:1px solid #dce1e8!important; white-space:nowrap!important; }
.adm-layout-open-day .adm-od-footer { position:sticky!important; bottom:0!important; z-index:2!important; background:#fff!important; border-top:1px solid #e4e9ef!important; box-shadow:0 -8px 22px rgba(15,40,65,.04)!important; padding:16px clamp(20px,6vw,64px) max(14px,env(safe-area-inset-bottom))!important; }
.adm-layout-open-day .adm-od-summary { font-weight:750!important; font-size:18px!important; line-height:1.3!important; margin:0 0 12px!important; }
.adm-layout-open-day .adm-od-continue { display:flex!important; align-items:center!important; justify-content:center!important; gap:20px!important; width:100%!important; min-height:56px!important; padding:14px 20px!important; border:0!important; border-radius:12px!important; background:#ffc400!important; color:#081b39!important; font-size:22px!important; font-weight:800!important; line-height:1.2!important; cursor:pointer!important; }
.adm-layout-open-day .adm-od-continue:hover:not(:disabled) { background:#f0b800!important; }
.adm-layout-open-day .adm-od-continue:disabled { background:#eceef2!important; color:#626d7d!important; cursor:not-allowed!important; }
.adm-layout-open-day .adm-od-next-note { color:#596477!important; font-size:13px!important; text-align:center!important; margin:9px 0 0!important; }
.adm-layout-open-day .adm-od-back { display:inline-flex!important; align-items:center!important; gap:6px!important; min-height:44px!important; padding:10px 0!important; background:transparent!important; color:#0f59a5!important; border:0!important; text-decoration:underline!important; font-size:15px!important; cursor:pointer!important; margin:0 0 18px!important; }
.adm-layout-open-day .adm-form-panel-open-day { margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:#fff!important; }
.adm-layout-open-day .adm-form-panel-open-day > h3 { display:none!important; }
.adm-layout-open-day .adm-selected-session { background:#f2f7fc!important; border-left-color:#1261b4!important; }
.adm-layout-open-day .adm-selected-meta span { background:#e7eff8!important; color:#081b39!important; }
.adm-layout-open-day .adm-form-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
.adm-layout-open-day .adm-interest-sector-field { max-width:none!important; }
.adm-layout-open-day .adm-attendees-count-field small { display:block!important; margin-top:6px!important; font-size:13px!important; font-weight:400!important; line-height:1.4!important; color:#596477!important; }
.adm-layout-open-day .adm-booking-form p { margin:0 0 18px!important; }
.adm-layout-open-day .adm-booking-form input, .adm-layout-open-day .adm-booking-form select { width:100%!important; padding:12px!important; border:1px solid #dce1e8!important; border-radius:12px!important; margin-top:6px!important; background:#fff!important; color:#081b39!important; min-height:46px!important; font:inherit!important; line-height:1.4!important; }
.adm-layout-open-day .adm-booking-form label { color:#081b39!important; }
.adm-layout-open-day .adm-check input[type="checkbox"] { width:18px!important; min-height:18px!important; height:18px!important; padding:0!important; margin:0 6px 0 0!important; vertical-align:middle!important; appearance:auto!important; }
.adm-layout-open-day .adm-booking-form .adm-button[type="submit"] { width:100%!important; min-height:54px!important; border-radius:12px!important; font-size:18px!important; }
.adm-layout-open-day .adm-booking-form input::placeholder { color:#707b8a!important; }
.adm-layout-open-day .adm-od-details h3:focus { outline:none!important; }
/* The two themes also change the card state, not only the heading. */
.adm-odm.adm-layout-open-day.adm-openday-dark .adm-od-date[aria-pressed="true"] {
  background:#194f80!important; border-color:#194f80!important; color:#fff!important; box-shadow:none!important;
}
.adm-odm.adm-layout-open-day.adm-openday-dark .adm-od-date[aria-pressed="true"] .adm-od-year {
  color:#d9e6f3!important;
}
.adm-odm.adm-layout-open-day.adm-openday-dark .adm-od-date[aria-pressed="true"] > .adm-od-check {
  background:#fff!important; border-color:#fff!important;
}
.adm-odm.adm-layout-open-day.adm-openday-dark .adm-od-date[aria-pressed="true"] > .adm-od-check::after {
  border-color:#194f80!important;
}
.adm-odm.adm-layout-open-day.adm-openday-dark .adm-od-slot[aria-pressed="true"] {
  background:#eff7ff!important; border-color:#194f80!important; box-shadow:0 0 0 1px #194f80!important;
}

/* Every shift stays in its date cell; times remain visible on narrow screens. */
.adm-calendar-date-shifts { display:flex!important; flex-direction:column!important; gap:6px!important; min-width:0!important; }
.adm-calendar-date-shifts .adm-calendar-day-cell { width:100%!important; flex:1!important; min-width:0!important; }
.adm-odm.adm-layout-calendar .adm-calendar-date-shifts .adm-calendar-day-time { display:block!important; overflow-wrap:anywhere!important; font-size:11px!important; }
.adm-calendar-date-shifts button:disabled { cursor:not-allowed!important; transform:none!important; }
@media (max-width:640px) {
  .adm-layout-open-day .adm-od-hero { padding:28px 20px 22px!important; }
  .adm-layout-open-day .adm-od-steps { gap:10px!important; font-size:13px!important; margin-top:24px!important; }
  .adm-layout-open-day .adm-od-steps li { gap:8px!important; }
  .adm-layout-open-day .adm-od-steps li > span { width:32px!important; height:32px!important; flex-basis:32px!important; font-size:17px!important; }
  .adm-layout-open-day .adm-od-steps li + li::before { width:24px!important; margin-right:4px!important; }
  .adm-layout-open-day .adm-od-content, .adm-layout-open-day .adm-od-details { padding:24px 20px!important; }
  .adm-layout-open-day .adm-od-dates { gap:10px!important; }
  .adm-layout-open-day .adm-od-date { flex:1 0 124px!important; min-width:124px!important; padding:30px 12px 16px!important; }
  .adm-layout-open-day .adm-od-date:only-child { max-width:100%!important; }
  .adm-layout-open-day .adm-od-date-nav button { width:32px!important; height:32px!important; font-size:18px!important; }
  .adm-layout-open-day .adm-od-slots { gap:10px!important; }
  .adm-layout-open-day .adm-od-slot { padding:12px!important; gap:6px!important; }
  .adm-layout-open-day .adm-od-slot strong { font-size:17px!important; }
  .adm-layout-open-day .adm-od-slot .adm-od-check { width:20px!important; height:20px!important; flex-basis:20px!important; }
  .adm-layout-open-day .adm-od-slot[aria-pressed="true"] > .adm-od-check::after { width:6px!important; height:10px!important; top:2px!important; left:5px!important; }
  .adm-layout-open-day .adm-od-slot-title { font-size:12px!important; }
  .adm-layout-open-day .adm-od-location { flex-wrap:wrap!important; gap:12px!important; padding:16px!important; }
  .adm-layout-open-day .adm-od-location a { width:100%!important; border-left:0!important; border-top:1px solid #dce1e8!important; padding:10px 0 0!important; }
  .adm-layout-open-day .adm-od-footer { padding-left:20px!important; padding-right:20px!important; }
  .adm-layout-open-day .adm-od-summary { font-size:15px!important; }
  .adm-layout-open-day .adm-od-continue { font-size:20px!important; }
  .adm-layout-open-day .adm-form-grid { grid-template-columns:1fr!important; gap:0!important; }
  .adm-odm.adm-layout-calendar .adm-calendar-date-shifts .adm-calendar-day-time { font-size:10px!important; line-height:1.4!important; }
}
@media (max-width:420px) {
  .adm-layout-open-day .adm-od-slots { grid-template-columns:1fr!important; }
  .adm-layout-open-day .adm-od-slot strong { font-size:21px!important; }
  .adm-layout-open-day .adm-od-steps { font-size:12px!important; }
  .adm-layout-open-day .adm-od-steps li + li::before { width:14px!important; margin-right:0!important; }
}
@media (prefers-reduced-motion:reduce) {
  .adm-layout-open-day *, .adm-layout-open-day *::before, .adm-layout-open-day *::after { scroll-behavior:auto!important; transition:none!important; }
}
