/* EDGE HubSpot Booking Router v1 — scoped Elementor/portal stylesheet. */
.elementor-widget-edge_hubspot_booking_router_v1,
.elementor-widget-edge_hubspot_booking_router_v1 > .elementor-widget-container,
.edge-hbr {
  max-width: 100%;
  max-inline-size: 100%;
  min-width: 0;
}

/* Elementor flex containers otherwise measure the contained root at zero
   intrinsic width before stretching it, reserving several screens of height. */
.elementor .elementor-element.elementor-widget-edge_hubspot_booking_router_v1 {
  width: var(--container-widget-width, 100%);
  min-height: 0;
}

.edge-hbr {
  --edge-hbr-container-width: 1440px;
  --edge-hbr-card-gap: 18px;
  --edge-hbr-columns: 2;
  --edge-hbr-embed-height: 720px;
  --edge-hbr-card-radius: 18px;
  --edge-hbr-surface: #f5f6f1;
  --edge-hbr-text: #111311;
  --edge-hbr-muted: #697068;
  --edge-hbr-border: #d7ddd5;
  --edge-hbr-accent: #738b76;
  --edge-hbr-accent-text: #ffffff;
  --edge-hbr-selected-surface: #e3ebe2;
  --edge-hbr-disabled-surface: #eceee9;
  --edge-hbr-button: #111311;
  --edge-hbr-button-text: #ffffff;
  --edge-hbr-button-hover: #303930;
  --edge-hbr-button-hover-text: #ffffff;
  --edge-hbr-focus: #738b76;
  --edge-hbr-font-sans: "EDGE-Book", "EDGE Book", "Helvetica Neue", Arial, sans-serif;
  --edge-hbr-font-medium: "EDGE-Medium", "EDGE Medium", "Helvetica Neue", Arial, sans-serif;
  position: relative;
  width: 100%;
  isolation: isolate;
  color: var(--edge-hbr-text);
  font-family: var(--edge-hbr-font-sans);
  line-height: 1.35;
  container-type: inline-size;
  container-name: edge-booking;
  overflow-wrap: anywhere;
}

.edge-hbr,
.edge-hbr *,
.edge-hbr *::before,
.edge-hbr *::after {
  box-sizing: border-box;
}

.edge-hbr img {
  display: block;
  max-width: 100%;
}

.edge-hbr button,
.edge-hbr a {
  font-family: inherit;
}

.edge-hbr button {
  -webkit-appearance: none;
  appearance: none;
}

.edge-hbr__shell {
  width: min(100%, var(--edge-hbr-container-width));
  min-width: 0;
  margin-inline: auto;
  padding: var(--edge-hbr-padding-top, 48px) var(--edge-hbr-padding-right, 48px) var(--edge-hbr-padding-bottom, 48px) var(--edge-hbr-padding-left, 48px);
  background: var(--edge-hbr-surface);
  border: 1px solid var(--edge-hbr-border);
  border-radius: var(--edge-hbr-card-radius);
}

.edge-hbr__intro-block {
  max-width: 720px;
  margin-bottom: 32px;
}

.edge-hbr__eyebrow,
.edge-hbr__panel-kicker,
.edge-hbr__choice-kicker,
.edge-hbr__status {
  margin: 0;
  color: var(--edge-hbr-muted);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.edge-hbr__heading {
  margin: 8px 0 12px;
  color: var(--edge-hbr-text);
  font-size: clamp(2.25rem, 5vw, 5.25rem);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .96;
}

.edge-hbr__intro {
  max-width: 620px;
  margin: 0;
  color: var(--edge-hbr-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.edge-hbr__progress {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0 0 40px;
  padding: 0;
  border-top: 1px solid var(--edge-hbr-border);
  list-style: none;
}

.edge-hbr__progress-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  padding: 16px 18px 0 0;
  border-top: 2px solid transparent;
  color: var(--edge-hbr-muted);
  transition: color .25s ease, border-color .25s ease;
}

.edge-hbr__progress-item + .edge-hbr__progress-item {
  padding-left: 18px;
  border-left: 1px solid var(--edge-hbr-border);
}

.edge-hbr__progress-item.is-active,
.edge-hbr__progress-item.is-complete {
  border-top-color: var(--edge-hbr-accent);
  color: var(--edge-hbr-text);
}

.edge-hbr__progress-number {
  font-family: var(--edge-hbr-font-medium);
  font-size: .72rem;
}

.edge-hbr__progress-label {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: .85rem;
}

.edge-hbr__summary {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  margin: -14px 0 26px;
  padding: 8px 12px;
  overflow-wrap: anywhere;
  color: var(--edge-hbr-muted);
  background: rgba(255, 255, 255, .52);
  border: 1px solid var(--edge-hbr-border);
  border-radius: 999px;
  font-size: .8rem;
}

.edge-hbr__summary [data-edge-hbr-summary-location],
.edge-hbr__summary [data-edge-hbr-summary-product] {
  color: var(--edge-hbr-text);
  font-family: var(--edge-hbr-font-medium);
}

.edge-hbr__panel[hidden],
.edge-hbr__summary[hidden],
.edge-hbr__choice[hidden],
.edge-hbr__empty[hidden],
.edge-hbr__embed-loading[hidden],
.edge-hbr__embed-fallback[hidden],
.edge-hbr__external-link[hidden] {
  display: none !important;
}

.edge-hbr__panel.is-entering {
  animation: edge-hbr-panel-in .42s cubic-bezier(.22, .61, .36, 1) both;
}

@keyframes edge-hbr-panel-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.edge-hbr__panel-heading {
  margin-bottom: 24px;
  scroll-margin-top: var(--edge-hbr-scroll-offset, 112px);
}

.edge-hbr__panel-heading h3 {
  scroll-margin-top: var(--edge-hbr-scroll-offset, 112px);
}

.edge-hbr__panel-heading h3 {
  margin: 8px 0 0;
  color: var(--edge-hbr-text);
  font-family: var(--edge-hbr-font-medium);
  font-size: clamp(1.3rem, 2.5vw, 2rem);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.1;
}

.edge-hbr__panel-heading h3:focus-visible {
  outline: 2px solid var(--edge-hbr-focus);
  outline-offset: 5px;
}

.edge-hbr__choice-grid {
  display: grid;
  /* Respect the editor's column count while preventing undersized cards in
     narrow Elementor columns, sidebars and zoomed viewports. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(220px, calc((100% - (var(--edge-hbr-columns) - 1) * var(--edge-hbr-card-gap)) / var(--edge-hbr-columns)))), 1fr));
  gap: var(--edge-hbr-card-gap);
}

.edge-hbr .edge-hbr__choice {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  align-content: start;
  min-width: 0;
  max-width: 100%;
  min-height: 112px;
  padding: 0;
  overflow: hidden;
  color: var(--edge-hbr-text);
  background: rgba(255, 255, 255, .42);
  border: 1px solid var(--edge-hbr-border);
  border-radius: var(--edge-hbr-card-radius);
  cursor: pointer;
  text-align: left;
  white-space: normal;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}

.edge-hbr__choice:hover:not(:disabled) {
  color: var(--edge-hbr-text);
  background: rgba(255, 255, 255, .86);
  border-color: var(--edge-hbr-accent);
  transform: translateY(-2px);
}

.edge-hbr .edge-hbr__choice.is-selected {
  color: var(--edge-hbr-text);
  background: var(--edge-hbr-selected-surface);
  border-color: var(--edge-hbr-accent);
  box-shadow: 0 0 0 2px var(--edge-hbr-accent);
}

.edge-hbr .edge-hbr__choice:disabled,
.edge-hbr .edge-hbr__choice.is-disabled {
  color: var(--edge-hbr-muted);
  background: var(--edge-hbr-disabled-surface);
  border-color: var(--edge-hbr-border);
  cursor: not-allowed;
  opacity: .78;
  transform: none;
}

.edge-hbr__choice:focus-visible,
.edge-hbr__button:focus-visible,
.edge-hbr__external-link:focus-visible {
  outline: 3px solid var(--edge-hbr-focus);
  outline-offset: 3px;
}

.edge-hbr__media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 8;
  overflow: hidden;
  background: var(--edge-hbr-border);
}

.edge-hbr .edge-hbr__media .edge-hbr__media-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82);
  transition: transform .55s cubic-bezier(.22, .61, .36, 1), filter .3s ease;
}

.edge-hbr__choice:hover:not(:disabled) .edge-hbr__media-image {
  filter: saturate(1);
  transform: scale(1.035);
}

.edge-hbr__choice-content {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  padding: 20px 52px 22px 20px;
}

.edge-hbr__choice-content:only-child {
  grid-column: 1 / -1;
}

.edge-hbr__choice-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
}

.edge-hbr__choice-kicker {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: .68rem;
}

.edge-hbr__status {
  max-width: 100%;
  color: var(--edge-hbr-accent);
  font-size: .62rem;
  text-align: left;
  overflow-wrap: anywhere;
}

.edge-hbr__choice-title,
.edge-hbr__product-title {
  display: block;
  margin-top: 10px;
  color: currentColor;
  font-family: var(--edge-hbr-font-medium);
  font-size: clamp(1.1rem, 2vw, 1.55rem);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.08;
  overflow-wrap: anywhere;
}

.edge-hbr__product-description {
  display: block;
  max-width: 38ch;
  margin-top: 10px;
  color: var(--edge-hbr-muted);
  font-size: .88rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.edge-hbr__choice-arrow {
  position: absolute;
  right: 20px;
  bottom: 20px;
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  color: var(--edge-hbr-accent);
  border: 1px solid currentColor;
  border-radius: 50%;
  line-height: 1;
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}

.edge-hbr .edge-hbr__choice-arrow > svg {
  display: block;
  width: 18px;
  height: 18px;
  fill: none;
}

.edge-hbr__choice:hover:not(:disabled) .edge-hbr__choice-arrow,
.edge-hbr__choice.is-selected .edge-hbr__choice-arrow {
  color: var(--edge-hbr-accent-text);
  background: var(--edge-hbr-accent);
  transform: rotate(6deg);
}

.edge-hbr__actions,
.edge-hbr__embed-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
}

.edge-hbr .edge-hbr__button {
  display: inline-flex;
  min-height: 46px;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font-size: .84rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
  text-shadow: none;
  text-decoration: none;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}

.edge-hbr .edge-hbr__button--secondary,
.edge-hbr .edge-hbr__button--secondary:focus,
.edge-hbr .edge-hbr__button--secondary:active {
  color: var(--edge-hbr-text) !important;
  -webkit-text-fill-color: currentColor !important;
  background: transparent !important;
  border-color: var(--edge-hbr-border);
}

.edge-hbr .edge-hbr__button--secondary:hover {
  color: var(--edge-hbr-text) !important;
  background: rgba(255, 255, 255, .76) !important;
  border-color: var(--edge-hbr-accent);
  transform: translateY(-1px);
}

.edge-hbr a.edge-hbr__external-link,
.edge-hbr a.edge-hbr__external-link:link,
.edge-hbr a.edge-hbr__external-link:visited,
.edge-hbr a.edge-hbr__external-link:focus,
.edge-hbr a.edge-hbr__external-link:active {
  display: inline-flex;
  min-height: 46px;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  padding: 12px 18px;
  /* Keep the colour pair together even when the theme styles links globally.
     Elementor controls still override the variables for this widget only. */
  color: var(--edge-hbr-button-text) !important;
  -webkit-text-fill-color: currentColor !important;
  background: var(--edge-hbr-button) !important;
  border: 1px solid var(--edge-hbr-button);
  border-radius: 999px;
  font-size: .84rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
  text-shadow: none;
  opacity: 1;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}

.edge-hbr a.edge-hbr__external-link:hover,
.edge-hbr a.edge-hbr__external-link:focus-visible {
  color: var(--edge-hbr-button-hover-text, var(--edge-hbr-button-text)) !important;
  background: var(--edge-hbr-button-hover, var(--edge-hbr-button)) !important;
  border-color: var(--edge-hbr-button-hover, var(--edge-hbr-button));
  transform: translateY(-1px);
}

.edge-hbr__embed-frame {
  position: relative;
  min-height: var(--edge-hbr-embed-height);
  min-width: 0;
  width: 100%;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--edge-hbr-border);
  border-radius: var(--edge-hbr-card-radius);
}

.edge-hbr__iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: var(--edge-hbr-embed-height);
  min-height: 420px;
  border: 0;
  background: #fff;
}

.edge-hbr__embed-loading {
  position: absolute;
  z-index: 1;
  top: 18px;
  left: 50%;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  max-width: calc(100% - 24px);
  padding: 9px 13px;
  color: var(--edge-hbr-text);
  background: rgba(245, 246, 241, .94);
  border: 1px solid var(--edge-hbr-border);
  border-radius: 999px;
  box-shadow: 0 8px 24px rgba(17, 19, 17, .08);
  font-size: .78rem;
  transform: translateX(-50%);
}

.edge-hbr__spinner {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  border: 2px solid var(--edge-hbr-border);
  border-top-color: var(--edge-hbr-accent);
  border-radius: 50%;
  animation: edge-hbr-spin .8s linear infinite;
}

@keyframes edge-hbr-spin {
  to { transform: rotate(360deg); }
}

.edge-hbr__embed-fallback,
.edge-hbr__empty,
.edge-hbr__noscript {
  margin: 18px 0 0;
  color: var(--edge-hbr-muted);
  font-size: .88rem;
  line-height: 1.55;
}

.edge-hbr__embed-fallback a {
  color: var(--edge-hbr-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 1024px) {
  .edge-hbr {
    --edge-hbr-embed-height: 760px;
  }

  .edge-hbr__shell {
    padding: var(--edge-hbr-padding-top, 32px) var(--edge-hbr-padding-right, 24px) var(--edge-hbr-padding-bottom, 32px) var(--edge-hbr-padding-left, 24px);
  }
}

@media (max-width: 767px) {
  .edge-hbr {
    --edge-hbr-columns: 1;
    --edge-hbr-embed-height: 800px;
  }

  .edge-hbr__shell {
    padding: var(--edge-hbr-padding-top, 24px) var(--edge-hbr-padding-right, 16px) var(--edge-hbr-padding-bottom, 24px) var(--edge-hbr-padding-left, 16px);
    border-radius: calc(var(--edge-hbr-card-radius) * .8);
  }

  .edge-hbr__intro-block {
    margin-bottom: 26px;
  }

  .edge-hbr__heading {
    font-size: clamp(2.15rem, 13vw, 4rem);
  }

  .edge-hbr__intro {
    font-size: .92rem;
  }

  .edge-hbr__progress {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 30px;
  }

  .edge-hbr__progress-item,
  .edge-hbr__progress-item + .edge-hbr__progress-item {
    flex-direction: column;
    gap: 8px;
    padding: 10px 8px 0 0;
    border-left: 0;
  }

  .edge-hbr__progress-label {
    font-size: .75rem;
    line-height: 1.4;
  }

  .edge-hbr__summary {
    margin-top: -4px;
  }

  .edge-hbr__choice-content {
    padding: 18px 50px 20px 18px;
  }

  .edge-hbr__embed-actions,
  .edge-hbr__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .edge-hbr .edge-hbr__button,
  .edge-hbr a.edge-hbr__external-link {
    width: 100%;
    min-height: 48px;
  }
}

/* Component-width behaviour also works inside narrow desktop editor columns. */
@container edge-booking (max-width: 600px) {
  .edge-hbr__shell {
    padding: min(var(--edge-hbr-padding-top, 24px), 32px) min(var(--edge-hbr-padding-right, 16px), 24px) min(var(--edge-hbr-padding-bottom, 24px), 32px) min(var(--edge-hbr-padding-left, 16px), 24px);
  }

  .edge-hbr__heading {
    font-size: clamp(2rem, 9cqi, 3.5rem);
  }

  .edge-hbr__panel-heading h3 {
    font-size: clamp(1.3rem, 5.8cqi, 1.7rem);
  }

  .edge-hbr__progress-item,
  .edge-hbr__progress-item + .edge-hbr__progress-item {
    flex-direction: column;
    gap: 8px;
    padding: 10px 8px 0 0;
    border-left: 0;
  }

  .edge-hbr__progress-number {
    flex: none;
    white-space: nowrap;
  }

  .edge-hbr__progress-label {
    font-size: .75rem;
    line-height: 1.4;
  }

  .edge-hbr__actions,
  .edge-hbr__embed-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .edge-hbr .edge-hbr__button,
  .edge-hbr a.edge-hbr__external-link {
    width: 100%;
    min-height: 48px;
  }

  .edge-hbr .edge-hbr__choice {
    grid-template-columns: clamp(64px, 20cqi, 112px) minmax(0, 1fr);
    /* Fill the card's minimum height too, not just the text's intrinsic height. */
    grid-template-rows: minmax(0, 1fr);
    align-content: stretch;
    align-items: stretch;
    min-height: 112px;
  }

  .edge-hbr__choice .edge-hbr__media {
    position: relative;
    width: 100%;
    aspect-ratio: auto;
    align-self: stretch;
  }

  .edge-hbr__choice .edge-hbr__media-image {
    position: absolute;
    inset: 0;
  }

  .edge-hbr__choice .edge-hbr__choice-content {
    justify-content: center;
    padding: 16px 38px 16px 14px;
  }

  .edge-hbr__choice-topline {
    gap: 8px;
  }

  .edge-hbr__choice .edge-hbr__choice-arrow {
    right: 10px;
    bottom: 12px;
    width: 24px;
    height: 24px;
  }

  .edge-hbr .edge-hbr__choice-arrow > svg {
    width: 16px;
    height: 16px;
  }

  .edge-hbr__choice--location:disabled .edge-hbr__choice-arrow {
    display: none;
  }

  .edge-hbr__choice--location:disabled .edge-hbr__choice-content {
    padding-right: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .edge-hbr *,
  .edge-hbr *::before,
  .edge-hbr *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
