/* Synergy CT Surgery - Custom Styles */

:root {
    /* Synergy Brand Colors */
    --synergy-red: #d41b24;
    --synergy-dk-blue: #00529f;
    --synergy-white: #FFFFFF;
    --synergy-lt-blue: #88b0e2;
    --synergy-grey: #445760;
}    
    
html {
    scrollbar-width: none; /* Firefox - hide scrollbar */
    -ms-overflow-style: none; /* IE and Edge - hide scrollbar */
}

body {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.6rem;
    scrollbar-width: none; /* Firefox - hide scrollbar */
    -ms-overflow-style: none; /* IE and Edge - hide scrollbar */
    overflow-x: hidden;
}

/* Hide scrollbar for Chrome, Safari and Opera */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: transparent !important;
}

html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
    display: none !important;
    background: transparent !important;
}

html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
    display: none !important;
    background-color: transparent !important;
}

h1 {
    font-size: 65pt;
    font-weight: 500;
}

.navbar-nav .nav-link {
    font-size: 20px;
    font-weight: 300;
    text-transform: uppercase;
    color: white !important;
    transition: font-weight 0.2s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active {
    font-weight: 500;
}

.navbar-nav.nav-fill .nav-item {
    flex: 1 1 auto;
    text-align: center;
}

.navbar-nav.nav-fill .nav-item:empty {
    flex: 0 0 0;
}

.navbar-nav.nav-fill .nav-link {
    white-space: nowrap;
}

.navbar-collapse .navbar-nav {
    margin-left: 475px;
}

.min-vh-50 {
    min-height: 50vh;
}

.navbar-brand {
    font-weight: 600;
    font-size: 1.25rem;
}

.card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.btn {
    transition: all 0.3s ease;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.2);
}

.form-control:focus {
    border-color: var(--synergy-dk-blue);
    box-shadow: 0 0 0 0.2rem rgba(0, 82, 159, 0.25);
}

a {
    text-decoration: none;
    transition: opacity 0.3s ease;
}

a:hover {
    opacity: 0.8;
}

/* Top Bar Section */
.top-bar-logo {
    padding-left: 75px;
}

.top-bar-appointment {
    padding-right: 75px;
}

/* Top bar phone links - tap-to-call on mobile */
.top-bar-phone-link {
    color: inherit !important;
    text-decoration: none !important;
}
.top-bar-phone-link:hover {
    text-decoration: underline !important;
}

/* Banner Section */
.banner-section {
    width: 100%;
    overflow: hidden;
}

.banner-image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 400px;
    object-fit: cover;
    /* Favor upper portion of hero photo so faces aren't cropped on wide screens */
    object-position: center 30%;
}

/* Patient Navigation Tag */
.patient-nav-tag {
    min-height: 120px;
}

/* Main section typography — blue titles (h1/h2) and black body copy (all primary pages) */
.page-blue-heading {
    color: var(--synergy-dk-blue);
    font-weight: 900;
}

.page-body-text,
p.page-body-text,
.text-column-responsive p.page-body-text {
    color: #000;
    font-size: clamp(15px, calc(15px + 0.35vw), 1.6rem);
    line-height: 1.55;
}

.page-body-text li {
    font-size: inherit;
}

/* Hero Section */
.hero-section {
    height: 1000px;
}

.hero-overlay-text,
.main-content-header {
    font-size: 47.5pt;
}

.hero-overlay-box {
    width: 958px;
    aspect-ratio: 958 / 211;
    padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
    padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
    padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
    padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Stat Boxes Responsive Sizing */
.stat-box {
    aspect-ratio: 307 / 280;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: clamp(1.25rem, 1.8vw, 1.75rem) !important;
    width: 110%;
    max-width: 110%;
}

/* Stat boxes container gap - gap-2 when horizontal (mobile), gap-4 when vertical (desktop) */
.col-md-2 > .d-flex.flex-row.flex-md-column {
    gap: 0.5rem !important; /* gap-2 for horizontal layout */
}

.stat-box img {
    width: clamp(20%, 100%, 66%);
    height: auto;
    object-fit: contain;
    margin-bottom: 0;
}

.stat-box h2 {
    font-size: clamp(1.2rem, 2.5vw, 3.5rem);
    font-weight: 500;
    line-height: 1.1;
    margin-bottom: 0.25rem;
}

.stat-box p {
    font-size: clamp(0.594rem, 1.272vw, 1.527rem);
    white-space: nowrap;
    text-transform: uppercase;
}

/* Text Column Responsive Padding */
.text-column-responsive {
    padding-left: 3rem;
    padding-right: 3rem;
}

/* Locations Section: min-height preserves layout at large widths; height grows with map + copy (no clipping) */
.locations-section {
    min-height: clamp(500px, 45.73vw, 877px); /* 877px at 1920px */
    height: auto;
    display: flex;
    align-items: flex-start;
    padding: 30px 0;
    position: relative;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: visible;
}

/* Centered wrapper for tags, heading, and carousel - responsive width with proportional margins */
.locations-content-wrapper {
    position: relative;
    z-index: 2;
    width: clamp(300px, 84.375vw, 1620px);
    margin-left: clamp(0px, 7.29vw, 140px);
    margin-right: clamp(0px, 7.29vw, 140px);
}

/* Location Tags - Responsive scaling from 1920px base */
.location-tags {
    display: flex;
    gap: clamp(3px, 0.36vw, 7px);
    width: 100%;
}

.location-tag {
    width: 135px;
    height: 40px;
    background-color: rgba(212, 27, 36, 0.75);
    color: var(--synergy-white);
    box-sizing: border-box;
    border: 2px solid var(--synergy-red);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 300;
    text-transform: uppercase;
    transition: background-color 0.3s ease, font-weight 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.location-tag:hover {
    background-color: #b0151c;
}

.location-tag.active {
    background-color: var(--synergy-red);
    border: none;
    font-weight: 500;
}

/* Location Heading Alignment - Responsive scaling from 1920px base */
.location-heading {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    font-size: clamp(18px, 3.39vw, 65px);
    line-height: 1.2;
}

#locationsCarousel {
    width: 100%;
    position: relative;
}

/* Inner stage only: prev/next arrows span this box (not the indicator row below) */
#locationsCarousel .locations-carousel-viewport {
    width: 100%;
}

/* Dots sit below the viewport in DOM; static so they never overlap Get Directions */
#locationsCarousel .carousel-indicators {
    position: static;
    margin-top: 1.25rem;
    margin-bottom: 0;
    justify-content: center;
    margin-left: 0;
    margin-right: 0;
}

.carousel-inner {
    width: 97%;
    margin-left: auto;
    margin-right: auto;
}

/* Carousel navigation: more visible arrows (all carousels) */
.carousel-control-prev,
.carousel-control-next {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    opacity: 1;
    border: 1px solid rgba(255, 255, 255, 0.35);
}
.carousel-control-prev:hover,
.carousel-control-next:hover {
    background: rgba(0, 0, 0, 0.35);
    border-color: rgba(255, 255, 255, 0.5);
}
.carousel-control-prev i,
.carousel-control-next i {
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
}

/* Carousel active item frame - pseudo-element so full 10px is visible on top of content (not clipped, not hidden) */
.surgeon-carousel-item.active {
    position: relative;
}
.surgeon-carousel-item.active::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 10px solid var(--synergy-dk-blue);
    border-radius: 2px;
    pointer-events: none;
    z-index: 1;
}

/* Arrow positioning - flush to carousel edges (carousel-inner is 97% centered, so edges at 1.5% / 98.5%) */
#locationsCarousel .carousel-control-prev {
    left: auto !important;
    right: 98.5% !important; /* button's right edge touches carousel left edge */
    width: clamp(25px, 2.6vw, 50px);
}

#locationsCarousel .carousel-control-next {
    left: 98.5% !important; /* button's left edge touches carousel right edge */
    right: auto !important;
    width: clamp(25px, 2.6vw, 50px);
}

#locationsCarousel .carousel-control-prev i,
#locationsCarousel .carousel-control-next i {
    font-size: clamp(1rem, 1.04vw, 2rem);
}

/* Location Cards - Responsive scaling from 1920px base */
.location-card-container {
    width: 100%;
    max-width: 100%;
}

.location-card {
    width: 100%;
    aspect-ratio: 1620 / 560;
    height: auto;
    min-height: 200px;
    overflow: hidden;
    padding: clamp(15px, 1.82vw, 35px);
}

/* Location Card Typography - Responsive scaling from 1920px base */
.location-card-header {
    font-size: clamp(18px, 2.34vw, 45px);
    line-height: 1.2;
}

.location-card-detail {
    font-size: clamp(12px, 1.46vw, 28px);
    line-height: 1.4;
}

.location-card-icon {
    font-size: clamp(12px, 1.46vw, 28px);
}

.location-directions-btn {
    width: clamp(150px, 16.93vw, 325px);
    height: clamp(40px, 4.17vw, 80px);
    font-size: clamp(12px, 1.46vw, 28px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.location-button-col {
    display: flex;
    justify-content: center;
    align-items: center;
}

.location-map-placeholder {
    width: clamp(200px, 30.73vw, 590px);
    height: clamp(165px, 25.52vw, 490px);
    max-width: 100%;
    margin-left: auto;
    box-sizing: border-box;
}

/* Map image styling */
.location-map-image {
    width: 100%;
    height: 100%;
    display: block;
}

/* For iframe maps */
.location-map-placeholder iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

/* Hero overlay positioning */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 2;
}

/* Footer Styles */
footer h5 {
    font-size: 20px;
    font-family: 'Montserrat', sans-serif;
}

footer p,
footer li,
footer a {
    font-size: 12px;
    font-family: 'Myriad Pro', sans-serif;
}

/* Override margin-bottom for specific footer headings */
footer .col-lg-3:nth-child(1) h5,
footer .col-lg-3:nth-child(3) h5 {
    margin-bottom: 0 !important;
}

/* Footer logos - responsive sizing */
.footer-logo {
    height: clamp(80px, 7.4vw, 142px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

/* About Us Page Styles */

/* Surgeons Carousel */
.surgeons-carousel-wrapper {
    width: 100%;
    position: relative;
}

#surgeonsCarousel {
    position: relative;
    margin-bottom: 2rem;
    width: 100%;
}

#surgeonsCarousel .carousel-item {
    padding: 0 1rem;
    position: relative; /* so triangle pointer can be reparented here and slide with the carousel */
}

#surgeonsCarousel .carousel-control-prev,
#surgeonsCarousel .carousel-control-next {
    width: clamp(25px, 2.6vw, 50px);
}

#surgeonsCarousel .carousel-control-prev {
    left: -15px;
}

#surgeonsCarousel .carousel-control-next {
    right: -15px;
}

.surgeon-carousel-item {
    position: relative;
    transition: transform 0.3s ease;
}

.surgeon-carousel-item:hover {
    transform: scale(1.05);
}

.surgeon-carousel-item img {
    border: 3px solid transparent;
    transition: border-color 0.3s ease;
    border-radius: 0 !important;
    object-position: top;
}

.surgeon-carousel-item.active img,
.surgeon-carousel-item:hover img {
    border-color: var(--synergy-dk-blue);
}

/* Surgeon Detail Card */
.surgeon-detail-card {
    /* Extra floor vs 400px: ~2 rolodex rows at default --edu-item-h 28px (5-row viewport) */
    min-height: 456px;
    position: relative;
    z-index: 5;
    width: 98%;
    max-width: 98%;
    margin: 0 auto;
}

/* Fixed height title area to prevent page jump (accommodates 3 lines) */
#surgeonTitle {
    min-height: 4.5em; /* ~3 lines at default line-height */
    display: flex;
    align-items: center;
    line-height: 1.4;
}

.surgeon-title-text {
    display: block;
}

.surgeon-triangle-pointer {
    position: absolute;
    width: 0;
    height: 0;
    border-left: 18.72px solid transparent;
    border-right: 18.72px solid transparent;
    border-top: 43.68px solid var(--synergy-red);
    z-index: 10;
    transition: left 0.3s ease, top 0.3s ease;
}

/* Surgeon accordion: no outer scroll — height follows content; tab bodies scroll individually */
.surgeon-accordion {
    height: auto;
    overflow: visible;
    padding-right: 0.5rem;
    margin-bottom: 1rem;
}

.surgeon-accordion .accordion-item {
    margin-bottom: 0.5rem;
}

.surgeon-accordion .accordion-button {
    border-radius: 15px 15px 15px 15px !important;
    padding: 1rem;
    font-weight: 500;
    font-size: 1.25rem !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: none !important;
    border: none !important;
    transition: border-radius 0.05s ease;
}

.surgeon-accordion .accordion-button.expanding {
    border-radius: 15px 15px 0 0 !important;
}

.surgeon-accordion .accordion-button:not(.collapsed) {
    border-radius: 15px 15px 0 0 !important;
    border-bottom: none !important;
}

.surgeon-accordion .accordion-button.collapsing {
    border-radius: 15px 15px 15px 15px !important;
}

.surgeon-accordion .accordion-button::after {
    display: none !important;
    content: none !important;
}

.surgeon-accordion .accordion-toggle-icon {
    font-size: 1.5rem;
    font-weight: bold;
}

.surgeon-accordion .accordion-button:not(.collapsed) .accordion-toggle-icon::before {
    content: '-';
}

.surgeon-accordion .accordion-button.collapsed .accordion-toggle-icon::before {
    content: '+';
}

.surgeon-accordion .accordion-body {
    max-height: 200px;
    overflow-y: auto;
    border-radius: 0 0 15px 15px;
    padding: 1rem;
    border-top: none !important;
    margin-top: 0 !important;
    font-size: 1.25rem !important;
}

.surgeon-accordion .accordion-collapse {
    border: none !important;
}

.surgeon-accordion .accordion-collapse.show .accordion-body {
    border-radius: 0 0 15px 15px;
}

/* Education & Experience timeline (horizontal, year-scaled) */
.education-timeline-hz {
    width: 95%;
    margin-left: auto;
    margin-right: auto;
}

.education-timeline-hz-bar {
    position: relative;
    --edu-timeline-bar-h: 60px;
    --edu-segment-stack-h: 0px;
    --edu-segment-gap: 0px;
    height: calc(var(--edu-segment-stack-h) + var(--edu-segment-gap) + var(--edu-timeline-bar-h));
    margin-bottom: 1rem;
    overflow: visible;
}

.education-timeline-hz-bar--has-segments {
    --edu-seg-residency: rgba(255, 255, 255, 0.88);
    --edu-seg-fellowship: rgba(255, 255, 255, 0.68);
    --edu-seg-practice: rgba(255, 255, 255, 0.48);
    /* Segment line patterns (dot/dash length + gap); tuned so residency reads dotted, not solid */
    --edu-seg-dot-len: 3px;
    --edu-seg-dot-gap: 5px;
    --edu-seg-dash-len: 9px;
    --edu-seg-dash-gap: 6px;
}

/*
 * Surgeon accordion bodies: fixed height per tab type so swapping surgeons does not resize the open panel.
 * Line-based tabs: 1.25rem / 1.4 matches .surgeon-accordion .accordion-body typography; 2rem = vertical padding.
 */
#bio .accordion-body {
    --surgeon-bio-font-size: 1.25rem;
    font-size: var(--surgeon-bio-font-size) !important;
    --surgeon-bio-body-height: calc(200px + 3 * var(--surgeon-bio-font-size) * 1.4);
    height: var(--surgeon-bio-body-height);
    min-height: var(--surgeon-bio-body-height);
    max-height: var(--surgeon-bio-body-height);
    overflow-y: auto;
}

/* Timeline bar (60px + optional segment stack + margin) + 5-row rolodex */
#educationExperience .accordion-body {
    --edu-segment-legend-body-h: 0px;
    --edu-timeline-stack-h: calc(
        var(--edu-timeline-bar-h, 60px) + var(--edu-segment-stack-h, 0px) + var(--edu-segment-gap, 0px) + 1rem
    );
    --edu-item-h-local: 28px;
    --edu-rolodex-stack-h: calc(5 * var(--edu-item-h-local));
    --surgeon-education-body-height: calc(
        2rem + var(--edu-segment-legend-body-h) + var(--edu-timeline-stack-h) +
            var(--edu-rolodex-stack-h)
    );
    height: var(--surgeon-education-body-height);
    min-height: var(--surgeon-education-body-height);
    max-height: var(--surgeon-education-body-height);
    overflow: hidden;
}

#educationExperience .accordion-body:has(.education-segment-legend-host:not([hidden])) {
    --edu-segment-legend-body-h: 3.25rem;
    padding-top: 0.125rem;
}

.education-segment-legend-host {
    margin: 0 0 2.5rem;
    padding: 0;
}

.education-segment-legend-host[hidden] {
    display: none !important;
    margin: 0;
}

/* Shared typography + padding; heights follow so tabs stay proportionally similar at every breakpoint */
#areasOfFocus .accordion-body,
#hospitalsAffiliated .accordion-body {
    --surgeon-text-line: 1.25rem;
    --surgeon-text-lh: 1.4;
    --surgeon-tab-pad: 1rem;
    font-size: var(--surgeon-text-line) !important;
    line-height: var(--surgeon-text-lh);
    padding: var(--surgeon-tab-pad);
}

#areasOfFocus .accordion-body {
    --surgeon-areas-body-height: calc(2 * var(--surgeon-tab-pad) + 8 * var(--surgeon-text-line) * var(--surgeon-text-lh));
    height: var(--surgeon-areas-body-height);
    min-height: var(--surgeon-areas-body-height);
    max-height: var(--surgeon-areas-body-height);
    overflow-y: auto;
}

#hospitalsAffiliated .accordion-body {
    --surgeon-hospitals-body-height: calc(2 * var(--surgeon-tab-pad) + 6 * var(--surgeon-text-line) * var(--surgeon-text-lh));
    height: var(--surgeon-hospitals-body-height);
    min-height: var(--surgeon-hospitals-body-height);
    max-height: var(--surgeon-hospitals-body-height);
    overflow-y: auto;
}

.education-timeline-hz-segment-legend-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.35rem 1.25rem;
}

.education-timeline-hz-segment-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--synergy-white);
    font-size: 0.6875rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.02em;
    opacity: 0.9;
}

.education-timeline-hz-segment-legend-swatch {
    display: inline-block;
    width: 1.125rem;
    height: 2px;
    border: none;
    box-sizing: border-box;
    flex-shrink: 0;
    background-repeat: repeat-x;
    background-position: left center;
}

.education-timeline-hz-segment-legend-item[data-segment='residency'] .education-timeline-hz-segment-legend-swatch {
    background-color: transparent;
    background-image: repeating-linear-gradient(
        to right,
        var(--edu-seg-residency, rgba(255, 255, 255, 0.88)) 0,
        var(--edu-seg-residency, rgba(255, 255, 255, 0.88)) 2px,
        transparent 2px,
        transparent 5px
    );
}

.education-timeline-hz-segment-legend-item[data-segment='fellowship'] .education-timeline-hz-segment-legend-swatch {
    background-color: transparent;
    background-image: repeating-linear-gradient(
        to right,
        var(--edu-seg-fellowship, rgba(255, 255, 255, 0.68)) 0,
        var(--edu-seg-fellowship, rgba(255, 255, 255, 0.68)) 5px,
        transparent 5px,
        transparent 8px
    );
}

.education-timeline-hz-segment-legend-item[data-segment='practice'] .education-timeline-hz-segment-legend-swatch {
    background-color: var(--edu-seg-practice, rgba(255, 255, 255, 0.48));
    background-image: none;
}

.education-timeline-hz-segment-legend-item.is-active-segment {
    color: var(--synergy-red);
    opacity: 1;
    font-weight: 600;
}

.education-timeline-hz-segment-legend-item.is-active-segment[data-segment='residency'] .education-timeline-hz-segment-legend-swatch {
    background-color: transparent;
    background-image: repeating-linear-gradient(
        to right,
        var(--synergy-red) 0,
        var(--synergy-red) 2px,
        transparent 2px,
        transparent 5px
    );
}

.education-timeline-hz-segment-legend-item.is-active-segment[data-segment='fellowship'] .education-timeline-hz-segment-legend-swatch {
    background-image: repeating-linear-gradient(
        to right,
        var(--synergy-red) 0,
        var(--synergy-red) 5px,
        transparent 5px,
        transparent 8px
    );
}

.education-timeline-hz-segment-legend-item.is-active-segment[data-segment='practice'] .education-timeline-hz-segment-legend-swatch {
    background-color: var(--synergy-red);
    background-image: none;
}

.education-timeline-hz-line {
    position: absolute;
    left: 0;
    right: 0;
    top: 28px;
    height: 3px;
    background-color: rgba(255, 255, 255, 0.55);
    border-radius: 2px;
    pointer-events: none;
    overflow: visible;
}

.education-timeline-hz-line--segmented {
    background-color: transparent;
}

.education-timeline-hz-line-base {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background-color: rgba(255, 255, 255, 0.28);
    border-radius: 2px;
    z-index: 0;
}

.education-timeline-hz-line-segment {
    position: absolute;
    top: 0;
    height: 3px;
    border: none;
    border-radius: 0;
    box-sizing: border-box;
    background-repeat: repeat-x;
    background-position: left center;
    z-index: 1;
}

.education-timeline-hz-line-segment::before,
.education-timeline-hz-line-segment::after {
    content: '';
    position: absolute;
    top: 1.5px;
    width: 1px;
    height: 11px;
    transform: translateY(-50%);
    z-index: 0;
}

.education-timeline-hz-line-segment::before {
    left: 0;
}

.education-timeline-hz-line-segment::after {
    right: 0;
}

.education-timeline-hz-line-segment[data-segment='residency'] {
    z-index: 1;
    background-color: transparent;
    background-image: repeating-linear-gradient(
        to right,
        var(--edu-seg-residency, rgba(255, 255, 255, 0.88)) 0,
        var(--edu-seg-residency, rgba(255, 255, 255, 0.88)) var(--edu-seg-dot-len, 4px),
        transparent var(--edu-seg-dot-len, 4px),
        transparent calc(var(--edu-seg-dot-len, 4px) + var(--edu-seg-dot-gap, 7px))
    );
}

.education-timeline-hz-line-segment[data-segment='residency']::before,
.education-timeline-hz-line-segment[data-segment='residency']::after {
    background-color: var(--edu-seg-residency, rgba(255, 255, 255, 0.88));
}

.education-timeline-hz-line-segment[data-segment='fellowship'] {
    z-index: 2;
    background-color: transparent;
    background-image: repeating-linear-gradient(
        to right,
        var(--edu-seg-fellowship, rgba(255, 255, 255, 0.68)) 0,
        var(--edu-seg-fellowship, rgba(255, 255, 255, 0.68)) var(--edu-seg-dash-len, 9px),
        transparent var(--edu-seg-dash-len, 9px),
        transparent calc(var(--edu-seg-dash-len, 9px) + var(--edu-seg-dash-gap, 6px))
    );
}

.education-timeline-hz-line-segment[data-segment='fellowship']::before,
.education-timeline-hz-line-segment[data-segment='fellowship']::after {
    background-color: var(--edu-seg-fellowship, rgba(255, 255, 255, 0.68));
}

.education-timeline-hz-line-segment[data-segment='practice'] {
    z-index: 3;
    background-color: var(--edu-seg-practice, rgba(255, 255, 255, 0.48));
    background-image: none;
}

.education-timeline-hz-line-segment[data-segment='practice']::before,
.education-timeline-hz-line-segment[data-segment='practice']::after {
    background-color: var(--edu-seg-practice, rgba(255, 255, 255, 0.48));
}

.education-timeline-hz-progress {
    position: absolute;
    left: 0;
    top: 28px;
    height: 3px;
    width: 0%;
    transform-origin: left center;
    transform: scaleX(0);
    background-color: var(--synergy-red);
    border-radius: 2px;
    pointer-events: none;
    z-index: 2;
}

.education-timeline-hz-progress.is-animating {
    animation-name: educationTimelineProgress;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes educationTimelineProgress {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

.education-timeline-hz-dots {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

.education-timeline-hz-dot {
    position: absolute;
    top: 22px;
    z-index: 3;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    transform: translateX(-50%);
    background-color: var(--synergy-white);
    border: 3px solid var(--synergy-dk-blue);
    box-sizing: border-box;
    cursor: pointer;
    padding: 0;
}

.education-timeline-hz-dot-label {
    position: absolute;
    left: calc(50% + 12px);
    top: -20px;
    transform: translateX(-50%);
    white-space: nowrap;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--synergy-white);
    opacity: 0.95;
    pointer-events: none;
}

.education-timeline-hz-dot.is-active .education-timeline-hz-dot-label {
    opacity: 1;
    font-weight: 600;
}

.education-timeline-hz-dot-degrees {
    position: absolute;
    left: calc(50% + 5px);
    top: 18px;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    pointer-events: none;
}

.education-timeline-hz-dot-degree {
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.1;
    color: var(--synergy-white);
    background-color: rgba(212, 27, 36, 0.85);
    padding: 2px 6px;
    border-radius: 10px;
    white-space: nowrap;
}

.education-timeline-hz-dot:hover {
    border-color: var(--synergy-red);
}

.education-timeline-hz-dot.is-active {
    background-color: var(--synergy-red);
    border-color: var(--synergy-white);
}

/* Differentiate start vs end year when active */
.education-timeline-hz-dot.is-active-start {
    background-color: var(--synergy-red);
    border-color: var(--synergy-white);
}

.education-timeline-hz-dot.is-active-end {
    background-color: var(--synergy-white);
    border-color: var(--synergy-red);
}

/* Traveling red head + faded blue wake (replaces advancing red bar) */
.education-timeline-hz-progress-head {
    display: none;
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-progress {
    visibility: hidden;
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-progress-head {
    display: block;
    position: absolute;
    top: 22px;
    left: var(--edu-progress-start, 0%);
    width: 14px;
    height: 14px;
    border-radius: 50%;
    transform: translateX(-50%);
    background-color: var(--synergy-red);
    border: 3px solid var(--synergy-white);
    box-sizing: border-box;
    pointer-events: none;
    z-index: 4;
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-progress-head.is-animating {
    animation-name: educationTimelineProgressHead;
    animation-timing-function: linear;
    animation-fill-mode: forwards;
}

@keyframes educationTimelineProgressHead {
    from { left: var(--edu-progress-start, 0%); }
    to { left: var(--edu-progress-end, 100%); }
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-dot {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-dot.is-revealed {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-dot.is-wake {
    background-color: rgba(0, 82, 159, 0.2);
    border-color: rgba(0, 82, 159, 0.2);
}

.education-timeline-hz-bar--traveling-dot .education-timeline-hz-dot.is-wake .education-timeline-hz-dot-label {
    opacity: 0.55;
}

/* Rolodex (5-row viewport: active + 2 above + 2 below; infinite circular, no scrollbars) */
.education-rolodex {
    --edu-item-h: 28px;
    --edu-rolodex-row-gap: 0px;
    --edu-row-step: var(--edu-item-h);
    --edu-rolodex-font-size: 1rem;
    --edu-visible-rows: 5;
    width: 95%;
    margin-left: auto;
    margin-right: auto;
    height: calc(
        var(--edu-visible-rows) * var(--edu-row-step) - var(--edu-rolodex-row-gap)
    );
    position: relative;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0px,
        #000 18px,
        #000 calc(100% - 18px),
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        transparent 0px,
        #000 18px,
        #000 calc(100% - 18px),
        transparent 100%
    );
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
    touch-action: pan-x;
}

.education-rolodex:active {
    cursor: grabbing;
}

.education-rolodex-track {
    display: flex;
    flex-direction: column;
    position: relative;
    will-change: transform;
}

.education-rolodex-item {
    height: var(--edu-item-h);
    line-height: var(--edu-item-h);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 400;
    font-size: var(--edu-rolodex-font-size);
    color: var(--synergy-white);
    opacity: 1;
    transform: scale(0.97);
    transform-origin: left center;
    transition: transform 500ms cubic-bezier(0.25, 0.1, 0.25, 1),
                opacity 450ms ease-in-out,
                color 450ms ease-in-out,
                font-weight 300ms ease;
}

.education-rolodex-item.is-active {
    font-weight: 700;
    opacity: 1;
    color: var(--synergy-red);
    transform: scale(1.04);
}

.education-rolodex-item.is-active .education-rolodex-text,
.education-rolodex-item.is-active .education-rolodex-sep,
.education-rolodex-item.is-active .education-rolodex-degree,
.education-rolodex-item.is-active .education-rolodex-dates {
    color: var(--synergy-red);
    opacity: 1;
}

.education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-text,
.education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-sep,
.education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-degree,
.education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-dates {
    color: #ffffff;
}

.education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-text,
.education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-sep,
.education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-degree,
.education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-dates {
    color: rgba(255, 255, 255, 0.45);
}

.education-rolodex-degree {
    font-weight: 700;
}

.education-rolodex-dates {
    font-weight: 500;
    opacity: 0.92;
}

/* Clickable items - subtle hover effect for non-active items */
.education-rolodex-item:not(.is-active):hover {
    cursor: pointer;
}

.education-rolodex-item:not(.is-active):hover .education-rolodex-text,
.education-rolodex-item:not(.is-active):hover .education-rolodex-sep,
.education-rolodex-item:not(.is-active):hover .education-rolodex-degree,
.education-rolodex-item:not(.is-active):hover .education-rolodex-dates {
    color: rgba(255, 255, 255, 0.88);
}

/* Custom scrollbar for accordion */
.surgeon-accordion .accordion-body::-webkit-scrollbar {
    width: 8px;
}

.surgeon-accordion .accordion-body::-webkit-scrollbar-track {
    background: var(--synergy-dk-blue);
    border-radius: 4px;
}

.surgeon-accordion .accordion-body::-webkit-scrollbar-thumb {
    background: var(--synergy-white);
    border-radius: 4px;
}

.surgeon-accordion .accordion-body::-webkit-scrollbar-thumb:hover {
    background: #e0e0e0;
}

/* Surgeon Icon Boxes */
.surgeon-icon-box {
    min-height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 0 !important;
}

.surgeon-icon-box,
.surgeon-icon-box * {
    border-radius: 0 !important;
}

/* Surgeon specialty icon (3rd red badge) - 2.7:4 ratio */
.surgeon-specialty-icon {
    width: 2.7rem;
    height: 4rem;
    object-fit: contain;
}

/* Office Staff Carousel - match Surgeons carousel layout and arrow positioning */
#officeStaffCarousel {
    position: relative;
    margin-bottom: 2rem;
    width: 100%;
}

#officeStaffCarousel .carousel-item {
    padding: 0 1rem;
    position: relative;
}

#officeStaffCarousel .carousel-control-prev,
#officeStaffCarousel .carousel-control-next {
    width: clamp(25px, 2.6vw, 50px);
}

#officeStaffCarousel .carousel-control-prev {
    left: -15px;
}

#officeStaffCarousel .carousel-control-next {
    right: -15px;
}

/* Our Team: same 10px frame as Surgeons carousel, on first card of active slide only */
#officeStaffCarousel .carousel-item.active .row > div:first-child .team-flip-card {
    position: relative;
}
#officeStaffCarousel .carousel-item.active .row > div:first-child .team-flip-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 10px solid var(--synergy-dk-blue);
    pointer-events: none;
    z-index: 1;
}

/* Office Support Staff carousel — same layout as Our Team */
#officeSupportStaffCarousel .carousel-control-prev,
#officeSupportStaffCarousel .carousel-control-next {
    width: clamp(25px, 2.6vw, 50px);
}

#officeSupportStaffCarousel .carousel-control-prev {
    left: -15px;
}

#officeSupportStaffCarousel .carousel-control-next {
    right: -15px;
}

#officeSupportStaffCarousel .carousel-item.active .row > div:first-child .team-flip-card {
    position: relative;
}

#officeSupportStaffCarousel .carousel-item.active .row > div:first-child .team-flip-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border: 10px solid var(--synergy-dk-blue);
    pointer-events: none;
    z-index: 1;
}

/* Office Support Staff section (lt-blue): card backs match section tone */
.office-support-staff-section .team-flip-card-back {
    background-color: var(--synergy-lt-blue);
    border-color: var(--synergy-white);
}

.office-support-staff-section .team-flip-card-back-title {
    color: var(--synergy-white);
}

.office-support-staff-section .team-flip-card:hover .team-flip-card-front,
.office-support-staff-section .team-flip-card.is-flipped .team-flip-card-front {
    border-color: var(--synergy-white);
}

.office-staff-carousel-item {
    transition: transform 0.3s ease;
}

.office-staff-carousel-item:hover {
    transform: scale(1.05);
}

.office-staff-carousel-item img {
    border: 3px solid transparent;
    transition: border-color 0.3s ease;
    border-radius: 0 !important;
    object-position: top;
}

/* Team Flip Cards */
.team-flip-card {
    perspective: 1000px;
    width: 100%;
    aspect-ratio: 1 / 1;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.team-flip-card:hover {
    transform: scale(1.05);
}

.team-flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
    transform-style: preserve-3d;
}

/* Flip only on click via .is-flipped class */
.team-flip-card.is-flipped .team-flip-card-inner {
    transform: rotateY(180deg);
}

.team-flip-card-front,
.team-flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    overflow: hidden;
}

.team-flip-card-front {
    background-color: var(--synergy-grey);
    border: 3px solid transparent;
    transition: border-color 0.3s ease;
}

.team-flip-card:hover .team-flip-card-front,
.team-flip-card.is-flipped .team-flip-card-front {
    border-color: var(--synergy-dk-blue);
}

.team-flip-card-front img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
}

.team-flip-card-name {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
    color: var(--synergy-white);
    padding: 1.5rem 0.75rem 0.75rem;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
}

.team-flip-card-back {
    background-color: var(--synergy-dk-blue);
    transform: rotateY(180deg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    text-align: center;
    border: 3px solid var(--synergy-dk-blue);
}

.team-flip-card-back-name {
    color: var(--synergy-white);
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.team-flip-card-back-title {
    color: var(--synergy-lt-blue);
    font-size: 1rem;
    font-weight: 400;
    margin-bottom: 0;
}

.team-flip-card-back-bio {
    color: var(--synergy-white);
    font-size: 0.8rem;
    font-weight: 300;
    line-height: 1.4;
    overflow-y: auto;
    max-height: 60%;
}

/* Custom scrollbar for flip card bio */
.team-flip-card-back-bio::-webkit-scrollbar {
    width: 4px;
}

.team-flip-card-back-bio::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 2px;
}

.team-flip-card-back-bio::-webkit-scrollbar-thumb {
    background: var(--synergy-lt-blue);
    border-radius: 2px;
}

/* Patient Form Cards - For Patients Page */
.patient-forms-intro {
    max-width: 52rem;
}

.patient-forms-cta {
    color: var(--synergy-red);
    font-weight: 700;
    font-size: clamp(1rem, 0.85rem + 0.35vw, 1.125rem);
    line-height: 1.4;
}

.patient-forms-context {
    color: #000;
    line-height: 1.5;
}

.patient-forms-auto-hint {
    color: var(--synergy-dk-blue);
    font-size: clamp(0.875rem, 0.8rem + 0.25vw, 0.95rem);
    font-weight: 500;
    line-height: 1.4;
}

.patient-forms-auto-hint .bi {
    margin-right: 0.35rem;
}

.patient-forms-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: center;
    margin-bottom: 1rem;
}

.patient-form-card-wrapper {
    flex: 0 0 calc(20% - 1.2rem); /* 5 cards per row with gap compensation */
    max-width: calc(20% - 1.2rem);
}

.patient-form-card {
    background-color: var(--synergy-red);
    border-radius: 0;
    aspect-ratio: 1 / 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
    cursor: pointer;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none;
}

.patient-form-card:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* Patient Form Card Icon - clamp so 1920 is 7rem, scales down to ~5rem at 1200 to prevent overflow in 1600-1200 */
.patient-form-icon {
    font-size: clamp(5rem, 2rem + 4.2vw, 7rem);
    margin-bottom: 0.75rem;
}

/* Patient Form Card Label - scale with viewport to avoid overflow 1600-1200 */
.patient-form-label {
    font-size: clamp(0.95rem, 0.5rem + 0.5vw, 1.25rem);
    font-weight: 500;
    line-height: 1.2;
}

.patient-form-tap-hint {
    position: absolute;
    bottom: var(--patient-form-tap-hint-inset, 0.45rem);
    right: var(--patient-form-tap-hint-inset, 0.45rem);
    z-index: 2;
    max-width: calc(100% - (var(--patient-form-tap-hint-inset, 0.45rem) * 2));
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: var(--patient-form-tap-hint-size, clamp(0.6rem, 0.46rem + 0.24vw, 0.78rem));
    font-weight: 500;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.01em;
    text-transform: none;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
    pointer-events: none;
}

.patient-form-tap-hint .bi {
    font-size: 1.05em;
    opacity: 0.9;
    flex-shrink: 0;
}

/* Direct download card (no flip) */
.patient-form-download-card {
    width: 100%;
    aspect-ratio: 1 / 1;
}

.patient-form-download-card-inner {
    width: 100%;
    height: 100%;
    position: relative;
    cursor: default;
    overflow: hidden;
    --patient-form-tap-hint-size: clamp(0.6rem, 0.46rem + 0.24vw, 0.78rem);
    --patient-form-tap-hint-inset: clamp(0.38rem, 0.28rem + 0.14vw, 0.52rem);
}

.patient-form-download-card-inner:has(.patient-form-download-idle-state[style*="display: none"]) > .patient-form-tap-hint {
    display: none;
}

.patient-form-download-card-inner.patient-form-card:hover {
    transform: none;
    box-shadow: none;
}

.patient-form-icon--compact {
    font-size: clamp(3rem, 1.5rem + 3vw, 4.5rem);
    margin-bottom: 0.5rem;
}

.patient-form-download-front-note {
    font-size: clamp(0.65rem, 0.5rem + 0.2vw, 0.78rem);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.92);
    line-height: 1.3;
    max-width: 95%;
    text-align: center;
}

.patient-form-download-btn--front {
    margin-top: 0.5rem;
    margin-bottom: 0.35rem;
    padding: 0.55rem 1.35rem;
    font-weight: 600;
}

.patient-form-download-idle-state,
.patient-form-download-prompt-state,
.patient-form-download-progress-state,
.patient-form-download-error-state {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    z-index: 1;
}

/* One-time grid nudge when section enters view */
@keyframes patientFormCardNudge {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
    50% {
        transform: scale(1.04);
        box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.45);
    }
}

@keyframes patientFormDownloadBtnNudge {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
    }
    50% {
        transform: scale(1.06);
        box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.35);
    }
}

.patient-forms-grid.is-nudge-active .patient-form-flip-card {
    animation: patientFormCardNudge 0.75s ease-in-out 2;
}

.patient-forms-grid.is-nudge-active .patient-form-download-btn--front {
    animation: patientFormDownloadBtnNudge 0.75s ease-in-out 2;
}

/* Patient Form Download Card */
.patient-form-download {
    text-decoration: none;
}

/* Patient Form Download Back Card */
.patient-form-download-back {
    flex-direction: column;
}

.patient-form-download-icon {
    font-size: 3rem;
    margin-bottom: 0.25rem;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Bouncing animation for download icon */
.patient-form-download-icon.is-downloading {
    animation: downloadBounce 0.6s ease-in-out infinite;
}

@keyframes downloadBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(8px); }
}

/* Complete state - checkmark */
.patient-form-download-icon.is-complete {
    animation: none;
    transform: scale(1.05);
}

/* Progress bar container */
.patient-form-progress-container {
    width: 60%;
    height: 6px;
    background-color: rgba(255, 255, 255, 0.25);
    border-radius: 3px;
    margin: 0.75rem 0;
    overflow: hidden;
}

.patient-form-progress-bar {
    height: 100%;
    width: 0%;
    background-color: white;
    border-radius: 3px;
    transition: width 0.15s ease-out;
}

/* Hide progress bar when complete */
.patient-form-progress-container.is-complete {
    opacity: 0;
    transition: opacity 0.3s ease;
    height: 0;
    margin: 0;
    overflow: hidden;
    pointer-events: none;
}

.patient-form-download-status {
    font-size: 1rem;
    font-weight: 500;
    transition: opacity 0.3s ease;
}

/* Keep download-state vertical spacing tight and deterministic across breakpoints */
.patient-form-download-progress-state {
    gap: 0.35rem;
}

.patient-form-download-progress-state .patient-form-download-status {
    margin-bottom: 0 !important; /* override Bootstrap mb-2 */
    line-height: 1.15;
}

.patient-form-download-progress-state .patient-form-download-instructions {
    margin-bottom: 0.35rem !important; /* override Bootstrap mb-3 */
}

.patient-form-download-instructions {
    font-size: 0.85rem;
    font-weight: 400;
    opacity: 0.9;
    text-align: center;
    max-width: 90%;
}

.patient-form-download-link {
    font-size: 0.75rem;
    color: white;
    text-decoration: underline;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.patient-form-download-link:hover {
    color: white;
    opacity: 1;
}

/* Download states container — idle/prompt/progress/error share layout (see .patient-form-download-idle-state above) */

/* Prompt state (legacy flip back — kept for compatibility) */
.patient-form-prompt-icon {
    font-size: 3rem;
    margin-bottom: 0.5rem;
}

.patient-form-prompt-title {
    font-size: 1.1rem;
    font-weight: 600;
}

.patient-form-prompt-message {
    font-size: 0.85rem;
    font-weight: 400;
    opacity: 0.9;
    text-align: center;
    max-width: 90%;
}

.patient-form-download-btn {
    background-color: white;
    color: var(--synergy-dk-blue);
    border: none;
    padding: 0.5rem 1.25rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.patient-form-download-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Error state styling */
.patient-form-error-icon {
    font-size: 3rem;
    margin-bottom: 0.5rem;
    color: white;
}

.patient-form-error-title {
    font-size: 1rem;
    font-weight: 600;
}

.patient-form-error-message {
    font-size: 0.85rem;
    font-weight: 400;
    opacity: 0.9;
    text-align: center;
    max-width: 90%;
}

.patient-form-retry-btn {
    background-color: white;
    color: var(--synergy-dk-blue);
    border: none;
    padding: 0.5rem 1.25rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.patient-form-retry-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Patient Form Flip Cards */
.patient-form-flip-card {
    perspective: 1000px;
    width: 100%;
    aspect-ratio: 1 / 1;
    cursor: pointer;
}

.patient-form-flip-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0.0, 0.2, 1);
    transform-style: preserve-3d;
}

.patient-form-flip-card.is-flipped .patient-form-flip-card-inner {
    transform: rotateY(180deg);
}

.patient-form-flip-card-front,
.patient-form-flip-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    border-radius: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem;
}

.patient-form-flip-card-front {
    background-color: var(--synergy-red);
    --patient-form-tap-hint-size: clamp(0.6rem, 0.46rem + 0.24vw, 0.78rem);
    --patient-form-tap-hint-inset: clamp(0.38rem, 0.28rem + 0.14vw, 0.52rem);
}

.patient-form-flip-card-back {
    background-color: var(--synergy-dk-blue);
    transform: rotateY(180deg);
}

.patient-form-flip-card-back p {
    font-size: clamp(0.76rem, 0.32rem + 0.04vw, 0.9rem);
    font-weight: 500;
    line-height: 1.4;
}

/* Hover effect for flip cards */
.patient-form-flip-card:hover .patient-form-flip-card-inner {
    transform: scale(1.05);
}

.patient-form-flip-card.is-flipped:hover .patient-form-flip-card-inner {
    transform: rotateY(180deg) scale(1.05);
}

/* FAQ Accordion Styles - Our Resources Page */
.faq-accordion-button {
    background-color: var(--synergy-red) !important;
    color: var(--synergy-white) !important;
    font-weight: 500;
    text-transform: uppercase;
    border: none !important;
    box-shadow: none !important;
    padding-top: calc(1rem + 7.5px) !important;
    padding-right: 1.5rem !important;
    padding-bottom: calc(1rem + 7.5px) !important;
    padding-left: 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100%;
    border-radius: 15px 15px 15px 15px !important;
    line-height: normal !important;
}

.faq-accordion-button:not(.collapsed) {
    background-color: var(--synergy-red) !important;
    color: var(--synergy-white) !important;
    box-shadow: none !important;
    border-radius: 15px 15px 15px 15px !important;
}

.faq-accordion-button:focus {
    box-shadow: none !important;
    border-color: transparent !important;
}

.faq-title {
    color: var(--synergy-white) !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    flex-grow: 1;
    display: flex;
    align-items: center;
    line-height: 1;
    font-size: 1.25rem !important;
}

.faq-arrow {
    color: var(--synergy-white) !important;
    font-size: 1.25rem;
    transition: transform 0.3s ease;
    transform: rotate(0deg);
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.faq-accordion-button:not(.collapsed) .faq-arrow {
    transform: rotate(90deg);
}

.faq-accordion-button::after {
    display: none !important;
}

#faqAccordion .accordion-item {
    margin-bottom: 1rem !important;
}

#faqAccordion .accordion-collapse {
    border: none !important;
    position: relative;
    top: -7.5px;
    margin-bottom: 0 !important;
}

#faqAccordion .accordion-collapse.collapsing {
    top: -7.5px !important;
}

#faqAccordion .accordion-collapse.show {
    top: -7.5px !important;
}

#faqAccordion .accordion-collapse:not(.show) {
    top: -7.5px !important;
}

.faq-accordion-body {
    background-color: var(--synergy-lt-blue) !important;
    color: #414141 !important;
    border-top: none !important;
    margin-top: 0 !important;
    padding-top: 20px !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
    padding-bottom: 20px !important;
    border-radius: 0 0 15px 15px !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    overflow-wrap: break-word;
}

.faq-accordion-body p,
.faq-accordion-body li,
.faq-accordion-body a,
.faq-accordion-body ul,
.faq-accordion-body ol {
    font-size: inherit !important;
    line-height: inherit !important;
    color: #414141 !important;
}

.faq-accordion-body p {
    margin-bottom: 1rem;
}

.faq-accordion-body p:last-child {
    margin-bottom: 0;
}

.faq-accordion-body h3 {
    font-size: 1.0625rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    color: #414141 !important;
    margin-top: 1.25rem !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    margin-bottom: 0.5rem !important;
}

.faq-accordion-body h3:first-child {
    margin-top: 0 !important;
}

.faq-accordion-body li {
    padding-left: 0 !important;
    margin-left: 0 !important;
    margin-bottom: 0.35rem !important;
}

.faq-accordion-body li:last-child {
    margin-bottom: 0 !important;
}

.faq-accordion-body ul,
.faq-accordion-body ol {
    margin-left: 0 !important;
    padding-left: 1.25rem !important;
    list-style-position: outside !important;
    margin-top: 0 !important;
    margin-bottom: 1rem !important;
}

.faq-accordion-body ul:last-child,
.faq-accordion-body ol:last-child {
    margin-bottom: 0 !important;
}

.faq-accordion-body ul ul,
.faq-accordion-body ol ol {
    margin-top: 0.35rem !important;
    margin-bottom: 0.35rem !important;
}

.faq-accordion-body strong {
    font-weight: 700;
}

.faq-accordion-body a {
    overflow-wrap: anywhere;
    word-break: break-word;
    text-decoration: underline;
}

/* FAQ search highlight (Acrobat-like) */
.faq-search-highlight {
    background-color: #fff200;
    color: #101010;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18);
    border-radius: 2px;
    padding: 0 1px;
}

/* FAQ Search Input Styles */
.faq-search-input {
    border-radius: 8px !important;
    background-color: #d8d3d2 !important;
    color: #000 !important;
}

.faq-search-input::placeholder {
    color: #707070 !important;
    opacity: 1;
}

.faq-search-input::-webkit-input-placeholder {
    color: #707070 !important;
    opacity: 1;
}

.faq-search-input::-moz-placeholder {
    color: #707070 !important;
    opacity: 1;
}

.faq-search-count {
    margin-top: 0.35rem;
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--synergy-dk-blue);
    min-height: 1.2em;
}

.faq-search-clear-btn {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    color: #5a5a5a;
    font-size: 1.1rem;
    line-height: 1;
    border-radius: 50%;
    cursor: pointer;
    z-index: 11;
}

.faq-search-clear-btn:hover {
    background: rgba(0, 0, 0, 0.08);
}

.faq-search-input:-ms-input-placeholder {
    color: #707070 !important;
    opacity: 1;
}

.faq-search-input:focus {
    background-color: #d8d3d2 !important;
    color: #000 !important;
    border-color: #ccc !important;
    box-shadow: none !important;
}

.faq-search-icon {
    color: #707070 !important;
    font-weight: 900 !important;
}


/* ==========================================================================
   RESPONSIVE STYLES - Organized by Breakpoint
   
   Bootstrap Breakpoints Reference:
   - xs: < 576px
   - sm: >= 576px (max-width: 575.98px for "below sm")
   - md: >= 768px (max-width: 767.98px for "below md")
   - lg: >= 992px (max-width: 991.98px for "below lg")
   - xl: >= 1200px (max-width: 1199.98px for "below xl")
   - xxl: >= 1400px (max-width: 1399.98px for "below xxl")
   
   Custom Breakpoints Used:
   - 1300px: Surgeon icon boxes "Cardiovascular" text fix
   - 1100px: Top bar padding adjustment
   - 860px: Location card aspect ratio transition
   - 500px: Phone number stacking
   - 424px: Location card header sizing
   - 400px: Education rolodex sizing
   - 340px: Extra small screen comprehensive styles
   ========================================================================== */


/* --------------------------------------------------------------------------
   DESKTOP FIRST: min-width queries (features that apply ABOVE a breakpoint)
   -------------------------------------------------------------------------- */

/* >= 768px (md and up): Desktop layouts */
@media (min-width: 768px) {
    /* Stat boxes: vertical gap */
    .col-md-2 > .d-flex.flex-row.flex-md-column {
        gap: 1.5rem !important;
    }

    /*
     * For Patients sub-nav: widen slightly (anchored right, grows left); fluid link size.
     */
    .patient-nav-tag {
        width: clamp(280px, 23vw, 430px) !important;
    }

    .patient-nav-tag a {
        font-size: clamp(
            18px,
            calc(18px + (100vw - 768px) * 2 / 792),
            20px
        );
        white-space: nowrap;
    }
    
    /* Location card: map + details side by side; button on full-width row below (no overlap on address) */
    .location-card {
        aspect-ratio: unset;
        height: auto;
        overflow: visible;
    }
    
    .location-card-row {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        position: relative;
    }
    
    .location-details-col {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        min-height: 0;
    }
    
    /* Absorbs vertical space so address block top-aligns and column bottom meets the map column */
    .location-details-col::after {
        content: '';
        flex: 1 1 0;
        min-height: 0;
        width: 100%;
    }
    
    .location-map-col {
        display: flex;
        flex-direction: column;
    }
    
    .location-button-col {
        position: static !important;
        left: auto !important;
        bottom: auto !important;
        top: auto !important;
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-top: 1.25rem;
    }
}


/* --------------------------------------------------------------------------
   RANGE QUERIES: Specific viewport ranges
   -------------------------------------------------------------------------- */

/* 992px - 1300px: Surgeon icon boxes - "Cardiovascular" text overflow fix */
@media (min-width: 992px) and (max-width: 1300px) {
    #surgeonDetailCard .row:last-child > .col-lg-10 {
        flex: 0 0 auto;
        width: 78%;
    }
    
    #surgeonDetailCard .row:last-child > .col-lg-2 {
        flex: 0 0 auto;
        width: 22%;
    }
    
    .surgeon-icon-box {
        min-height: auto;
        aspect-ratio: 1 / 1;
        padding: 0.75rem !important;
    }
    
    .surgeon-icon-box i {
        font-size: 3.0rem !important;
    }
    
    .surgeon-specialty-icon {
        width: 4.05rem;
        height: 6rem;
    }
    
    .surgeon-icon-box h2 {
        font-size: 1.0rem !important;
    }

    /* Tighten NEW PATIENT FORMS complete-state spacing in 1200-1300 range */
    .patient-form-download-progress-state {
        gap: 0.15rem;
    }

    .patient-form-download-icon {
        margin-bottom: 0.1rem;
    }

    .patient-form-download-icon.is-complete {
        transform: scale(1);
    }

    .patient-form-download-progress-state .patient-form-download-status {
        line-height: 1.05;
    }
}

/* 992px - 1199px: Patient form cards - 3 per row */
@media (min-width: 992px) and (max-width: 1199.98px) {
    .patient-form-card-wrapper {
        flex: 0 0 calc(33.333% - 1rem);
        max-width: calc(33.333% - 1rem);
    }
    
    .patient-form-icon {
        font-size: 6rem;
    }
    
    .patient-form-label {
        font-size: 1.15rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-download-card-inner {
        --patient-form-tap-hint-size: 0.68rem;
        --patient-form-tap-hint-inset: 0.45rem;
    }
    
    .patient-form-flip-card-back p {
        font-size: 0.95rem;
    }
    
    .patient-form-download-icon {
        font-size: 2.5rem;
    }
    
    .patient-form-progress-container {
        width: 55%;
        height: 5px;
        margin: 0.5rem 0;
    }
    
    .patient-form-download-status {
        font-size: 0.95rem;
    }
    
    .patient-form-download-instructions {
        font-size: 0.8rem;
    }
    
    .patient-form-error-icon {
        font-size: 2.5rem;
    }
    
    .patient-form-error-title {
        font-size: 0.95rem;
    }
    
    .patient-form-error-message {
        font-size: 0.8rem;
    }
    
    .patient-form-retry-btn {
        padding: 0.4rem 1rem;
        font-size: 0.8rem;
    }
    
    .patient-form-prompt-icon {
        font-size: 2.5rem;
    }
    
    .patient-form-prompt-title {
        font-size: 1rem;
    }
    
    .patient-form-prompt-message {
        font-size: 0.8rem;
    }
    
    .patient-form-download-btn {
        padding: 0.4rem 1rem;
        font-size: 0.8rem;
    }
}

/* 860px - 991.98px: Location card aspect ratio transition */
@media (min-width: 860px) and (max-width: 991.98px) {
    .location-map-placeholder {
        height: calc(282px + 208px * (100vw - 860px) / 132) !important;
    }
    
    .location-card-header {
        font-size: calc(clamp(18px, 2.34vw, 45px) * (1.2 - 0.2 * (100vw - 860px) / 132)) !important;
    }
    
    .location-card-detail {
        font-size: calc(clamp(12px, 1.46vw, 28px) * (1.2 - 0.2 * (100vw - 860px) / 132)) !important;
    }
}

/* 768px - 991.98px: Footer 2-column centering */
@media (min-width: 768px) and (max-width: 991.98px) {
    footer .col-md-6:nth-child(2) {
        text-align: center !important;
    }
    
    footer .col-md-6:nth-child(2) h5,
    footer .col-md-6:nth-child(2) ul {
        text-align: center !important;
    }
    
    footer .col-md-6:nth-child(2) ul {
        list-style-position: inside;
        padding-left: 0;
    }
    
    footer .col-md-6:nth-child(2) .text-start {
        text-align: center !important;
    }
    
    footer .col-md-6:nth-child(4) {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}

/* 768px - 860px: Location map height (card height follows content) */
@media (min-width: 768px) and (max-width: 860px) {
    .location-map-placeholder {
        height: clamp(250px, calc(250px + (100vw - 768px) * 32 / 92), 282px) !important;
    }
    
    .location-card-header {
        font-size: clamp(21.6px, 2.808vw, 54px) !important;
    }
    
    .location-card-detail {
        font-size: clamp(14.4px, 1.752vw, 33.6px) !important;
    }
}

/* 501px - 991.98px: Phone number padding/font adjustment */
@media (min-width: 501px) and (max-width: 991.98px) {
    .top-bar-phone-numbers .col-phone-stack {
        padding-left: 4px;
        padding-right: 4px;
    }
    
    .top-bar-phone-numbers p {
        font-size: 14px;
    }
}

/* 341px - 767.98px: Section 4 font adjustments */
@media (min-width: 341px) and (max-width: 767.98px) {
    .main-content-header {
        font-size: 20pt !important;
    }

    .page-blue-heading {
        font-size: clamp(22pt, calc(22pt + 3pt * (100vw - 341px) / 427), 26pt) !important;
    }

    .page-body-text,
    p.page-body-text,
    .text-column-responsive p.page-body-text,
    .page-body-text li {
        font-size: clamp(
            15px,
            calc(15px + (100vw - 341px) * 2px / 427),
            17px
        ) !important;
    }
    
    .text-column-responsive p:not(.page-body-text) {
        font-size: 0.85rem !important;
    }
    
    .text-column-responsive h3 {
        font-size: 1rem !important;
    }
    
    .stat-box h2 {
        font-size: 1.5rem !important;
    }
    
    .stat-box {
        padding: clamp(1.25rem, 1.8vw, 1.75rem) !important;
    }
    
    .stat-box p {
        font-size: clamp(0.424rem, calc(0.424rem + 0.594rem * (100vw - 341px) / 426px), 1.017rem) !important;
        white-space: nowrap;
        text-transform: uppercase;
    }
}

/* 340px - 424px: Location card header sizing to prevent wrapping */
@media (min-width: 340px) and (max-width: 424px) {
    .location-card-header {
        font-size: clamp(18px, 4vw, 24px) !important;
    }
}


/* --------------------------------------------------------------------------
   MAX-WIDTH QUERIES: Desktop-first, largest to smallest
   -------------------------------------------------------------------------- */

/* < 1400px (below xxl) */
@media (max-width: 1399.98px) {
    .navbar-collapse .navbar-nav {
        margin-left: 300px;
    }
    
    .top-bar-logo {
        padding-left: 50px;
    }
    
    .top-bar-appointment {
        padding-right: 50px;
    }
    
    .hero-section {
        height: 800px;
    }
    
    .hero-overlay-text,
    .main-content-header {
        font-size: 40pt;
    }
    
    .hero-overlay-box {
        width: 768px;
        aspect-ratio: 958 / 211;
        padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px);
    }
    
    .location-tag {
        width: 175px;
        height: 29.63px;
        font-size: 13px;
    }
    
    .text-column-responsive {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
    
    .text-column-responsive p:not(.page-body-text) {
        font-size: clamp(20px, calc(20px + (100vw - 1199px) * 6 / 200), 26px);
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 1.2rem;
        --surgeon-tab-pad: 0.95rem;
    }
}

/* < 1200px (below xl) */
@media (max-width: 1199.98px) {
    .carousel-inner {
        width: 100%;
    }
    
    .top-bar-logo {
        padding-left: 30px;
    }
    
    .top-bar-appointment {
        padding-right: 30px;
    }
    
    .hero-section {
        height: 600px;
    }
    
    .hero-overlay-text,
    .main-content-header {
        font-size: 32pt;
    }

    .page-body-text,
    p.page-body-text,
    .text-column-responsive p.page-body-text,
    .page-body-text li {
        font-size: clamp(
            1.5rem,
            calc(1.5rem + (100vw - 992px) * 0.1rem / 208),
            1.6rem
        ) !important;
    }
    
    .text-column-responsive p:not(.page-body-text) {
        font-size: clamp(18px, calc(18px + (100vw - 768px) * 4 / 431), 22px);
    }
    
    .hero-overlay-box {
        width: clamp(615px, calc(615px + 153px * (100vw - 992px) / 208px), 768px);
        aspect-ratio: 958 / 211;
        padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px);
    }
    
    .text-column-responsive {
        padding-left: 2rem;
        padding-right: 2rem;
    }
    
    .education-timeline-hz-segment-legend-item {
        font-size: 0.625rem;
        gap: 0.25rem 0.75rem;
    }

    .education-timeline-hz-segment-legend-swatch {
        width: 1rem;
    }

    /* Education & Experience timeline: rotate labels, centered above/below their dots (shift via left in base) */
    .education-timeline-hz-dot-label {
        transform: translateX(-50%) translateY(-18px) rotate(-70deg);
        transform-origin: 50% 100%;
    }
    
    .education-timeline-hz-dot--present .education-timeline-hz-dot-label {
        font-size: 0.55rem;
    }
    
    .education-timeline-hz-dot-degrees {
        transform: translateX(-50%) translateY(18px) rotate(-70deg);
        transform-origin: 50% 0%;
    }
    
    .education-timeline-hz-dot-degree {
        white-space: nowrap;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 1.16rem;
        --surgeon-tab-pad: 0.9375rem;
    }
}

/* < 1100px (custom: top bar padding) */
@media (max-width: 1100px) {
    .top-bar-logo {
        padding-left: 15px;
    }
    
    .top-bar-appointment {
        padding-right: 15px;
    }
}

/* < 992px (below lg) */
@media (max-width: 991.98px) {
    .education-timeline-hz-dot-degrees {
        display: none;
    }

    .navbar-collapse .navbar-nav {
        margin-left: 0 !important;
        width: 100% !important;
    }
    
    .top-bar-section {
        height: auto !important;
        min-height: 125px;
        padding: 20px 0;
    }
    
    .top-bar-logo {
        position: static !important;
        padding-left: 0;
        justify-content: center;
        margin-bottom: 20px;
    }
    
    .top-bar-appointment {
        position: static !important;
        padding-right: 0;
        justify-content: center;
    }
    
    .top-bar-appointment > div {
        width: 100% !important;
        max-width: 493px;
    }
    
    .banner-image {
        max-height: 300px;
    }
    
    .hero-section {
        height: 500px;
    }
    
    .hero-overlay-text,
    .main-content-header {
        font-size: clamp(24px, calc(24px + (100vw - 768px) * 8 / 224), 32px);
    }

    /* Main section blue titles above body in tablet range (768–992) */
    .page-blue-heading {
        font-size: clamp(
            28px,
            calc(28px + (100vw - 768px) * 10 / 224),
            38px
        ) !important;
    }

    .page-body-text,
    p.page-body-text,
    .text-column-responsive p.page-body-text,
    .page-body-text li {
        font-size: clamp(
            1.35rem,
            calc(1.35rem + (100vw - 768px) * 0.2rem / 224),
            1.55rem
        ) !important;
    }
    
    .text-column-responsive p:not(.page-body-text) {
        font-size: clamp(12px, calc(12px + (100vw - 768px) * 6 / 224), 18px);
    }
    
    .hero-overlay-box {
        width: 100%;
        max-width: 499px;
        aspect-ratio: 958 / 211;
        padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px);
        padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px);
        border-radius: 30px 0 0 30px !important;
    }
    
    .text-column-responsive {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    
    .locations-section {
        height: auto;
        min-height: 500px;
        padding: 30px 0;
        align-items: center; /* lg-down: keep content vertically centered in min-height like before */
    }
    
    .location-tag {
        width: 118px;
        height: 26.67px;
        font-size: 12px;
    }
    
    .surgeon-detail-card {
        margin-top: 1rem !important;
    }
    
    .surgeon-icon-box {
        min-height: 100px;
        margin-bottom: 1rem;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 1.1rem;
        --surgeon-tab-pad: 0.875rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 1.125rem;
    }
    
    .education-rolodex {
        --edu-rolodex-font-size: 0.9375rem;
    }
    
    /* Patient form cards - 3 per row on tablet */
    .patient-form-card-wrapper {
        flex: 0 0 calc(33.333% - 1rem);
        max-width: calc(33.333% - 1rem);
    }
    
    .patient-form-icon {
        font-size: 3.5rem;
    }
    
    .patient-form-label {
        font-size: 0.9rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-download-card-inner {
        --patient-form-tap-hint-size: 0.6rem;
        --patient-form-tap-hint-inset: 0.38rem;
    }
    
    .patient-form-flip-card-back p {
        font-size: 0.8rem;
    }
    
    .patient-form-download-icon {
        font-size: 1.5rem;
    }
    
    .patient-form-progress-container {
        width: 50%;
        height: 4px;
        margin: 0.35rem 0;
    }
    
    .patient-form-download-status {
        font-size: 0.8rem;
        margin-bottom: 0.25rem !important;
    }
    
    .patient-form-download-instructions {
        font-size: 0.65rem;
        margin-bottom: 0.5rem !important;
    }
    
    .patient-form-download-link {
        font-size: 0.6rem;
    }
    
    .patient-form-error-icon {
        font-size: 1.5rem;
    }
    
    .patient-form-error-title {
        font-size: 0.75rem;
        margin-bottom: 0.25rem !important;
    }
    
    .patient-form-error-message {
        font-size: 0.6rem;
        margin-bottom: 0.5rem !important;
    }
    
    .patient-form-retry-btn {
        padding: 0.3rem 0.75rem;
        font-size: 0.6rem;
    }
    
    .patient-form-prompt-icon {
        font-size: 1.5rem;
    }
    
    .patient-form-prompt-title {
        font-size: 0.75rem;
        margin-bottom: 0.25rem !important;
    }
    
    .patient-form-prompt-message {
        font-size: 0.6rem;
        margin-bottom: 0.5rem !important;
    }
    
    .patient-form-download-btn {
        padding: 0.3rem 0.75rem;
        font-size: 0.6rem;
    }
}

/* < 768px (below md) - Mobile/Tablet styles */
@media (max-width: 767.98px) {
    /* Top bar */
    .top-bar-logo img {
        height: 70px !important;
        max-width: 100%;
        object-fit: contain;
    }
    
    .top-bar-logo > div {
        height: 70px !important;
    }
    
    /* Banner */
    .banner-image {
        max-height: 200px;
    }
    
    /* Patient nav tag */
    .patient-nav-tag {
        width: 100% !important;
        max-width: 100%;
        border-radius: 0 0 0 20px !important;
    }

    /* For Patients: sub-nav sits at image bottom (top: 100%); push content below the menu */
    body[data-nav-active='for-patients.html'] .banner-section + section {
        margin-top: clamp(9.5rem, 40vw, 12.5rem);
        padding-top: 2.5rem !important;
    }
    
    /* Hero section */
    .hero-section {
        height: 400px;
    }
    
    .hero-overlay-text,
    .main-content-header {
        font-size: clamp(16pt, calc(16pt + 6pt * (100vw - 320px) / 448px), 22pt);
    }

    .page-blue-heading {
        font-size: clamp(22pt, calc(22pt + 6pt * (100vw - 320px) / 448px), 28pt) !important;
    }

    .page-body-text,
    p.page-body-text,
    .text-column-responsive p.page-body-text,
    .page-body-text li {
        font-size: clamp(
            15px,
            calc(15px + (100vw - 320px) * 2px / 448),
            17px
        ) !important;
    }

    /* About Us “Meet our Team” — scale to one line (wraps at ~714px at 65pt; 95% container − ~24px pad) */
    body[data-nav-active='about-us.html'] h1.page-blue-heading {
        font-size: clamp(
            18pt,
            calc(18pt + (100vw - 320px) * 26pt / 394px),
            44pt
        ) !important;
        white-space: nowrap;
    }
    
    .hero-overlay-box {
        width: 100% !important;
        max-width: 399px !important;
        aspect-ratio: 958 / 211;
        padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px) !important;
    }
    
    /* Stat boxes — horizontal row centered below md */
    .col-md-2 > .d-flex.flex-row.flex-md-column {
        justify-content: center;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0.75rem;
        padding-right: 0.75rem;
        box-sizing: border-box;
    }

    .col-12.col-md-2:has(.stat-box) {
        display: flex;
        justify-content: center;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    .stat-box {
        flex: 1 1 0;
        min-width: 0;
        width: 110%;
        max-width: 110%;
        padding: clamp(1.25rem, 1.8vw, 1.75rem) !important;
    }
    
    .stat-box img {
        width: 70%;
    }
    
    /* Text column */
    .text-column-responsive {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    /* Locations section */
    .locations-content-wrapper {
        padding-left: 0px;
        padding-right: 0px;
    }
    
    /* Location tags */
    .location-tag {
        width: 118px;
        height: 40px;
        font-size: 10px;
        white-space: normal;
        line-height: 1.2;
        text-align: center;
        padding: 3%;
        box-sizing: border-box;
    }
    
    /* Location card typography */
    .location-card-header {
        font-size: clamp(24px, 4.5vw, 45px);
        line-height: 1.2;
    }
    
    .location-card-detail {
        font-size: clamp(18px, 4vw, 28px);
        line-height: 1.4;
    }
    
    .location-card-icon {
        font-size: clamp(18px, 4vw, 28px);
    }
    
    /* Location map placeholder */
    .location-map-placeholder {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    
    .location-card .location-map-placeholder,
    .col-12.col-md-6 .location-map-placeholder {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    
    /* Mobile location card layout - height auto so carousel fits content on small screens */
    .location-card {
        height: auto !important;
        aspect-ratio: unset !important;
        overflow: hidden !important;
    }
    
    .location-card .row {
        margin: 0 auto !important;
    }
    
    .location-card-row {
        display: flex !important;
        flex-direction: column !important;
        position: static !important;
        overflow: visible !important;
        width: 100% !important;
        max-width: 100% !important;
        align-items: center !important;
    }
    
    .location-details-col {
        padding-bottom: 0 !important;
    }
    
    .location-map-col {
        margin-bottom: 20px !important;
        display: flex !important;
        justify-content: center !important;
    }
    
    .location-button-col {
        margin-top: 20px !important;
        position: static !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        top: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    
    .location-directions-btn {
        width: 100%;
        max-width: 325px;
        margin-left: auto;
        margin-right: auto;
        display: block;
    }
    
    .location-map-placeholder {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        height: clamp(300px, calc(300px + 50px * (100vw - 340px) / 427px), 350px) !important;
        aspect-ratio: unset !important;
    }
    
    /* Footer centering */
    footer .col-12 {
        text-align: center !important;
    }
    
    footer .col-12 h5,
    footer .col-12 ul,
    footer .col-12 > div {
        text-align: center !important;
    }
    
    footer .col-12 ul {
        list-style-position: inside;
        padding-left: 0;
    }
    
    footer .col-12 .text-start {
        text-align: center !important;
    }
    
    footer .col-12 > div > div {
        margin: 0 auto !important;
    }
    
    /* Wrap layout: variable row heights, 10px gap, JS-driven viewport (class toggled in main.js) */
    .education-rolodex.education-rolodex--wrap {
        /* Active row centered with neighbors visible (JS measures viewport from this). */
        --edu-visible-rows: 5;
        --edu-rolodex-row-gap: 10px;
        touch-action: none;
        cursor: grab;
        height: auto;
        min-height: 5rem;
        -webkit-mask-image: linear-gradient(
            to bottom,
            transparent 0px,
            #000 24px,
            #000 calc(100% - 24px),
            transparent 100%
        );
        mask-image: linear-gradient(
            to bottom,
            transparent 0px,
            #000 24px,
            #000 calc(100% - 24px),
            transparent 100%
        );
    }

    .education-rolodex--wrap .education-rolodex-track {
        gap: var(--edu-rolodex-row-gap);
    }

    .education-rolodex--wrap .education-rolodex-item {
        white-space: normal;
        line-height: 1.35;
        height: auto;
        min-height: 0;
        flex-shrink: 0;
        overflow: visible;
        text-overflow: clip;
        padding: 6px 8px;
        box-sizing: border-box;
        display: block;
        text-align: center;
        transform: scale(0.97);
        transform-origin: center center;
        pointer-events: auto;
        cursor: pointer;
    }

    #educationExperience .education-rolodex--wrap .education-rolodex-item.is-active {
        font-weight: 700;
        color: var(--synergy-red);
        transform: scale(1.03);
        transform-origin: center center;
        overflow: visible;
        z-index: 1;
    }

    #educationExperience .education-rolodex--wrap .education-rolodex-item.is-active .education-rolodex-text,
    #educationExperience .education-rolodex--wrap .education-rolodex-item.is-active .education-rolodex-sep,
    #educationExperience .education-rolodex--wrap .education-rolodex-item.is-active .education-rolodex-degree,
    #educationExperience .education-rolodex--wrap .education-rolodex-item.is-active .education-rolodex-dates {
        color: var(--synergy-red);
        font-weight: 700;
        opacity: 1;
    }

    .education-rolodex--wrap .education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-text,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-sep,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-degree,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='even']:not(.is-active) .education-rolodex-dates {
        color: #ffffff;
    }

    .education-rolodex--wrap .education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-text,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-sep,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-degree,
    .education-rolodex--wrap .education-rolodex-item[data-stripe='odd']:not(.is-active) .education-rolodex-dates {
        color: rgba(255, 255, 255, 0.45);
    }

    .education-rolodex--wrap .education-rolodex-item .education-rolodex-text,
    .education-rolodex--wrap .education-rolodex-item .education-rolodex-sep,
    .education-rolodex--wrap .education-rolodex-item .education-rolodex-degree,
    .education-rolodex--wrap .education-rolodex-item .education-rolodex-dates {
        display: inline;
        white-space: normal;
        line-height: 1.35;
    }

    /* Rolodex stack height: set by JS (--edu-rolodex-stack-h) after wrap layout measure. */
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 1.05rem;
        --surgeon-tab-pad: 0.8125rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 1.0625rem;
    }
    
    .education-rolodex {
        --edu-rolodex-font-size: 0.875rem;
    }
    
    /* Surgeon detail card */
    .surgeon-detail-card {
        padding: 1.5rem !important;
    }
    
    /* Surgeon title needs more height on mobile for wrapping */
    #surgeonTitle {
        min-height: 6em;
    }
    
    .surgeon-icon-box {
        min-height: 80px;
        border-radius: 0 !important;
    }
    
    .surgeon-icon-box i {
        font-size: 1.5rem !important;
    }
    
    .surgeon-specialty-icon {
        width: 2.025rem;
        height: 3rem;
    }
    
    .surgeon-icon-box h2 {
        font-size: 0.875rem !important;
    }
    
    /* Team flip cards mobile */
    .team-flip-card-name {
        font-size: 0.85rem;
        padding: 1rem 0.5rem 0.5rem;
    }
    
    .team-flip-card-back {
        padding: 0.75rem;
    }
    
    .team-flip-card-back-name {
        font-size: 0.95rem;
    }
    
    .team-flip-card-back-title {
        font-size: 0.75rem;
        margin-bottom: 0.5rem;
    }
    
    .team-flip-card-back-bio {
        font-size: 0.7rem;
    }
    
    /* Patient form cards - 2 per row on mobile */
    .patient-form-card-wrapper {
        flex: 0 0 calc(50% - 0.75rem);
        max-width: calc(50% - 0.75rem);
    }
    
    .patient-form-card {
        padding: 0.75rem;
    }
    
    .patient-form-icon {
        font-size: 5.5rem;
    }
    
    .patient-form-label {
        font-size: 1.1rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-flip-card-back {
        padding: 0.75rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-download-card-inner {
        --patient-form-tap-hint-size: 0.66rem;
        --patient-form-tap-hint-inset: 0.42rem;
    }
    
    .patient-form-flip-card-back p {
        font-size: 0.9rem;
    }
    
    .patient-form-download-icon {
        font-size: 2.25rem;
    }
    
    .patient-form-progress-container {
        width: 55%;
        height: 5px;
        margin: 0.5rem 0;
    }
    
    .patient-form-download-status {
        font-size: 0.9rem;
    }
    
    .patient-form-download-instructions {
        font-size: 0.75rem;
        line-height: 1.3;
    }
}

/* < 576px (below sm) - Small mobile styles */
@media (max-width: 575.98px) {
    .surgeon-triangle-pointer {
        display: none;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 1rem;
        --surgeon-tab-pad: 0.75rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 1rem;
    }
    
    .education-rolodex {
        --edu-rolodex-font-size: 0.8125rem;
    }
    
    .text-column-responsive {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
    
    .location-tags {
        flex-wrap: wrap;
    }
    
    .location-tag {
        width: 70px !important;
        height: 20.74px !important;
        font-size: 10px !important;
        padding: 5% 1% !important;
        box-sizing: border-box !important;
    }
    
    /* Patient form cards - 1 per row on small mobile, keep square */
    .patient-forms-grid {
        gap: 1rem;
        justify-content: center;
    }
    
    .patient-form-card-wrapper {
        flex: 0 0 80%;
        max-width: 80%;
    }
    
    .patient-form-card {
        padding: 1.5rem;
    }
    
    .patient-form-icon {
        font-size: 6.5rem;
        margin-bottom: 0.5rem;
    }
    
    .patient-form-label {
        font-size: 1.1rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-flip-card-back {
        padding: 1.5rem;
    }
    
    .patient-form-flip-card-front,
    .patient-form-download-card-inner {
        --patient-form-tap-hint-size: 0.74rem;
        --patient-form-tap-hint-inset: 0.55rem;
    }
    
    .patient-form-flip-card-back p {
        font-size: 1rem;
    }
}

/* < 500px (custom: phone number stacking) */
@media (max-width: 500px) {
    .top-bar-phone-numbers .col-phone-stack {
        flex: 0 0 100%;
        max-width: 100%;
        text-align: center;
    }
    
    .top-bar-appointment > div > div:first-child {
        justify-content: center;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 0.98rem;
        --surgeon-tab-pad: 0.75rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 0.9375rem;
    }
}

/* < 400px (custom: education rolodex sizing) */
@media (max-width: 400px) {
    .education-rolodex {
        --edu-rolodex-font-size: 0.75rem;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 0.9375rem;
        --surgeon-tab-pad: 0.6875rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 0.875rem;
    }
}

/* < 341px (custom: stat box font sizes) */
@media (max-width: 340px) {
    .stat-box h2 {
        font-size: clamp(1.8rem, 0.25vw + 0.5rem, 2.4rem);
    }
    
    .stat-box p {
        font-size: clamp(0.678rem, 0.127vw + 0.212rem, 1.188rem);
        white-space: nowrap;
        text-transform: uppercase;
    }
}


/* --------------------------------------------------------------------------
   EXTRA SMALL SCREENS: Comprehensive styles for 340px and below
   -------------------------------------------------------------------------- */
@media (max-width: 340px) {
    /* Top Bar Section */
    .top-bar-section {
        height: auto !important;
        min-height: 100px !important;
        padding: 15px 0 !important;
    }
    
    .top-bar-logo img {
        height: 60px !important;
    }
    
    .top-bar-appointment > div {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    .top-bar-appointment h1 {
        font-size: 14px !important;
    }
    
    .top-bar-appointment p {
        font-size: 11px !important;
    }
    
    .top-bar-appointment .bi-telephone {
        font-size: 1.2rem !important;
    }
    
    /* Navigation Bar */
    .navbar-nav .nav-link {
        font-size: 16px !important;
        padding: 0.5rem 0.25rem !important;
    }
    
    /* Hero Section */
    .hero-section {
        height: 300px !important;
    }
    
    .hero-overlay-text,
    .main-content-header {
        font-size: 16pt !important;
        line-height: 1.1 !important;
    }
    
    .hero-overlay-box {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 958 / 211;
        padding-top: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-bottom: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-left: clamp(10px, calc(10px + 30px * (100vw - 320px) / 1600px), 40px) !important;
        padding-right: clamp(2px, calc(2px + 3px * (100vw - 320px) / 1600px), 5px) !important;
        border-radius: 20px 0 0 20px !important;
    }
    
    /* Stat Boxes */
    .stat-box {
        padding: 0.75rem !important;
    }
    
    .stat-box img {
        width: 25% !important;
    }
    
    .stat-box h2 {
        font-size: 1rem !important;
        margin-bottom: 0.15rem !important;
    }
    
    .stat-box p {
        font-size: calc(0.551rem - 2.57px) !important;
        text-transform: uppercase;
    }
    
    /* Text Column - Section 4 */
    .text-column-responsive {
        padding-left: 0.25rem !important;
        padding-right: 0.25rem !important;
    }
    
    .main-content-header {
        font-size: 14pt !important;
        margin-bottom: 1rem !important;
    }

    .page-blue-heading {
        font-size: 18pt !important;
        margin-bottom: 1rem !important;
    }

    .page-body-text,
    p.page-body-text,
    .text-column-responsive p.page-body-text,
    .page-body-text li {
        font-size: 15px !important;
    }
    
    .text-column-responsive p:not(.page-body-text) {
        font-size: 0.75rem !important;
    }
    
    .text-column-responsive h3 {
        font-size: 0.9rem !important;
        margin-bottom: 0.75rem !important;
    }
    
    #areasOfFocus .accordion-body,
    #hospitalsAffiliated .accordion-body {
        --surgeon-text-line: 0.875rem;
        --surgeon-tab-pad: 0.625rem;
    }
    
    #bio .accordion-body {
        --surgeon-bio-font-size: 0.8125rem;
    }
    
    .education-rolodex {
        --edu-rolodex-font-size: 0.6875rem;
    }
    
    /* Locations Section */
    .locations-section {
        min-height: 400px !important;
        padding: 20px 0 !important;
    }
    
    .locations-content-wrapper {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    .location-tags {
        gap: 3px !important;
        flex-wrap: wrap !important;
    }
    
    .location-tag {
        width: 50px !important;
        height: 17.78px !important;
        font-size: 9px !important;
        padding: 7% !important;
        box-sizing: border-box !important;
    }
    
    .location-heading {
        font-size: 16px !important;
        margin-bottom: 1.5rem !important;
    }
    
    /* Location Cards - height auto so carousel fits content on extra-small screens */
    .location-card {
        padding: 12px !important;
    }
    
    .location-card-header {
        font-size: 18px !important;
        margin-bottom: 1rem !important;
    }
    
    .location-card-detail {
        font-size: 14px !important;
        line-height: 1.3 !important;
    }
    
    .location-card-icon {
        font-size: 14px !important;
    }
    
    .location-map-placeholder {
        width: 100% !important;
        height: 300px !important;
        margin-bottom: 15px !important;
    }
    
    .location-directions-btn {
        width: 100% !important;
        max-width: 100% !important;
        height: 35px !important;
        font-size: 12px !important;
        padding: 0.5rem !important;
    }
    
    /* Carousel Controls */
    #locationsCarousel .carousel-control-prev i,
    #locationsCarousel .carousel-control-next i {
        font-size: 1.5rem !important;
    }
    
    /* Footer */
    footer {
        padding: 20px 0 !important;
    }
    
    footer .row {
        padding-top: 20px !important;
    }
    
    footer h5 {
        font-size: 16px !important;
        margin-bottom: 0.75rem !important;
    }
    
    footer p,
    footer li,
    footer a {
        font-size: 10px !important;
    }
    
    footer .col-12 {
        margin-bottom: 1.5rem !important;
    }
    
    .footer-logo {
        height: clamp(60px, 7.4vw, 100px) !important;
    }
    
    /* General Typography */
    h1 {
        font-size: 20pt !important;
    }

    body[data-nav-active='about-us.html'] h1.page-blue-heading {
        font-size: clamp(
            16pt,
            calc(16pt + (100vw - 280px) * 4pt / 60px),
            20pt
        ) !important;
        white-space: nowrap;
    }
    
    body {
        font-size: 1.2rem !important;
    }
    
    /* Container adjustments */
    .container {
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    .container-fluid {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    /* Patient form cards — tap hint scales with narrow single-column cards */
    .patient-form-flip-card-front,
    .patient-form-download-card-inner {
        --patient-form-tap-hint-size: 0.68rem;
        --patient-form-tap-hint-inset: 0.48rem;
    }
}

/* --------------------------------------------------------------------------
   OUR SERVICES PAGE — proportional typography (1920×1080 reference)
   Red headings 28px, body/bullets 25.6px. Shared vw scaling preserves ratio
   across breakpoints; overrides generic .text-column-responsive font rules.
   -------------------------------------------------------------------------- */
.our-services-content {
    /* 1920 reference: 28px red column headings; body uses .page-body-text globally */
    --services-heading-size: clamp(calc(18px * 1.09375), calc(8px + 1.04vw), 28px);
    --services-stack-gap: clamp(0.875rem, 1.04vw, 1.25rem);
}

.our-services-content .services-column-heading,
.our-services-content .text-column-responsive .services-column-heading {
    font-size: var(--services-heading-size) !important;
    line-height: 1.2 !important;
    margin-bottom: var(--services-stack-gap) !important;
}

.our-services-content .services-column-list,
.our-services-content .text-column-responsive .services-column-list {
    padding-left: 1.25em;
}

.our-services-content .page-body-text,
.our-services-content .services-column-list.page-body-text,
.our-services-content .text-column-responsive .page-body-text,
.our-services-content .text-column-responsive .services-column-list.page-body-text {
    margin-bottom: var(--services-stack-gap) !important;
}

.our-services-content .services-column-list.page-body-text li,
.our-services-content .text-column-responsive .services-column-list.page-body-text li {
    margin-bottom: 0.25em;
}

.our-services-content .services-column-list.page-body-text li:last-child,
.our-services-content .text-column-responsive .services-column-list.page-body-text li:last-child {
    margin-bottom: 0;
}
