/* Public subpages only. Shared geometry; no booking logic or content changes.
   Important geometry rules intentionally supersede older per-template breakpoints. */
:root {
    --sub-width:min(1240px, calc(100vw - 64px));
    --sub-left:calc((100vw - var(--sub-width)) / 2);
    --sub-right:calc(100vw - var(--sub-left) - var(--sub-width));
    --sub-tabs-gap:28px;
    --sub-content-gap:48px;
    --sub-section-gap:80px;
}
@media (min-width:1181px) {
    :root {
        /* Quickbar: 22px edge + 94px width + at least 24px clearance. */
        --sub-width:min(1240px, calc(100vw - 188px));
        --sub-left:min(calc((100vw - var(--sub-width)) / 2), calc(100vw - 140px - var(--sub-width)));
    }
}
@media (max-width:767px) {
    :root {
        --sub-width:calc(100vw - 40px);
        --sub-left:20px;
        --sub-tabs-gap:20px;
        --sub-content-gap:32px;
        --sub-section-gap:48px;
    }
}

/* One viewport-based grid across heroes, navigation and content wrappers. */
body :is(.v2-medical .v2m-wide,
    .visit-page > .visit-wide, .team-page > .team-wide,
    .equipment-page .equipment-wide,
    .medical-index-page > .medical-guide-nav,
    .medical-index-page > .medical-search, .medical-index-page > .medical-index-grid,
    .patient-guide > .pg-page-nav,
    .renewal-board-main .renewal-board-content) {
    box-sizing:border-box;
    width:var(--sub-width)!important;
    max-width:none!important;
    margin-left:var(--sub-left)!important;
    margin-right:var(--sub-right)!important;
}
/* Nested boxes inherit their parent's grid instead of applying the gutter twice. */
body .equipment-page .equipment-review .v2m-medical-review {
    width:100%!important; margin-left:0!important; margin-right:0!important;
}
body :is(.medical-index-hero, .renewal-board-main .renewal-board-hero) {
    box-sizing:border-box;
    padding-left:var(--sub-left)!important;
    padding-right:var(--sub-right)!important;
}
body :is(.medical-index-hero, .renewal-board-main .renewal-board-hero) > div {
    width:100%; min-width:0; max-width:none;
}
body .v2-medical .v2m-hero-copy { padding-left:var(--sub-left)!important; }
body .medical-index-page .medical-cta-band {
    padding-left:var(--sub-left)!important; padding-right:var(--sub-right)!important;
}

/* Patient-guide family: remove first-item margins, not margins inside forms/cards. */
body :is(.patient-guide > .pg-page-nav, .medical-index-page > .medical-guide-nav) {
    margin-top:var(--sub-tabs-gap)!important; margin-bottom:0!important;
}
body .renewal-reserve-page .reserve-guide-nav-wrap { padding-top:var(--sub-tabs-gap)!important; }
body :is(.patient-guide > .pg-page-nav + .visit-wide,
    .medical-index-page .medical-guide-nav + .medical-search,
    .renewal-reserve-page .reserve-guide-nav-wrap + .renewal-board-shell) {
    padding-top:var(--sub-content-gap)!important;
}
body .patient-guide > .visit-wide > :first-child,
body .renewal-reserve-page .renewal-board-shell > .renewal-board-content > :first-child {
    margin-top:0!important;
}
body .renewal-reserve-page .reserve-form-heading:not(:first-child) { margin-top:var(--sub-section-gap)!important; }
body .patient-guide .visit-section { padding-top:var(--sub-section-gap)!important; }

/* Clinical pages: retain full-bleed colour bands and the existing inner grids. */
body .v2-medical .v2m-local-nav { margin-top:var(--sub-tabs-gap)!important; }
body .v2-medical .v2m-local-nav .v2m-wide { padding-left:0!important; padding-right:0!important; }
body .v2-medical .v2m-local-nav .v2m-wide > div { padding-right:0!important; }
body .v2-medical .v2m-opening {
    padding-top:var(--sub-content-gap)!important; padding-bottom:var(--sub-section-gap)!important;
}
body .v2-medical .v2m-section-index > span { flex-shrink:0; }
body .v2-medical .v2m-section-index > p { word-break:keep-all; overflow-wrap:normal; }
body .v2-medical :is(.v2m-symptom-grid, .v2m-conditions, .v2m-process, .v2m-related) {
    padding-top:var(--sub-section-gap)!important; padding-bottom:var(--sub-section-gap)!important;
}
body .v2-medical .v2m-symptom-grid { min-height:0; }
body .v2-medical .v2m-faq { padding-top:var(--sub-section-gap)!important; padding-bottom:0!important; }
body .v2-medical .v2m-content > .v2m-medical-review {
    margin-top:var(--sub-content-gap)!important; margin-bottom:var(--sub-content-gap)!important;
    padding-right:28px!important;
}
body .v2-medical .v2m-disclaimer {
    margin-top:var(--sub-content-gap)!important; margin-bottom:var(--sub-content-gap)!important;
}
body .v2-medical .v2m-cta > .v2m-wide {
    min-height:0; padding-top:var(--sub-content-gap)!important; padding-bottom:var(--sub-content-gap)!important;
}

/* Hospital information and equipment. */
body .visit-page .hospital-content { padding-top:var(--sub-content-gap)!important; }
body .floor-page .hospital-content { padding-top:var(--sub-tabs-gap)!important; }
body .floor-page .floor-panel { margin-top:var(--sub-content-gap)!important; }
body .visit-page .visit-section { padding-top:var(--sub-section-gap)!important; }
body .visit-page .visit-section-nav + .visit-section { padding-top:var(--sub-content-gap)!important; }
body .equipment-page .equipment-intro {
    padding-top:var(--sub-tabs-gap)!important; padding-bottom:var(--sub-content-gap)!important;
}
body .equipment-page .equipment-nav { margin-top:0!important; margin-bottom:0!important; }
body .equipment-page :is(.equipment-group, .equipment-faq) { padding-top:var(--sub-section-gap)!important; }
body .equipment-page .equipment-review { margin-top:var(--sub-content-gap)!important; }
body .equipment-page .equipment-review .v2m-medical-review { margin-top:0!important; margin-bottom:0!important; }
body .equipment-page .equipment-contact { margin-top:var(--sub-content-gap)!important; }

/* Doctor directory and profiles: tabs remain horizontally scrollable on phones. */
body .team-page .team-departments { margin-top:var(--sub-tabs-gap)!important; }
body .team-page .team-group { padding-top:var(--sub-section-gap)!important; }
body .team-page .team-departments + .team-group { padding-top:var(--sub-content-gap)!important; }
body .team-page .team-switcher { margin-top:var(--sub-tabs-gap)!important; margin-bottom:var(--sub-content-gap)!important; }
body .team-page .team-history { margin-top:var(--sub-section-gap)!important; }
body :is(.visit-contact, .team-contact) { margin-top:var(--sub-content-gap)!important; }

/* Board tabs use the same grid. Small protected-post forms keep their own width. */
body .renewal-community-page .renewal-board-shell { padding-top:var(--sub-tabs-gap)!important; }
body .renewal-community-page .community-nav { margin-top:0!important; margin-bottom:var(--sub-content-gap)!important; }
body .medical-index-page #medical-departments { padding-top:var(--sub-section-gap)!important; }
body .medical-index-page .v2m-medical-review { margin-top:var(--sub-content-gap)!important; padding-right:28px!important; }
body .clinic-policy {
    box-sizing:border-box; width:var(--sub-width)!important; max-width:none!important;
    margin-left:var(--sub-left)!important; margin-right:var(--sub-right)!important;
    padding-left:0!important; padding-right:0!important; padding-top:var(--sub-content-gap)!important;
}
@media (max-width:767px) {
    body .v2-medical .v2m-content > .v2m-medical-review,
    body .medical-index-page .v2m-medical-review { padding-right:20px!important; }
}
