/* Theme-owned defaults, audited against Core 0.12.24. Opt-in replacement. */
/* Full-bleed breakout prevents Elementor parent containers adding side margins. */
.elementor .e-con:has(> .elementor-widget-atlantic-hall-hero),
.elementor .e-con:has(> .elementor-widget-atlantic-hall-welcome) {
  padding: 0 !important;
}
.elementor-widget-atlantic-hall-hero {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-inline: calc(50% - 50vw) !important;
  flex: 0 0 100vw;
  align-self: stretch;
}
.elementor-widget-atlantic-hall-hero > .elementor-widget-container { margin: 0 !important; padding: 0 !important; overflow: hidden; }

.ah-hero {
  --ah-hero-overlay: #082c4c;
  --ah-hero-overlay-opacity: 0.58;
  --ah-slide-duration: 800ms;
  position: relative;
  isolation: isolate;
  width: 100%;
  min-height: var(--ah-hero-min-height, 100svh);
  overflow: hidden;
  background: linear-gradient(135deg, #082c4c, #123f67);
  color: var(--ah-white, #fff);
}

.ah-hero__slides,
.ah-hero__slide { position: absolute; inset: 0; }
.ah-hero__slide {
  display: flex;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--ah-slide-duration) ease, visibility var(--ah-slide-duration) ease;
}
.ah-hero__slide.is-active { z-index: 2; opacity: 1; visibility: visible; pointer-events: auto; }

.ah-hero__media,
.ah-hero__overlay { position: absolute; inset: 0; }
.ah-hero__media { z-index: -2; overflow: hidden; }
.ah-hero__overlay {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(8,44,76,.58) 0%, rgba(8,44,76,.18) 64%, transparent 100%),
    linear-gradient(var(--ah-hero-overlay), var(--ah-hero-overlay));
  opacity: var(--ah-hero-overlay-opacity);
}
.ah-hero__poster,
.ah-hero__poster img,
.ah-hero__video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.ah-hero__poster img,
.ah-hero__video { object-fit: cover; }
.ah-hero__slide.is-active .ah-hero__poster img { animation: ah-hero-media-in calc(var(--ah-slide-duration) * 1.8) ease both; }

.ah-hero__inner {
  width: min(calc(100% - (2 * var(--ah-gutter, clamp(1.25rem, 4vw, 3rem)))), var(--ah-container-wide, 1440px));
  margin-inline: auto;
  padding-top: calc(var(--ah-header-height, 96px) + var(--ah-utility-height, 34px) + 4rem);
  padding-bottom: clamp(7rem, 11vw, 10rem);
}
.ah-hero__content { max-width: 720px; }
.ah-hero__eyebrow { margin: 0 0 1.15rem; color: var(--ah-sky, #59bce8); font: 800 .75rem/1.3 var(--ah-font-sans, Inter, var(--ahds-font-body, Arial, sans-serif)); letter-spacing: .18em; text-transform: uppercase; }
.ah-hero__title { max-width: 12ch; margin: 0; color: #fff; font-family: var(--ahds-font-display, var(--ah-font-serif, Georgia, serif)); font-size: clamp(3.25rem, 7.2vw, 7.25rem); font-weight: 500; letter-spacing: -.05em; line-height: .92; text-wrap: balance; }
.ah-hero__title-line { display: block; }
.ah-hero__title-line--accent { color: var(--ah-hero-editorial-accent, var(--ah-gold, #c9a64a)); font-style: italic; font-weight: 500; }
.ah-hero__description { max-width: 650px; margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; color: rgba(255,255,255,.92); font-family: var(--ah-font-sans, Inter, var(--ahds-font-body, Arial, sans-serif)); font-size: clamp(1rem, 1.4vw, 1.2rem); line-height: 1.72; }
.ah-hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: clamp(2rem, 4vw, 3rem); }
.ah-hero .ah-btn { min-width: 180px; }

/* Per-element reveal effects. CSS is activated only after JS is ready. */
.ah-hero-slider.is-ready [data-ah-reveal-mode] [data-ah-reveal-item] {
  opacity: 0;
  transition:
    opacity 700ms ease var(--ah-reveal-delay, 0ms),
    transform 850ms cubic-bezier(.2,.7,.2,1) var(--ah-reveal-delay, 0ms),
    clip-path 900ms cubic-bezier(.2,.7,.2,1) var(--ah-reveal-delay, 0ms);
  will-change: opacity, transform;
}
.ah-hero-slider.is-ready [data-ah-reveal-item="fade-up"] { transform: translateY(38px); }
.ah-hero-slider.is-ready [data-ah-reveal-item="fade-left"] { transform: translateX(-46px); }
.ah-hero-slider.is-ready [data-ah-reveal-item="fade-right"] { transform: translateX(46px); }
.ah-hero-slider.is-ready [data-ah-reveal-item="zoom-in"] { transform: scale(.94); }
.ah-hero-slider.is-ready [data-ah-reveal-item="clip-up"] { transform: translateY(20px); clip-path: inset(100% 0 0 0); }
.ah-hero-slider.is-ready [data-ah-reveal-mode] [data-ah-reveal-item="none"],
.ah-hero-slider.is-ready [data-ah-reveal-mode="none"] [data-ah-reveal-item],
.ah-hero-slider.is-ready [data-ah-reveal-mode].is-revealed [data-ah-reveal-item] {
  opacity: 1;
  transform: none;
  clip-path: inset(0 0 0 0);
}
.ah-hero-slider.is-ready .ah-hero__content.is-revealed [data-ah-reveal-item] { will-change: auto; }
.ah-hero-slider.is-ready .ah-hero__content.is-revealed .ah-btn:hover,
.ah-hero-slider.is-ready .ah-hero__content.is-revealed .ah-btn:focus-visible { transform: translateY(-2px); }

.ah-hero__navigation,
.ah-hero__dots { position: absolute; z-index: 5; display: flex; align-items: center; }
.ah-hero__navigation { right: var(--ah-gutter, 3rem); bottom: clamp(2rem, 5vw, 3.5rem); gap: .65rem; }
.ah-hero__counter { min-width: 62px; margin: 0; color: #fff; font: 750 .75rem/1 var(--ah-font-sans, Inter, var(--ahds-font-body, Arial, sans-serif)); letter-spacing: .08em; text-align: center; }
.ah-hero__arrow,
.ah-hero__pause,
.ah-hero__dots button,
.ah-hero__scroll {
  appearance: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  font: inherit;
  cursor: pointer;
}
.ah-hero__arrow,
.ah-hero__pause { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: rgba(8,44,76,.28); color: #fff; backdrop-filter: blur(8px); transition: background 180ms ease, color 180ms ease, border-color 180ms ease; }
.ah-hero__arrow:hover,
.ah-hero__pause:hover { border-color: var(--ah-sky, #59bce8); background: var(--ah-sky, #59bce8); color: var(--ah-blue-deep, #082c4c); }
.ah-hero__pause span,
.ah-hero__pause span::after { width: 3px; height: 13px; display: block; background: currentColor; content: ""; }
.ah-hero__pause span { position: relative; transform: translateX(-3px); }
.ah-hero__pause span::after { position: absolute; left: 6px; top: 0; }
.ah-hero__pause.is-paused span { width: 0; height: 0; margin-left: 3px; border-top: 7px solid transparent; border-bottom: 7px solid transparent; border-left: 11px solid currentColor; background: transparent; transform: none; }
.ah-hero__pause.is-paused span::after { display: none; }

.ah-hero__dots { left: var(--ah-gutter, 3rem); bottom: clamp(2.25rem, 5vw, 3.75rem); gap: .55rem; }
.ah-hero__dots button { width: 26px; height: 3px; padding: 0; background: rgba(255,255,255,.42); transition: width 250ms ease, background 250ms ease; }
.ah-hero__dots button.is-active { width: 48px; background: var(--ah-gold, #c9a64a); }

.ah-hero__scroll {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: .5rem;
  display: grid;
  justify-items: center;
  gap: .6rem;
  padding: .5rem !important;
  background: transparent !important;
  color: var(--ah-sky, #59bce8);
  font: 800 .68rem/1.2 var(--ah-font-sans, Inter, var(--ahds-font-body, Arial, sans-serif));
  letter-spacing: .14em;
  text-transform: uppercase;
  transform: translateX(-50%);
}
.ah-hero__scroll:hover,
.ah-hero__scroll:focus-visible { background: transparent !important; color: var(--ah-gold, #c9a64a); }
.ah-hero__scroll i { width: 1px; height: 28px; display: block; background: currentColor; }

@keyframes ah-hero-media-in { from { transform: scale(1.035); } to { transform: scale(1); } }

@media (max-width: 1024px) {
  .ah-hero__inner { padding-top: calc(var(--ah-header-height, 82px) + var(--ah-utility-height, 34px) + 3rem); }
  .ah-hero__scroll { display: none; }
}

@media (max-width: 720px) {
  /*
   * Elementor's previous 84vh mobile default is too short for a heading,
   * body copy, two CTAs and the carousel controls. Keep the editor-selected
   * height when it is large enough, but never let content escape above the
   * viewport on short phones or landscape screens.
   */
  .ah-hero { min-height: max(var(--ah-hero-min-height, 100svh), 46rem) !important; }
  .ah-hero__slide { align-items: stretch; }
  .ah-hero__overlay { background: linear-gradient(0deg, var(--ah-hero-overlay) 0%, rgba(8,44,76,.55) 70%, rgba(8,44,76,.2) 100%); }
  .ah-hero__inner {
    min-height: 100%;
    display: flex;
    align-items: center;
    padding-top: calc(var(--ah-header-height, 76px) + var(--ah-utility-height, 30px) + 1.5rem);
    padding-bottom: 7.5rem;
  }
  .ah-hero__content { width: 100%; }
  .ah-hero__title { max-width: 11ch; font-size: clamp(2.75rem, 13vw, 4.75rem); line-height: .96; }
  .ah-hero__description { font-size: 1rem; line-height: 1.62; }
  .ah-hero__actions { align-items: stretch; flex-direction: column; gap: .75rem; margin-top: 1.75rem; }
  .ah-hero .ah-btn { width: 100%; }
  .ah-hero__navigation { right: 1.25rem; bottom: 1.25rem; }
  .ah-hero__dots { left: 1.25rem; bottom: 2.5rem; }
  .ah-hero__counter { display: none; }
  .ah-hero__arrow,
  .ah-hero__pause { width: 40px; height: 40px; }
}

@media (max-width: 420px) {
  .ah-hero__inner { padding-bottom: 7rem; }
  .ah-hero__eyebrow { margin-bottom: .85rem; }
  .ah-hero__description { margin-top: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .ah-hero__slide { transition-duration: .01ms; }
  .ah-hero-slider.is-ready [data-ah-reveal-mode] [data-ah-reveal-item] { opacity: 1; transform: none; clip-path: none; transition: none; }
  .ah-hero__slide.is-active .ah-hero__poster img { animation: none; }
  .ah-hero__video { visibility: hidden; }
}

/* Split Editorial: fixed story panel with independently rotating media. */
.ah-hero--split {
  --ah-hero-content-width: 43%;
  --ah-hero-panel: #0a3763;
  --ah-hero-editorial-accent: #dff4fc;
  --ah-hero-media-background: #071f35;
  --ah-hero-controls-accent: var(--ah-sky, #59bce8);
  --ah-hero-corner: #a42d4f;
  --ah-hero-corner-hover: var(--ah-blue, #123f67);
  --ah-hero-curve: 13vw;
  --ah-hero-corner-width: 200px;
  --ah-hero-corner-height: 212px;
  --ah-hero-corner-icon-size: 22px;
  --ah-hero-corner-icon-right: 30px;
  --ah-hero-corner-icon-bottom: 22px;
  --ah-hero-content-pad-top: 180px;
  --ah-hero-content-pad-right: 56px;
  --ah-hero-content-pad-bottom: 80px;
  --ah-hero-content-pad-left: 72px;
  display: grid;
  grid-template-columns: var(--ah-hero-content-width) minmax(0, 1fr);
  height: var(--ah-hero-min-height, 100svh);
  min-height: 0;
  background: var(--ah-hero-panel);
}

/* Logged-in WordPress users lose part of the visual viewport to the admin bar. */
body.admin-bar .ah-hero--split {
  height: calc(var(--ah-hero-min-height, 100svh) - 32px);
}

.ah-hero--split .ah-hero__content-panel {
  position: relative;
  z-index: 3;
  min-width: 0;
  background: var(--ah-hero-panel);
}

.ah-hero--split .ah-hero__content-panel-inner {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-height: 0;
  display: flex;
  align-items: center;
  padding:
    max(min(var(--ah-hero-content-pad-top), 14svh), calc(var(--ah-header-height, 96px) + 2rem))
    var(--ah-hero-content-pad-right)
    min(var(--ah-hero-content-pad-bottom), 7svh)
    var(--ah-hero-content-pad-left);
}

.ah-hero--split .ah-hero__content { width: 100%; max-width: 34rem; }
.ah-hero--split .ah-hero__eyebrow { color: var(--ah-sky, #59bce8); }
.ah-hero--split .ah-hero__title {
  max-width: 8.5ch;
  font-size: clamp(3rem, min(5.25vw, 8.5svh), 6.35rem);
  line-height: .91;
  letter-spacing: -.055em;
}
.ah-hero--split .ah-hero__description {
  max-width: 30rem;
  margin-top: clamp(1.25rem, 2.8svh, 2.5rem);
  padding-top: clamp(1rem, 2svh, 1.5rem);
  border-top: 1px solid rgba(255,255,255,.54);
  font-size: clamp(.95rem, 1.1vw, 1.12rem);
  line-height: 1.55;
}
.ah-hero--split .ah-hero__actions { margin-top: clamp(1.1rem, 2.4svh, 2rem); }
.ah-hero--split .ah-btn-gold { background: #fff; color: var(--ah-blue-deep, #082c4c); }
.ah-hero--split .ah-btn-gold:hover,
.ah-hero--split .ah-btn-gold:focus-visible { background: #dff4fc; color: var(--ah-blue-deep, #082c4c); }
.ah-hero--split .ah-btn-outline-light { border-color: rgba(255,255,255,.72); background: transparent; color: #fff; }
.ah-hero--split .ah-btn-outline-light:hover,
.ah-hero--split .ah-btn-outline-light:focus-visible { border-color: #fff; background: #fff; color: var(--ah-blue-deep, #082c4c); }
.ah-hero--split .ah-hero__media-panel {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-start-start-radius: var(--ah-hero-curve);
  border-top-left-radius: var(--ah-hero-curve);
  background: var(--ah-hero-media-background);
}
.ah-hero--split .ah-hero__slides { position: absolute; inset: 0; }
.ah-hero--split .ah-hero__slide { display: block; }
.ah-hero--split .ah-hero__overlay {
  z-index: 1;
  background: linear-gradient(var(--ah-hero-overlay), var(--ah-hero-overlay));
  opacity: var(--ah-hero-overlay-opacity);
}
.ah-hero--split .ah-hero__content-slides { position: relative; width: 100%; }
.ah-hero--split .ah-hero__content-slide {
  position: absolute;
  inset: 50% 0 auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(calc(-50% + 16px));
  transition: opacity var(--ah-slide-duration) ease, transform var(--ah-slide-duration) ease, visibility var(--ah-slide-duration) ease;
}
.ah-hero--split .ah-hero__content-slide.is-active {
  position: relative;
  inset: auto;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}
.ah-hero--split .ah-hero__scroll--corner {
  z-index: 6;
  right: 0;
  bottom: 0;
  left: auto;
  width: var(--ah-hero-corner-width);
  height: var(--ah-hero-corner-height);
  display: block;
  padding: 0 !important;
  color: #fff;
  transform: none;
}
.ah-hero--split .ah-hero__scroll--corner:hover,
.ah-hero--split .ah-hero__scroll--corner:focus-visible { color: #fff; }
.ah-hero--split .ah-hero__scroll-shape {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  color: var(--ah-hero-corner);
  fill: currentColor;
  pointer-events: none;
  transition: color 250ms ease;
}
.ah-hero--split .ah-hero__scroll--corner:hover .ah-hero__scroll-shape,
.ah-hero--split .ah-hero__scroll--corner:focus-visible .ah-hero__scroll-shape { color: var(--ah-hero-corner-hover); }
.ah-hero--split .ah-hero__scroll-icon {
  position: absolute;
  z-index: 1;
  right: var(--ah-hero-corner-icon-right);
  bottom: var(--ah-hero-corner-icon-bottom);
  width: var(--ah-hero-corner-icon-size);
  height: var(--ah-hero-corner-icon-size);
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 180ms ease;
}
.ah-hero--split .ah-hero__scroll--corner:hover .ah-hero__scroll-icon,
.ah-hero--split .ah-hero__scroll--corner:focus-visible .ah-hero__scroll-icon { transform: translateY(4px); }
.ah-hero--split .ah-hero__scroll--classic { color: var(--ah-sky, #59bce8); }
.ah-hero--split .ah-hero__scroll--classic:hover,
.ah-hero--split .ah-hero__scroll--classic:focus-visible { color: #fff; }
.ah-hero--split .ah-hero__navigation { right: 2rem; bottom: 2rem; }
.ah-hero--split-scroll-curve .ah-hero__navigation { right: calc(var(--ah-hero-corner-width) + 1.25rem); }
.ah-hero--split .ah-hero__dots { left: 2rem; bottom: 2.75rem; }
.ah-hero--split .ah-hero__dots button.is-active { background: var(--ah-hero-controls-accent); }

@media (max-width: 1024px) {
  .ah-hero--split .ah-hero__title { font-size: clamp(2.75rem, min(6.4vw, 8.25svh), 5.25rem); }
  .ah-hero--split .ah-hero__description { font-size: .95rem; }
  .ah-hero--split .ah-hero__scroll--corner { display: grid; }
}

@media (max-width: 800px) {
  .ah-hero--split {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(18rem, 42svh);
    height: auto;
    min-height: max(var(--ah-hero-min-height, 100svh), 48rem) !important;
  }
  body.admin-bar .ah-hero--split { height: auto; }
  .ah-hero--split .ah-hero__content-panel { grid-row: 1; }
  .ah-hero--split .ah-hero__media-panel { grid-row: 2; min-height: 18rem; border-start-start-radius: min(var(--ah-hero-curve), 6rem); }
  .ah-hero--split .ah-hero__content-panel-inner {
    height: auto;
    min-height: 0;
    align-items: flex-start;
    padding:
      max(var(--ah-hero-content-pad-top), calc(var(--ah-header-height, 76px) + 4rem))
      var(--ah-hero-content-pad-right)
      min(var(--ah-hero-content-pad-bottom), 2.75rem)
      var(--ah-hero-content-pad-left);
  }
  .ah-hero--split .ah-hero__content { max-width: 35rem; }
  .ah-hero--split .ah-hero__title { max-width: 10ch; font-size: clamp(3rem, 12.5vw, 5rem); }
  .ah-hero--split .ah-hero__description { max-width: 34rem; margin-top: 1.5rem; padding-top: 1rem; }
  .ah-hero--split .ah-hero__actions { align-items: stretch; flex-direction: row; }
  .ah-hero--split .ah-hero__navigation { right: 1rem; bottom: 1rem; }
  .ah-hero--split-scroll-curve .ah-hero__navigation { right: calc(var(--ah-hero-corner-width) + .75rem); }
  .ah-hero--split .ah-hero__dots { left: 1.25rem; bottom: 1.75rem; }
}

@media (max-width: 520px) {
  .ah-hero--split { grid-template-rows: auto minmax(17rem, 40svh); }
  .ah-hero--split .ah-hero__content-panel-inner {
    padding:
      max(var(--ah-hero-content-pad-top), calc(var(--ah-header-height, 76px) + 4rem))
      var(--ah-hero-content-pad-right)
      min(var(--ah-hero-content-pad-bottom), 2.25rem)
      var(--ah-hero-content-pad-left);
  }
  .ah-hero--split .ah-hero__eyebrow { margin-bottom: .75rem; }
  .ah-hero--split .ah-hero__title { font-size: clamp(2.75rem, 14vw, 4.35rem); }
  .ah-hero--split .ah-hero__description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: .9rem; }
  .ah-hero--split .ah-hero__actions { flex-direction: column; margin-top: 1.25rem; }
  .ah-hero--split .ah-hero__navigation { gap: .35rem; }
  .ah-hero--split .ah-hero__arrow,
  .ah-hero--split .ah-hero__pause { width: 36px; height: 36px; }
  .ah-hero--split .ah-hero__dots { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ah-hero--split .ah-hero__content-slide { transition: none; }
}
