/* Laptop: preserve the two-panel strip with compact spacing. */
@media (max-width: 1150px) {
    .main-nav { padding-inline: 26px; width:450.8125px; }
    .main-nav ul { gap: 0; }
    .camp-copy { display: block; }
    .cta article { padding-left: 3vw; }
    .cta .cta-camp { padding-left:6vw; }
    .cta-camp { flex-wrap: wrap; }
    .cta-camp .button { margin-left: auto; }
    .map-label { display: none; }
}
/* Tablet: keep the boxer below the top copy and use the existing mobile menu. */
@media (max-width: 900px) {
    .site-header { align-items: center; }
    .brand-logo { width: 96px; height: 96px; }
    .menu-toggle { display: flex; align-self:flex-start; margin-top:11px; align-items: center; gap: 14px; background: #fff; border: 1px solid #ddd; padding: 12px; cursor: pointer; }
    .main-nav { display: none; position: absolute; top: 82px; right: 0; width: 260px; margin: 0; background: #fff; padding: 12px 24px; }
    .main-nav::before { display: none; }
    .main-nav.is-open { display: block; }
    .main-nav ul { display: block; width:auto; margin:0; }
    .main-nav li { width:auto; }
    .main-nav li::before { display:none; }
    .main-nav a { position:static; transform:none; width:auto; padding:14px 0; font-size:var(--bar-font-size); line-height:24px; }
    body.home #site-content { grid-template-rows: minmax(650px, 1fr) auto; }
    .hero { min-height: 650px; }
    .hero-copy { padding-top: 125px; width: 75%; }
    .hero-copy h1 { font-size: 54px; }
    .hero-description { max-width: 340px; }
    .hero-athlete { width: 87%; height: 59%; right: -18%; bottom: 12px; }
    .cta { grid-template-columns: 1fr 1fr; min-height: 155.09375px; }
    .cta article { flex-wrap: wrap; padding: 16px; }
    .cta .cta-camp { row-gap: calc(18px - (28px - 21px) * 1.1); }
    .cta-location .button { margin-left: 0; }
    .location-pin { font-size: 34px; }
    .cta h2 { font-size:var(--bar-font-size); }
}
/* Phone: content sets the page height; scrolling is deliberate. */
@media (max-width: 600px) {
    body.home #site-content { display: block; min-height: 100svh; }
    .container { width: calc(100% - 36px); }
    .site-header { top:calc(12px + var(--admin-bar-height)); align-items:center; gap:14px; }
    .site-header.container { --header-width:calc(100vw - 36px); }
    .brand { gap: 7px; }
    .brand-logo { width:72px; height:72px; }
    .menu-toggle { font-size:12px; align-self:center; margin:0; padding:9px; width:38px; height:38px; justify-content:center; gap:0; }
    .menu-label { display:none; }
    .menu-bars { display:block; width:18px; height:14px; font-size:0; background:linear-gradient(currentColor,currentColor) top/100% 2px no-repeat,linear-gradient(currentColor,currentColor) center/100% 2px no-repeat,linear-gradient(currentColor,currentColor) bottom/100% 2px no-repeat; }
    .hero { min-height: 0; }
    .hero-content { display: block; padding-top: 105px; }
    .hero-copy {
        padding-top: 0; padding-bottom: 6px; width: 100%;
        --title-size: clamp(34px, 10.2vw, 48px);
        /* Share the extra title height between two gaps, keeping the boxer in place. */
        --title-gap-adjustment: calc((var(--title-size) - clamp(34px, 8.6vw, 48px)) * 1.04);
    }
    .eyebrow { font-size: 10px; letter-spacing: 2px; gap: 10px; }
    .eyebrow span { width: 45px; }
    .hero-copy h1 { font-size: var(--title-size); letter-spacing: -.8px; line-height: 1.04; margin-bottom: calc(20px - var(--title-gap-adjustment)); }
    .hero-description { font-size: 14px; max-width: 100%; line-height: 1.4; margin-bottom: calc(22px - var(--title-gap-adjustment)); }
    .hero-athlete { position: relative; right: auto; bottom: auto; width: 100%; height: 390px; margin-top: 16px; object-fit: cover; object-position: center bottom; }
    .hero-background { object-position: 35% center; }
    .hero::after { background: radial-gradient(ellipse 90% 44% at 30% 23%, #ffffffe6, #ffffffa3 38%, transparent 85%); }
    .cta { grid-template-columns: 1fr; min-height: 0; }
    .cta article { min-height: 110px; gap: 14px; }
    .cta .cta-camp { padding: 18px; row-gap: 18px; }
    .cta-camp::after { display:none; }
    .camp-copy { display: block; }
    .cta-camp .button { margin-left: auto; }
    .cta .cta-location { padding:8px 18px; display:grid; grid-template-columns:22px 1fr; gap:4px 14px; }
    .cta h2 { font-size:var(--bar-font-size); }

    .cta-location .button { margin-left:auto; grid-column:2; }
    .main-nav { top:76px; }
    .page-content { padding-top: 110px; }
}
@media (max-width: 782px) { body.admin-bar { --admin-bar-height: 46px; } }
@media (prefers-reduced-motion: no-preference) { .button { transition: background .15s; } }

/* Home page phone layout: preserve tablet, desktop and all other pages. */
@media (max-width:600px) {
    body.home .mobile-club-label { display:block; margin-right:auto; text-align:left; font-size:12px; font-weight:700; line-height:1.45; letter-spacing:1.1px; white-space:nowrap; }
    body.home .hero { height:690px; background:#f4eee6; }
    body.home .hero-content { padding-top:106px; }
    body.home .hero-copy { padding:0; }
    body.home .hero-copy .eyebrow { display:none; }
    body.home .hero-copy h1 { font-family:Barlow,'Arial Narrow',Impact,'Arial Black',sans-serif; font-size:32px; font-weight:700; line-height:1.08; letter-spacing:-.4px; margin-bottom:14px; }
    body.home .hero-description { margin-bottom:16px; font-size:13px; line-height:1.45; }
    body.home .hero-background[src*='hero-background-final.webp'] { top:280px; bottom:0; height:410px; object-fit:cover; object-position:82% center; }
    body.home .hero::after { background:linear-gradient(#f4eee6 0 270px,#f4eee600 330px); }
    body.home .hero-athlete { display:none; }
    body.home #site-content .button-primary { width:180px; height:36px; min-height:36px; padding:0 16px; font-family:Barlow,Arial,Helvetica,sans-serif; font-size:12px; font-weight:400; line-height:1; justify-content:center; align-items:center; white-space:nowrap; background:var(--accent); }
    body.home .cta .cta-camp { min-height:0; padding:12px 18px; gap:10px; align-items:center; }
    body.home .cta .cta-location { min-height:0; padding:12px 18px; gap:8px 14px; }
    body.home .cta h2 { font-size:18px; }
    body.home .cta p { font-size:11px; }
}
/* Home page tablet layout only; phone and desktop rules remain intact. */
@media (min-width:601px) and (max-width:900px) {
    body.home .mobile-club-label { display:block; position:absolute; left:112px; top:24px; text-align:left; font-size:12px; font-weight:700; line-height:1.45; letter-spacing:1.1px; white-space:nowrap; }
    body.home .hero-copy .eyebrow { display:none; }
    body.home .hero-copy { width:46%; }
    body.home .hero-copy h1 { font-size:42px; line-height:1.08; white-space:nowrap; }
    body.home .hero-description { max-width:300px; }
    body.home #site-content .button-primary { width:190px; height:40px; min-height:40px; padding:0 18px; font-family:Barlow,Arial,Helvetica,sans-serif; font-size:13px; font-weight:400; line-height:1; justify-content:center; align-items:center; white-space:nowrap; background:var(--accent); }
    body.home .cta .cta-camp { display:grid; grid-template-columns:1fr; grid-template-rows:41px 40px; align-content:center; justify-items:center; gap:16px; padding:16px; }
    body.home .cta-camp::after { display:none; }
    body.home .cta .cta-camp .button { margin:0; justify-self:center; }
    body.home .cta .cta-location { display:grid; grid-template-columns:22px max-content; grid-template-rows:41px 40px; align-content:center; justify-content:center; column-gap:14px; row-gap:16px; padding:16px; }
    body.home .cta-location .location-pin { align-self:center; }
    body.home .cta-location > div { align-self:center; }
    body.home .cta .cta-location .button { grid-column:1 / -1; justify-self:center; margin:0; }
}
