/* ==========================================================================
   Dr. Madhu Chopra — Responsive
   Mobile-first breakpoints: 640px (large phones / small tablets),
   900px (tablets / small laptops), 1024px, 1160px and 1280px (desktop).
   ========================================================================== */

@media (max-width: 639px) {
    .hero__actions .btn,
    .cta__actions .btn {
        flex: 1 1 100%;
    }

    .topbar__inner {
        justify-content: space-between;
        gap: 12px;
    }

    .topbar__phone,
    .topbar__follow {
        gap: 8px;
        font-size: 0.8125rem;
    }

    .gallery-lightbox__nav {
        width: 42px;
        height: 42px;
        margin-top: -21px;
    }

    .gallery-lightbox__nav--prev {
        left: 9px;
    }

    .gallery-lightbox__nav--next {
        right: 9px;
    }

    .hero__eyebrow {
        letter-spacing: 0.14em;
    }

    .hero__badge {
        width: 92px;
        height: 92px;
    }

    .hero__badge-core {
        width: 36px;
        height: 36px;
    }

    .hero__card {
        max-width: 250px;
    }

    .about__stats {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .training-band {
        padding: 28px 20px;
    }

    .training-band__countries {
        row-gap: 0;
        font-size: clamp(1rem, 5.6vw, 1.25rem);
    }

    /* Three countries, then two: this empty item is a full-width line break
       between them, so no row ever starts with a separator */
    .training-band__countries::after {
        content: "";
        flex-basis: 100%;
        order: 1;
        height: 8px;
    }

    .training-band__countries li:nth-child(n + 4) {
        order: 2;
    }

    .training-band__countries li + li::before {
        margin-inline: clamp(8px, 3.4vw, 14px);
    }

    .training-band__countries li:nth-child(4)::before {
        display: none;
    }

    .quote {
        padding: 24px 24px 24px 64px;
    }

    .quote__icon {
        left: 22px;
        width: 26px;
        height: 26px;
    }

    .faq-item__inner p {
        padding-right: 0;
    }
}

/* The narrowest phones have no room for the words beside the number and logos */
@media (max-width: 359px) {
    .topbar__follow-label {
        display: none;
    }
}

@media (min-width: 640px) {
    :root {
        --topbar-h: 47px;
        --gutter: 28px;
    }

    .hero__outline {
        transform: translate(20px, 20px);
    }

    .hero__card {
        left: -24px;
    }

    .hero__badge {
        right: -18px;
    }

    .about__tag {
        right: -20px;
    }

    .treat-grid,
    .phil-cards,
    .form-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .expertise__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .exp-card {
        padding: 28px 28px 36px;
    }

    .exp-card:nth-child(odd)::after {
        content: "";
        position: absolute;
        top: 20px;
        bottom: 24px;
        right: 0;
        width: 1px;
        background: rgba(197, 164, 126, 0.45);
    }

    .exp-card:nth-child(-n+2)::before {
        content: "";
        position: absolute;
        left: 20px;
        right: 20px;
        bottom: 0;
        height: 1px;
        background: rgba(197, 164, 126, 0.45);
    }

    .tabs__tab {
        padding: 12px 22px;
        font-size: 0.9375rem;
    }

    .tabs__suffix {
        display: inline;
    }

    .tabs__count {
        display: inline-block;
    }

    .training-band {
        padding: 34px 44px;
    }

    .gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Tablet: brand runs across the top, contact and map sit side by side below */
    .footer__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer__brand {
        grid-column: 1 / -1;
    }

    .footer__bottom {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 24px;
    }

    .footer__disclaimer {
        text-align: right;
    }
}

/* Tablet: the single-column hero text sits centred under the portrait */
@media (min-width: 640px) and (max-width: 899px) {
    .hero__content {
        text-align: center;
    }

    .hero__eyebrow,
    .hero__actions {
        justify-content: center;
    }

    .hero .divider,
    .hero__text {
        margin-inline: auto;
    }
}

/* Tablet: leadership cards run full width, so the arc becomes a side panel */
@media (min-width: 640px) and (max-width: 1023px) {
    .leader-card {
        padding: 40px 40px 44px calc(var(--arc-w) + 52px);
    }

    .leader-card__arc {
        top: 50%;
        right: calc(100% - var(--arc-w));
        bottom: auto;
        left: auto;
        margin: -450px 0 0;
    }

    .leader-card--photo {
        --arc-w: 240px;
    }

    .leader-card__photo {
        width: var(--arc-w);
        height: 100%;
        clip-path: circle(450px at calc(var(--arc-w) - 450px) 50%);
    }
}

@media (min-width: 900px) {
    :root {
        --header-top-h: 100px;
        --gutter: 40px;
    }

    .hero {
        display: flex;
        align-items: center;
        min-height: min(calc(100vh - var(--header-h)), 760px);
        padding-top: 48px;
        padding-bottom: 64px;
    }

    .hero > .container {
        width: 100%;
    }

    .hero__grid {
        grid-template-columns: 1.05fr 0.95fr;
        gap: 56px;
    }

    .hero__visual {
        order: 0;
        margin-right: 0;
    }

    .about__grid {
        grid-template-columns: 0.9fr 1.1fr;
        gap: 64px;
        align-items: start;
    }

    /* The biography is much taller than the portrait, so the portrait stays in view beside it */
    .about__media {
        position: sticky;
        top: calc(var(--sticky-h) + 32px);
    }

    .quals__stage {
        grid-template-columns: repeat(2, 1fr);
        grid-template-areas: "head head" "start end" "arch arch";
        column-gap: 24px;
    }

    .quals__list {
        max-width: none;
    }

    .section-head--split {
        grid-template-columns: 1fr 1fr;
    }

    .section-head--split .section-lead {
        justify-self: end;
    }

    .philosophy__grid {
        grid-template-columns: 0.85fr 1.15fr;
        gap: 88px;
    }

    .faq__grid {
        grid-template-columns: 0.8fr 1.2fr;
        gap: 88px;
    }

    .faq__intro {
        position: sticky;
        top: calc(var(--sticky-h) + 32px);
    }

    .expertise__intro {
        grid-template-columns: 0.9fr 1.1fr;
        gap: 72px;
        align-items: center;
    }

    .contact__grid {
        grid-template-columns: 0.9fr 1.1fr;
        gap: 64px;
        align-items: start;
    }

    .footer__grid {
        grid-template-columns: 1fr 1.25fr 1.15fr;
        column-gap: 56px;
    }

    .footer__brand {
        grid-column: auto;
    }

    .float-actions {
        right: 28px;
        bottom: 28px;
    }
}

@media (min-width: 1024px) {
    .expertise__grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .exp-card {
        padding: 24px 28px 36px;
    }

    .exp-card::before {
        display: none !important;
    }

    .exp-card:nth-child(odd)::after {
        display: none;
    }

    .exp-card:not(:last-child)::after {
        content: "";
        position: absolute;
        top: 16px;
        bottom: 20px;
        right: 0;
        width: 1px;
        background: rgba(197, 164, 126, 0.45);
        display: block !important;
    }

    .treat-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .video-grid {
        grid-template-columns: repeat(3, 1fr);
        max-width: none;
    }

    .leaders__grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* A taller band on every card, so all three texts start level with the photo card's */
    .leader-card {
        --arc-h: 260px;
    }
}

@media (min-width: 1160px) {
    /* Two-row header: bar and logo row scroll away, menu row stays pinned */
    :root {
        --header-top-h: 144px;
        --nav-h: 58px;
        --sticky-h: var(--nav-h);
    }

    .site-header {
        top: calc((var(--topbar-h) + var(--header-top-h)) * -1);
    }

    .site-header__top-inner {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
    }

    .site-header__info {
        display: flex;
    }

    .brand img {
        height: calc(var(--header-top-h) - 16px);
    }

    .site-nav {
        display: block;
    }

    .header-cta {
        display: inline-flex;
        min-height: 56px;
        padding: 0 34px;
        font-size: 0.9375rem;
    }

    .nav-toggle,
    .mobile-nav {
        display: none;
    }

    /* Label and countries only fit side by side from here; below this they stack */
    .training-band {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
    }

    .training-band__countries {
        justify-content: flex-end;
    }
}

@media (min-width: 1280px) {
    /* Qualifications: cards curve around the heading, following the arcs.
       Each card row sits on an angle (--a) of the arc ellipse, so its
       distance from the centre column comes from the same geometry. */
    .quals__stage {
        --row: 100px;
        --gap: 22px;
        --pitch: calc(var(--row) + var(--gap));
        --center: clamp(340px, 26vw, 400px);
        --spread: clamp(56px, 4.4vw, 80px);
        --ring-a: calc(var(--center) / 2 + var(--spread));
        --dot-gap: 18px;
        max-width: 1520px;
        grid-template-columns: 1fr var(--center) 1fr;
        grid-template-areas: "start head end";
        align-items: start;
        column-gap: 0;
        padding-bottom: 96px;
    }

    .quals__head {
        max-width: none;
        margin: 0;
    }

    .quals__ring {
        display: block;
        position: absolute;
        top: calc(var(--row) / 2 - var(--pitch) * 1.15);
        right: 0;
        left: 0;
        width: calc(var(--ring-a) * 2);
        height: calc(var(--pitch) * 4.72);
        margin-inline: auto;
    }

    .quals__list {
        grid-auto-rows: minmax(var(--row), auto);
        gap: var(--gap);
    }

    .quals__list .qual-card {
        --shift: calc(var(--ring-a) * cos(var(--a)) + var(--dot-gap) - var(--center) / 2);
        width: min(420px, 100% - var(--spread) - var(--dot-gap));
        min-height: var(--row);
    }

    /* Rows past the arcs sit below them, beside the arch */
    .quals__list .qual-card:nth-child(n + 5) {
        --shift: 0px;
    }

    .quals__list--start .qual-card {
        justify-self: end;
        margin-right: var(--shift);
    }

    .quals__list--end .qual-card {
        flex-direction: row-reverse;
        justify-self: start;
        margin-left: var(--shift);
        padding: 8px 22px 8px 8px;
    }

    .quals__list--end .qual-card__num {
        display: none;
    }

    .quals__arch {
        position: absolute;
        top: calc(var(--pitch) * 2.35);
        right: 0;
        bottom: 0;
        left: 0;
        width: calc(var(--center) * 0.88 + 30px);
        margin: 0 auto;
    }

    .quals__arch-body {
        min-height: 0;
        padding-top: 80px;
    }
}
