@layer nordic-base, nordic-authored, nordic-custom;@layer nordic-base {.cms-hero, .account-welcome, .price-category__header--photo {
  --hero-standard-fade: linear-gradient(var(--hero-fade-angle), var(--hero-alpha-98), var(--hero-alpha-96) 29%, var(--hero-alpha-76) 49%, var(--hero-alpha-08) 80%);
  --hero-deep-fade: linear-gradient(calc(var(--hero-fade-angle) + 180deg), transparent var(--hero-deep-clear-stop, 12%), var(--hero-alpha-05) var(--hero-deep-soft-stop, 24%), var(--hero-alpha-80) var(--hero-deep-strong-stop, 48%), var(--hero-alpha-99) var(--hero-deep-opaque-stop, 73%));
}
}
@layer nordic-base, nordic-authored, nordic-custom;@layer nordic-base {nsb-info-popover:not([data-info-link]) {
    display: inline-flex;
    flex: 0 0 auto;
    vertical-align: middle;
  }

  /* Newly available inherited information adds a control without increasing
     the title line or shifting every row below it. Keep the full hit area. */
  .info-popover--overlay { position: relative; width: 36px; height: 0; }
  .info-popover--overlay .info-popover__trigger { position: absolute; left: 0; top: -18px; }

  .info-popover__trigger {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: var(--button-radius);
    color: var(--primary);
    background: transparent;
    cursor: pointer;
    transition:
      color 180ms ease,
      background-color 180ms ease;
  }

  .info-popover__trigger svg {
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .info-popover__trigger[aria-expanded='true'] {
    color: var(--ink);
    background: var(--cream);
  }

  .info-popover__trigger:focus-visible {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
  }

  .info-popover__panel {
    box-sizing: border-box;
    width: min(300px, calc(100vw - 32px));
    padding: 0;
    border: 0;
    border-radius: var(--button-radius);
    color: var(--ink);
    background: var(--cream);
    box-shadow: 0 10px 32px rgb(73 66 61 / 14%);
    font: 400 16px / 1.55 var(--font-body);
    letter-spacing: 0;
    text-transform: none;
    white-space: normal;
    text-wrap: wrap;
    text-shadow: none;
    text-align: left;
    overflow-wrap: anywhere;
    overscroll-behavior: contain;
  }

  .info-popover__image { margin-bottom: 16px; }
  .info-popover__image img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--button-radius); }
  .info-popover__panel .info-popover__duration { margin-top: 12px; }

  .info-popover__panel .text-link {
    margin-top: 14px;
    font-size: inherit;
  }

  @supports selector(:popover-open) {
    .info-popover__panel {
      position: fixed;
      inset: 0;
      height: fit-content;
      max-height: calc(100vh - 32px);
      max-height: calc(100dvh - 32px);
      margin: auto;
      overflow: auto;
      opacity: 0;
      transform: translateY(4px);
      transition:
        opacity 180ms ease,
        transform 180ms cubic-bezier(0.2, 0.7, 0.3, 1),
        display 180ms allow-discrete,
        overlay 180ms allow-discrete;
    }

    .info-popover__panel[data-positioned] {
      inset: auto;
      margin: 0;
    }

    .info-popover__panel:popover-open {
      opacity: 1;
      transform: translateY(0);
    }

    @starting-style {
      .info-popover__panel:popover-open {
        opacity: 0;
        transform: translateY(4px);
      }
    }
  }

  /* Older browsers still show the information and destination inline. */
  @supports not selector(:popover-open) {
    .info-popover__trigger {
      display: none;
    }
    nsb-info-popover[data-info-link] .info-popover__panel {
      display: none;
    }
}

/* Link previews keep the authored link's native inline/line-wrap behavior. */
nsb-info-popover[data-info-link] {
  display: contents;
}

.information-card {
  display: block;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  padding: 22px;
  border-radius: inherit;
  color: inherit;
  font: inherit;
  text-align: left;
  text-decoration: none;
}
.information-card__copy,
.information-card__description,
.information-card__title,
.info-popover__image {
  display: block;
  color: inherit;
  font: inherit;
}
.information-card__title {
  margin-bottom: 12px;
  font-weight: 500;
}
.info-popover__panel .info-popover__duration {
  display: flex;
  align-items: center;
  gap: 8px;
}
.information-card__clock {
  flex: none;
}
.information-card--linked {
  cursor: pointer;
}
.information-card--linked:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: -4px;
}
.information-card--linked .information-card__action {
  color: var(--link-color);
}
@media (hover: hover) and (pointer: fine) {
  .information-card--linked:hover .information-card__action {
    color: var(--link-hover);
  }
}
.information-card--linked:active .information-card__action {
  color: var(--link-active);
}

  @media (hover: hover) and (pointer: fine) {
    .info-popover__trigger:hover {
      color: var(--ink);
      background: var(--cream);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .info-popover__trigger,
    .info-popover__panel {
      transition: none;
    }
  }
}
@layer nordic-base, nordic-authored, nordic-custom;@layer nordic-base {.phone-input {
  display: block;
  position: relative;
  min-width: 0;
  width: 100%;
  border: 1px solid var(--input-border);
  border-radius: var(--button-radius);
  background: var(--input-surface, #fff);
  box-sizing: border-box;
}
.phone-input input {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px 79px 12px 15px;
  border: 0;
  border-radius: var(--button-radius);
  background: var(--input-surface, #fff);
  color: var(--ink);
  font: 400 16px/1.5 var(--font-body);
  box-shadow: none;
  transition:
    background-color 180ms ease,
    border-color 180ms ease;
}
.phone-input input::placeholder {
  color: var(--primary);
  opacity: 1;
}
.phone-input input:focus {
  background: var(--input-surface, #fff);
  outline: none;
  box-shadow: none;
}
.phone-input input:focus-visible {
  transition: none;
}
.phone-input__tools {
  position: absolute;
  top: 50%;
  right: 9px;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  min-width: 54px;
  /* WebKit can include the transparent native select's long option text in
     page overflow. Clip that paint without changing its native picker. */
  overflow: clip;
  border-radius: var(--button-radius);
  color: var(--primary);
}
.phone-input__flag {
  display: block;
  width: 24px;
  height: 18px;
  object-fit: contain;
  border-radius: 1px;
}
.phone-input__chevron {
  flex: none;
  pointer-events: none;
}
.phone-input__country {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: inherit;
  appearance: none;
  opacity: 0;
  cursor: pointer;
  color: var(--ink);
  font: 400 16px/1.5 var(--font-body);
}
.phone-input__tools:has(select:focus-visible) {
  box-shadow: none;
}
@media (hover: hover) and (pointer: fine) {
  .phone-input input:hover {
    background: var(--input-surface, #fff);
  }
  .phone-input__tools:hover {
    background: var(--input-surface, #fff);
  }
}
@media (max-width: 600px) {
  .phone-input input {
    padding-left: 11px;
  }
}
@media (forced-colors: active) {
  .phone-input input {
    border-color: transparent;
  }
  .phone-input input:focus {
    border-color: transparent;
  }
  .phone-input__tools:has(select:focus-visible) {
    border-color: Highlight;
  }
}

.phone-input input:is(:disabled, [readonly]) { opacity: 1; background: var(--input-surface, #fff); }
.phone-input input[aria-invalid="true"] { border-color: transparent; }
.phone-input input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px var(--input-surface, #fff) inset; -webkit-text-fill-color: var(--ink); }
.phone-input__error { margin: 8px 0 0; color: var(--error-text); font: 400 16px/1.6 var(--font-body); }
/* Direct React usage participates in the booking field's existing 8px grid gap. */
.booking-field > .phone-input__error { margin: 0; }

/* Astro may place an island between this custom element and the shared
   rendered control. The inner control owns the boundary both in server HTML
   and after hydration; the outer container never adds a second field box. */
nsb-phone-input.phone-input:has(.phone-input) { border:0; background:transparent; }
}
