/* David's locked regional calendar/packs, embedded in the recovered homepage. */
.regional-shop { grid-column: 1 / -1; min-width: 0; padding: clamp(1rem, 3vw, 3rem); background: #F3EAD8; color: #1F1512; }
.regional-shop:empty { padding: 0; }
.regional-shop__day-pass { display: grid; grid-template-columns: 1fr 1fr; background: #1F1512; color: #F3EAD8; }
.regional-shop__day-copy, .regional-shop__day-controls { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); }
.regional-shop__day-controls { display: grid; align-content: start; gap: 1rem; border-left: 1px solid #F3EAD866; }
.regional-shop h4 { margin: 0; font: 700 clamp(2rem, 3.3vw, 3.25rem)/.95 Teko, 'Arial Narrow', sans-serif; letter-spacing: 0; }
.regional-shop__day-copy h4 { font-size: clamp(2.6rem, 4vw, 4rem); }
.regional-shop__daily-price { margin: .65rem 0 0; font: 700 clamp(2rem, 3vw, 3rem)/1 Teko, 'Arial Narrow', sans-serif; }
.regional-shop__dates, .regional-shop__add { width: 100%; min-height: 48px; padding: .8rem 1rem; border: 0; border-radius: 0; font: 600 .85rem/1.5 'IBM Plex Mono', monospace; letter-spacing: .08em; cursor: pointer; }
.regional-shop__dates { display: flex; align-items: center; justify-content: space-between; gap: .5rem; border: 1px solid #F3EAD8; background: transparent; color: #F3EAD8; text-align: left; }
.regional-shop__dates::after { content: '▦'; font-size: 1.2rem; }
.regional-shop__add { background: #E3A83B; color: #1F1512; }
.regional-shop__add:hover, .travel-calendar__add:hover { background: #F3EAD8; outline: 2px solid #1F1512; outline-offset: -2px; }
.regional-shop__day-pass .regional-shop__add:hover { background: #F3EAD8; }
.regional-shop__add:disabled, .travel-calendar__add:disabled { opacity: .5; cursor: default; }
.regional-shop button:focus-visible, .travel-calendar button:focus-visible { outline: 3px solid #E3A83B; outline-offset: 4px; }
.regional-shop__pack .regional-shop__add:focus-visible { outline-color: #702A2A; }
.regional-shop__total { font: 700 2.5rem/1 Teko, 'Arial Narrow', sans-serif; }
.regional-shop__packs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 1.25rem; padding-top: 1.75rem; }
.regional-shop__day-pass + .regional-shop__packs { margin-top: 1.75rem; border-top: 2px solid #702A2A; }
.regional-shop__pack { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .5rem 1rem; min-width: 0; padding: 1.25rem 1rem; border-top: 14px solid #1F1512; border-bottom: 14px solid #1F1512; background: #F3EAD8; box-shadow: inset 0 0 0 1px #1F1512; }
.regional-shop__pack h4 { color: #702A2A; font-size: 3rem; }
.regional-shop__pack-price { grid-row: 1 / 3; grid-column: 2; font: 700 2.5rem/1 Teko, 'Arial Narrow', sans-serif; }
.regional-shop__duration { margin: 0; font: 600 .8rem/1.5 'IBM Plex Mono', monospace; letter-spacing: .08em; }
.regional-shop__pack .regional-shop__add { grid-column: 1 / -1; margin-top: .6rem; }
.regional-shop__message { margin: 1rem 0; font: 500 1rem/1.5 'Public Sans', sans-serif; }
.regional-shop [hidden] { display: none; }

.travel-calendar { box-sizing: border-box; width: min(860px, calc(100% - 32px)); max-width: none; max-height: calc(100dvh - 32px); margin: auto; padding: clamp(20px, 3vw, 36px); overflow-y: auto; overscroll-behavior: contain; border: 1px solid #1F1512; border-radius: 12px; background: #F3EAD8; color: #1F1512; }
.travel-calendar::backdrop { background: #1F1512a8; }
.travel-calendar__header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.travel-calendar__header h2 { margin: 0; font: 700 clamp(2rem, 4vw, 3.25rem)/.95 Teko, 'Arial Narrow', sans-serif; letter-spacing: 0; }
.travel-calendar__header button { display: grid; place-items: center; width: 44px; min-width: 44px; height: 44px; padding: 0; border: 1px solid #1F1512; border-radius: 50%; background: transparent; color: inherit; font-size: 1.5rem; cursor: pointer; }
.travel-calendar__navigation { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 6px; }
.travel-calendar__navigation button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #702A2A; background: transparent; color: #702A2A; font-size: 1.2rem; cursor: pointer; }
.travel-calendar__navigation button:disabled { opacity: .3; cursor: default; }
.travel-calendar__months { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.travel-calendar__month { min-width: 0; }
.travel-calendar__month h3 { margin: 0 0 16px; font: 700 2rem/1 Teko, 'Arial Narrow', sans-serif; text-transform: uppercase; }
.travel-calendar__weekdays, .travel-calendar__week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.travel-calendar__weekdays { margin-bottom: 8px; color: #702A2A; font: 600 .85rem/1.5 'IBM Plex Mono', monospace; text-align: center; }
.travel-calendar__week > div { min-width: 0; }
.travel-calendar__day { width: 100%; min-height: 44px; padding: 4px 0; border: 0; border-radius: 0; background: transparent; color: #1F1512; font: 500 .9rem/1 'IBM Plex Mono', monospace; cursor: pointer; }
.travel-calendar__day:disabled { opacity: .3; cursor: default; }
.travel-calendar__day[data-range='inside'] { background: #702A2A22; }
.travel-calendar__day[data-range~='start'], .travel-calendar__day[data-range~='end'] { background: #702A2A; color: #F3EAD8; }
.travel-calendar__day:hover:not(:disabled) { box-shadow: inset 0 0 0 2px #702A2A; }
.travel-calendar__footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #702A2A; background: #F3EAD8; color: #702A2A; }
.travel-calendar__amount { color: #702A2A; font: 700 3rem/1 Teko, 'Arial Narrow', sans-serif; }
.travel-calendar__add { min-width: 160px; min-height: 48px; padding: .8rem 1.5rem; border: 0; border-radius: 0; background: #E3A83B; color: #1F1512; font: 600 .8rem/1.5 'IBM Plex Mono', monospace; letter-spacing: .08em; cursor: pointer; }

/* Only the existing shared drawer. Do not load the travel application's global CSS. */
[data-regional-homepage] .side-basket { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 0; background: none; color: #1F1512; }
[data-regional-homepage] .side-basket::backdrop { background: #1F151280; }
[data-regional-homepage] .side-basket__panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; width: min(94vw, 520px); height: 100%; margin-left: auto; border-left: 1px solid #1F1512; background: #F3EAD8; }
[data-regional-homepage] .side-basket__header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.5rem; border-bottom: 1px solid #1F1512; }
[data-regional-homepage] .side-basket__header h2 { margin: 0; font: 700 3.5rem/1 Teko, sans-serif; letter-spacing: 0; }
[data-regional-homepage] .side-basket__header p { margin: 0; }
[data-regional-homepage] .side-basket__close { min-width: 44px; height: 44px; border: 1px solid #1F1512; border-radius: 50%; background: transparent; color: inherit; cursor: pointer; }
[data-regional-homepage] .side-basket__body { min-height: 0; padding: 0 1.5rem; overflow-y: auto; overscroll-behavior: contain; }
[data-regional-homepage] .side-basket__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .5rem 1rem; padding: 1.25rem 0; border-bottom: 1px solid #1F1512; }
[data-regional-homepage] .side-basket__details h3 { margin: 0 0 .5rem; font: 700 2rem/1 Teko, sans-serif; letter-spacing: 0; }
[data-regional-homepage] .side-basket__details p { margin: 0; font: 400 .9rem/1.5 'Public Sans', sans-serif; }
[data-regional-homepage] .side-basket__price { font: 600 1.2rem/1.4 'IBM Plex Mono', monospace; }
[data-regional-homepage] .side-basket__remove { grid-column: 1 / -1; justify-self: start; min-height: 44px; color: #702A2A; }
[data-regional-homepage] .side-basket__footer { padding: 1.25rem 1.5rem max(1.25rem, env(safe-area-inset-bottom)); border-top: 2px solid #1F1512; background: #F3EAD8; color: #1F1512; }
[data-regional-homepage] .side-basket__total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; font-family: 'IBM Plex Mono', monospace; }
[data-regional-homepage] .side-basket__total strong { font-size: 1.5rem; }
[data-regional-homepage] .side-basket__checkout { width: 100%; min-height: 48px; border: 0; border-radius: 0; background: #E3A83B; color: #1F1512; font: 600 .8rem/1.4 'IBM Plex Mono', monospace; }

@media (max-width: 760px) {
  .regional-shop__day-pass { grid-template-columns: 1fr; }
  .regional-shop__day-controls { border-top: 1px solid #F3EAD866; border-left: 0; }
  .regional-shop__packs { grid-template-columns: 1fr; gap: 1rem; }
  .travel-calendar { width: calc(100% - 20px); max-height: calc(100dvh - 20px); padding: 18px; }
  .travel-calendar__months { grid-template-columns: 1fr; }
  .travel-calendar__month:nth-child(2) { display: none; }
  .travel-calendar__header { margin-bottom: 16px; gap: 8px; }
  .travel-calendar__header h2 { font-size: 2rem; }
  .travel-calendar__month h3 { font-size: 1.75rem; }
  .travel-calendar__footer { gap: 12px; padding-top: 16px; margin-top: 16px; }
  .travel-calendar__amount { font-size: 2.5rem; }
  .travel-calendar__add { min-width: 148px; padding: .8rem; font-size: .7rem; }
  [data-regional-homepage] .side-basket__panel { width: 100%; border-left: 0; }
}
