/* Loaded only for the explicitly enabled standalone party booking page.
 * No viewport breakout calculations: the template removes the narrow parent instead.
 * Keep wp_head/wp_body_open/wp_footer for WordPress, consent tools and the admin bar.
 */
body.bjpb-fullwidth-page {
    margin: 0;
    padding: 0;
    min-width: 0;
}
body.bjpb-fullwidth-page #bjpb-page-content {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0;
    padding: clamp(12px, 2vw, 32px);
    --wp--style--global--content-size: 100%;
    --wp--style--global--wide-size: 100%;
}
/* A normal full-width/constrained Group around the shortcode may remain in page content. */
body.bjpb-fullwidth-page .bjpb-standalone :where(.wp-block-group, .wp-block-post-content) {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
}
body.bjpb-fullwidth-page #bjpb-portal {
    width: 100%;
    max-width: 120rem;
    margin: 0 auto;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
}
/* The two panels fill the page; keep the individual form fields readable on very wide screens. */
body.bjpb-fullwidth-page .bjpb-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: clamp(1.75rem, 2.5vw, 3rem) var(--bjpb-flow-gutter);
}
body.bjpb-fullwidth-page .bjpb-flow > * {
    width: 100%;
    max-width: 54rem;
}
body.bjpb-fullwidth-page .bjpb-story h2 {
    max-width: 560px;
}
@media (max-width: 60rem) {
    body.bjpb-fullwidth-page #bjpb-portal { grid-template-columns: 1fr; }
    body.bjpb-fullwidth-page .bjpb-flow { padding: 1.75rem var(--bjpb-flow-gutter); }
}
@media (max-width: 380px) {
    body.bjpb-fullwidth-page .bjpb-flow { padding: 1.5rem 1.125rem; }
}

/* Actual container width matters inside editor groups and at increased text size. */
@container bjpb-shell (max-width:60rem) {
  body.bjpb-fullwidth-page .bjpb-flow {padding:1.75rem var(--bjpb-flow-gutter);}
}

/* 1.5.21: screen-height-aware desktop booking layout.
 * Fill the available window using spacing and the decorative photo, not a
 * transform/zoom or a clipped fixed-height document. Longer text, errors and
 * native gateway pages still grow and scroll normally. Mobile stays unchanged.
 */
@media (min-width:60.001rem) {
  body.bjpb-fullwidth-page {
    --bjpb-screen-gap:clamp(8px, 1.6vh, 20px);
    --bjpb-admin-height:0px;
  }
  body.bjpb-fullwidth-page.admin-bar { --bjpb-admin-height:var(--wp-admin--admin-bar--height, 32px); }
  body.bjpb-fullwidth-page #bjpb-page-content:has(#bjpb-portal:not(.bjpb-payment)) {
    padding:var(--bjpb-screen-gap) clamp(12px, 1.5vw, 28px);
  }
  body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) {
    min-height:min(56rem, calc(100vh - var(--bjpb-screen-gap) - var(--bjpb-screen-gap) - var(--bjpb-admin-height)));
    min-height:min(56rem, calc(100svh - var(--bjpb-screen-gap) - var(--bjpb-screen-gap) - var(--bjpb-admin-height)));
  }
  @container bjpb-shell (min-width:60.001rem) {
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story {
      padding-top:clamp(16px, 2.5vh, 28px);
      padding-bottom:clamp(14px, 2vh, 24px);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-logo {
      max-height:clamp(3.25rem, 8vh, 5rem);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-main {
      flex:0 0 auto;padding:clamp(12px, 2vh, 22px) 0 clamp(12px, 1.8vh, 20px);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-strapline {
      font-size:clamp(2.25rem, 5.4vh, 3.25rem);
      line-height:1.06;margin:.625rem 0 .875rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-intro {
      line-height:1.5;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-price {
      margin:clamp(12px, 1.8vh, 20px) 0 .625rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-price strong {
      font-size:clamp(2.75rem, 6.3vh, 3.75rem);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-perks li {
      margin:.375rem 0;line-height:1.45;
    }
    /* The photo takes the remaining sidebar space. Only the image is cropped. */
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-placeholder,
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-venue {
      display:flex;flex:1 0 7rem;min-height:7rem;
      max-height:clamp(10rem, 30vh, 22rem);margin-bottom:.875rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-carousel,
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-photo {
      flex:1;min-height:7rem;height:auto;aspect-ratio:auto;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-story-footer {
      flex:0 0 auto;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-safer-gambling {
      margin-bottom:.375rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-flow {
      padding-top:clamp(18px, 2.8vh, 32px);
      padding-bottom:clamp(16px, 2.4vh, 28px);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress {
      margin:.875rem 0 1.125rem!important;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) legend {
      font-size:clamp(1.75rem, 3.7vh, 2.125rem);margin-bottom:.5rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-help {
      margin-bottom:1rem;line-height:1.5;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-choices {gap:.625rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-club-choice {
      min-height:5.5rem;padding:.625rem;gap:1rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-club-photo {
      flex-basis:clamp(6rem, 16vh, 9rem);width:clamp(6rem, 16vh, 9rem);
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) label:not(.bjpb-choice):not(.bjpb-check) {
      margin:.75rem 0 .375rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) input:not([type=radio]):not([type=checkbox]),
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) #bjpb-form select {
      min-height:3.125rem;padding:.6875rem .875rem;
    }
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-note {margin:.5rem 0;line-height:1.5;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-session-section {margin-top:.75rem;padding-top:.875rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-actions {margin-top:1rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-next {min-height:3.125rem;padding:.6875rem 1.25rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-footer-note {margin-top:.875rem;line-height:1.5;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-counter {margin-bottom:1rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-review {gap:.375rem 1rem;line-height:1.45;padding-bottom:.75rem;margin-bottom:.75rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-admission {line-height:1.45;padding:.625rem .875rem;margin:.625rem 0;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-admission p {margin:.375rem 0 0;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-terms-copy,
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-check {line-height:1.45;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-check {margin:.5rem 0!important;}
    /* A readable current-step label is better than seven cramped labels. */
    @container bjpb-flow (max-width:44rem) {
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress {position:relative;padding-bottom:2rem!important;}
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress li {position:static;height:5px;padding:0;}
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress span {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress li[aria-current] span {clip-path:none;left:0;top:1rem;width:100%;height:auto;max-width:100%;white-space:normal;overflow:visible;font-size:1rem;line-height:1.5;}
    }
    /* Use available horizontal space before reducing the text size. */
    @container bjpb-flow (min-width:28rem) {
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) #bjpb-session-choices {
        grid-template-columns:repeat(2,minmax(0,1fr));
      }
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) #bjpb-session-choices .bjpb-choice {
        min-height:5.5rem;padding:.875rem;gap:.75rem;
      }
    }
    @container bjpb-flow (min-width:38rem) {
      body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-review {
        grid-template-columns:minmax(5rem,max-content) minmax(0,1fr) minmax(5rem,max-content) minmax(0,1fr);
        gap:.25rem .875rem;
      }
    }
  }
}

/* Extra breathing room recovered from padding on short laptop windows.
 * Main text and input sizes remain at their readable 1.5.19 values. */
@media (min-width:60.001rem) and (max-height:720px) {
  @container bjpb-shell (min-width:60.001rem) {
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-flow {padding-top:16px;padding-bottom:14px;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-progress {margin:.625rem 0 .875rem!important;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-help {margin-bottom:.75rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-club-choice {min-height:5.25rem;padding:.5rem .625rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-club-photo {flex-basis:6rem;width:6rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) label:not(.bjpb-choice):not(.bjpb-check) {margin:.5rem 0 .25rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-actions {margin-top:.75rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-session-section {margin-top:.625rem;padding-top:.625rem;}
    body.bjpb-fullwidth-page #bjpb-portal:not(.bjpb-payment) .bjpb-footer-note {margin-top:.625rem;}
  }
}
