/* ALTERRA VR — BIRTHDAY — RESPONSIVE V1
 * Applies ONLY at 1100px and below.
 * Desktop >=1101px remains FROZEN; original CSS, JS and markup preserved.
 * Fluid layout, no device-specific duplicate pages.
 */

@media (max-width:1100px) {
  :root { --bp-fluid-pad: clamp(16px,3.1vw,30px); }
  html { scroll-padding-top:76px; }
  body { min-width:0; }
  .bp-header { padding-inline:var(--bp-fluid-pad); }
  .bp-mobile-menu { max-height:calc(100dvh - 68px); overflow-y:auto; overscroll-behavior:contain; }
  .bp-header a, .bp-mobile-menu a, .bp-btn, .bp-format-action, .bp-location-actions a,
  .bp-location-ratings a, .bp-proof-live-rating, .bp-proof-live-intro-actions a,
  .bp-proof-live-actions a { -webkit-tap-highlight-color:transparent; }

  /* 00 — Hero. Fluid typography, preserve approved desktop artwork. */
  .bp-hero { min-height:clamp(730px,85vw,870px); padding:112px var(--bp-fluid-pad) 50px; }
  .bp-hero-content { width:min(100%,730px); min-width:0; }
  .bp-hero h1 { font-size:clamp(38px,6vw,65px)!important; line-height:1.01!important; max-width:100%; }
  .bp-hero h1 span { white-space:normal!important; overflow-wrap:normal; }
  .bp-hero-lead { font-size:clamp(15px,1.8vw,17px); }
  .bp-hero-facts { max-width:670px; }
  .bp-hero-media { left:22%; }

  /* A consistent fluid gutter. These containers need to shrink with viewport. */
  .bp-intro-v2,.bp-location,.bp-faq,.bp-contact { width:calc(100% - 2 * var(--bp-fluid-pad)); min-width:0; }
  .bp-formats { padding-left:var(--bp-fluid-pad); padding-right:var(--bp-fluid-pad); }
  .bp-details-v1 { padding-left:var(--bp-fluid-pad)!important; padding-right:var(--bp-fluid-pad)!important; }
  .bp-proof-live { padding-left:var(--bp-fluid-pad); padding-right:var(--bp-fluid-pad); }
  .bp-risk.bp-risk-v1 { padding-left:var(--bp-fluid-pad); padding-right:var(--bp-fluid-pad); }
  .bp-intro-v2,.bp-faq { padding-top:clamp(60px,7.4vw,86px);padding-bottom:clamp(60px,7.4vw,86px); }
  .bp-section-head h2,.bp-details-v1 .bp-section-head h2,
  .bp-contact h2 { font-size:clamp(34px,6vw,65px); overflow-wrap:normal; }

  /* 01 — Benefits: cards flex without fixed-width overflows. */
  .bp-intro-v2-head { grid-template-columns:minmax(0,1fr); }
  .bp-intro-grid-v2 { grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,18px); }
  .bp-feature-v2 { min-width:0; }
  .bp-feature-v2 h3 { overflow-wrap:break-word; }

  /* 02 — Packages: stack horizontally arranged card sections in existing cards. */
  .bp-formats-top { grid-template-columns:minmax(0,1fr); }
  .bp-format-grid { grid-template-columns:minmax(0,1fr);max-width:850px;margin-left:auto;margin-right:auto; }
  .bp-format-card { min-width:0;grid-template-columns:minmax(0,43%) minmax(0,57%); }
  .bp-format-media { min-width:0; }
  .bp-format-body { min-width:0; }
  .bp-format-action { text-align:center; }
  .bp-budget-note { grid-template-columns:minmax(0,1fr);gap:10px; }

  /* 03 — How: text and real interactive icon grid remain HTML. */
  .bp-how-v4 { grid-template-columns:minmax(0,1fr); }
  .bp-how-v4-left { padding-inline:var(--bp-fluid-pad); }
  .bp-how-v4-head,.bp-how-v4-grid { max-width:100%; }
  .bp-how-v4-head h2 { font-size:clamp(34px,5.5vw,60px); }
  .bp-how-v4-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-how-v4-item { min-width:0;grid-template-columns:clamp(50px,6vw,68px) minmax(0,1fr);gap:12px; }
  .bp-how-v4-icon { max-width:100%; }
  .bp-how-v4-scene { min-height:clamp(350px,52vw,540px); }

  /* 04 — Live real photo gallery, ratings and reviews. */
  .bp-proof-live-head { grid-template-columns:minmax(0,1fr);min-height:auto; }
  .bp-proof-live-head>div:first-child { max-width:100%; }
  .bp-proof-live-head h2 { font-size:clamp(39px,5.5vw,61px);overflow-wrap:normal; }
  .bp-proof-live-head .bp-proof-live-lead { max-width:740px; }
  .bp-proof-live-note { display:none; }
  .bp-proof-live-gallery { grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,1.4vw,14px); }
  .bp-proof-live-photo { min-width:0; }
  .bp-proof-live-trust { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-proof-live-reviewintro { grid-column:1/-1; }
  .bp-proof-live-reviews { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-proof-live-review,.bp-proof-live-review.wide { grid-column:auto;min-width:0;min-height:0; }
  .bp-proof-live-review blockquote { overflow-wrap:break-word; }

  /* 05 — Location & ratings. */
  .bp-location { grid-template-columns:minmax(0,1fr);padding-top:18px;padding-bottom:clamp(55px,7.5vw,84px); }
  .bp-location-map,.bp-location-trust { min-width:0; }
  .bp-location h2 { font-size:clamp(36px,5.9vw,65px);overflow-wrap:normal; }
  .bp-location-actions { flex-wrap:wrap; }
  .bp-location-trust h3 { font-size:clamp(24px,3.5vw,31px); }

  /* 06 — Party details (approved picture is not replaced). */
  .bp-details-v1 .bp-section-head { max-width:100%; }
  .bp-details-v1 .bp-section-head h2 { max-width:100%; }
  .bp-details-v1 .bp-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,16px); }
  .bp-details-v1 .bp-detail { min-width:0; }

  /* 07 — First VR: image and copy become a fluid section. */
  .bp-risk-v1 .bp-risk-inner { grid-template-columns:repeat(2,minmax(0,1fr));min-height:0; }
  .bp-risk-v1 .bp-risk-visual { min-height:clamp(440px,55vw,580px); }
  .bp-risk-v1 .bp-risk-copy { min-width:0;padding:clamp(22px,3vw,40px); }
  .bp-risk-v1 .bp-risk-copy h2 { font-size:clamp(31px,4.5vw,53px);overflow-wrap:normal; }
  .bp-risk-v1 .bp-risk-check { grid-template-columns:33px minmax(0,1fr); }

  /* 08, 09 — FAQ and booking CTA. */
  .bp-faq summary { overflow-wrap:break-word; }
  .bp-contact { grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,44px);padding:clamp(28px,5vw,48px); }
  .bp-contact-copy,.bp-contact-actions { min-width:0; }
  .bp-contact-actions { width:100%;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-footer { grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px; }
}

/* Between compact tablets and phones: let contents decide the breakpoints. */
@media (max-width:760px) {
  :root { --bp-fluid-pad:clamp(16px,4vw,25px); }
  .bp-hero { display:block;min-height:0;padding:clamp(345px,70vw,505px) var(--bp-fluid-pad) 42px; }
  .bp-hero-media { inset:0 0 auto;height:clamp(420px,75vw,590px); }
  .bp-hero-media::before { background:linear-gradient(180deg,rgba(2,11,19,.02) 0%,rgba(2,11,19,.06) 43%,rgba(2,11,19,.75) 78%,#020b13 100%)!important; }
  .bp-hero-shade { background:linear-gradient(180deg,rgba(2,11,19,.12) 0%,rgba(2,11,19,.12) 29%,rgba(2,11,19,.72) 55%,#020b13 79%)!important; }
  .bp-hero-content { position:relative;width:100%; }
  .bp-hero h1 { font-size:clamp(32px,7.8vw,53px)!important;line-height:1.02!important; }
  .bp-hero h1 span { white-space:normal!important; }
  .bp-hero-lead { max-width:560px; }
  .bp-hero-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-hero .bp-btn { width:100%;min-width:0;white-space:normal;text-align:center; }
  .bp-hero-facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .bp-hero-facts div { padding:12px; border-right:1px solid var(--line);border-bottom:0; }
  .bp-hero-facts div:last-child { border-right:0; }

  .bp-intro-grid-v2 { grid-template-columns:minmax(0,1fr); }
  .bp-feature-v2:last-child { display:block;grid-column:auto; }
  .bp-feature-v2:last-child .bp-feature-v2-media { height:auto;min-height:0;aspect-ratio:1.48;border-right:0;border-bottom:1px solid rgba(72,225,247,.2); }
  .bp-feature-v2-media { aspect-ratio:1.55; }

  .bp-format-card { display:block; }
  .bp-format-media { height:auto;min-height:0;aspect-ratio:1.6; }
  .bp-format-body { min-height:0;padding:clamp(18px,3.5vw,24px); }
  .bp-format-card ul { margin-bottom:30px; }
  .bp-format-action { margin-top:24px; }

  .bp-how-v4-grid { grid-template-columns:minmax(0,1fr); }
  .bp-how-v4-scene { min-height:clamp(290px,61vw,430px); }

  .bp-proof-live-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-proof-live-reviews { grid-template-columns:minmax(0,1fr); }
  .bp-proof-live-review,.bp-proof-live-review.wide { grid-column:auto;min-height:0; }
  .bp-proof-live-trust { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-proof-live-reviewintro { grid-column:1/-1; }

  .bp-location-map,.bp-location-trust { padding:clamp(20px,4vw,30px); }
  .bp-details-v1 .bp-detail-grid { grid-template-columns:minmax(0,1fr); }
  .bp-details-v1::after { width:100%;opacity:.39; }

  .bp-risk-v1 .bp-risk-inner { grid-template-columns:minmax(0,1fr); }
  .bp-risk-v1 .bp-risk-visual { height:clamp(300px,65vw,450px);min-height:0; }
  .bp-risk-v1 .bp-risk-copy { padding:clamp(22px,5vw,36px); }
  .bp-risk-v1 .bp-risk-copy h2 { font-size:clamp(33px,6.5vw,51px); }

  .bp-contact-actions { grid-template-columns:minmax(0,1fr); }
}

/* Phone-first details for narrow displays 320–520px. */
@media (max-width:520px) {
  :root { --bp-fluid-pad:16px; }
  .bp-header { height:64px;padding-inline:16px;gap:12px; }
  .bp-mobile-menu { top:64px;max-height:calc(100dvh - 64px); }
  .bp-brand-name { font-size:14px; }
  .bp-brand-mark { width:33px;height:33px;flex:none; }
  .bp-menu-btn { flex:none; }
  .bp-kicker { font-size:10px;letter-spacing:.13em;line-height:1.5; }
  .bp-hero { padding:clamp(310px,95vw,410px) 16px 40px; }
  .bp-hero-media { height:clamp(410px,120vw,520px); }
  .bp-hero-media img { object-position:60% center; }
  .bp-hero h1 { font-size:clamp(28px,8.35vw,42px)!important;letter-spacing:-.042em!important;line-height:1.03!important; }
  .bp-hero .bp-kicker { font-size:9px; }
  .bp-hero-lead { font-size:14px;line-height:1.5; }
  .bp-hero-actions { grid-template-columns:minmax(0,1fr); }
  .bp-hero .bp-btn { min-height:50px; }
  .bp-hero-facts { grid-template-columns:minmax(0,1fr);margin-top:18px; }
  .bp-hero-facts div { padding:11px 14px;border-bottom:1px solid var(--line);border-right:0; }
  .bp-hero-facts div:last-child { border:0; }
  .bp-hero-facts b { font-size:14px; }
  .bp-hero-facts span { font-size:11px; }

  .bp-intro-v2,.bp-faq { padding-block:56px; }
  .bp-section-head h2,.bp-intro-v2 .bp-section-head h2,
  .bp-details-v1 .bp-section-head h2,.bp-contact h2 { font-size:clamp(30px,8.5vw,41px);line-height:1.01;letter-spacing:-.043em; }
  .bp-intro-v2-lead { font-size:14px; }
  .bp-feature-v2-body { padding:20px; }
  .bp-feature-v2 h3 { font-size:22px; }

  .bp-formats { padding:60px 16px; }
  .bp-format-grid { gap:16px; }
  .bp-format-media { aspect-ratio:1.5; }
  .bp-price { font-size:clamp(35px,10vw,43px); }
  .bp-popular { font-size:9px; }
  .bp-budget-note { padding:18px; }

  .bp-how-v4-left { padding:53px 16px 28px; }
  .bp-how-v4-head h2 { font-size:clamp(32px,8vw,41px); }
  .bp-how-v4-item { grid-template-columns:54px minmax(0,1fr);gap:13px; }
  .bp-how-v4-scene { min-height:300px; }

  .bp-proof-live { padding:52px 16px 58px; }
  .bp-proof-live-head { margin-bottom:24px; }
  .bp-proof-live-head h2 { font-size:clamp(30px,8.2vw,43px);line-height:.99; }
  .bp-proof-live-lead { font-size:14px; }
  .bp-proof-live-gallery { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
  .bp-proof-live-photo { aspect-ratio:1.0; }
  .bp-proof-live-gallery .bp-proof-live-photo:first-child { grid-column:1/-1;aspect-ratio:1.75; }
  .bp-proof-live-trust { grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }
  .bp-proof-live-rating { min-height:120px;padding:12px; }
  .bp-proof-live-rating-title { font-size:11px; }
  .bp-proof-live-score { font-size:29px; }
  .bp-proof-live-reviewintro { grid-column:1/-1;padding:18px 62px 18px 16px; }
  .bp-proof-live-reviewintro h3 { font-size:17px!important; }
  .bp-proof-live-reviewintro > div:first-child > p { font-size:12px!important; }
  .bp-proof-live-intro-actions { column-gap:12px;row-gap:8px; }
  .bp-proof-live-intro-actions a { font-size:12px!important; }
  .bp-proof-live-bubble { right:12px;width:40px;height:36px;font-size:18px; }
  .bp-proof-live-reviews { grid-template-columns:minmax(0,1fr); }
  .bp-proof-live-reviewtop h3 { font-size:14px!important; }
  .bp-proof-live-review blockquote { font-size:12px!important;line-height:1.55!important; }
  .bp-proof-live-actions { display:grid;grid-template-columns:minmax(0,1fr); }
  .bp-proof-live-actions .bp-btn { width:100%; }

  .bp-location { gap:12px; }
  .bp-location-map,.bp-location-trust { padding:24px 18px; }
  .bp-location h2 { font-size:clamp(30px,8.5vw,42px); }
  .bp-location h2 span { overflow-wrap:anywhere; }
  .bp-location-trust h3 { font-size:23px; }
  .bp-location-ratings { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .bp-location-ratings a { min-width:0;padding:13px; }
  .bp-location-actions { display:grid; }
  .bp-location-actions a { justify-content:center;white-space:normal;text-align:center; }

  .bp-details-v1 { padding-block:55px!important; }
  .bp-details-v1 .bp-details-lead { font-size:14px; }
  .bp-details-v1 .bp-detail-grid { margin-top:28px; }
  .bp-details-v1 .bp-detail { min-height:0;padding:22px; }
  .bp-details-v1 .bp-detail h3 { font-size:20px; }
  .bp-details-v1 .bp-detail p { font-size:14px; }

  .bp-risk.bp-risk-v1 { padding-top:55px;padding-bottom:55px; }
  .bp-risk-v1 .bp-risk-visual { height:310px; }
  .bp-risk-v1 .bp-risk-copy { padding:25px 18px 31px; }
  .bp-risk-v1 .bp-risk-copy h2 { font-size:clamp(30px,8.1vw,41px);overflow-wrap:anywhere; }
  .bp-risk-v1 .bp-risk-copy .bp-risk-lead { font-size:14px; }
  .bp-risk-v1 .bp-risk-check { font-size:13px;grid-template-columns:33px minmax(0,1fr); }

  .bp-faq summary { font-size:15px;line-height:1.4;padding:19px 38px 19px 0; }
  .bp-faq details p { padding:0 8px 21px 0; }
  .bp-contact { margin-bottom:45px;padding:29px 20px; }
  .bp-contact h2 { font-size:clamp(29px,8.2vw,42px);overflow-wrap:anywhere; }
  .bp-contact-actions .bp-btn { width:100%;text-align:center; }
  .bp-footer { grid-template-columns:minmax(0,1fr);padding:28px 16px; }
}

/* Small-screen edge case: prevent overly-wide decorative text without scaling desktop. */
@media (max-width:360px) {
  .bp-hero h1 { font-size:28px!important; }
  .bp-hero h1 span { font-size:.92em; }
  .bp-proof-live-head h2 { font-size:29px; }
  .bp-proof-live-reviewintro { padding-right:16px; }
  .bp-proof-live-bubble { display:none; }
  .bp-location h2 { font-size:29px; }
  .bp-risk-v1 .bp-risk-copy h2 { font-size:30px; }
}
