.bh-pier-dialog { box-sizing: border-box; width: min(96vw, 1700px); max-height: 94dvh; padding: 48px 5% 28px; border: 0; color: #405a89; background: linear-gradient(#cbd7e7, #fff); overflow: auto; }
.bh-pier-dialog::backdrop { background: rgb(15 30 49 / 75%); }
.bh-pier-dialog .bh-pier-close { position: absolute; top: 8px; right: 14px; background: transparent; color: #203963; border: 0; font: 300 38px/1 sans-serif; cursor: pointer; }
.bh-pier-images { display: flex; gap: 12px; }
.bh-pier-images img { display: block; min-width: 0; flex: 1; width: 50%; max-height: 55dvh; object-fit: cover; }
.bh-pier-images img:only-child { width: 100%; object-fit: contain; }
.bh-pier-controls { display: flex; justify-content: flex-end; gap: 12px; margin-top: 12px; }
.bh-pier-controls button { width: 48px; height: 48px; padding: 0; border-radius: 50%; border: 0; background: #cbd7e7; color: #203963; font-size: 24px; cursor: pointer; }
.bh-pier-details { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr 1.2fr; gap: 24px; margin-top: 22px; font: 300 16px/1.45 Inter, sans-serif; }
.bh-pier-details h2 { margin: 0; color: #405a89; font: 300 30px/1.1 Inter, sans-serif; }
.bh-pier-details p { margin: 0; }
.bh-pier-details ul { padding-left: 18px; margin: 0; }
.bh-pier-area { font-size: 22px; }
.bh-pier-contact { display: block; width: fit-content; margin: 28px auto 0; padding: 12px 22px; background: #203963; border-radius: 30px; color: #fff; text-align: center; font: 500 14px/1.4 Inter, sans-serif; }
.bh-pier-video { padding: 48px 18px 18px; width: min(94vw, 1200px); background: #101c2e; }
.bh-pier-video .bh-pier-close { color: #fff; }
.bh-pier-video video { display: block; width: 100%; max-height: 80dvh; }
.bh-pier-dialog button:focus-visible, .bh-pier-dialog a:focus-visible { outline: 3px solid #6499cc; outline-offset: 3px; }
html.bh-pier-modal-open { overflow: hidden; }
@media (max-width: 900px) { .bh-pier-details { grid-template-columns: 1fr 1fr; } .bh-pier-details h2 { grid-column: 1 / -1; } }
@media (max-width: 600px) { .bh-pier-dialog { padding: 44px 18px 24px; } .bh-pier-images { flex-direction: column; } .bh-pier-images img { width: 100%; max-height: none; } .bh-pier-details { grid-template-columns: 1fr; gap: 16px; } .bh-pier-details h2 { font-size: 28px; } }
/* Page-specific responsive repairs for the imported Pier House Elementor layout. */
.elementor-35050 .elementor-element.elementor-element-33f29fe { display: none !important; }
.bh-pier-register { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; color: #203963; background: #fff; font: 600 14px/1.3 Inter, sans-serif; }
.elementor-35050 #register { scroll-margin-top: 150px; }
@media (max-width: 1024px) {
  .elementor-35050 .elementor-element.elementor-element-4aceb37,
  .elementor-35050 .elementor-element.elementor-element-9bda4c7 { position: relative; min-height: 70px; padding: 12px 60px !important; flex-wrap: nowrap; align-items: center; justify-content: center; }
  .elementor-35050 .elementor-element:is(.elementor-element-e5dd5d5,.elementor-element-165ac3b) { width: 100% !important; align-items: center; justify-content: center; padding: 0 !important; }
  .elementor-35050 .elementor-element:is(.elementor-element-e93e28d,.elementor-element-6662dbe) { width: 100%; text-align: center; }
  .elementor-35050 .elementor-element:is(.elementor-element-e93e28d,.elementor-element-6662dbe) img { width: min(100%, 230px); height: auto; }
  .elementor-35050 .elementor-element:is(.elementor-element-06dd97f,.elementor-element-c6afa8b) { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 40px !important; padding: 0 !important; }
  .elementor-35050 .elementor-element.elementor-element-4d55671 { display: none; }
}
@media (max-width: 767px) {
  body.page-id-35050 { overflow-x: clip; }
  .elementor-35050 { overflow-x: clip; }
  .elementor-35050 .e-con { min-width: 0; }
  .elementor-35050 > .e-con:not(:first-child) { padding-left: 0 !important; padding-right: 0 !important; }
  .elementor-35050 .e-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .elementor-35050 .elementor-widget-heading .elementor-heading-title { overflow-wrap: normal; font-size: clamp(28px, 9vw, 40px) !important; line-height: 1.08 !important; letter-spacing: -1.5px !important; }
  .elementor-35050 .elementor-widget-text-editor { font-size: 16px; line-height: 1.55; }
  .elementor-35050 .elementor-widget-button { width: auto !important; max-width: 100%; min-width: 0; align-self: center; }
  .elementor-35050 .elementor-button { max-width: 100%; white-space: normal; line-height: 1.4; }
  .elementor-35050 .elementor-element.elementor-element-727ca59 .elementor-heading-title { font-size: clamp(48px, 15vw, 64px) !important; white-space: nowrap; }
  .elementor-35050 .elementor-element.elementor-element-2d4c18d .elementor-heading-title { font-size: 14px !important; letter-spacing: 0 !important; }
  .elementor-35050 .elementor-element.elementor-element-17eefa8 { min-height: calc(100svh - 140px); padding: 40px 24px !important; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-6939e20 { min-height: 80svh; padding: 48px 24px !important; justify-content: center; }
  .elementor-35050 .elementor-element.elementor-element-3d86f18 { padding-top: 48px; padding-bottom: 48px; gap: 40px; }
  .elementor-35050 .elementor-element:is(.elementor-element-a750d2a,.elementor-element-4ea6e83,.elementor-element-4e45d43,.elementor-element-0d364bc,.elementor-element-9b1f832,.elementor-element-e401f63,.elementor-element-4c9b5a9) { width: 100% !important; padding: 0 24px !important; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-e6ce572 { display: grid; grid-template-columns: 1fr 1fr !important; gap: 20px 12px; padding: 0 24px !important; }
  .elementor-35050 .elementor-element.elementor-element-7ffa38b { grid-column: 1 / -1; }
  .elementor-35050 .elementor-element.elementor-element-82b94c3 { grid-column: 1 / -1; text-align: right; }
  .elementor-35050 .elementor-element:is(.elementor-element-bf790f5,.elementor-element-3497404) { width: 100% !important; min-height: 260px; margin: 0 !important; background-size: cover; }
  .elementor-35050 .elementor-element.elementor-element-ddab417 { padding-top: 48px; padding-bottom: 48px; gap: 32px; }
  .elementor-35050 .elementor-element.elementor-element-b4c85df { min-height: 0; gap: 30px; }
  .elementor-35050 .elementor-element.elementor-element-bf9a12f { min-height: 360px; width: 100%; }
  .elementor-35050 .elementor-element.elementor-element-0c603a6 { padding: 40px 24px; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-10c2c55 { padding: 0 24px 32px; }
  .elementor-35050 .elementor-element.elementor-element-8296907 { min-height: 0; padding-top: 48px; padding-bottom: 48px; gap: 28px; }
  .elementor-35050 .elementor-element.elementor-element-5cf8733 { padding: 48px 24px 32px !important; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-e0a832c { min-height: 0; padding: 0 24px 48px !important; gap: 28px; }
  .elementor-35050 .elementor-element.elementor-element-d353a6e { min-height: 0; flex-direction: column; gap: 36px; }
  .elementor-35050 .elementor-element.elementor-element-d353a6e > .e-con { width: 100%; gap: 16px; }
  .elementor-35050 .elementor-element:is(.elementor-element-bf07cd0,.elementor-element-cf6eb9c,.elementor-element-6a0d2f4,.elementor-element-f43ae0b) { min-height: 0; height: min(110vw, 460px); background-position: center; background-size: cover; }
  .elementor-35050 .elementor-element:is(.elementor-element-96e8d4d,.elementor-element-e7d3741,.elementor-element-9f9b1c5,.elementor-element-c1ad0d7) { width: 100%; flex-direction: row; align-items: center; gap: 20px; }
  .elementor-35050 .elementor-element:is(.elementor-element-737d31f,.elementor-element-badaef9,.elementor-element-42f6f48,.elementor-element-f2f37fa) .elementor-heading-title { font-size: 18px !important; line-height: 1.2 !important; letter-spacing: 0 !important; }
  .elementor-35050 .elementor-element.elementor-element-19a01c6 { display: none; }
  .elementor-35050 .elementor-element:is(.elementor-element-039d0a2,.elementor-element-727eeb8,.elementor-element-ee2cbc0) { min-height: 520px; padding: 32px 24px !important; }
  .elementor-35050 .elementor-element:is(.elementor-element-10f3032,.elementor-element-e027b7c,.elementor-element-d99e6e0) { min-height: 0; padding-top: 48px; padding-bottom: 48px; gap: 32px; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .swiper-slide > .e-con { width: 100%; padding: 0 24px; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .swiper-slide { min-height: 0; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 img { height: 300px; width: 100%; object-fit: cover; }
  .elementor-35050 .elementor-element:is(.elementor-element-af5b06f,.elementor-element-a2acfa2,.elementor-element-154fbc8,.elementor-element-5af1368,.elementor-element-6991520) { margin-top: 0; }
  .elementor-35050 .elementor-element.elementor-element-6296fb2 { padding: 0 24px; }
  .elementor-35050 .elementor-element.elementor-element-0a02e62 .swiper-slide { min-height: 380px; }
  .elementor-35050 .elementor-element.elementor-element-0a02e62 .elementor-widget-text-editor { padding: 16px; font-size: 14px; }
  .elementor-35050 .elementor-element.elementor-element-babb128 .swiper-slide > .e-con { width: 100%; }
  .elementor-35050 .elementor-element.elementor-element-babb128 img { max-height: 420px; width: 100%; object-fit: contain; }
  .elementor-35050 .elementor-element:is(.elementor-element-d85ec1b,.elementor-element-b8649ff,.elementor-element-9f3d0dd,.elementor-element-4650810,.elementor-element-9e37101) { padding: 48px 24px !important; min-height: 0; gap: 28px; }
  .elementor-35050 .elementor-element.elementor-element-d85ec1b > .e-con { width: 100%; padding: 0; }
  .elementor-35050 #register { scroll-margin-top: 85px; }
  .elementor-35050 #register fieldset { max-width: 100%; }
  .elementor-35050 #register .hs-form-field { width: 100%; float: none; }
  .elementor-35050 #register .hs-input:not([type=checkbox]) { width: 100%; }
  .elementor-35050 #register .elementor-heading-title { font-size: 32px; }
  .elementor-35050 .bh-pier-revealed { animation: bh-pier-rise .7s ease-out both; }
}
@keyframes bh-pier-rise { from { opacity: .3; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .elementor-35050 .bh-pier-revealed { animation: none; } }

@media (max-width: 767px) {
  .elementor-35050 .elementor-element.elementor-element-9d1fe2a { min-height: 0; }
  .elementor-35050 .elementor-element.elementor-element-7684aa1 { position: absolute; inset: 0; height: 100%; min-height: 0; }
  .elementor-35050 .elementor-element.elementor-element-4e10c55 { margin: 0; width: 100%; }
  .elementor-35050 .elementor-element.elementor-element-a750d2a { margin: 0; }
  .elementor-35050 .elementor-element:is(.elementor-element-7ffa38b,.elementor-element-82b94c3) { padding: 0 !important; margin: 0 !important; }
  .elementor-35050 .elementor-element.elementor-element-e6ce572 { margin: 0; }
  .elementor-35050 .elementor-element.elementor-element-0a02e62 .elementor-widget-text-editor { min-height: 60px; }
}
/* Keep pricing CTA text clear of the pill edges at every screen width. */
.elementor-35050 .elementor-widget-button a.elementor-button[href="#register"] {
  box-sizing: border-box;
  max-width: 100%;
  padding: 16px 28px !important;
  white-space: normal;
  text-align: center;
}
.elementor-35050 .elementor-widget-button a.elementor-button[href="#register"] .elementor-button-text {
  min-width: 0;
  overflow-wrap: break-word;
}

@media (max-width: 767px) {
  /* Shift the photograph right so both faces remain in the mobile crop. */
  .elementor-35050 .elementor-element.elementor-element-727eeb8:not(.elementor-motion-effects-element-type-background),
  .elementor-35050 .elementor-element.elementor-element-727eeb8 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-position: 75% center !important;
  }
}

/* Mobile sections own their vertical padding; boxed inner containers must not add it again. */
@media (max-width: 767px) {
  .elementor-35050 > .e-con > .e-con-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    row-gap: 24px;
  }
  .elementor-35050 .elementor-element:is(.elementor-element-3d86f18,.elementor-element-ddab417,.elementor-element-8296907,.elementor-element-10f3032,.elementor-element-e027b7c,.elementor-element-d99e6e0,.elementor-element-dc7ec82,.elementor-element-d85ec1b,.elementor-element-b8649ff,.elementor-element-9f3d0dd,.elementor-element-4650810,.elementor-element-9e37101) {
    padding-top: 32px !important;
    padding-bottom: 32px !important;
    row-gap: 24px;
  }
  .elementor-35050 .elementor-element.elementor-element-5cf8733 { padding-top: 32px !important; padding-bottom: 24px !important; }
  .elementor-35050 .elementor-element.elementor-element-e0a832c { margin-top: 0 !important; padding-bottom: 32px !important; }
  .elementor-35050 .elementor-element.elementor-element-0c603a6 { margin-top: 0 !important; padding-top: 24px; padding-bottom: 24px; }
  .elementor-35050 .elementor-element.elementor-element-b6e7b86 { margin-top: 0; }
  .elementor-35050 .elementor-element:is(.elementor-element-9b1f832,.elementor-element-cb3a21c) > .e-con-inner { row-gap: 24px; }
  .elementor-35050 .elementor-element:is(.elementor-element-ae7d6f2,.elementor-element-5ba6113,.elementor-element-4d643ac) { margin-bottom: 0; }
  .elementor-35050 .elementor-element.elementor-element-d353a6e { margin-top: 0 !important; row-gap: 24px; }
}

/* Keep the preview behind both hero panels, including the mobile copy. */
@media (max-width: 767px) {
  .elementor-35050 .elementor-element.elementor-element-9d1fe2a { position: relative; isolation: isolate; overflow: hidden; background: #203963; }
  .elementor-35050 .elementor-element.elementor-element-7684aa1 { position: absolute !important; inset: 0 !important; width: 100%; height: 100% !important; min-height: 0; aspect-ratio: auto; z-index: 0; transform: none !important; }
  .elementor-35050 .elementor-element.elementor-element-7684aa1 .elementor-background-video-container { position: absolute; inset: 0; width: 100%; height: 100%; }
  .elementor-35050 .elementor-element.elementor-element-7684aa1 video { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover !important; object-position: center; }
  .elementor-35050 .elementor-element.elementor-element-4e10c55 { z-index: 1; background: rgb(0 0 0 / 24%); }
  .elementor-35050 .elementor-element:is(.elementor-element-17eefa8,.elementor-element-6939e20) { min-height: calc(100svh - 140px); padding: 40px 24px !important; background: transparent; }
  /* Place the attainable title over its photograph, with supporting copy below. */
  .elementor-35050 .elementor-element.elementor-element-b4c85df { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-bf9a12f { grid-area: 1 / 1; min-height: 480px; }
  .elementor-35050 .elementor-element.elementor-element-3d32cd3 { grid-area: 1 / 1; align-self: stretch; z-index: 2; justify-content: center; padding: 32px 24px !important; background: linear-gradient(90deg,rgb(0 0 0 / 40%),transparent); }
  .elementor-35050 .elementor-element.elementor-element-4516d3b .elementor-heading-title { color: #fff !important; text-shadow: 0 1px 8px rgb(0 0 0 / 20%); }
  .elementor-35050 .elementor-element.elementor-element-70ca4cf { grid-area: 2 / 1; padding: 0 24px; }
  /* Increase parallax titles by 12.5% without scaling the surrounding layout. */
  .elementor-35050 .elementor-element:is(.elementor-element-4516d3b,.elementor-element-8e4f657,.elementor-element-cab7e38,.elementor-element-7cd467d) .elementor-heading-title { font-size: clamp(31.5px,10.125vw,45px) !important; }
  /* Each interior slide has a main image, copy, then its secondary image. */
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .swiper-slide { flex-direction: column; align-items: stretch; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .swiper-slide > .e-con { width: 100% !important; max-width: 100%; margin: 0; padding: 0 24px; gap: 24px; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .swiper-slide > .e-con > .e-con { width: 100%; margin-left: 0; margin-right: 0; }
  .elementor-35050 .elementor-element.elementor-element-15dc5b4 .elementor-widget-image { width: 100%; align-self: stretch; }
  .elementor-35050 .elementor-element:is(.elementor-element-77c7de6,.elementor-element-68836ca,.elementor-element-27af8dc,.elementor-element-877bf2e,.elementor-element-4755417) { display: block !important; order: 3; }
  .elementor-35050 .elementor-element:is(.elementor-element-af5b06f,.elementor-element-a2acfa2,.elementor-element-154fbc8,.elementor-element-5af1368,.elementor-element-6991520) { display: none; }
}
/* Swipe is an introductory gesture hint, not a heading or permanent control. */
.elementor-35050 .bh-pier-swipe-hint { width: 88px !important; height: 88px !important; min-height: 88px !important; flex: 0 0 88px; padding: 0 !important; display: flex; align-items: center; justify-content: center; pointer-events: none; transition: opacity .25s ease; }
.elementor-35050 .bh-pier-swipe-hint .elementor-widget-heading { width: auto; margin: 0; }
.elementor-35050 .bh-pier-swipe-hint .elementor-heading-title { font: 400 12px/1 Inter,sans-serif !important; letter-spacing: 0 !important; text-align: center; }
.elementor-35050 .bh-pier-swipe-hint.bh-pier-hint-active { animation: bh-pier-swipe 1.4s ease-in-out 2; }
.elementor-35050 .bh-pier-swipe-hint.bh-pier-hint-dismissed { opacity: 0 !important; visibility: hidden; animation: none; }
@keyframes bh-pier-swipe { 0%,100% { transform: translateX(0); } 50% { transform: translateX(12px); } }
@media (prefers-reduced-motion: reduce) { .elementor-35050 .bh-pier-swipe-hint.bh-pier-hint-active { animation: none; } }
