.nnz-slk-overlay[hidden], .nnz-slk-panel[hidden], .nnz-slk-location-home[hidden] { display: none !important; }
.nnz-slk-overlay { position: fixed; inset: 0; z-index: 100000; padding: 24px; box-sizing: border-box; background: rgba(10, 24, 35, .62); display: flex; align-items: center; justify-content: center; }
.nnz-slk-dialog { width: min(1180px, 100%); height: min(960px, calc(100vh - 48px)); height: min(960px, calc(100dvh - 48px)); max-height: calc(100dvh - 48px); min-height: 0; background: #fff; color: #1a2c37; border-radius: 14px; box-shadow: 0 24px 80px #0004; display: flex; flex-direction: column; font-family: Montserrat, Arial, sans-serif; overflow: hidden; }
.nnz-slk-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 24px; background: #183147; color: #fff; }
body .nnz-slk-dialog .nnz-slk-header h2 { margin: 0; font-size: 20px; line-height: 1.4; color: #fff !important; }
.nnz-slk-header button { width: 38px; height: 38px; padding: 0; border: 1px solid #ffffff66; border-radius: 6px; background: transparent; color: #fff; font-size: 29px; line-height: 1; cursor: pointer; }
.nnz-slk-location { padding: 16px 24px 12px; border-bottom: 1px solid #e5e8eb; }
.nnz-slk-service-title { display: none; }
.nnz-slk-dialog > .nnz-slk-location { display: none !important; }
.nnz-slk-panel #amelia-container .nnz-slk-content-with-location { display: block !important; height: auto !important; min-height: 0; }
.nnz-slk-panel .nnz-slk-content-with-location > .nnz-slk-location { padding: 0 0 16px; margin: 0 0 16px; width: 100%; box-sizing: border-box; }
.nnz-slk-location label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; }
.nnz-slk-location select { width: min(520px, 100%); min-height: 44px; border: 1px solid #ecb34c; border-radius: 6px; background: #fff; padding: 9px 36px 9px 12px; font: inherit; color: #1a2c37; }
.nnz-slk-location select:disabled { opacity: .75; }
.nnz-slk-location p { margin: 6px 0 0; font-size: 12px; line-height: 1.5; color: #57646c; }
.nnz-slk-body { flex: 1 1 0; min-height: 0; overflow: hidden; padding: 0; }
.nnz-slk-panel, .nnz-slk-panel > .amelia-v2-booking { height: 100%; min-height: 0; }
.nnz-slk-launch { border: 0; background: #0c344c; color: white; padding: 12px 22px; border-radius: 8px; font: inherit; cursor: pointer; }
.nnz-slk-dialog :focus-visible, .nnz-slk-launch:focus-visible { outline: 3px solid #ecb34c; outline-offset: 3px; }
.nnz-slk-dialog:focus-visible { outline: none; }
/* Amelia's native 560px form and absolutely positioned footer do not reserve
   room for the extra location field. Give every wrapper a definite height;
   only the step content scrolls, while the footer has its own space. */
.nnz-slk-panel #amelia-container.am-fs__wrapper { width: 100% !important; max-width: none !important; height: 100% !important; min-height: 0; margin: 0 !important; box-shadow: none !important; }
.nnz-slk-panel #amelia-container .am-fs__main { flex: 1 1 0; min-width: 0; height: 100%; min-height: 0; max-width: none !important; }
.nnz-slk-panel #amelia-container .am-fs__main-inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.nnz-slk-panel #amelia-container .am-fs__main-heading { flex: 0 0 auto; }
/* Newer Amelia builds wrap the step and footer in an additional element. */
.nnz-slk-panel #amelia-container .am-fs__main-inner > div[show-cart] { display: flex; flex-direction: column; flex: 1 1 0; min-height: 0; }
.nnz-slk-panel #amelia-container .am-fs__main-content { flex: 1 1 0; height: auto !important; min-height: 0; max-height: none; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.nnz-slk-panel #amelia-container .am-fs__main-footer { position: static !important; flex: 0 0 auto; background-color: var(--am-c-main-bgr, #fff); }
/* Element Plus renders its menus outside the form. Keep them above this overlay. */
body.nnz-slk-is-open .el-popper, body.nnz-slk-is-open .el-overlay { z-index: 100010 !important; }
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
  /* Match the package width and fit the calendar step to its content.
     Keep the native sidebar, step heading, footer and calendar controls. */
  .nnz-slk-overlay { background: rgba(0, 0, 0, .5); }
  .nnz-slk-dialog { position: relative; width: min(1216px, 100%); height: min(var(--nnz-slk-calendar-height, 960px), calc(100vh - 48px)); height: min(var(--nnz-slk-calendar-height, 960px), calc(100dvh - 48px)); border-radius: 8px; font-family: "Amelia Montserrat", Montserrat, Arial, sans-serif; }
  .nnz-slk-header { position: absolute; top: 0; right: 0; z-index: 10; width: 48px; height: 60px; padding: 0; background: transparent; justify-content: center; }
  body .nnz-slk-dialog .nnz-slk-header h2 { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  body .nnz-slk-dialog .nnz-slk-header [data-nnz-close] { display: grid; place-items: center; width: 24px; min-width: 0; height: 24px; min-height: 0; padding: 0 !important; border: 0 !important; border-radius: 4px; background: transparent !important; color: #1a2c37 !important; box-shadow: none; font: 20px/1 Arial, sans-serif; cursor: pointer; }
  .nnz-slk-panel #amelia-container .am-fs__main-heading { padding-right: 64px; }
  /* Include the native container ID to outrank Amelia's div reset. Padding
     reserves a real gap below the selector and cannot collapse into the card. */
  .nnz-slk-panel #amelia-container .nnz-slk-content-with-location > .nnz-slk-location { display: grid; grid-template-areas: "title" "hint" "label" "select"; padding: 0 0 24px; margin: 0; border: 0; color: var(--am-c-main-text, #1a2c37); }
  .nnz-slk-panel #amelia-container .nnz-slk-service-title { display: block; grid-area: title; margin: 0 0 8px; padding: 0; color: var(--am-c-main-text, #1a2c37); font-family: inherit; font-size: 20px; font-weight: 500; line-height: 28px; }
  .nnz-slk-panel #amelia-container .nnz-slk-location p { grid-area: hint; margin: 0 0 20px; color: inherit; font-size: 13px; line-height: 20px; }
  .nnz-slk-panel #amelia-container .nnz-slk-location label { grid-area: label; margin: 0 0 2px; color: inherit; font-size: 15px; font-weight: 400; line-height: 24px; }
  .nnz-slk-panel #amelia-container .nnz-slk-location select { grid-area: select; appearance: none; box-sizing: border-box; width: 234px; max-width: 100%; min-height: 40px; height: 40px; padding: 7px 34px 7px 12px; margin: 0; border: 1px solid #a4aeb7; border-radius: 6px; background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23546777' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; color: inherit; font: inherit; font-size: 15px; line-height: 24px; box-shadow: 0 2px 3px #1a2c370d; cursor: pointer; }
  .nnz-slk-panel #amelia-container .nnz-slk-location select:focus-visible { border-color: #ecb34c; outline: 2px solid #ecb34c; outline-offset: 2px; }
  .nnz-slk-panel #amelia-container .nnz-slk-location select option { color: #1a2c37; background: #f3f3f3; }
  .nnz-slk-panel #amelia-container .am-fs-dt__calendar { width: 100% !important; max-width: none !important; margin: 0 !important; }
  .nnz-slk-panel #amelia-container .am-advsc__wrapper { display: grid !important; grid-template: "header ." "duration ." "zone ." "calendar slots" / minmax(0, 520px) minmax(220px, 1fr); column-gap: 24px; align-items: start; width: 100%; min-width: 0; }
  .nnz-slk-panel #amelia-container .nnz-slk-content-with-location .am-advsc__wrapper { box-sizing: border-box; grid-template-areas: "summary summary" "header ." "duration ." "zone ." "calendar slots"; padding: 16px; border: 1px solid #ecb34c; border-radius: 8px; }
  .nnz-slk-panel #amelia-container .nnz-slk-content-with-location .am-advsc__wrapper::before { content: attr(data-nnz-term); grid-area: summary; display: flex; align-items: center; min-height: 74px; box-sizing: border-box; margin: -16px -16px 16px; padding: 16px; border-bottom: 1px solid #ecb34c; color: var(--am-c-main-text, #1a2c37); font-size: 14px; font-weight: 400; line-height: 20px; }
  .nnz-slk-panel #amelia-container .am-advsc__header { display: grid !important; grid-area: header; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; width: 100%; min-width: 0; }
  .nnz-slk-panel #amelia-container .am-advsc__header > .am-select-wrapper { width: 100%; min-width: 0; }
  .nnz-slk-panel #amelia-container .am-advsc__duration { grid-area: duration; }
  .nnz-slk-panel #amelia-container .am-advsc__time-zone { grid-area: zone; }
  .nnz-slk-panel #amelia-container .am-advsc { grid-area: calendar; width: 100%; min-width: 0; }
  .nnz-slk-panel #amelia-container .am-advsc__slots-wrapper { grid-area: slots; min-width: 0; overflow: visible; width: 100% !important; height: auto !important; max-height: none !important; margin: 0 !important; }
  .nnz-slk-panel #amelia-container .am-advsc__slots { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; align-content: start; max-width: 328px !important; }
  .nnz-slk-panel #amelia-container .am-advsc__slots-item { min-width: 0; width: 100% !important; max-width: none !important; }
  .nnz-slk-panel #amelia-container .am-advsc .fc-view-harness { height: 288px !important; min-height: 288px !important; }
  .nnz-slk-panel #amelia-container .am-advsc .fc-scrollgrid-sync-table { height: 240px !important; min-height: 240px !important; }
  .nnz-slk-panel #amelia-container .am-advsc .fc-daygrid-body,
  .nnz-slk-panel #amelia-container .am-advsc .fc-col-header,
  .nnz-slk-panel #amelia-container .am-advsc .fc-scrollgrid-sync-table { width: 100% !important; }
  .nnz-slk-panel #amelia-container .am-advsc .fc-scrollgrid-sync-table > tbody > tr { height: 40px !important; }
  .nnz-slk-panel #amelia-container .am-advsc .am-advsc__dayGridMonth-cell .fc-daygrid-day-frame { height: 32px !important; min-height: 32px !important; }
}
@media (max-width: 760px) {
  .nnz-slk-overlay { padding: 8px; }
  .nnz-slk-dialog { height: calc(100vh - 16px); height: calc(100dvh - 16px); max-height: calc(100dvh - 16px); border-radius: 10px; }
  .nnz-slk-header { padding: 10px 14px; }
  body .nnz-slk-dialog .nnz-slk-header h2 { font-size: 17px; }
  .nnz-slk-location { padding: 12px 14px; }
  .nnz-slk-location select { width: 100%; font-size: 16px; }
}
