:root {
    --magenta: #9A144B;
    --blue: #CFE8FA;
    --navy: #192A3A;
    --cream: #F4E8D5;
    --purple: #D9D0EE;
    --paper: #FBF8F2;
    --ink: #9A144B;
    --line: rgba(25,42,58,.15);
    --max: 1180px;
    --body-font: "Avenir Next","Helvetica Neue",Arial,sans-serif;
}

* {
    box-sizing: var(--ink);
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--body-font);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
    max-width: 100%;
}

.shell {
    max-width: var(--max);
    margin: 0 auto;
    padding: 0 28px;
}

.header {
    position: sticky;
    top: 0;
    z-index: 30;
    background: rgba(251,248,242,.97);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--line);
}

.nav {
    height: 76px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.logo img {
    height: 50px;
    width: auto;
}

.navlinks {
    display: flex;
    align-items: center;
    gap: 27px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 20px;
    border: 1px solid var(--navy);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    background: transparent;
    transition: .18s ease;
}

.btn:hover {
    background: var(--navy);
    color: white;
}

.btn.magenta {
    background: var(--magenta);
    border-color: var(--magenta);
    color: white;
}

.btn.magenta:hover {
    background: var(--navy);
    border-color: var(--navy);
}

.btn.light {
    border-color: #fff;
    color: #fff;
}

.menu {
    display: none;
    background: none;
    border: 0;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

/* Shared sizing + alignment */
.eyebrow {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    margin-bottom: 22px;
}

.svg-heading {
    display: block;
    margin: 0;
    width: auto;
    max-width: 100%;
}

.section {
    padding: 82px 0;
    border-bottom: 1px solid var(--line);
}

.body-copy {
    font-size: 17px;
    line-height: 1.6;
}

/* HERO */
.hero {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 590px;
    border-bottom: 1px solid var(--line);
}

.hero-copy {
    padding: 82px 7vw 76px max(28px,calc((100vw - var(--max))/2 + 28px));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.hero-heading {
    width: min(100%,560px);
    margin: 0 0 28px;
}

.hero-sub {
    font-size: 21px;
    line-height: 1.45;
    max-width: 540px;
    margin: 0 0 34px;
}

.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.hero-brand {
    background: var(--blue);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px;
}

.hero-brand img {
    width: min(420px,70%);
    height: auto;
}

/* ABOUT with image placed naturally on the right */
.about-wrap {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 70px;
    align-items: stretch;
}

.about-copy-wrap {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.about-heading {
    width: min(100%,540px);
    margin-bottom: 28px;
}

.about-copy {
    font-size: 17px;
    line-height: 1.62;
    margin: 0;
    max-width: 540px;
}

.about-photo {
    min-height: 520px;
    overflow: hidden;
    background: var(--cream);
}

.about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 58%;
}

/* CLASSES */
.class-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    align-items: stretch;
    border: 1px solid var(--line);
}

.class-card {
    min-height: 270px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    border-right: 1px solid var(--line);
}

.class-card:last-child {
    border-right: 0;
}

.class-card:nth-child(1) {
    background: var(--magenta);
    color: #fff;
}

.class-card:nth-child(2) {
    background: var(--cream);
}

.class-card:nth-child(3) {
    background: var(--blue);
}

.class-title {
    height: 82px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
}

.class-title img {
    height: auto;
    max-height: 82px;
    width: auto;
    max-width: 100%;
}

.class-card:nth-child(1) .class-title img {
    filter: brightness(0) invert(1);
}

.class-card p {
    font-size: 16px;
    line-height: 1.5;
    margin: 18px 0 0;
    max-width: 280px;
    min-height: 72px;
}

.more {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 28px;
}

/* PRICING */
.price-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    border: 1px solid var(--line);
}

.price {
    padding: 42px;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.price.casual {
    background: var(--blue);
}

.price.member {
    background: var(--magenta);
    color: #fff;
}

.price-label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.amount {
    font-size: 82px;
    line-height: .95;
    font-weight: 700;
    letter-spacing: -.045em;
}

.amount small {
    font-size: 17px;
    letter-spacing: 0;
    font-weight: 500;
}

.price p {
    font-size: 16px;
    line-height: 1.5;
    margin: 0 0 22px;
}

/* MENTORING */
.mentor-teaser {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    min-height: 540px;
    border-bottom: 1px solid var(--line);
}

.mentor-copy {
    background: var(--cream);
    padding: 58px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.mentor-heading {
    width: min(100%,500px);
    margin: 0 0 24px;
}

.mentor-copy p {
    font-size: 17px;
    line-height: 1.6;
    max-width: 480px;
    margin: 0 0 28px;
}

.mentor-photo {
    overflow: hidden;
    background: var(--cream);
}

.mentor-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* LOCATION: page bg stays paper, only left card is purple */
.location-section {
    background: var(--paper);
}

.location-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    border: 1px solid var(--line);
}

.location-copy {
    background: var(--purple);
    padding: 42px;
    min-height: 470px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
}

.location-heading {
    width: min(100%,390px);
    margin: 0;
}

.location-info {
    display: grid;
    gap: 18px;
    font-size: 16px;
    line-height: 1.5;
}

.location-info strong {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .11em;
    margin-bottom: 4px;
}

.map {
    width: 100%;
    min-height: 470px;
    border: 0;
    filter: grayscale(1);
}

/* FOOTER */
.footer {
    padding: 34px 0 44px;
}

.footer-grid {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: flex-end;
}

.footer small {
    font-size: 12px;
    line-height: 1.6;
}

.social-link {
    text-decoration: underline;
    text-underline-offset: 4px;
    font-weight: 700;
}

/* basic inner pages */
.page-hero {
    padding: 90px 0 64px;
    border-bottom: 1px solid var(--line);
}

.page-hero h1 {
    font-size: 64px;
    line-height: .95;
    margin: 0;
}

.page-hero p {
    font-size: 20px;
    line-height: 1.55;
    max-width: 650px;
}

.detail {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 70px;
    padding: 72px 0;
    border-bottom: 1px solid var(--line);
}

.detail h2 {
    font-size: 40px;
    margin: 0;
}

.detail p {
    font-size: 18px;
    line-height: 1.65;
    margin: 0;
}

.contact-grid {
    display: grid;
    grid-template-columns: .65fr 1.35fr;
    gap: 80px;
    padding: 76px 0;
}

@media (max-width:850px){
    .shell {
        padding: 0 18px;
    }

    .nav {
        height: 68px;
    }

    .logo img {
        height: 42px;
    }

    .navlinks {
        display: none;
    }

    .menu {
        display: block;
    }

    .hero,
    .about-wrap,
    .mentor-teaser,
    .location-grid,
    .detail,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .hero-copy {
        padding: 64px 18px 50px;
    }

    .hero-brand {
        min-height: 390px;
        padding: 40px 18px;
    }

    .about-photo {
        min-height: 430px;
    }

    .class-grid,
    .price-grid {
        grid-template-columns: 1fr;
    }

    .class-card {
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .class-card:last-child {
        border-bottom: 0;
    }

    .mentor-copy {
        padding: 44px 28px;
    }

    .footer-grid {
        flex-direction: 570px;
        align-items: flex-start;
    }

    .section {
        padding: 66px 0;
    }
}

/* V10 homepage refinements */
.hero {
    min-height: 570px;
}

.hero-copy {
    padding-top: 78px;
    padding-bottom: 72px;
}

.hero-heading {
    width: min(100%,560px);
    margin: 0 0 24px;
}

.hero-sub {
    font-size: 20px;
    line-height: 1.45;
    max-width: 560px;
    margin: 0 0 32px;
}

/* About: tighter, cleaner, less empty */
.about-wrap {
    display: grid;
    grid-template-columns: .95fr 1.05fr;
    gap: 64px;
    align-items: center;
}

.about-copy-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.about-heading {
    width: min(100%,470px);
    margin: 0 0 24px;
}

.about-copy {
    font-size: 17px;
    line-height: 1.58;
    max-width: 610px;
    margin: 0;
}

.about-notes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    width: 100%;
    max-width: 610px;
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}

.about-note {
    font-size: 14px;
    line-height: 1.5;
}

.about-note strong {
    display: block;
    margin-bottom: 5px;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.about-photo {
    height: 390px;
    min-height: 0;
    overflow: hidden;
    background: var(--cream);
}

.about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 62%;
}

/* Class cards: same title size, same left edge, same vertical rhythm */
.class-card {
    text-align: left;
    align-items: flex-start;
}

.class-title {
    width: 100%;
    height: 68px;
    min-height: 68px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}

.class-title img {
    display: block;
    height: 58px;
    max-height: 58px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: left top;
    margin: 0;
}

.class-card p {
    font-size: 16px;
    line-height: 1.5;
    margin-top: 18px;
    min-height: 72px;
}

@media (max-width:850px){
    .about-wrap {
        grid-template-columns: 1fr;
    }

    .about-notes {
        grid-template-columns: 1fr;
    }

    .about-photo {
        height: 360px;
    }
}

/* V11 — About image left / copy right */
.about-copy-wrap {
    padding: 22px 0 22px 10px;
}

@media (max-width:850px){
    .about-copy-wrap {
        padding: 0;
    }
}

/* V12 HOME REFINEMENTS */
/* Hero exact treatment */
.hero-heading {
    width: min(100%,560px);
    margin: 0 0 24px;
}

/* About: studio image integrated softly rather than dropped in as a rigid box */
.about-wrap {
    grid-template-columns: 1.02fr .98fr;
    gap: 56px;
    align-items: center;
}

.about-photo {
    position: relative;
    height: 420px;
    overflow: hidden;
    background: var(--paper);
    border-radius: 0;
}

.about-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(251,248,242,.18) 0%, rgba(251,248,242,0) 24%),
    linear-gradient(180deg, rgba(251,248,242,.10) 0%, rgba(251,248,242,0) 22%, rgba(251,248,242,.08) 100%);
}

.about-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 52%;
    filter: saturate(.84) contrast(.94) brightness(1.03);
}

/* Class cards: exact same heading size and left alignment */
.class-card {
    align-items: flex-start;
    text-align: left;
}

.class-title {
    width: 100%;
    height: 70px;
    min-height: 70px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}

.class-title img {
    display: block;
    height: 56px;
    max-height: 56px;
    width: auto;
    max-width: 92%;
    object-fit: contain;
    object-position: left top;
    margin: 0;
}

.class-card p,
.class-card .more {
    text-align: left;
    margin-left: 0;
    align-self: flex-start;
}

/* Location: dark navy instead of purple */
.location-section {
    background: var(--paper);
}

.location-copy {
    background: var(--navy);
    color: #fff;
}

.location-heading {
    filter: brightness(0) invert(1);
}

.location-info {
    color: #fff;
}

.location-grid {
    border-color: rgba(25,42,58,.22);
}

/* Footer */
.footer-simple {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.footer-simple small {
    font-size: 12px;
    line-height: 1.6;
}

@media (max-width:850px){
    .about-wrap {
        grid-template-columns: 1fr;
    }

    .about-photo {
        height: 350px;
    }

    .footer-simple {
        justify-content: flex-start;
    }
}

/* V13 — class styles follow pricing card structure */
.class-grid {
    grid-template-columns: repeat(3,1fr);
    align-items: stretch;
}

.class-card {
    min-height: 330px;
    padding: 42px;
    align-items: flex-start;
    text-align: left;
}

.class-card > div {
    width: 100%;
}

.class-title {
    width: 100%;
    height: auto;
    min-height: 0;
    display: block;
    margin: 0 0 34px;
}

.class-title img {
    display: block;
    height: 42px;
    max-height: 42px;
    width: auto;
    max-width: 88%;
    margin: 0;
    object-fit: contain;
    object-position: left center;
}

.class-card p {
    margin: 0;
    min-height: 0;
    max-width: 310px;
    font-size: 16px;
    line-height: 1.52;
}

.class-card .more {
    margin-top: 34px;
    align-self: flex-start;
    text-align: left;
}

/* Footer restored with full studio details */
.footer-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr 1fr;
    gap: 32px;
    align-items: end;
}

.footer-brand strong {
    display: block;
    margin-bottom: 4px;
}

.footer-contact {
    font-size: 12px;
    line-height: 1.6;
}

.footer-meta {
    text-align: right;
    font-size: 12px;
    line-height: 1.6;
}

@media (max-width:850px){
    .footer-grid {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .footer-meta {
        text-align: left;
    }
}

/* V16 — address uses the same clean type family as the location details */
.location-address {
    margin: 0 0 58px;
    max-width: 520px;
    font-family: var(--body-font);
    font-size: 34px;
    line-height: 1.12;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #fff;
    text-transform: none;
}

/* Location labels: same family, just larger and bold */
.location-info strong,
.location-copy .location-info strong {
    display: block;
    margin: 0 0 8px;
    font-family: var(--body-font);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.location-info {
    font-family: var(--body-font);
}

/* V17 — smaller uppercase location address */
.location-address {
    max-width: 560px;
    margin-bottom: 58px;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}

/* V18 — typography alignment + class tile consistency */
/* MAT-font section headings */
.section-title-mat {
    display: block;
    height: 28px;
    width: auto;
    margin: 0 0 34px 0;
}

/* Align display headings with their body copy */
.about-heading,
.mentor-heading {
    margin-left: -4px;
}

/* Class tile headings use the same clean system as Casual / MAT Membership */
.class-name {
    margin: 0 0 30px 0;
    font-family: var(--body-font);
    font-size: 20px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
    text-align: left;
}

.class-card {
    padding: 42px;
    text-align: left;
    align-items: flex-start;
}

.class-card > div {
    width: 100%;
}

.class-card p {
    margin: 0;
    max-width: 320px;
    font-size: 16px;
    line-height: 1.52;
    text-align: left;
}

.class-card .more {
    margin-top: 34px;
    margin-left: 0;
    align-self: flex-start;
    text-align: left;
}

/* Make Pricing labels and class labels feel like the same family */
.price-label {
    font-size: 20px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

/* Keep left edges consistent in About / Mentoring */
.about-copy-wrap,
.mentor-copy {
    align-items: flex-start;
    text-align: left;
}

.about-copy,
.mentor-copy p,
.about-notes,
.mentor-copy .eyebrow {
    margin-left: 0;
}

@media (max-width:850px){
    .section-title-mat {
        height: 24px;
        margin-bottom: 28px;
    }

    .class-name {
        font-size: 18px;
    }

    .price-label {
        font-size: 18px;
    }
}

/* V19 — subtle section labels, matching 'FOR INSTRUCTORS' */
.section-title-mat {
    display: block;
    height: 20px;
    width: auto;
    margin: 0 0 34px 0;
}

/* V20 — quieter titles + consistent horizontal alignment */
.section-title-mat {
    height: 15px;
    width: auto;
    margin: 0 0 28px 0;
}

.class-card {
    padding: 38px 40px;
    text-align: left;
    align-items: flex-start;
}

.class-card > div {
    width: 100%;
}

.class-name {
    margin: 0 0 25px 0;
    padding: 0;
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: .055em;
    text-align: left;
}

.class-card p {
    margin: 0;
    padding: 0;
    max-width: 100%;
    font-size: 16px;
    line-height: 1.52;
    text-align: left;
}

.class-card .more {
    margin: 30px 0 0 0;
    padding: 0;
    align-self: flex-start;
    text-align: left;
}

.price-card {
    padding-left: 40px;
    padding-right: 40px;
    text-align: left;
}

.price-label {
    margin-left: 0;
    font-size: 16px;
    line-height: 1.2;
    letter-spacing: .055em;
    text-align: left;
}

.price-card > * {
    text-align: left;
}

.about-copy-wrap,
.mentor-copy {
    padding-left: 0;
    text-align: left;
    align-items: flex-start;
}

.about-heading,
.mentor-heading,
.about-copy,
.about-notes,
.mentor-copy p,
.mentor-copy .eyebrow,
.mentor-copy .btn {
    margin-left: 0;
}

.location-address,
.location-info,
.location-info strong {
    margin-left: 0;
}

@media (max-width:850px){
    .section-title-mat {
        height: 14px;
    }

    .class-card {
        padding: 32px 28px;
    }

    .price-card {
        padding-left: 28px;
        padding-right: 28px;
    }

    .class-name,
    .price-label {
        font-size: 15px;
    }
}

/* V21 — integrated About image + mentoring spacing refinement */
/* About image becomes a washed background, not a rigid block */
.about-section {
    position: relative;
    overflow: hidden;
    min-height: 560px;
    background: var(--paper);
}

.about-bg {
    position: absolute;
    inset: 0 0 0 42%;
    background-image: linear-gradient(90deg, var(--paper) 0%, rgba(251,248,242,.94) 12%, rgba(251,248,242,.76) 32%, rgba(251,248,242,.45) 62%, rgba(251,248,242,.38) 100%),
    linear-gradient(180deg, rgba(251,248,242,.2), rgba(251,248,242,.3)),
    url("assets/about-bg.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: saturate(.78) contrast(.9) brightness(1.05);
    opacity: .9;
}

.about-content {
    position: relative;
    z-index: 1;
}

.about-copy-wrap {
    max-width: 560px;
    padding: 16px 0 18px 0;
}

.about-heading {
    margin: 0 0 24px 0;
}

.about-copy {
    margin: 0;
}

.about-notes {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid rgba(25,42,58,.16);
}

/* Mentoring: tighter, cleaner vertical rhythm */
.mentor-copy {
    padding: 52px 58px;
    align-items: flex-start;
    text-align: left;
}

.mentor-copy .eyebrow {
    margin: 0 0 22px 0;
}

.mentor-heading {
    margin: 0 0 26px 0;
    width: min(100%,470px);
}

.mentor-copy p {
    margin: 0 0 28px 0;
    max-width: 470px;
    font-size: 17px;
    line-height: 1.55;
}

.mentor-copy .btn {
    margin: 0;
}

/* subtle section labels + strict left alignment from V20 */
.section-title-mat {
    height: 16px;
    width: auto;
    margin: 0 0 30px 0;
}

.class-card {
    padding: 38px 40px;
    align-items: flex-start;
    text-align: left;
}

.class-name {
    margin: 0 0 26px 0;
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: .06em;
}

.class-card p,
.class-card .more {
    margin-left: 0;
    text-align: left;
    align-self: flex-start;
}

.price-card {
    padding-left: 40px;
    padding-right: 40px;
    text-align: left;
}

.price-label {
    margin-left: 0;
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: .06em;
}

@media (max-width:850px){
    .about-section {
        min-height: auto;
    }

    .about-bg {
        inset: 0;
        opacity: .34;
        background-position: center;
    }

    .about-copy-wrap {
        max-width: none;
        padding: 0;
    }

    .mentor-copy {
        padding: 42px 28px;
    }
}

/* V22 — About composition flipped + stronger integrated image */
.about-section {
    position: relative;
    overflow: hidden;
    min-height: 600px;
    background: var(--paper);
}

.about-bg {
    position: absolute;
    inset: 0 44% 0 0;
    background-image: linear-gradient(270deg, var(--paper) 0%, rgba(251,248,242,.92) 12%, rgba(251,248,242,.60) 34%, rgba(251,248,242,.25) 68%, rgba(251,248,242,.15) 100%),
    linear-gradient(180deg, rgba(251,248,242,.08), rgba(251,248,242,.18)),
    url("assets/about-bg.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: saturate(.82) contrast(.92) brightness(1.03);
    opacity: .98;
}

.about-content {
    position: relative;
    z-index: 1;
    min-height: 520px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.about-copy-panel {
    width: 48%;
    padding: 34px 0 34px 34px;
}

.about-copy-panel .eyebrow,
.about-copy-panel .about-heading,
.about-copy-panel .about-copy,
.about-copy-panel .about-notes {
    margin-left: 0;
}

.about-copy-panel .about-heading {
    max-width: 500px;
}

.about-copy-panel .about-copy {
    max-width: 560px;
}

.about-copy-panel .about-notes {
    max-width: 560px;
}

/* Slightly more prominent section labels */
.section-title-mat {
    height: 22px;
    width: auto;
    margin: 0 0 32px 0;
}

/* Personable MAT values section */
.mat-values {
    background: var(--paper);
}

.values-grid {
    display: grid;
    grid-template-columns: 1.35fr repeat(3, .75fr);
    gap: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.values-intro,
.value-card {
    padding: 34px 30px;
    border-right: 1px solid var(--line);
}

.value-card:last-child {
    border-right: 0;
}

.values-intro {
    padding-left: 0;
}

.values-intro h2 {
    margin: 0 0 18px;
    max-width: 420px;
    font-family: var(--body-font);
    font-size: 28px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -.02em;
}

.values-intro p,
.value-card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
}

.value-card strong {
    display: block;
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

/* Mentoring spacing, kept clean and aligned */
.mentor-copy {
    padding: 50px 58px;
}

.mentor-copy .eyebrow {
    margin-bottom: 18px;
}

.mentor-heading {
    margin-bottom: 22px;
}

.mentor-copy p {
    margin-bottom: 26px;
}

/* Keep tile text consistently left aligned */
.class-card,
.price {
    text-align: left;
    align-items: flex-start;
}

.class-name,
.class-card p,
.class-card .more,
.price-label,
.price p {
    text-align: left;
    margin-left: 0;
}

@media (max-width:900px){
    .about-bg {
        inset: 0;
        opacity: .34;
    }

    .about-content {
        min-height: auto;
        justify-content: flex-start;
    }

    .about-copy-panel {
        width: 100%;
        padding: 20px 0;
    }

    .values-grid {
        grid-template-columns: 1fr;
    }

    .values-intro,
    .value-card {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 28px 0;
    }

    .value-card:last-child {
        border-bottom: 0;
    }
}

/* V23 — integrated About values + warmer, more structured studio image */
.about-section {
    position: relative;
    overflow: hidden;
    min-height: 690px;
    background: var(--paper);
}

.about-bg {
    position: absolute;
    inset: 0 48% 0 0;
    background-image: linear-gradient(270deg,
      var(--paper) 0%,
      rgba(251,248,242,.88) 10%,
      rgba(251,248,242,.52) 26%,
      rgba(251,248,242,.16) 58%,
      rgba(251,248,242,.05) 100%
    ),
    linear-gradient(180deg, rgba(250,244,235,.04), rgba(250,244,235,.12)),
    url("assets/about-bg.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: saturate(.96) contrast(.97) brightness(1.01) sepia(.05);
    opacity: 1;
}

.about-content {
    position: relative;
    z-index: 1;
    min-height: 610px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.about-copy-panel {
    width: 50%;
    padding: 34px 0 34px 42px;
}

.about-copy-panel .eyebrow,
.about-copy-panel .about-heading,
.about-copy-panel .about-copy,
.about-copy-panel .about-values,
.about-copy-panel .about-notes {
    margin-left: 0;
}

.about-lead-copy {
    max-width: 600px;
    font-size: 17px;
    line-height: 1.58;
}

.about-values {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 18px;
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}

.about-value strong {
    display: block;
    margin-bottom: 8px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.about-value p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
}

.about-notes {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}

/* Slightly warmer/cleaner overall About composition */
.about-heading {
    max-width: 500px;
    margin-bottom: 22px;
}

/* Classes / Pricing headings remain readable, not oversized */
.section-title-mat {
    height: 22px;
    width: auto;
    margin: 0 0 30px 0;
}

/* Mentoring spacing kept tight */
.mentor-copy {
    padding: 48px 58px;
}

.mentor-copy .eyebrow {
    margin-bottom: 16px;
}

.mentor-heading {
    margin-bottom: 20px;
}

.mentor-copy p {
    margin-bottom: 24px;
}

/* Remove any standalone values styling from V22 from visual flow */
.mat-values {
    display: none !important;
}

@media (max-width:900px){
    .about-section {
        min-height: auto;
    }

    .about-bg {
        inset: 0;
        opacity: .28;
        background-position: center;
    }

    .about-content {
        min-height: auto;
        justify-content: flex-start;
    }

    .about-copy-panel {
        width: 100%;
        padding: 18px 0;
    }

    .about-values {
        grid-template-columns: 1fr;
    }

    .about-notes {
        grid-template-columns: 1fr;
    }
}

/* V24 — About section only */
.about-section {
    position: relative;
    overflow: hidden;
    min-height: 700px;
    background: var(--paper);
}

.about-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(214,158,92,.10) 0%,rgba(244,232,213,.05) 42%,rgba(251,248,242,.58) 58%,rgba(251,248,242,.92) 75%,var(--paper) 100%),
    url("assets/about-bg.jpg") center center / cover no-repeat;
    filter: sepia(.13) saturate(1.12) contrast(.96) brightness(1.02);
    opacity: 1;
}

.about-content {
    position: relative;
    z-index: 1;
    min-height: 700px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.about-copy-panel {
    width: 48%;
    margin-left: auto;
    padding: 58px 0 54px 52px;
}

.about-copy-panel::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 55%;
    z-index: -1;
    background: linear-gradient(90deg,rgba(251,248,242,.18),rgba(251,248,242,.78) 25%,rgba(251,248,242,.94));
}

.about-lead-copy {
    max-width: 570px;
}

.about-values-simple {
    grid-template-columns: 1fr;
    gap: 22px;
    max-width: 570px;
}

.about-values-simple .about-value {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 20px;
    align-items: start;
}

.about-values-simple .about-value strong {
    margin: 0;
}

.about-notes {
    max-width: 570px;
}

@media (max-width:900px){
    .about-bg {
        background: linear-gradient(rgba(251,248,242,.76),rgba(251,248,242,.88)),url("assets/about-bg.jpg") center / cover no-repeat;
    }

    .about-content {
        min-height: auto;
    }

    .about-copy-panel {
        width: 100%;
        padding: 50px 0;
    }

    .about-copy-panel::before {
        display: none;
    }

    .about-values-simple .about-value {
        grid-template-columns: 1fr;
        gap: 7px;
    }
}

/* V25 — tighter hero + 50/50 About composition */
/* Reduce empty space in the hero */
.hero {
    min-height: 520px;
}

.hero-copy {
    padding-top: 58px;
    padding-bottom: 58px;
}

.hero-heading {
    margin-bottom: 22px;
}

.hero-sub {
    margin-bottom: 28px;
}

/* About: standalone warm image left, information right */
.about-section-v25 {
    padding: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
}

.about-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 720px;
}

.about-image-v25 {
    position: relative;
    background: linear-gradient(90deg, rgba(151,88,38,.08), rgba(244,232,213,.08)),
    url("assets/about-studio.jpg") center center / cover no-repeat;
    filter: sepia(.16) saturate(1.16) contrast(.98) brightness(1.01);
}

.about-image-v25::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(214,158,92,.08), rgba(214,158,92,.03) 60%, rgba(251,248,242,.12)),
    linear-gradient(180deg, rgba(70,42,20,.03), rgba(214,158,92,.08));
    pointer-events: none;
}

.about-panel-v25 {
    background: var(--paper);
    padding: 66px 72px 60px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.about-panel-v25 .eyebrow {
    margin: 0 0 22px;
}

.about-heading-v25 {
    width: min(100%,520px);
    margin: 0 0 26px;
}

.about-copy-v25 {
    max-width: 580px;
    margin: 0;
    font-size: 17px;
    line-height: 1.58;
}

.about-points-v25 {
    width: 100%;
    max-width: 580px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid var(--line);
    display: grid;
    gap: 22px;
}

.about-point-v25 {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 18px;
    align-items: start;
}

.about-point-v25 strong,
.about-practical-v25 strong {
    display: block;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.about-point-v25 p,
.about-practical-v25 p {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}

.about-practical-v25 {
    width: 100%;
    max-width: 580px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.about-practical-v25 strong {
    margin-bottom: 7px;
}

/* Keep Classes / Pricing readable */
.section-title-mat {
    height: 22px;
}

/* Mobile */
@media (max-width:900px){
    .hero {
        min-height: auto;
    }

    .hero-copy {
        padding-top: 50px;
        padding-bottom: 50px;
    }

    .about-split {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .about-image-v25 {
        min-height: 420px;
    }

    .about-panel-v25 {
        padding: 48px 24px;
    }

    .about-point-v25 {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .about-practical-v25 {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   V26 — ABOUT MAT
   Mirrors the Mentoring block: image left / copy right.
   ========================================================= */
.about-v26 {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: 34px;
    background: var(--paper);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.about-v26-photo {
    min-width: 0;
    overflow: hidden;
    background: #ead8bd;
}

.about-v26-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 680px;
    object-fit: cover;
    object-position: center;
}

.about-v26-copy {
    min-width: 0;
    background: #F4E8D5;
    display: flex;
    align-items: center;
}

.about-v26-inner {
    width: min(100%, 650px);
    padding: 68px 72px;
    text-align: left;
}

.about-v26-inner .eyebrow {
    margin: 0 0 22px;
}

.about-v26-heading {
    display: block;
    width: min(100%, 510px);
    margin: 0 0 28px;
}

.about-v26-intro {
    max-width: 560px;
    margin: 0;
    font-size: 17px;
    line-height: 1.62;
}

.about-v26-values {
    max-width: 560px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid rgba(25,42,58,.18);
    display: grid;
    gap: 22px;
}

.about-v26-values > div {
    display: grid;
    grid-template-columns: 170px minmax(0,1fr);
    gap: 20px;
    align-items: start;
}

.about-v26-values strong,
.about-v26-practical strong {
    font-size: 13px;
    line-height: 1.3;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.about-v26-values p,
.about-v26-practical p {
    margin: 0;
    font-size: 15px;
    line-height: 1.52;
}

.about-v26-practical {
    max-width: 560px;
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(25,42,58,.18);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.about-v26-practical strong {
    display: block;
    margin-bottom: 7px;
}

/* Phone/tablet: image becomes a clean full-width lead-in, then copy.
   No squeezed two-column text or tiny image. */
@media (max-width: 900px){
    .about-v26 {
        grid-template-columns: 1fr;
        margin-top: 20px;
    }

    .about-v26-photo {
        aspect-ratio: 4 / 3;
    }

    .about-v26-photo img {
        min-height: 0;
        height: 100%;
        object-position: center 58%;
    }

    .about-v26-inner {
        width: 100%;
        padding: 46px 28px 50px;
    }

    .about-v26-heading {
        width: min(100%, 440px);
        margin-bottom: 24px;
    }

    .about-v26-values > div {
        grid-template-columns: 1fr;
        gap: 7px;
    }
}

@media (max-width: 560px){
    .about-v26 {
        margin-top: 14px;
    }

    .about-v26-photo {
        aspect-ratio: 1 / 1;
    }

    .about-v26-photo img {
        object-position: center;
    }

    .about-v26-inner {
        padding: 38px 22px 42px;
    }

    .about-v26-intro {
        font-size: 16px;
        line-height: 1.58;
    }

    .about-v26-practical {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

/* =========================================================
   V27 — polish pass
   ========================================================= */
/* Remove the rule/line and tighten the visual break between hero + About */
.about-v26 {
    margin-top: 18px;
    border-top: 0 !important;
}

/* Shorter About section on desktop — crop more from the top of the warm image */
.about-v26-photo {
    min-height: 0;
}

.about-v26-photo img {
    min-height: 560px;
    max-height: 560px;
    object-fit: cover;
    object-position: center 66%;
}

/* Keep the copy panel balanced with the shorter image */
.about-v26-copy {
    min-height: 560px;
}

.about-v26-inner {
    padding-top: 50px;
    padding-bottom: 50px;
}

/* Mobile/tablet: compact, intentional stacking */
@media (max-width: 900px){
    .about-v26 {
        margin-top: 12px;
    }

    .about-v26-photo {
        aspect-ratio: 16 / 10;
    }

    .about-v26-photo img {
        width: 100%;
        height: 100%;
        min-height: 0;
        max-height: none;
        object-fit: cover;
        object-position: center 66%;
    }

    .about-v26-copy {
        min-height: 0;
    }

    .about-v26-inner {
        padding: 40px 26px 44px;
    }
}

@media (max-width: 560px){
    .about-v26 {
        margin-top: 8px;
    }

    .about-v26-photo {
        aspect-ratio: 4 / 3;
    }

    .about-v26-photo img {
        object-position: center 68%;
    }

    .about-v26-inner {
        padding: 34px 20px 38px;
    }

    .about-v26-values,
    .about-v26-practical {
        gap: 18px;
    }
}

/* =========================================================
   V28 — About Mat aligned to Mentoring
   ========================================================= */
/* No divider line between hero and About; keep a deliberate breathing space */
.about-v26 {
    border-top: none !important;
    margin-top: 28px !important;
}

/* Match the paired-panel proportions and height used by Mentoring */
.about-v26 {
    align-items: stretch;
}

.about-v26-photo,
.about-v26-copy {
    min-height: 0 !important;
    height: auto;
}

.about-v26-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center center;
    display: block;
}

/* Let the content determine the section height; image stretches to the same bottom edge */
.about-v26-copy {
    display: flex;
}

.about-v26-inner {
    width: 100%;
    padding-top: 54px;
    padding-bottom: 54px;
    align-self: stretch;
}

/* Tablet / phone: same visual language, stacked cleanly */
@media (max-width: 900px){
    .about-v26 {
        margin-top: 20px !important;
    }

    .about-v26-photo {
        height: auto !important;
        aspect-ratio: 4 / 3;
    }

    .about-v26-photo img {
        position: static;
        width: 100%;
        height: 100% !important;
        object-fit: cover;
        object-position: center center;
    }

    .about-v26-copy {
        height: auto;
    }

    .about-v26-inner {
        padding: 40px 26px 44px;
    }
}

@media (max-width: 560px){
    .about-v26 {
        margin-top: 16px !important;
    }

    .about-v26-photo {
        aspect-ratio: 4 / 3;
    }

    .about-v26-inner {
        padding: 34px 20px 38px;
    }
}

/* =========================================================
   V29 — final homepage spacing + responsive About split
   ========================================================= */
/* Clean transition from hero to About: no divider, more breathing room */
.hero {
    border-bottom: 0 !important;
}

.about-v26 {
    margin-top: 42px !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    grid-template-columns: 44% 56%;
    align-items: stretch;
}

/* Slightly narrower image so the copy remains visible as the viewport tightens */
.about-v26-photo {
    min-width: 0;
    height: auto !important;
    aspect-ratio: auto !important;
}

.about-v26-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.about-v26-copy {
    min-width: 0;
    height: auto !important;
}

/* Keep image + writing side-by-side on tablets and smaller screens */
@media (max-width:900px){
    .about-v26 {
        grid-template-columns: 38% 62% !important;
        margin-top: 34px !important;
    }

    .about-v26-photo {
        aspect-ratio: auto !important;
        height: auto !important;
    }

    .about-v26-photo img {
        position: static !important;
        height: 100% !important;
        object-fit: cover;
        object-position: center center;
    }

    .about-v26-inner {
        padding: 36px 28px 40px !important;
    }
}

/* Phone: still a split layout rather than moving the image above the copy */
@media (max-width:560px){
    .about-v26 {
        grid-template-columns: 32% 68% !important;
        margin-top: 28px !important;
    }

    .about-v26-inner {
        padding: 28px 18px 32px !important;
    }

    .about-v26-inner .eyebrow {
        margin-bottom: 14px;
    }

    .about-v26-heading {
        margin-bottom: 18px;
    }

    .about-v26-intro {
        font-size: 15px;
        line-height: 1.52;
    }

    .about-v26-values {
        margin-top: 22px;
        padding-top: 20px;
    }

    .about-v26-values > div {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .about-v26-practical {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* =========================================================
   V30 — aligned hero / About transition
   ========================================================= */
/* Slightly wider blue brand panel and less empty vertical space */
.hero {
    grid-template-columns: 49% 51% !important;
    min-height: 520px !important;
    border-bottom: 1px solid var(--line) !important;
}

.hero-copy {
    padding-top: 58px !important;
    padding-bottom: 58px !important;
}

.hero-brand {
    padding: 42px !important;
}

.hero-brand img {
    width: min(440px,72%) !important;
    margin: auto;
}

/* The divider belongs to the hero edge; About starts after a small clean gap */
.about-v26 {
    margin-top: 30px !important;
    border: 0 !important;
}

@media (max-width:900px){
    .hero {
        grid-template-columns: 49% 51% !important;
        min-height: 460px !important;
    }

    .hero-copy {
        padding-top: 44px !important;
        padding-bottom: 44px !important;
    }

    .hero-brand {
        min-height: 0 !important;
        padding: 28px 18px !important;
    }

    .hero-brand img {
        width: min(330px,78%) !important;
    }

    .about-v26 {
        margin-top: 26px !important;
    }
}

@media (max-width:560px){
    /* Keep the two hero halves aligned rather than overlapping */
    .hero {
        grid-template-columns: 55% 45% !important;
        min-height: 390px !important;
    }

    .hero-copy {
        padding: 34px 14px 34px 18px !important;
    }

    .hero-brand {
        padding: 20px 10px !important;
    }

    .hero-brand img {
        width: 88% !important;
        max-width: 230px;
    }

    .about-v26 {
        margin-top: 22px !important;
    }
}

/* =========================================================
   V31 — tighter hero + seamless About transition
   ========================================================= */
.hero {
    min-height: 470px !important;
}

.hero-copy {
    padding-top: 42px !important;
    padding-bottom: 42px !important;
}

.hero-brand {
    padding: 34px !important;
}

.hero-brand img {
    width: min(455px,76%) !important;
}

/* About begins directly after the hero divider — no extra white strip */
.about-v26 {
    margin-top: 0 !important;
}

@media (max-width:900px){
    .hero {
        min-height: 420px !important;
    }

    .hero-copy {
        padding-top: 34px !important;
        padding-bottom: 34px !important;
    }

    .about-v26 {
        margin-top: 0 !important;
    }
}

@media (max-width:560px){
    .hero {
        min-height: 360px !important;
    }

    .hero-copy {
        padding-top: 26px !important;
        padding-bottom: 26px !important;
    }

    .about-v26 {
        margin-top: 0 !important;
    }
}

/* =========================================================
   V32 — hero alignment + spacing refinement
   ========================================================= */
/* Header: logo sits properly at the left gutter rather than drifting inward */
.header .shell.nav {
    max-width: none;
    padding-left: 28px;
    padding-right: 28px;
}

.header .logo {
    margin-right: auto;
}

.header .logo img {
    margin-left: 0;
}

/* Hero becomes shallower and better balanced */
.hero {
    min-height: 0 !important;
    height: auto !important;
    grid-template-columns: 44% 56% !important;
    align-items: stretch;
    border-bottom: 1px solid var(--line);
}

.hero-copy {
    min-height: 470px !important;
    padding-top: 54px !important;
    padding-bottom: 54px !important;
    padding-left: max(38px, calc((100vw - 1180px)/2 + 28px)) !important;
    padding-right: 48px !important;
    justify-content: center !important;
}

.hero-brand {
    min-height: 470px !important;
    padding: 38px !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-brand img {
    width: min(390px,68%) !important;
    margin: auto !important;
}

/* About begins immediately beneath hero and follows the same 44/56 vertical split.
   This makes the blue panel and warm image line up cleanly. */
.about-v26 {
    margin-top: 0 !important;
    grid-template-columns: 44% 56% !important;
    border-top: 0 !important;
}

.about-v26-photo,
.about-v26-copy {
    min-width: 0;
}

.about-v26-photo img {
    width: 100%;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: cover;
    object-position: center 62%;
}

.about-v26-inner {
    padding-left: 58px !important;
    padding-right: 58px !important;
}

/* Tablet: retain side-by-side composition rather than stacking too early */
@media (max-width: 900px) and (min-width: 641px){
    .hero {
        grid-template-columns: 46% 54% !important;
    }

    .hero-copy {
        min-height: 410px !important;
        padding: 42px 28px !important;
    }

    .hero-brand {
        min-height: 410px !important;
        padding: 28px !important;
    }

    .hero-brand img {
        width: min(310px,74%) !important;
    }

    .about-v26 {
        grid-template-columns: 42% 58% !important;
        display: grid !important;
    }

    .about-v26-photo {
        aspect-ratio: auto !important;
        height: auto !important;
    }

    .about-v26-photo img {
        position: static !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center 62% !important;
    }

    .about-v26-inner {
        padding: 38px 30px !important;
    }

    .about-v26-values > div {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
    }

    .about-v26-practical {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }
}

/* Phone: hero stacks, but stays compact; About remains split as long as practical,
   only stacking at truly narrow widths. */
@media (max-width: 640px){
    .header .shell.nav {
        padding-left: 18px;
        padding-right: 18px;
    }

    .hero {
        grid-template-columns: 1fr !important;
    }

    .hero-copy {
        min-height: 0 !important;
        padding: 46px 22px 40px !important;
    }

    .hero-brand {
        min-height: 300px !important;
        padding: 30px 20px !important;
    }

    .hero-brand img {
        width: min(300px,70%) !important;
    }

    .about-v26 {
        grid-template-columns: 1fr !important;
    }

    .about-v26-photo {
        aspect-ratio: 4 / 3 !important;
    }

    .about-v26-photo img {
        height: 100% !important;
        object-fit: cover !important;
        object-position: center 64% !important;
    }

    .about-v26-inner {
        padding: 34px 22px 38px !important;
    }
}

/* =========================================================
   V33 — alignment consistency + Classes page
   ========================================================= */
/* Navigation order is About / Classes / Mentoring / Contact / Book a class */
/* Ensure each paired panel centres its contents consistently at every width */
.hero,
.about-v26,
.mentor-teaser {
    align-items: stretch;
}

.hero-copy,
.hero-brand,
.about-v26-copy,
.mentor-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.hero-brand {
    align-items: center;
}

.about-v26-inner {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Keep the image and copy panels ending at the same height */
.about-v26-photo {
    display: flex;
}

.about-v26-photo img {
    flex: 1 1 auto;
    height: 100% !important;
    width: 100%;
    object-fit: cover;
}

/* Tablet stays paired, with centred content */
@media (max-width: 900px) and (min-width: 641px){
    .hero-copy,
    .hero-brand,
    .about-v26-copy {
        justify-content: center !important;
    }

    .about-v26-inner {
        justify-content: center;
    }
}

/* ---------- Classes page ---------- */
.classes-page {
    background: var(--paper);
}

.classes-intro {
    padding: 74px 0 56px;
    border-bottom: 1px solid var(--line);
}

.classes-intro-inner {
    max-width: 1180px;
}

.classes-intro h1 {
    margin: 0 0 20px;
    font-size: clamp(46px,6vw,76px);
    line-height: .98;
    letter-spacing: -.035em;
    font-weight: 700;
}

.classes-intro p {
    margin: 0;
    max-width: 650px;
    font-size: 18px;
    line-height: 1.55;
}

.class-styles-page {
    padding: 72px 0 84px;
}

.class-styles-stack {
    display: grid;
    gap: 18px;
}

.class-style-row {
    display: grid;
    grid-template-columns: 34% 66%;
    min-height: 250px;
    border: 1px solid var(--line);
}

.class-style-label,
.class-style-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 42px 46px;
}

.class-style-label {
    border-right: 1px solid var(--line);
}

.class-style-label span {
    margin-bottom: 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.class-style-label h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.class-style-copy p {
    margin: 0;
    max-width: 690px;
    font-size: 17px;
    line-height: 1.65;
}

.class-style-magenta {
    background: var(--magenta);
    color: #fff;
}

.class-style-cream {
    background: var(--cream);
}

.class-style-blue {
    background: var(--blue);
}

.class-style-magenta .class-style-label {
    border-color: rgba(255,255,255,.28);
}

/* ---------- Timetable / GymMaster ---------- */
.timetable-section {
    padding: 78px 0 90px;
    border-top: 1px solid var(--line);
}

.timetable-heading {
    display: grid;
    grid-template-columns: 1fr .8fr;
    gap: 60px;
    align-items: end;
    margin-bottom: 34px;
}

.timetable-heading h2 {
    margin: 0;
    font-size: clamp(34px,4.2vw,54px);
    line-height: 1.05;
    letter-spacing: -.025em;
}

.timetable-heading > p {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    max-width: 430px;
}

.gymmaster-shell {
    border: 1px solid var(--line);
    background: #fff;
}

.gymmaster-placeholder {
    min-height: 260px;
    padding: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
}

.gymmaster-placeholder strong {
    display: block;
    margin-bottom: 10px;
    font-size: 18px;
}

.gymmaster-placeholder p {
    margin: 0;
    max-width: 560px;
    font-size: 15px;
    line-height: 1.55;
}

.gymmaster-link {
    flex: 0 0 auto;
}

/* Tablet/mobile */
@media (max-width: 900px){
    .classes-intro {
        padding: 58px 0 46px;
    }

    .class-style-row {
        grid-template-columns: 32% 68%;
    }

    .class-style-label,
    .class-style-copy {
        padding: 34px 30px;
    }

    .timetable-heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

@media (max-width: 640px){
    .class-styles-page {
        padding: 48px 0 60px;
    }

    .class-style-row {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .class-style-label {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding: 28px 24px 20px;
    }

    .class-style-copy {
        padding: 24px;
    }

    .class-style-magenta .class-style-label {
        border-color: rgba(255,255,255,.28);
    }

    .class-style-label h2 {
        font-size: 20px;
    }

    .class-style-copy p {
        font-size: 16px;
    }

    .timetable-section {
        padding: 58px 0 70px;
    }

    .gymmaster-placeholder {
        min-height: 220px;
        padding: 30px 24px;
        flex-direction: column;
        align-items: flex-start;
    }

    .gymmaster-link {
        width: 100%;
    }
}

/* V34 — dedicated About page */
.about-page-intro {
    background: var(--paper);
    padding: 88px 0 76px;
}

.about-page-intro-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 8vw;
    align-items: end;
}

.about-page-intro h1 {
    font-family: var(--display-font);
    font-size: clamp(42px,5.2vw,76px);
    line-height: 1.02;
    letter-spacing: .01em;
    margin: 18px 0 0;
    max-width: 650px;
}

.about-page-lead {
    max-width: 620px;
    font-size: 20px;
    line-height: 1.58;
}

.about-page-lead p {
    margin: 0 0 18px;
}

.about-community-photo {
    width: 100%;
    height: clamp(430px,54vw,760px);
    overflow: hidden;
    background: var(--navy);
}

.about-community-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center 48%;
    filter: contrast(.97);
}

.about-values-section {
    background: var(--cream);
    padding: 92px 0;
}

.about-values-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 9vw;
    align-items: start;
}

.about-values-heading h2 {
    font-family: var(--display-font);
    font-size: clamp(38px,4.4vw,64px);
    line-height: 1.03;
    margin: 18px 0 0;
    max-width: 520px;
}

.about-values-list {
    border-top: 1px solid rgba(25,42,58,.22);
}

.about-value {
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 34px;
    padding: 28px 0;
    border-bottom: 1px solid rgba(25,42,58,.22);
}

.about-value strong {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: .12em;
    line-height: 1.35;
}

.about-value p {
    font-size: 18px;
    line-height: 1.55;
    margin: 0;
    max-width: 520px;
}

.team-section {
    background: var(--paper);
    padding: 92px 0 110px;
}

.team-intro {
    max-width: 760px;
}

.team-intro h2 {
    font-family: var(--display-font);
    font-size: clamp(40px,4.5vw,66px);
    line-height: 1.02;
    margin: 18px 0 22px;
}

.team-intro p {
    font-size: 19px;
    line-height: 1.6;
    max-width: 650px;
    margin: 0;
}

@media (max-width:760px){
    .about-page-intro {
        padding: 58px 0 50px;
    }

    .about-page-intro-grid,
    .about-values-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .about-page-lead {
        font-size: 18px;
    }

    .about-community-photo {
        height: 58vw;
        min-height: 300px;
        max-height: 440px;
    }

    .about-community-photo img {
        object-position: center center;
    }

    .about-values-section,
    .team-section {
        padding: 64px 0;
    }

    .about-value {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 22px 0;
    }

    .about-value p {
        font-size: 17px;
    }
}

/* V36 secondary pages */
.custom-subheading {
    display: block;
    width: auto;
    height: 18px;
    max-width: 100%;
    margin: 0 0 22px;
}

.about-page-intro {
    padding: 92px 0 86px;
}

.about-page-intro-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 100px;
    align-items: start;
}

.about-page-intro h1,
.classes-intro h1,
.mentoring-detail-copy h1,
.contact-intro h1 {
    margin: 0;
    font-size: clamp(44px,5vw,72px);
    line-height: .98;
    letter-spacing: -.035em;
}

.about-page-lead {
    max-width: 650px;
    font-size: 18px;
    line-height: 1.68;
}

.about-page-lead p {
    margin: 0 0 20px;
}

.about-community-photo {
    height: min(62vw,720px);
    overflow: hidden;
    background: #ddd;
}

.about-community-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 50%;
}

.about-belief {
    padding: 92px 0;
    background: var(--cream);
}

.about-belief-grid {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 100px;
    align-items: start;
}

.about-belief h2,
.team-heading h2,
.timetable-heading h2,
.contact-location h2 {
    margin: 0 0 26px;
    font-size: clamp(30px,3.2vw,48px);
    line-height: 1.08;
    letter-spacing: -.025em;
}

.about-belief p {
    max-width: 690px;
    font-size: 17px;
    line-height: 1.65;
    margin: 0 0 18px;
}

.team-section {
    padding: 94px 0 104px;
}

.team-heading {
    margin-bottom: 46px;
}

.team-heading h2 {
    margin-bottom: 0;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 20px;
}

.team-card {
    min-width: 0;
}

.team-image {
    aspect-ratio: 4/5;
    background: var(--cream);
    overflow: hidden;
}

.team-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.team-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.team-copy {
    padding: 20px 2px 0;
}

.team-copy h3 {
    font-size: 21px;
    margin: 0 0 5px;
}

.team-role {
    margin: 0 0 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.team-copy p:last-child {
    font-size: 15px;
    line-height: 1.55;
    margin: 0;
}

.classes-intro {
    padding: 88px 0 58px;
}

.classes-intro-inner p {
    font-size: 18px;
    margin: 22px 0 0;
}

.class-styles-page {
    padding-bottom: 88px;
}

.class-styles-stack {
    display: grid;
    gap: 0;
}

.class-style-row {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    min-height: 260px;
    border: 1px solid var(--line);
    border-bottom: 0;
}

.class-style-row:last-child {
    border-bottom: 1px solid var(--line);
}

.class-style-label,
.class-style-copy {
    padding: 46px 52px;
}

.class-style-label {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.class-style-label span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
}

.class-style-label h2 {
    font-size: 24px;
    line-height: 1.1;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.class-style-copy {
    display: flex;
    align-items: center;
    border-left: 1px solid var(--line);
}

.class-style-copy p {
    font-size: 17px;
    line-height: 1.65;
    max-width: 650px;
    margin: 0;
}

.class-style-magenta {
    background: var(--magenta);
    color: white;
}

.class-style-cream {
    background: var(--cream);
}

.class-style-blue {
    background: var(--blue);
}

.timetable-section {
    padding: 92px 0 110px;
    border-top: 1px solid var(--line);
}

.timetable-heading {
    display: grid;
    grid-template-columns: 1fr .7fr;
    gap: 70px;
    align-items: end;
    margin-bottom: 40px;
}

.timetable-heading p {
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
}

.gymmaster-placeholder {
    min-height: 250px;
    background: var(--cream);
    border: 1px solid var(--line);
    padding: 40px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 40px;
}

.gymmaster-placeholder strong {
    font-size: 20px;
}

.gymmaster-placeholder p {
    max-width: 560px;
    line-height: 1.55;
}

.mentoring-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: calc(100vh - 76px);
}

.mentoring-detail-photo {
    overflow: hidden;
    background: var(--cream);
}

.mentoring-detail-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.mentoring-detail-copy {
    background: var(--cream);
    padding: 110px clamp(42px,6vw,96px) 90px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

.mentoring-detail-copy h1 {
    margin-bottom: 34px;
}

.mentoring-detail-copy p {
    max-width: 610px;
    font-size: 17px;
    line-height: 1.64;
    margin: 0 0 18px;
}

.mentoring-heart {
    font-weight: 600;
    margin-top: 8px!important;
}

.mentoring-price {
    display: flex;
    align-items: baseline;
    gap: 9px;
    margin: 20px 0 28px;
}

.mentoring-price strong {
    font-size: 40px;
}

.mentoring-price span {
    font-size: 14px;
}

.mentoring-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.contact-intro {
    padding: 92px 0 100px;
}

.contact-intro-grid {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 100px;
    align-items: start;
}

.contact-intro h1 {
    margin-bottom: 28px;
}

.contact-intro p {
    max-width: 510px;
    font-size: 17px;
    line-height: 1.65;
}

.contact-direct {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 30px;
    font-weight: 600;
}

.contact-direct a {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.contact-form {
    display: grid;
    gap: 22px;
    background: var(--cream);
    padding: 44px;
}

.contact-form label {
    display: grid;
    gap: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-form input,
.contact-form textarea {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--navy);
    background: transparent;
    padding: 11px 0;
    font: inherit;
    color: var(--ink);
    border-radius: 0;
    outline: none;
}

.contact-form textarea {
    resize: vertical;
}

.contact-form .btn {
    justify-self: start;
}

.contact-location {
    padding: 90px 0 110px;
    background: var(--blue);
}

.contact-location-heading {
    max-width: 800px;
    margin-bottom: 38px;
}

.contact-location-heading h2 {
    font-size: clamp(27px,3vw,42px);
}

.contact-location-heading p {
    font-size: 17px;
}

.contact-map {
    width: 100%;
    height: 460px;
    border: 0;
    display: block;
}

@media (max-width:900px){
    .about-page-intro {
        padding: 62px 0 58px;
    }

    .about-page-intro-grid,
    .about-belief-grid,
    .contact-intro-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .about-community-photo {
        height: 64vw;
        min-height: 360px;
    }

    .about-belief {
        padding: 64px 0;
    }

    .team-section {
        padding: 66px 0 76px;
    }

    .team-grid {
        grid-template-columns: repeat(2,1fr);
        gap: 34px 16px;
    }

    .class-style-row {
        grid-template-columns: .85fr 1.15fr;
    }

    .class-style-label,
    .class-style-copy {
        padding: 34px 30px;
    }

    .timetable-heading {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .mentoring-detail {
        grid-template-columns: .88fr 1.12fr;
        min-height: auto;
    }

    .mentoring-detail-copy {
        padding: 70px 38px;
    }

    .mentoring-detail-photo img {
        min-height: 720px;
    }

    .contact-intro {
        padding: 64px 0 72px;
    }

    .contact-form {
        padding: 34px;
    }

    .contact-location {
        padding: 64px 0 76px;
    }
}

@media (max-width:640px){
    .custom-subheading {
        height: 15px;
        margin-bottom: 18px;
    }

    .about-page-intro h1,
    .classes-intro h1,
    .mentoring-detail-copy h1,
    .contact-intro h1 {
        font-size: 42px;
    }

    .about-page-lead {
        font-size: 16px;
        line-height: 1.62;
    }

    .about-community-photo {
        height: 72vw;
        min-height: 280px;
    }

    .about-community-photo img {
        object-position: center;
    }

    .team-grid {
        grid-template-columns: 1fr 1fr;
    }

    .team-copy h3 {
        font-size: 18px;
    }

    .team-copy p:last-child {
        font-size: 14px;
    }

    .classes-intro {
        padding: 58px 0 42px;
    }

    .class-styles-page {
        padding-bottom: 62px;
    }

    .class-style-row {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .class-style-label,
    .class-style-copy {
        padding: 28px 24px;
    }

    .class-style-label {
        gap: 46px;
    }

    .class-style-copy {
        border-left: 0;
        border-top: 1px solid var(--line);
    }

    .class-style-copy p {
        font-size: 16px;
    }

    .timetable-section {
        padding: 62px 0 72px;
    }

    .gymmaster-placeholder {
        padding: 28px;
        align-items: flex-start;
        flex-direction: column;
        min-height: 0;
    }

    .mentoring-detail {
        grid-template-columns: 42% 58%;
    }

    .mentoring-detail-photo img {
        min-height: 100%;
        object-position: 55% center;
    }

    .mentoring-detail-copy {
        padding: 52px 22px;
    }

    .mentoring-detail-copy h1 {
        font-size: 34px;
    }

    .mentoring-detail-copy p {
        font-size: 15px;
        line-height: 1.58;
    }

    .mentoring-price strong {
        font-size: 32px;
    }

    .mentoring-actions {
        flex-direction: column;
        width: 100%;
    }

    .mentoring-actions .btn {
        width: 100%;
    }

    .contact-form {
        padding: 26px 22px;
    }

    .contact-map {
        height: 350px;
    }
}

@media (max-width:430px){
    .team-grid {
        grid-template-columns: 1fr;
    }

    .team-image {
        aspect-ratio: 5/4;
    }

    .mentoring-detail {
        grid-template-columns: 38% 62%;
    }

    .mentoring-detail-copy {
        padding: 44px 18px;
    }

    .mentoring-detail-copy h1 {
        font-size: 30px;
    }

    .mentoring-detail-copy p {
        font-size: 14px;
    }

    .mentoring-detail-copy .custom-subheading {
        height: 12px;
    }

    .mentoring-price {
        margin-top: 12px;
    }
}

/* V37 refinements */
.display-heading {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin: 0;
}

.heading-why {
    width: min(560px,100%);
}

.heading-thoughtful {
    width: min(760px,100%);
    margin-bottom: 30px;
}

.heading-people {
    width: min(520px,100%);
}

.heading-class-styles {
    width: min(460px,100%);
}

.heading-find-class {
    width: min(690px,100%);
}

.heading-mentoring {
    width: min(620px,100%);
    margin-bottom: 34px;
}

.heading-contact {
    width: min(470px,100%);
    margin-bottom: 28px;
}

/* Section labels stay clean and become more visible. */
.custom-subheading {
    height: 22px;
    margin-bottom: 24px;
}

.about-belief-grid>.custom-subheading {
    height: 22px;
}

.team-heading {
    margin-bottom: 46px;
}

.team-grid {
    grid-template-columns: repeat(5,1fr);
    gap: 18px;
}

.team-copy p {
    font-size: 15px;
    line-height: 1.55;
    margin: 0;
}

.class-style-label {
    justify-content: flex-start;
    gap: 18px;
}

.class-style-label h2 {
    margin: 0;
}

.contact-direct {
    display: grid;
    gap: 22px;
    margin-top: 34px;
    font-weight: 400;
}

.contact-method {
    display: grid;
    gap: 6px;
}

.contact-method span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.contact-method a {
    font-size: 17px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.contact-find-us {
    padding-top: 88px;
}

.find-us-label {
    margin-bottom: 34px;
}

.mentoring-detail-copy {
    padding-top: 132px;
}

@media (max-width:1000px){
    .team-grid {
        grid-template-columns: repeat(3,1fr);
    }
}

@media (max-width:900px){
    .custom-subheading {
        height: 19px;
    }

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

    .mentoring-detail-copy {
        padding-top: 82px;
    }
}

@media (max-width:640px){
    .custom-subheading {
        height: 18px;
        margin-bottom: 18px;
    }

    .heading-why {
        width: min(390px,100%);
    }

    .heading-thoughtful {
        width: 100%;
        margin-bottom: 24px;
    }

    .heading-people {
        width: min(390px,100%);
    }

    .heading-class-styles {
        width: min(320px,100%);
    }

    .heading-find-class {
        width: 100%;
    }

    .heading-mentoring {
        width: 100%;
        margin-bottom: 26px;
    }

    .heading-contact {
        width: min(340px,100%);
    }

    .class-style-label {
        gap: 12px;
        padding-bottom: 22px;
    }

    .class-style-copy {
        padding-top: 24px;
    }

    .contact-direct {
        gap: 18px;
        margin-top: 28px;
    }

    .contact-method a {
        font-size: 16px;
        overflow-wrap: anywhere;
    }

    .contact-find-us {
        padding-top: 62px;
    }

    .find-us-label {
        margin-bottom: 24px;
    }

    .mentoring-detail-copy {
        padding-top: 64px;
    }
}

@media (max-width:430px){
    .team-grid {
        grid-template-columns: 1fr;
    }

    .mentoring-detail-copy {
        padding-top: 52px;
    }
}

\n\n/* V38 classes refinements */
.classes-intro .custom-subheading {
    height: 30px;
    margin-bottom: 34px;
}

.heading-class-styles {
    width: min(500px,100%);
}

.class-style-row {
    align-items: stretch;
}

.class-style-label,
.class-style-copy {
    padding-top: 46px;
    padding-bottom: 46px;
}

.class-style-copy {
    align-items: flex-start;
}

.class-style-copy p {
    margin: 0;
    padding-top: 0;
}

.timetable-kicker {
    font-size: clamp(20px,2vw,27px);
    line-height: 1.25;
    margin: 0 0 20px;
    font-weight: 400;
    letter-spacing: 0;
}

.heading-timetable {
    width: min(430px,100%);
}

@media (max-width:900px){
    .classes-intro .custom-subheading {
        height: 27px;
        margin-bottom: 28px;
    }

    .class-style-label,
    .class-style-copy {
        padding-top: 34px;
        padding-bottom: 34px;
    }

    .heading-timetable {
        width: min(390px,100%);
    }
}

@media (max-width:640px){
    .classes-intro .custom-subheading {
        height: 24px;
        margin-bottom: 24px;
    }

    .heading-class-styles {
        width: min(330px,100%);
    }

    .class-style-label {
        padding-top: 28px;
        padding-bottom: 20px;
    }

    .class-style-copy {
        padding-top: 22px;
        padding-bottom: 28px;
    }

    .timetable-kicker {
        font-size: 19px;
        margin-bottom: 16px;
    }

    .heading-timetable {
        width: min(300px,100%);
    }
}

/* V39 classes cleanup */
.classes-intro-inner > .heading-class-styles {
    margin-top: 0;
}

.timetable-kicker {
    font-size: clamp(22px,2.1vw,29px);
    line-height: 1.22;
    font-weight: 700;
    margin: 0 0 24px;
}

/* Match Timetable to the visual scale of Class styles. Both are custom outlined headings. */
.heading-timetable {
    width: min(500px,100%);
}

@media (max-width:900px){
    .heading-timetable {
        width: min(460px,100%);
    }
}

@media (max-width:640px){
    .heading-class-styles,
    .heading-timetable {
        width: min(330px,100%);
    }

    .timetable-kicker {
        font-size: 20px;
        margin-bottom: 18px;
    }
}

/* V40 final heading-size and contact refinements */
/* Timetable should carry the same expressive weight as the main class heading. */
.heading-timetable {
    width: min(650px,100%);
}

/* The small outlined labels were too quiet. Increase their visual presence on these pages. */
.mentoring-detail-copy > .custom-subheading {
    height: 42px;
    width: auto;
    margin-bottom: 28px;
}

.contact-copy > .custom-subheading {
    height: 38px;
    width: auto;
    margin-bottom: 26px;
}

.contact-find-us .find-us-label {
    height: 38px;
    width: auto;
    margin-bottom: 34px;
}

@media (max-width:900px){
    .heading-timetable {
        width: min(560px,100%);
    }

    .mentoring-detail-copy > .custom-subheading {
        height: 36px;
    }

    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label {
        height: 34px;
    }
}

@media (max-width:640px){
    .heading-timetable {
        width: min(390px,100%);
    }

    .mentoring-detail-copy > .custom-subheading {
        height: 32px;
        margin-bottom: 22px;
    }

    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label {
        height: 30px;
        margin-bottom: 22px;
    }
}

/* V41 typography consistency pass */
/* One clear size system across the site. */
:root {
    --type-label: 15px;
    --type-body: 17px;
    --type-body-small: 15px;
    --type-card-title: 22px;
}

/* Small section labels. These should be visible but never compete with the custom headings. */
.eyebrow,
.contact-method span,
.location-info strong,
.price-label,
.more {
    font-size: var(--type-label);
    line-height: 1.25;
}

.custom-subheading,
.about-belief-grid > .custom-subheading,
.mentoring-detail-copy > .custom-subheading,
.contact-copy > .custom-subheading,
.contact-find-us .find-us-label {
    height: 30px;
    width: auto;
    max-width: 100%;
    margin-bottom: 24px;
}

/* Main display headings retain their custom artwork but use a more consistent visual scale. */
.heading-why {
    width: min(600px,100%);
}

.heading-thoughtful {
    width: min(760px,100%);
}

.heading-people {
    width: min(560px,100%);
}

.heading-class-styles {
    width: min(520px,100%);
}

.heading-timetable {
    width: min(700px,100%);
}

.heading-mentoring {
    width: min(650px,100%);
}

.heading-contact {
    width: min(500px,100%);
}

/* Supporting headings. */
.class-style-label h2,
.class-name,
.team-copy h3 {
    font-size: var(--type-card-title);
    line-height: 1.2;
}

.timetable-kicker {
    font-size: clamp(22px,2vw,28px);
    line-height: 1.25;
}

.location-address {
    font-size: clamp(18px,1.8vw,24px);
    line-height: 1.25;
}

/* Keep body copy consistent from page to page. */
.about-page-lead,
.about-belief p,
.class-style-copy p,
.mentoring-detail-copy p,
.contact-intro p,
.about-copy,
.mentor-copy p,
.body-copy {
    font-size: var(--type-body);
    line-height: 1.62;
}

.team-copy p,
.class-card p,
.price p,
.location-info,
.contact-method a {
    font-size: var(--type-body-small);
    line-height: 1.55;
}

@media (max-width:900px){
    .custom-subheading,
    .about-belief-grid > .custom-subheading,
    .mentoring-detail-copy > .custom-subheading,
    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label {
        height: 28px;
    }
}

@media (max-width:640px){
    :root {
        --type-label: 13px;
        --type-body: 16px;
        --type-body-small: 15px;
        --type-card-title: 20px;
    }

    .custom-subheading,
    .about-belief-grid > .custom-subheading,
    .mentoring-detail-copy > .custom-subheading,
    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label {
        height: 25px;
        margin-bottom: 18px;
    }

    .heading-why {
        width: min(390px,100%);
    }

    .heading-thoughtful {
        width: 100%;
    }

    .heading-people {
        width: min(390px,100%);
    }

    .heading-class-styles {
        width: min(340px,100%);
    }

    .heading-timetable {
        width: min(430px,100%);
    }

    .heading-mentoring {
        width: 100%;
    }

    .heading-contact {
        width: min(350px,100%);
    }

    .timetable-kicker {
        font-size: 20px;
    }

    .location-address {
        font-size: 18px;
    }
}

/* V42 site-wide typography consistency */
/* Regular-font section labels should be clearly readable on every page, including home. */
:root {
    --type-label: 20px;
}

.eyebrow,
.contact-method span,
.location-info strong,
.price-label,
.more {
    font-size: var(--type-label);
}

/* SVG section labels on internal pages. */
.custom-subheading,
.about-belief-grid > .custom-subheading,
.mentoring-detail-copy > .custom-subheading,
.contact-copy > .custom-subheading,
.contact-find-us .find-us-label {
    height: 40px;
    margin-bottom: 26px;
}

/* Homepage SVG section headings should share one consistent scale. */
.section-title-mat {
    height: 40px;
    width: auto;
    max-width: 100%;
    margin-bottom: 30px;
}

/* Homepage regular-font labels match the internal-page label hierarchy. */
.about-v26-inner .eyebrow,
.mentor-copy .eyebrow {
    font-size: 20px;
    line-height: 1.25;
    letter-spacing: .08em;
    margin-bottom: 24px;
}

@media (max-width:900px){
    :root {
        --type-label: 18px;
    }

    .custom-subheading,
    .about-belief-grid > .custom-subheading,
    .mentoring-detail-copy > .custom-subheading,
    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label,
    .section-title-mat {
        height: 34px;
    }

    .about-v26-inner .eyebrow,
    .mentor-copy .eyebrow {
        font-size: 18px;
    }
}

@media (max-width:640px){
    :root {
        --type-label: 17px;
    }

    .custom-subheading,
    .about-belief-grid > .custom-subheading,
    .mentoring-detail-copy > .custom-subheading,
    .contact-copy > .custom-subheading,
    .contact-find-us .find-us-label,
    .section-title-mat {
        height: 30px;
        margin-bottom: 20px;
    }

    .about-v26-inner .eyebrow,
    .mentor-copy .eyebrow {
        font-size: 17px;
        margin-bottom: 20px;
    }
}

/* V43 heading and subheading system
   Only the specifically approved headings and pre-headings use these styles. */
:root {
    --site-heading-height: 64px;
    --site-subheading-size: 22px;
}

/* Main headings use the supplied Mat font as outlined SVG artwork. */
.site-heading {
    display: block;
    width: auto !important;
    height: var(--site-heading-height) !important;
    max-width: 100% !important;
    object-fit: contain;
    object-position: left center;
    margin-top: 0;
}

/* Subheadings use the original clean site typeface and one consistent size. */
.site-subheading {
    font-family: "Avenir Next","Helvetica Neue",Arial,sans-serif;
    font-size: var(--site-subheading-size) !important;
    line-height: 1.28;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    margin: 0 0 24px;
}

/* Preserve intentional spacing while using the same typography system. */
.about-v26-inner .site-subheading,
.mentor-copy .site-subheading {
    margin-bottom: 24px;
}

.about-belief-grid > .site-heading {
    margin-bottom: 0;
}

.about-belief .site-subheading-long {
    margin-bottom: 26px;
}

.timetable-kicker.site-subheading {
    margin-bottom: 20px;
}

.heading-find-us {
    margin-bottom: 38px;
}

/* Remove legacy width differences from the approved heading set. */
.hero-heading.site-heading,
.about-v26-heading.site-heading,
.section-title-mat.site-heading,
.mentor-heading.site-heading,
.heading-why.site-heading,
.heading-matters.site-heading,
.heading-people.site-heading,
.heading-class-styles.site-heading,
.heading-timetable.site-heading,
.heading-mentoring.site-heading,
.heading-contact.site-heading,
.heading-find-us.site-heading {
    width: auto !important;
    height: var(--site-heading-height) !important;
}

@media (max-width:900px){
    :root {
        --site-heading-height: 56px;
        --site-subheading-size: 20px;
    }
}

@media (max-width:640px){
    :root {
        --site-heading-height: 46px;
        --site-subheading-size: 18px;
    }

    .site-subheading {
        margin-bottom: 18px;
    }

    .about-v26-inner .site-subheading,
    .mentor-copy .site-subheading {
        margin-bottom: 18px;
    }

    .heading-find-us {
        margin-bottom: 28px;
    }
}

/* V44 typography refinement
   Main headings stay in the Mat display artwork, but at a calmer scale.
   Approved pre-headings return to the earlier clean, compact uppercase treatment. */
:root {
    --site-heading-height: 52px;
    --site-subheading-size: 14px;
}

.site-heading {
    height: var(--site-heading-height) !important;
    max-height: var(--site-heading-height) !important;
}

.site-subheading {
    font-family: "Avenir Next","Helvetica Neue",Arial,sans-serif !important;
    font-size: var(--site-subheading-size) !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    margin-bottom: 22px;
}

/* Keep the longer About pre-heading refined rather than visually oversized. */
.site-subheading-long {
    letter-spacing: .08em !important;
    max-width: 620px;
}

@media (max-width:900px){
    :root {
        --site-heading-height: 46px;
        --site-subheading-size: 13px;
    }
}

@media (max-width:640px){
    :root {
        --site-heading-height: 38px;
        --site-subheading-size: 12px;
    }

    .site-subheading {
        margin-bottom: 16px;
        letter-spacing: .11em !important;
    }

    .site-subheading-long {
        letter-spacing: .07em !important;
    }
}

/* V45 typography consistency pass
   Only approved headings/subheadings are affected. */
/* Pre-headings: same clean uppercase treatment, now clearly bold. */
.site-subheading {
    font-family: "Avenir Next","Helvetica Neue",Arial,sans-serif !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

/* Match these display headings to the established, comfortable homepage
   scale used by “A small Pilates studio in Flemington” and “Mentoring with Alana”. */
.section-title-mat.site-heading,
.heading-why.site-heading,
.heading-matters.site-heading,
.heading-people.site-heading,
.heading-class-styles.site-heading,
.heading-timetable.site-heading,
.heading-contact.site-heading,
.heading-find-us.site-heading,
.about-v26-heading.site-heading,
.mentor-heading.site-heading {
    display: block !important;
    width: auto !important;
    height: 52px !important;
    max-height: 52px !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: left center !important;
}

@media (max-width:900px){
    .section-title-mat.site-heading,
    .heading-why.site-heading,
    .heading-matters.site-heading,
    .heading-people.site-heading,
    .heading-class-styles.site-heading,
    .heading-timetable.site-heading,
    .heading-contact.site-heading,
    .heading-find-us.site-heading,
    .about-v26-heading.site-heading,
    .mentor-heading.site-heading {
        height: 46px !important;
        max-height: 46px !important;
    }

    .site-subheading {
        font-size: 13px !important;
    }
}

@media (max-width:640px){
    .section-title-mat.site-heading,
    .heading-why.site-heading,
    .heading-matters.site-heading,
    .heading-people.site-heading,
    .heading-class-styles.site-heading,
    .heading-timetable.site-heading,
    .heading-contact.site-heading,
    .heading-find-us.site-heading,
    .about-v26-heading.site-heading,
    .mentor-heading.site-heading {
        height: 38px !important;
        max-height: 38px !important;
    }

    .site-subheading {
        font-size: 12px !important;
        font-weight: 700 !important;
    }
}

/* V46 visual heading scale correction
   These specific display headings are intentionally matched to the calmer
   perceived scale of the established homepage headings. No body copy or
   layout is changed. */
.section-title-mat.site-heading,
.heading-why.site-heading,
.heading-matters.site-heading,
.heading-people.site-heading,
.heading-class-styles.site-heading,
.heading-timetable.site-heading,
.heading-contact.site-heading,
.heading-find-us.site-heading {
    width: auto !important;
    height: 34px !important;
    max-height: 34px !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: left center !important;
}

@media (max-width:900px){
    .section-title-mat.site-heading,
    .heading-why.site-heading,
    .heading-matters.site-heading,
    .heading-people.site-heading,
    .heading-class-styles.site-heading,
    .heading-timetable.site-heading,
    .heading-contact.site-heading,
    .heading-find-us.site-heading {
        height: 31px !important;
        max-height: 31px !important;
    }
}

@media (max-width:640px){
    .section-title-mat.site-heading,
    .heading-why.site-heading,
    .heading-matters.site-heading,
    .heading-people.site-heading,
    .heading-class-styles.site-heading,
    .heading-timetable.site-heading,
    .heading-contact.site-heading,
    .heading-find-us.site-heading {
        height: 28px !important;
        max-height: 28px !important;
    }
}

/* V47 homepage cleanup only */
.home-intro {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
}

.home-intro-photo {
    min-width: 0;
    overflow: hidden;
    background: #ead8bd;
}

.home-intro-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 650px;
    object-fit: cover;
    object-position: center;
}

.home-intro-copy {
    min-width: 0;
    display: flex;
    align-items: center;
    background: var(--cream);
}

.home-intro-inner {
    width: min(100%,650px);
    padding: 72px;
}

.home-intro-title {
    margin: 0 0 14px;
    font-family: var(--body-font);
    font-size: 36px;
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: .01em;
}

.home-intro-local {
    margin: 0 0 34px;
    max-width: 560px;
    font-size: 20px;
    line-height: 1.45;
}

.home-intro-text {
    margin: 0;
    max-width: 560px;
    font-size: 17px;
    line-height: 1.62;
}

.home-intro-practical {
    max-width: 560px;
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid rgba(25,42,58,.18);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

.home-intro-practical strong {
    display: block;
    margin-bottom: 7px;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.home-intro-practical p {
    margin: 0;
    font-size: 15px;
    line-height: 1.52;
}

.home-intro-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 32px;
}

/* Homepage title consistency only. */
.section-title-mat.site-heading,
.mentor-heading.site-heading {
    height: 42px !important;
    max-height: 42px !important;
    width: auto !important;
}

/* Class style names match the pricing tile labels exactly. */
.class-name,
.price-label {
    font-family: var(--body-font) !important;
    font-size: 20px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
}

@media (max-width:900px){
    .home-intro {
        grid-template-columns: 1fr;
    }

    .home-intro-photo {
        aspect-ratio: 4/3;
    }

    .home-intro-photo img {
        min-height: 0;
        height: 100%;
        object-position: center 58%;
    }

    .home-intro-inner {
        width: 100%;
        padding: 48px 28px 52px;
    }

    .home-intro-title {
        font-size: 32px;
    }

    .home-intro-local {
        font-size: 19px;
    }

    .section-title-mat.site-heading,
    .mentor-heading.site-heading {
        height: 38px !important;
        max-height: 38px !important;
    }

    .class-name,
    .price-label {
        font-size: 18px !important;
    }
}

@media (max-width:560px){
    .home-intro-photo {
        aspect-ratio: 1/1;
    }

    .home-intro-photo img {
        object-position: center;
    }

    .home-intro-inner {
        padding: 38px 22px 42px;
    }

    .home-intro-title {
        font-size: 29px;
    }

    .home-intro-local {
        font-size: 17px;
        line-height: 1.45;
        margin-bottom: 28px;
    }

    .home-intro-text {
        font-size: 16px;
        line-height: 1.58;
    }

    .home-intro-practical {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .home-intro-actions {
        margin-top: 28px;
    }

    .section-title-mat.site-heading,
    .mentor-heading.site-heading {
        height: 32px !important;
        max-height: 32px !important;
    }

    .class-name,
    .price-label {
        font-size: 16px !important;
    }
}

/* V48 homepage refinement only */
.home-intro {
    background: var(--paper);
    grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr);
    align-items: center;
    padding: 52px max(26px,calc((100vw - var(--max))/2));
    gap: 0;
    border-bottom: 1px solid var(--line);
}

.home-intro-photo {
    min-height: 0;
    height: 590px;
    overflow: hidden;
    background: #ead8bd;
}

.home-intro-photo img {
    min-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 68%;
}

.home-intro-copy {
    position: relative;
    z-index: 2;
    margin-left: -42px;
    background: var(--cream);
    min-height: 510px;
    display: flex;
    align-items: center;
    box-shadow: 0 18px 44px rgba(25,42,58,.06);
}

.home-intro-inner {
    width: min(100%,620px);
    padding: 64px 66px 62px;
}

.home-intro-title-brand {
    display: block;
    width: min(330px,72%);
    height: auto;
    margin: 0 0 18px;
}

.home-intro-local {
    margin-bottom: 30px;
}

.home-intro-actions {
    margin-top: 50px;
}

/* Classes and Pricing should sit at the same calm visual scale as Mentoring with Alana. */
.section-title-mat.site-heading {
    height: 36px !important;
    max-height: 36px !important;
}

.mentor-heading.site-heading {
    height: 42px !important;
    max-height: 42px !important;
}

.footer-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.footer-social-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
}

.footer-logo-blue {
    display: block;
    width: 54px;
    height: auto;
    object-fit: contain;
}

@media (max-width:900px){
    .home-intro {
        grid-template-columns: 1fr;
        padding: 0;
        gap: 0;
    }

    .home-intro-photo {
        height: auto;
        aspect-ratio: 4/3;
    }

    .home-intro-photo img {
        object-position: center 68%;
    }

    .home-intro-copy {
        margin-left: 0;
        margin-top: -28px;
        width: calc(100% - 40px);
        min-height: 0;
        justify-self: center;
    }

    .home-intro-inner {
        padding: 48px 38px 52px;
    }

    .home-intro-title-brand {
        width: min(300px,72%);
    }

    .home-intro-actions {
        margin-top: 44px;
    }

    .section-title-mat.site-heading {
        height: 34px !important;
        max-height: 34px !important;
    }

    .mentor-heading.site-heading {
        height: 38px !important;
        max-height: 38px !important;
    }
}

@media (max-width:560px){
    .home-intro-photo {
        aspect-ratio: 1/1.02;
    }

    .home-intro-photo img {
        object-position: center 70%;
    }

    .home-intro-copy {
        width: calc(100% - 24px);
        margin-top: -20px;
    }

    .home-intro-inner {
        padding: 38px 24px 42px;
    }

    .home-intro-title-brand {
        width: min(250px,76%);
        margin-bottom: 16px;
    }

    .home-intro-actions {
        margin-top: 42px;
    }

    .section-title-mat.site-heading {
        height: 30px !important;
        max-height: 30px !important;
    }

    .mentor-heading.site-heading {
        height: 32px !important;
        max-height: 32px !important;
    }

    .footer-meta {
        align-items: flex-start;
    }

    .footer-social-row {
        justify-content: flex-start;
    }

    .footer-logo-blue {
        width: 46px;
    }
}

/* V49 homepage: mentoring-style hero, premium overlay, mobile-first */
.header .navlinks {
    font-weight: 700;
}

.home-intro {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
    align-items: stretch;
    width: 100%;
    max-width: none;
    padding: 0;
    gap: 0;
    background: var(--cream);
    border-bottom: 1px solid var(--line);
    min-height: 650px;
    overflow: hidden;
}

.home-intro-photo {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    height: 650px;
    min-height: 650px;
    overflow: hidden;
    background: #ead8bd;
}

.home-intro-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 72%;
}

.home-intro-copy {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    z-index: 2;
    margin: 0;
    width: 100%;
    min-height: 650px;
    display: flex;
    align-items: center;
    background: rgba(244,232,213,.96);
    box-shadow: none;
}

.home-intro-inner {
    width: min(100%,700px);
    margin-left: auto;
    padding: 72px 72px max(72px,6vw) max(36px,calc((100vw - var(--max))/2));
}

.home-intro-title-brand {
    width: min(340px,75%);
    margin: 0 0 28px;
}

.home-intro-local {
    font-size: 20px;
    line-height: 1.45;
    margin: 0 0 34px;
    max-width: 560px;
}

.home-intro-text {
    font-size: 17px;
    line-height: 1.65;
    max-width: 590px;
    margin: 0;
}

.home-intro-practical {
    margin-top: 36px;
    padding-top: 28px;
}

.home-intro-actions {
    margin-top: 58px;
}

/* Footer social + copyright grouped beside one blue mark. */
.footer-meta {
    display: grid;
    grid-template-columns: auto auto;
    column-gap: 16px;
    align-items: center;
    justify-content: end;
}

.footer-meta .footer-social-row {
    display: contents;
}

.footer-meta .social-link {
    grid-column: 1;
    grid-row: 1;
}

.footer-meta .footer-logo-blue {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 50px;
    align-self: center;
}

.footer-meta > :not(.footer-social-row):not(.footer-logo-blue) {
    grid-column: 1;
}

@media (max-width:900px){
    .home-intro {
        display: block;
        min-height: 0;
        background: var(--paper);
        padding: 0 0 34px;
    }

    .home-intro-photo {
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 4/3;
    }

    .home-intro-photo img {
        object-position: center 70%;
    }

    .home-intro-copy {
        width: calc(100% - 48px);
        min-height: 0;
        margin: -76px auto 0;
        background: rgba(244,232,213,.94);
        backdrop-filter: blur(5px);
        box-shadow: 0 16px 40px rgba(25,42,58,.08);
    }

    .home-intro-inner {
        width: 100%;
        margin: 0;
        padding: 46px 42px 50px;
    }

    .home-intro-title-brand {
        width: min(310px,72%);
    }

    .home-intro-actions {
        margin-top: 50px;
    }
}

@media (max-width:560px){
    .home-intro {
        padding-bottom: 22px;
    }

    .home-intro-photo {
        aspect-ratio: 4/4.35;
    }

    .home-intro-photo img {
        object-position: center 72%;
    }

    .home-intro-copy {
        width: calc(100% - 28px);
        margin-top: -54px;
    }

    .home-intro-inner {
        padding: 34px 24px 38px;
    }

    .home-intro-title-brand {
        width: min(245px,78%);
        margin-bottom: 22px;
    }

    .home-intro-local {
        font-size: 17px;
        line-height: 1.45;
        margin-bottom: 26px;
    }

    .home-intro-text {
        font-size: 16px;
        line-height: 1.58;
    }

    .home-intro-practical {
        margin-top: 28px;
        padding-top: 24px;
        gap: 18px;
    }

    .home-intro-actions {
        margin-top: 44px;
        gap: 10px;
    }

    .home-intro-actions .btn {
        flex: 1 1 calc(50% - 5px);
        min-width: 0;
        text-align: center;
        padding-left: 12px;
        padding-right: 12px;
    }

    .footer-meta {
        justify-content: start;
        grid-template-columns: auto auto;
        column-gap: 13px;
    }

    .footer-meta .footer-logo-blue {
        width: 44px;
    }
}

.footer-meta .footer-copyright {
    grid-column: 1;
    grid-row: 2;
}

/* V50 homepage hero: full-width studio image with integrated translucent panel */
.home-intro {
    position: relative;
    display: block;
    width: 100%;
    min-height: 720px;
    background: #d7c2a4;
    overflow: hidden;
    border-bottom: 1px solid var(--line);
}

.home-intro-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    background: #d7c2a4;
}

.home-intro-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 67%;
}

.home-intro-copy {
    position: relative;
    z-index: 2;
    width: min(610px,calc(100% - 96px));
    min-height: 0;
    margin: 72px 0 72px max(48px,calc((100vw - var(--max))/2));
    display: block;
    background: rgba(244,232,213,.84);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    box-shadow: 0 18px 50px rgba(25,42,58,.10);
}

.home-intro-inner {
    width: 100%;
    margin: 0;
    padding: 54px 54px 52px;
}

.home-intro-title-brand {
    width: min(315px,72%);
    margin: 0 0 26px;
}

.home-intro-local {
    margin: 0 0 30px;
}

.home-intro-practical {
    margin-top: 30px;
    padding-top: 24px;
}

.home-intro-actions {
    margin-top: 46px;
}

/* Footer: social + copyright grouped, blue logo anchored at the far right. */
.footer .footer-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(210px,.75fr) 64px;
    align-items: end;
    column-gap: 34px;
}

.footer-meta {
    grid-column: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 4px;
}

.footer-meta .social-link,
.footer-meta .footer-copyright {
    display: block;
    grid-column: auto;
    grid-row: auto;
}

.footer-meta .footer-logo-blue {
    position: absolute;
    right: max(28px,calc((100vw - var(--max))/2));
    width: 48px;
    height: auto;
    align-self: auto;
}

.footer {
    position: relative;
}

@media (max-width:900px){
    .home-intro {
        min-height: 690px;
        padding: 0;
        background: #d7c2a4;
    }

    .home-intro-photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        aspect-ratio: auto;
    }

    .home-intro-photo img {
        object-position: center 67%;
    }

    .home-intro-copy {
        width: min(560px,calc(100% - 44px));
        margin: 42px auto;
        background: rgba(244,232,213,.84);
        box-shadow: 0 16px 38px rgba(25,42,58,.10);
    }

    .home-intro-inner {
        padding: 44px 40px 44px;
    }

    .footer .footer-grid {
        grid-template-columns: 1fr 1fr 1fr 54px;
        column-gap: 22px;
    }

    .footer-meta .footer-logo-blue {
        right: 24px;
        width: 44px;
    }
}

@media (max-width:680px){
    .home-intro {
        min-height: 760px;
    }

    .home-intro-photo img {
        object-position: 58% 66%;
    }

    .home-intro-copy {
        width: calc(100% - 28px);
        margin: 22px auto;
        background: rgba(244,232,213,.86);
        backdrop-filter: blur(4px);
        -webkit-backdrop-filter: blur(4px);
    }

    .home-intro-inner {
        padding: 32px 24px 34px;
    }

    .home-intro-title-brand {
        width: min(235px,76%);
        margin-bottom: 20px;
    }

    .home-intro-local {
        font-size: 17px;
        line-height: 1.42;
        margin-bottom: 24px;
    }

    .home-intro-text {
        font-size: 16px;
        line-height: 1.55;
    }

    .home-intro-practical {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        margin-top: 24px;
        padding-top: 20px;
    }

    .home-intro-practical strong {
        font-size: 14px;
    }

    .home-intro-practical p {
        font-size: 14px;
        line-height: 1.45;
    }

    .home-intro-actions {
        margin-top: 34px;
        gap: 10px;
    }

    .home-intro-actions .btn {
        flex: 1 1 calc(50% - 5px);
        min-width: 0;
        padding: 14px 10px;
        text-align: center;
    }

    .footer .footer-grid {
        grid-template-columns: 1fr 54px;
        row-gap: 22px;
        align-items: start;
    }

    .footer-brand {
        grid-column: 1;
    }

    .footer-contact {
        grid-column: 1;
    }

    .footer-meta {
        grid-column: 1;
    }

    .footer-meta .footer-logo-blue {
        right: 20px;
        bottom: 42px;
        width: 42px;
    }
}

@media (max-width:430px){
    .home-intro {
        min-height: 800px;
    }

    .home-intro-copy {
        width: calc(100% - 20px);
        margin: 10px auto;
    }

    .home-intro-inner {
        padding: 28px 20px 30px;
    }

    .home-intro-practical {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .home-intro-actions {
        flex-direction: column;
    }

    .home-intro-actions .btn {
        width: 100%;
        flex: none;
    }
}

/* V51 footer consistency pass */
.footer .footer-grid {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto;
    align-items: end;
    gap: 32px;
}

.footer-meta {
    position: static;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    min-width: max-content;
}

.footer-meta-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}

.footer-meta .social-link,
.footer-meta .footer-copyright {
    display: block;
    line-height: 1.35;
}

.footer-meta .footer-logo-blue {
    position: static;
    width: 46px;
    height: auto;
    flex: 0 0 auto;
}

@media (max-width:900px){
    .footer .footer-grid {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 20px;
    }

    .footer-meta {
        justify-content: flex-start;
        min-width: 0;
    }

    .footer-meta .footer-logo-blue {
        width: 42px;
    }
}

/* V52 — simple single-line footer + live GymMaster */
.footer-v52 {
    padding: 28px 0;
}

.footer-v52 .footer-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    white-space: nowrap;
    font-size: 13px;
    line-height: 1.3;
}

.footer-v52 .footer-line strong {
    font-size: 14px;
    letter-spacing: .02em;
}

.footer-v52 .footer-line a {
    color: inherit;
}

.gymmaster-live {
    background: transparent;
    padding: 0;
}

.gymmaster-frame {
    margin: 0;
    width: 100%;
    overflow: hidden;
}

.gymmaster-frame .gmiframe {
    display: block;
    width: 100%;
    min-height: 760px;
    border: 0;
}

.gymmaster-fallback {
    margin: 18px 0 0;
    font-size: 13px;
}

.gymmaster-fallback a {
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width:1050px){
    .footer-v52 .footer-line {
        gap: 14px;
        font-size: 11px;
    }
}

@media (max-width:850px){
    .footer-v52 {
        padding: 24px 0;
    }

    .footer-v52 .footer-line {
        display: grid;
        grid-template-columns: 1fr 1fr;
        white-space: normal;
        gap: 10px 20px;
        font-size: 12px;
    }

    .footer-v52 .footer-line > :nth-child(even) {
        text-align: right;
    }

    .gymmaster-frame .gmiframe {
        min-height: 820px;
    }
}

@media (max-width:520px){
    .footer-v52 .footer-line {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .footer-v52 .footer-line > :nth-child(even) {
        text-align: left;
    }

    .gymmaster-frame .gmiframe {
        min-height: 900px;
    }

    .timetable-section .shell {
        padding-left: 14px;
        padding-right: 14px;
    }
}

/* V53 — polished booking system, footer, mobile menu and layout refinements */
/* Cleaner page rhythm: remove incidental divider rules. */
.header {
    border-bottom: 0;
    box-shadow: 0 1px 0 rgba(25,42,58,.06);
}

.section,
.home-intro,
.mentor-teaser,
.timetable-section {
    border-top: 0 !important;
    border-bottom: 0 !important;
}

/* Desktop navigation + subtle member entry. */
.nav-login {
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}

.menu {
    padding: 0;
    width: auto;
    height: 40px;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    border: 0 !important;
}

.menu img {
    display: block;
    width: 58px;
    height: auto;
}

/* Homepage class styles: stacked, aligned, editorial blocks. */
.home-classes-section .class-grid {
    display: grid;
    grid-template-columns: 1fr;
    border: 0;
    gap: 14px;
}

.home-classes-section .class-card {
    min-height: 0;
    padding: 30px 34px;
    border: 0;
    display: grid;
    grid-template-columns: minmax(210px,.7fr) minmax(0,1.3fr) auto;
    align-items: center;
    gap: 34px;
}

.home-classes-section .class-card > div {
    display: contents;
}

.home-classes-section .class-card .class-name {
    margin: 0;
    align-self: center;
}

.home-classes-section .class-card p {
    margin: 0;
    min-height: 0;
    max-width: 620px;
    align-self: center;
}

.home-classes-section .class-card .more {
    margin: 0;
    white-space: nowrap;
    align-self: center;
}

/* Homepage pricing: stacked, same visual logic as class styles. */
.home-pricing-section .price-grid {
    display: grid;
    grid-template-columns: 1fr;
    border: 0;
    gap: 14px;
}

.home-pricing-section .price {
    min-height: 0;
    padding: 30px 34px;
    border: 0;
    display: grid;
    grid-template-columns: minmax(210px,.7fr) minmax(170px,.45fr) minmax(0,1fr);
    align-items: center;
    gap: 34px;
}

.home-pricing-section .price-label,
.home-pricing-section .amount,
.home-pricing-section .price > div {
    margin: 0;
}

.home-pricing-section .price > div:last-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}

.home-pricing-section .price > div:last-child p {
    margin: 0;
}

/* Location map with a clear Mat-blue centre marker. */
.location-grid {
    border: 0 !important;
    gap: 0;
}

.map-wrap {
    position: relative;
    min-height: 470px;
    overflow: hidden;
    background: var(--blue);
}

.map-wrap .map {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 470px;
    border: 0;
    filter: grayscale(1) contrast(.92) brightness(1.04);
}

.mat-map-pin {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 30px;
    height: 30px;
    transform: translate(-50%,-60%) rotate(45deg);
    background: var(--blue);
    border: 3px solid #fff;
    border-radius: 50% 50% 50% 0;
    box-shadow: 0 4px 14px rgba(25,42,58,.22);
    pointer-events: none;
}

.mat-map-pin::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--navy);
    left: 8px;
    top: 8px;
}

/* GymMaster remains live, but sits inside Mat's visual system. */
.gymmaster-live {
    background: var(--paper);
    padding: 0;
    border: 0;
    box-shadow: 0 12px 36px rgba(25,42,58,.06);
}

.gymmaster-brandbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: var(--cream);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.gymmaster-brandbar span:last-child {
    color: var(--magenta);
}

.gymmaster-frame {
    margin: 0;
    width: 100%;
    overflow: hidden;
    background: #fff;
}

.gymmaster-frame .gmiframe {
    display: block;
    width: 100%;
    min-height: 760px;
    border: 0;
    background: #fff;
}

.timetable-heading {
    margin-bottom: 34px;
}

.booking-paths {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 12px;
    margin: 0 0 24px;
}

.booking-paths a {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 20px 22px;
    background: var(--cream);
    min-height: 92px;
    justify-content: center;
    transition: .18s ease;
}

.booking-paths a:nth-child(2) {
    background: var(--blue);
}

.booking-paths a:nth-child(3) {
    background: var(--magenta);
    color: #fff;
}

.booking-paths strong {
    font-size: 13px;
    letter-spacing: .02em;
}

.booking-paths span {
    font-size: 14px;
}

.booking-paths a:hover {
    transform: translateY(-2px);
}

/* Dedicated on-site GymMaster flows. */
.booking-page-section,
.embedded-booking-section {
    padding: 88px 0 108px;
    background: var(--paper);
}

.booking-page-shell {
    max-width: 1080px;
}

.booking-heading-svg {
    display: block;
    width: min(360px,72vw);
    max-height: 58px;
    object-fit: contain;
    object-position: left center;
    margin: 12px 0 24px;
}

.booking-intro {
    font-size: 17px;
    line-height: 1.65;
    max-width: 680px;
    margin: 0 0 36px;
}

.booking-intro a {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Mentoring is intentionally vertical: copy first, image below, booking after. */
.mentoring-detail {
    display: block;
    min-height: 0;
    background: var(--cream);
}

.mentoring-detail-copy {
    display: block;
    background: var(--cream);
    padding: 92px max(28px,calc((100vw - var(--max))/2)) 74px;
    max-width: none;
}

.mentoring-detail-copy > * {
    max-width: 680px;
}

.mentoring-detail-copy .heading-mentoring {
    margin-bottom: 30px;
}

.mentoring-detail-photo {
    width: 100%;
    height: min(72vw,760px);
    min-height: 520px;
    background: var(--cream);
}

.mentoring-detail-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
    object-position: center 42%;
}

.mentoring-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.embedded-booking-section {
    background: var(--paper);
}

/* Three-part footer, consistent on every page. */
.footer-v53 {
    padding: 38px 0 42px;
    background: var(--paper);
    border: 0;
}

.footer-v53-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr .75fr;
    align-items: center;
    gap: 44px;
}

.footer-v53-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}

.footer-v53-logo {
    width: 44px;
    height: auto;
    flex: 0 0 auto;
}

.footer-v53-wordmark {
    display: block;
    width: 155px;
    max-width: calc(100% - 60px);
    height: auto;
}

.footer-v53-address {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 14px;
    line-height: 1.45;
}

.footer-v53-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    font-size: 14px;
    line-height: 1.45;
}

.footer-v53-meta a {
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width:900px){
    .menu {
        display: flex;
    }

    .menu img {
        width: 54px;
    }

    .navlinks[data-open="1"] {
        display: flex !important;
    }

    .navlinks[data-open="0"] {
        display: none !important;
    }

    .home-classes-section .class-card {
        grid-template-columns: 1fr auto;
        gap: 12px 20px;
        padding: 28px 26px;
    }

    .home-classes-section .class-card > div {
        display: block;
    }

    .home-classes-section .class-card .class-name {
        margin-bottom: 12px;
    }

    .home-classes-section .class-card p {
        max-width: none;
    }

    .home-classes-section .class-card .more {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        margin-top: 2px;
    }

    .home-pricing-section .price {
        grid-template-columns: 1fr auto;
        padding: 28px 26px;
        gap: 12px 20px;
    }

    .home-pricing-section .price-label {
        grid-column: 1;
    }

    .home-pricing-section .amount {
        grid-column: 2;
        grid-row: 1;
        text-align: right;
    }

    .home-pricing-section .price > div:last-child {
        grid-column: 1 / -1;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }

    .booking-paths {
        grid-template-columns: 1fr;
    }

    .booking-paths a {
        min-height: 0;
    }

    .gymmaster-frame .gmiframe {
        min-height: 850px;
    }

    .mentoring-detail-copy {
        padding: 70px 34px 58px;
    }

    .mentoring-detail-photo {
        height: 78vw;
        min-height: 460px;
    }

    .footer-v53-grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px 34px;
        align-items: start;
    }

    .footer-v53-meta {
        align-items: flex-start;
    }

    .footer-v53-brand {
        grid-column: 1;
    }

    .footer-v53-address {
        grid-column: 2;
    }

    .footer-v53-meta {
        grid-column: 1 / -1;
    }
}

@media (max-width:600px){
    .header {
        box-shadow: none;
    }

    .nav {
        min-height: 68px;
    }

    .menu img {
        width: 50px;
    }

    .navlinks[data-open="1"] {
        position: absolute;
        top: 68px;
        left: 0;
        right: 0;
        padding: 24px 22px 30px;
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        background: var(--paper);
        box-shadow: 0 18px 30px rgba(25,42,58,.08);
        border: 0;
    }

    .navlinks[data-open="1"] .btn {
        width: 100%;
    }

    .home-classes-section .class-card {
        display: block;
        padding: 26px 22px;
    }

    .home-classes-section .class-card .more {
        display: inline-block;
        margin-top: 18px;
    }

    .home-pricing-section .price {
        display: block;
        padding: 26px 22px;
    }

    .home-pricing-section .price-label {
        display: block;
        margin-bottom: 12px;
    }

    .home-pricing-section .amount {
        margin-bottom: 18px;
        text-align: left;
    }

    .home-pricing-section .price > div:last-child {
        display: block;
    }

    .home-pricing-section .price > div:last-child p {
        margin-bottom: 18px;
    }

    .map-wrap,
    .map-wrap .map {
        min-height: 390px;
    }

    .mat-map-pin {
        width: 28px;
        height: 28px;
    }

    .mat-map-pin::after {
        left: 7px;
        top: 7px;
    }

    .booking-page-section,
    .embedded-booking-section {
        padding: 64px 0 76px;
    }

    .booking-page-shell {
        padding-left: 18px;
        padding-right: 18px;
    }

    .booking-heading-svg {
        max-height: 48px;
        margin-bottom: 20px;
    }

    .booking-intro {
        font-size: 16px;
        margin-bottom: 28px;
    }

    .gymmaster-brandbar {
        padding: 14px 16px;
    }

    .gymmaster-frame .gmiframe {
        min-height: 920px;
    }

    .mentoring-detail-copy {
        padding: 58px 22px 48px;
    }

    .mentoring-detail-photo {
        height: 118vw;
        min-height: 0;
        max-height: 620px;
    }

    .mentoring-detail-photo img {
        object-position: center 38%;
    }

    .mentoring-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
        max-width: 680px;
    }

    .mentoring-actions .btn {
        width: 100%;
    }

    .footer-v53 {
        padding: 32px 0 36px;
    }

    .footer-v53-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .footer-v53-brand,
    .footer-v53-address,
    .footer-v53-meta {
        grid-column: 1;
    }

    .footer-v53-brand {
        gap: 13px;
    }

    .footer-v53-logo {
        width: 38px;
    }

    .footer-v53-wordmark {
        width: 142px;
    }

    .footer-v53-address,
    .footer-v53-meta {
        font-size: 13px;
    }
}

/* V54 — responsive refinement pass */
/* Homepage introduction: information first, studio image directly below. */
.home-intro-v54 {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: var(--cream) !important;
}

.home-intro-v54 .home-intro-top {
    display: grid;
    grid-template-columns: minmax(0,1.12fr) minmax(360px,.88fr);
    gap: 90px;
    align-items: start;
    padding-top: 74px;
    padding-bottom: 68px;
}

.home-intro-v54 .home-intro-main {
    min-width: 0;
    max-width: 650px;
}

.home-intro-v54 .home-intro-title-brand {
    display: block;
    width: min(350px,76%);
    height: auto;
    margin: 0 0 20px;
}

.home-intro-v54 .home-intro-local {
    margin: 0 0 28px;
    max-width: 590px;
    font-size: 20px;
    line-height: 1.45;
}

.home-intro-v54 .home-intro-text {
    margin: 0;
    max-width: 610px;
    font-size: 17px;
    line-height: 1.65;
}

.home-intro-v54 .home-intro-actions {
    margin-top: 38px;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

.home-intro-v54 .home-intro-practical {
    margin: 8px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 40px !important;
    max-width: none !important;
}

.home-intro-v54 .home-intro-practical strong {
    font-size: 15px;
    letter-spacing: .1em;
    margin-bottom: 12px;
}

.home-intro-v54 .home-intro-practical p {
    font-size: 16px;
    line-height: 1.55;
    margin: 0;
}

.home-intro-v54 .home-intro-photo {
    position: relative !important;
    inset: auto !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    height: clamp(430px,44vw,680px) !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden;
    background: #ead8bd;
}

.home-intro-v54 .home-intro-photo img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0 !important;
    object-fit: cover;
    object-position: center 63%;
}

/* Desktop homepage cards sit beside one another. Narrow screens stack them. */
.home-classes-section .class-grid {
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 0 !important;
}

.home-classes-section .class-card {
    display: flex !important;
    min-height: 300px;
    padding: 34px;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0 !important;
}

.home-classes-section .class-card > div {
    display: block !important;
}

.home-classes-section .class-card .class-name {
    margin: 0 0 16px !important;
}

.home-classes-section .class-card p {
    margin: 0 !important;
    max-width: 300px;
    min-height: 0;
}

.home-classes-section .class-card .more {
    margin-top: 30px !important;
}

.home-pricing-section .price-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    gap: 0 !important;
}

.home-pricing-section .price {
    display: flex !important;
    min-height: 350px;
    padding: 42px;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0 !important;
}

.home-pricing-section .price-label {
    margin: 0 !important;
}

.home-pricing-section .amount {
    margin: 28px 0 !important;
    text-align: left !important;
}

.home-pricing-section .price > div:last-child {
    display: block !important;
    width: 100%;
    margin: 0 !important;
}

.home-pricing-section .price > div:last-child p {
    margin: 0 0 22px !important;
}

/* Mentoring: editorial side-by-side on wide screens, image below copy on narrow screens. */
.mentoring-detail {
    display: grid !important;
    grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr);
    min-height: 690px;
    align-items: stretch;
}

.mentoring-detail-copy {
    padding: 82px 70px 82px max(30px,calc((100vw - var(--max))/2)) !important;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
}

.mentoring-detail-photo {
    width: 100%;
    height: auto !important;
    min-height: 690px !important;
}

.mentoring-detail-photo img {
    height: 100%;
    object-position: center 40%;
}

/* Only requested About change. */
.about-belief {
    background: var(--blue) !important;
}

/* Native Google map marker only. */
.mat-map-pin {
    display: none !important;
}

/* Footer: three balanced sections. */
.footer-v53 {
    padding: 34px 0 38px;
}

.footer-v53-grid {
    grid-template-columns: 1fr 1.2fr 1fr !important;
    gap: 56px !important;
    align-items: center !important;
}

.footer-v53-brand {
    justify-content: flex-start;
}

.footer-v53-logo {
    width: 42px;
}

.footer-v53-address {
    justify-self: center;
    width: 100%;
    max-width: 410px;
}

.footer-v53-meta {
    justify-self: end;
    align-items: flex-end !important;
    gap: 5px;
}

@media (max-width:900px){
    /* Navigation becomes a signature Menu control only on narrow screens. */
    .menu {
        display: flex !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .menu img {
        width: 54px;
    }

    .home-intro-v54 .home-intro-top {
        grid-template-columns: 1fr;
        gap: 40px;
        padding-top: 52px;
        padding-bottom: 48px;
    }

    .home-intro-v54 .home-intro-main {
        max-width: 680px;
    }

    .home-intro-v54 .home-intro-practical {
        grid-template-columns: 1fr 1fr !important;
        gap: 28px !important;
        margin-top: 0 !important;
    }

    .home-intro-v54 .home-intro-photo {
        height: 64vw !important;
        min-height: 410px !important;
    }

    .home-classes-section .class-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .home-classes-section .class-card {
        display: block !important;
        min-height: 0;
        padding: 28px 26px;
    }

    .home-classes-section .class-card .more {
        display: inline-block;
        margin-top: 18px !important;
    }

    .home-pricing-section .price-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    .home-pricing-section .price {
        display: block !important;
        min-height: 0;
        padding: 28px 26px;
    }

    .home-pricing-section .amount {
        margin: 16px 0 20px !important;
    }

    .home-pricing-section .price > div:last-child {
        display: block !important;
    }

    .mentoring-detail {
        display: block !important;
        min-height: 0;
    }

    .mentoring-detail-copy {
        padding: 66px 34px 56px !important;
        display: block !important;
    }

    .mentoring-detail-photo {
        height: 82vw !important;
        min-height: 480px !important;
    }

    .footer-v53-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 28px 34px !important;
        align-items: start !important;
    }

    .footer-v53-brand {
        grid-column: 1;
    }

    .footer-v53-address {
        grid-column: 2;
        justify-self: start;
    }

    .footer-v53-meta {
        grid-column: 1 / -1;
        justify-self: start;
        align-items: flex-start !important;
    }
}

@media (max-width:600px){
    .home-intro-v54 .home-intro-top {
        padding-top: 42px;
        padding-bottom: 40px;
        gap: 34px;
    }

    .home-intro-v54 .home-intro-title-brand {
        width: min(255px,78%);
        margin-bottom: 18px;
    }

    .home-intro-v54 .home-intro-local {
        font-size: 17px;
        line-height: 1.45;
        margin-bottom: 24px;
    }

    .home-intro-v54 .home-intro-text {
        font-size: 16px;
        line-height: 1.58;
    }

    .home-intro-v54 .home-intro-practical {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    .home-intro-v54 .home-intro-actions {
        margin-top: 32px;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    .home-intro-v54 .home-intro-actions .btn {
        width: 100%;
        padding-left: 12px;
        padding-right: 12px;
        text-align: center;
    }

    .home-intro-v54 .home-intro-photo {
        height: 100vw !important;
        min-height: 0 !important;
        max-height: 540px;
    }

    .home-intro-v54 .home-intro-photo img {
        object-position: center 67%;
    }

    .mentoring-detail-copy {
        padding: 56px 22px 46px !important;
    }

    .mentoring-detail-photo {
        height: 118vw !important;
        min-height: 0 !important;
        max-height: 620px;
    }

    .footer-v53-grid {
        grid-template-columns: 1fr !important;
        gap: 22px !important;
    }

    .footer-v53-brand,
    .footer-v53-address,
    .footer-v53-meta {
        grid-column: 1;
        justify-self: start;
    }

    .footer-v53-meta {
        align-items: flex-start !important;
    }
}

/* V55 — image-led homepage opening */
.home-intro-v55 {
    background: var(--cream);
    padding: 0;
    overflow: hidden;
}

.home-hero-photo {
    position: relative;
    width: 100%;
    height: clamp(520px,63vw,820px);
    overflow: hidden;
    background: #ead8bd;
}

.home-hero-photo>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 60%;
    display: block;
}

.home-hero-photo:after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,rgba(244,232,213,.38) 0%,rgba(244,232,213,.13) 45%,rgba(244,232,213,0) 72%);
    pointer-events: none;
}

.home-hero-copy {
    position: absolute;
    z-index: 1;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    padding-top: 74px;
    pointer-events: none;
}

.home-hero-location {
    margin: 0 0 24px;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .16em;
}

.home-intro-v55 .home-intro-title-brand {
    width: min(490px,48vw);
    height: auto;
    margin: 0 0 18px;
    display: block;
}

.home-intro-v55 .home-intro-local {
    max-width: 570px;
    margin: 0;
    font-size: 21px;
    line-height: 1.5;
}

.home-welcome {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr);
    gap: 90px;
    padding-top: 66px;
    padding-bottom: 70px;
    align-items: start;
}

.home-welcome-main h2 {
    font-family: Georgia,'Times New Roman',serif;
    font-size: clamp(30px,3vw,46px);
    font-weight: 500;
    line-height: 1.12;
    margin: 0 0 20px;
    color: var(--navy);
}

.home-welcome-main>p {
    font-size: 18px;
    line-height: 1.65;
    max-width: 650px;
    margin: 0;
}

.home-intro-v55 .home-intro-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 34px;
}

.home-intro-v55 .home-intro-practical {
    display: grid;
    grid-template-columns: 1fr;
    gap: 34px;
    margin: 5px 0 0;
    padding-left: 54px;
    border-left: 1px solid rgba(25,42,58,.18);
}

.home-intro-v55 .home-intro-practical strong {
    display: block;
    text-transform: uppercase;
    font-size: 15px;
    letter-spacing: .12em;
    margin-bottom: 10px;
}

.home-intro-v55 .home-intro-practical p {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
}

@media (max-width:900px){
    .home-hero-photo {
        height: 72vw;
        min-height: 500px;
    }

    .home-hero-copy {
        padding-top: 52px;
    }

    .home-intro-v55 .home-intro-title-brand {
        width: min(420px,62vw);
    }

    .home-welcome {
        grid-template-columns: 1fr;
        gap: 44px;
        padding-top: 52px;
        padding-bottom: 56px;
    }

    .home-intro-v55 .home-intro-practical {
        grid-template-columns: 1fr 1fr;
        padding-left: 0;
        border-left: 0;
        gap: 28px;
    }
}

@media (max-width:600px){
    .home-hero-photo {
        height: 112vw;
        min-height: 480px;
        max-height: 650px;
    }

    .home-hero-photo>img {
        object-position: center 67%;
    }

    .home-hero-photo:after {
        background: linear-gradient(180deg,rgba(244,232,213,.48) 0%,rgba(244,232,213,.10) 50%,rgba(244,232,213,0) 75%);
    }

    .home-hero-copy {
        padding-top: 38px;
    }

    .home-hero-location {
        font-size: 12px;
        margin-bottom: 16px;
    }

    .home-intro-v55 .home-intro-title-brand {
        width: min(310px,78vw);
        margin-bottom: 14px;
    }

    .home-intro-v55 .home-intro-local {
        font-size: 17px;
        max-width: 310px;
    }

    .home-welcome {
        gap: 36px;
        padding-top: 42px;
        padding-bottom: 46px;
    }

    .home-welcome-main h2 {
        font-size: 31px;
    }

    .home-welcome-main>p {
        font-size: 16px;
    }

    .home-intro-v55 .home-intro-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 30px;
    }

    .home-intro-v55 .home-intro-actions .btn {
        width: 100%;
        padding-left: 10px;
        padding-right: 10px;
        text-align: center;
    }

    .home-intro-v55 .home-intro-practical {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* V56 — homepage typography + integrated hero copy */
.home-hero-copy {
    padding-top: 54px;
}

.home-hero-textbox {
    width: min(610px,58vw);
    padding: 30px 34px 32px;
    background: rgba(244,232,213,.86);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
}

.home-hero-location {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .15em;
    line-height: 1.3;
    margin: 0 0 20px;
}

.home-intro-v55 .home-intro-title-brand {
    width: min(430px,100%);
    margin-bottom: 18px;
}

.home-intro-v55 .home-intro-local {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 18px;
    line-height: 1.5;
    max-width: 510px;
}

.home-relaxed-heading {
    display: block;
    width: min(650px,100%);
    height: auto;
    margin: 0 0 22px;
}

.home-welcome-main>p {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 17px;
    line-height: 1.65;
    max-width: 650px;
}

.home-intro-v55 .home-intro-practical strong {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .13em;
}

.home-intro-v55 .home-intro-practical p {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 16px;
    line-height: 1.55;
}

@media (max-width:900px){
    .home-hero-copy {
        padding-top: 36px;
    }

    .home-hero-textbox {
        width: min(570px,72vw);
        padding: 26px 28px 28px;
    }

    .home-relaxed-heading {
        width: min(620px,100%);
    }
}

@media (max-width:600px){
    .home-hero-copy {
        padding-top: 24px;
    }

    .home-hero-textbox {
        width: calc(100% - 36px);
        padding: 22px 20px 24px;
    }

    .home-hero-location {
        font-size: 11px;
        margin-bottom: 14px;
    }

    .home-intro-v55 .home-intro-title-brand {
        width: min(280px,100%);
        margin-bottom: 13px;
    }

    .home-intro-v55 .home-intro-local {
        font-size: 15px;
        line-height: 1.45;
        max-width: 290px;
    }

    .home-relaxed-heading {
        width: 100%;
        margin-bottom: 20px;
    }

    .home-welcome-main>p {
        font-size: 16px;
    }
}

\n\n/* V57 — shorter homepage hero + blue brand mark */\n.home-hero-photo {
    height: clamp(390px,45vw,590px);
}

\n.home-intro-v55 .home-intro-local {
    font-weight: 700;
}

\n.home-hero-textbox {
    position: relative;
    padding-right: 118px;
}

\n.home-hero-blue-logo {
    position: absolute;
    right: 28px;
    bottom: 24px;
    width: 62px;
    height: 82px;
    object-fit: contain;
    display: block;
}

\n@media(max-width:900px) {
    \n  .home-hero-photo {
        height: 58vw;
        min-height: 400px;
        max-height: 540px;
    }
}

\n@media(max-width:600px) {
    \n  .home-hero-photo {
        height: 82vw;
        min-height: 390px;
        max-height: 500px;
    }

    \n  .home-hero-textbox {
        padding-right: 78px;
    }

    \n  .home-hero-blue-logo {
        right: 18px;
        bottom: 18px;
        width: 46px;
        height: 66px;
    }

    \n  .home-intro-v55 .home-intro-local {
        font-weight: 700;
    }
}

\n

/* V58 — premium, compact homepage hero */
.home-hero-photo {
    height: clamp(330px,31vw,430px) !important;
    min-height: 0 !important;
    max-height: none !important;
}

.home-hero-photo>img {
    object-position: center 61%;
}

.home-hero-photo:after {
    background: linear-gradient(90deg,rgba(244,232,213,.20) 0%,rgba(244,232,213,.06) 45%,rgba(244,232,213,0) 72%);
}

.home-hero-copy {
    padding-top: 0 !important;
    justify-content: center;
}

.home-hero-textbox {
    width: min(760px,64vw) !important;
    padding: 40px 46px 42px !important;
    background: rgba(244,232,213,.90);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    position: relative;
}

.home-hero-location,
.home-hero-blue-logo {
    display: none !important;
}

.home-intro-v55 .home-intro-title-brand {
    width: min(560px,100%) !important;
    margin: 0 0 28px !important;
}

.home-intro-v55 .home-intro-local {
    margin: 0 !important;
    max-width: 650px !important;
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.home-see-more {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: 30px;
    padding: 14px 22px;
    background: var(--blue);
    color: var(--navy);
    text-transform: uppercase;
    text-decoration: none;
    font-size: 12px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: .13em;
    border: 0;
}

.home-see-more span {
    font-size: 17px;
    line-height: 1;
}

.home-see-more:hover,
.home-see-more:focus-visible {
    background: #b8ddf5;
}

#home-welcome {
    scroll-margin-top: 95px;
}

@media (max-width:900px){
    .home-hero-photo {
        height: 380px !important;
    }

    .home-hero-textbox {
        width: min(680px,82vw) !important;
        padding: 34px 36px 36px !important;
    }

    .home-intro-v55 .home-intro-title-brand {
        width: min(500px,100%) !important;
        margin-bottom: 24px !important;
    }
}

@media (max-width:600px){
    .home-hero-photo {
        height: 330px !important;
    }

    .home-hero-photo>img {
        object-position: center 64%;
    }

    .home-hero-photo:after {
        background: rgba(244,232,213,.06);
    }

    .home-hero-copy {
        justify-content: center;
    }

    .home-hero-textbox {
        width: calc(100% - 34px) !important;
        padding: 28px 24px 30px !important;
    }

    .home-intro-v55 .home-intro-title-brand {
        width: min(330px,100%) !important;
        margin-bottom: 21px !important;
    }

    .home-intro-v55 .home-intro-local {
        font-size: 12px !important;
        line-height: 1.55 !important;
        letter-spacing: .08em;
    }

    .home-see-more {
        margin-top: 24px;
        padding: 13px 18px;
        font-size: 11px;
    }
}

/* V59 — homepage See more interaction */
.home-see-more-arrow {
    position: relative;
    display: inline-block;
    width: 16px;
    height: 18px;
    flex: 0 0 16px;
}

.home-see-more-arrow::before {
    content: "";
    position: absolute;
    left: 7px;
    top: 1px;
    width: 3px;
    height: 12px;
    background: currentColor;
    border-radius: 2px;
}

.home-see-more-arrow::after {
    content: "";
    position: absolute;
    left: 4px;
    bottom: 1px;
    width: 8px;
    height: 8px;
    border-right: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
    transform: rotate(45deg);
}

/* V60 — native smooth scroll + refined transparent arrow */
html {
    scroll-behavior: smooth;
}

.home-see-more {
    cursor: pointer;
}

.home-see-more-arrow {
    display: none !important;
}

.home-see-more-arrow-img {
    display: block;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    background: transparent;
    object-fit: contain;
}

@media (max-width:600px){
    .home-see-more-arrow-img {
        width: 22px;
        height: 22px;
        flex-basis: 22px;
    }
}

/* V61 — slightly larger Mat Pilates hero wordmark, preserving breathing room */
.home-intro-v55 .home-intro-title-brand {
    width: min(640px,100%) !important;
    max-width: 100%;
    height: auto;
}

@media (max-width:900px){
    .home-intro-v55 .home-intro-title-brand {
        width: min(540px,100%) !important;
    }
}

@media (max-width:600px){
    .home-intro-v55 .home-intro-title-brand {
        width: min(350px,100%) !important;
    }
}

/* V62 — Studio Pilates + adaptive browser layouts */
.studio-live-heading {
    font-family: Georgia,"Times New Roman",serif;
    font-weight: 400;
    font-size: clamp(48px,6vw,92px);
    line-height: .95;
    letter-spacing: -.035em;
    margin: 12px 0 28px;
    color: var(--navy);
}

.studio-teaser {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--cream);
    min-height: 620px;
}

.studio-teaser-copy {
    padding: clamp(60px,8vw,120px) max(30px,calc((100vw - var(--max))/2));
    padding-right: clamp(50px,7vw,110px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.studio-teaser-copy p {
    font-size: 18px;
    line-height: 1.7;
    max-width: 590px;
    margin: 0 0 30px;
}

.studio-teaser-photo {
    min-height: 620px;
}

.studio-teaser-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.studio-hero-v62 {
    background: var(--cream);
    padding: clamp(70px,8vw,120px) 0;
}

.studio-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: clamp(48px,7vw,100px);
    align-items: center;
}

.studio-hero-copy p {
    font-size: 17px;
    line-height: 1.72;
    max-width: 690px;
}

.studio-hero-image {
    height: min(58vw,720px);
}

.studio-hero-image img,
.studio-offer-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.studio-page-title {
    font-size: clamp(58px,7vw,104px);
}

.studio-offer-v62 {
    padding: clamp(72px,8vw,120px) 0;
    background: var(--paper);
}

.studio-offer-blue {
    background: var(--blue);
}

.studio-offer-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(48px,7vw,100px);
    align-items: center;
}

.studio-offer-grid h2 {
    font-family: Georgia,"Times New Roman",serif;
    font-weight: 400;
    font-size: clamp(38px,4.4vw,68px);
    line-height: 1.05;
    margin: 10px 0 28px;
}

.studio-offer-grid p,
.studio-list {
    font-size: 16px;
    line-height: 1.68;
}

.studio-offer-image {
    height: min(55vw,650px);
}

.studio-prices {
    margin: 28px 0;
}

.studio-prices p {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 16px 0;
    margin: 0;
    border-bottom: 1px solid rgba(25,42,58,.16);
}

.studio-prices strong {
    font-size: 15px;
}

.studio-list {
    padding-left: 20px;
}

.studio-list li {
    margin-bottom: 14px;
}

.team-grid-v62 {
    grid-template-columns: repeat(4,1fr);
    gap: 24px;
}

.team-grid-v62 .team-image {
    aspect-ratio: 3/4;
    height: auto;
    overflow: hidden;
}

.team-grid-v62 .team-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.team-grid-v62 .team-card:nth-child(2) .team-image img {
    object-position: 62% center;
}

.team-grid-v62 .team-card:nth-child(3) .team-image img {
    object-position: center 45%;
}

.team-card-coming .team-placeholder {
    background: var(--cream);
}

/* Desktop/wide: preserve horizontal class and pricing layouts. */
@media (min-width:901px){
    .home-classes-section .class-grid {
        grid-template-columns: repeat(3,1fr)!important;
        gap: 14px;
    }

    .home-classes-section .class-card {
        display: flex!important;
        flex-direction: column!important;
        align-items: flex-start!important;
        justify-content: space-between!important;
        min-height: 300px;
        padding: 32px!important;
        gap: 24px!important;
    }

    .home-classes-section .class-card>div {
        display: block!important;
    }

    .home-classes-section .class-card .class-name {
        margin-bottom: 16px;
    }

    .home-pricing-section .price-grid {
        grid-template-columns: repeat(2,1fr)!important;
        gap: 14px;
    }

    .home-pricing-section .price {
        display: flex!important;
        flex-direction: column!important;
        align-items: flex-start!important;
        min-height: 300px;
        padding: 34px!important;
        gap: 20px!important;
    }

    .home-pricing-section .price>div:last-child {
        display: block!important;
    }

    .home-pricing-section .price>div:last-child p {
        margin: 0 0 20px;
    }

    .menu {
        display: none!important;
    }

    .navlinks {
        display: flex!important;
    }
}

/* Tablet / iPad portrait / narrow desktop */
@media (max-width:1050px){
    .shell {
        width: min(100% - 48px,var(--max));
        border-top-color: rgba(0, 0, 0, 0);
    }

    .navlinks {
        gap: 22px;
    }

    .navlinks a {
        font-size: 11px;
    }

    .navlinks .btn {
        padding: 13px 17px;
    }

    .studio-hero-grid,
    .studio-offer-grid {
        gap: 44px;
    }

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

    .footer-v53-grid {
        gap: 24px;
    }

    .footer-v53-wordmark {
        width: 130px;
    }
}

@media (max-width:900px){
    .studio-teaser {
        grid-template-columns: 1fr;
    }

    .studio-teaser-copy {
        padding: 70px 34px;
    }

    .studio-teaser-photo {
        min-height: 0;
        height: 62vw;
        max-height: 620px;
    }

    .studio-hero-grid,
    .studio-offer-grid {
        grid-template-columns: 1fr;
    }

    .studio-hero-image,
    .studio-offer-image {
        height: 62vw;
        max-height: 650px;
        min-height: 420px;
    }

    .studio-offer-reverse .studio-offer-image {
        order: 2;
    }

    .studio-offer-reverse>div:last-child {
        order: 1;
    }
}

/* Phone + foldable/flip outer/inner browser friendly */
@media (max-width:600px){
    .shell {
        width: calc(100% - 36px);
    }

    .studio-live-heading {
        font-size: 48px;
    }

    .studio-page-title {
        font-size: 54px;
    }

    .studio-teaser-copy {
        padding: 58px 22px;
    }

    .studio-teaser-copy p {
        font-size: 16px;
    }

    .studio-teaser-photo {
        height: 76vw;
        min-height: 300px;
    }

    .studio-hero-v62,
    .studio-offer-v62 {
        padding: 62px 0;
    }

    .studio-hero-grid,
    .studio-offer-grid {
        gap: 34px;
    }

    .studio-hero-image,
    .studio-offer-image {
        height: 92vw;
        min-height: 330px;
    }

    .studio-offer-grid h2 {
        font-size: 40px;
    }

    .studio-prices p {
        display: block;
    }

    .studio-prices span {
        display: block;
        margin-top: 5px;
    }

    .team-grid-v62 {
        grid-template-columns: 1fr 1fr;
        gap: 14px;
    }

    .team-grid-v62 .team-copy h3 {
        font-size: 18px;
    }

    .team-grid-v62 .team-copy p {
        font-size: 13px;
    }

    .footer-v53-brand {
        gap: 10px;
    }

    .footer-v53-logo {
        width: 34px;
    }

    .footer-v53-wordmark {
        width: 118px;
    }
}

/* Very narrow fold/flip cover browsers */
@media (max-width:390px){
    .shell {
        width: calc(100% - 28px);
    }

    .home-intro-v55 .home-intro-title-brand {
        width: 100%!important;
    }

    .home-hero-textbox {
        padding-left: 22px!important;
        padding-right: 22px!important;
    }

    .home-intro-local {
        font-size: 13px!important;
        line-height: 1.5!important;
    }

    .home-see-more {
        padding: 14px 16px!important;
    }

    .studio-live-heading,
    .studio-page-title {
        font-size: 42px;
    }

    .studio-teaser-copy {
        padding: 48px 18px;
    }

    .studio-hero-image,
    .studio-offer-image {
        height: 105vw;
        min-height: 300px;
    }

    .team-grid-v62 {
        grid-template-columns: 1fr;
    }

    .footer-v53-grid {
        grid-template-columns: 1fr!important;
    }

    .footer-v53-address,
    .footer-v53-meta,
    .footer-v53-brand {
        grid-column: 1!important;
    }

    .footer-v53-meta {
        align-items: flex-start!important;
    }

    .btn {
        max-width: 100%;
        white-space: normal;
    }
}

/* Short landscape phone/foldable browser */
@media (max-height:520px) and (orientation:landscape){
    .header .nav {
        min-height: 58px;
    }

    .home-hero-photo {
        height: 78vh!important;
        min-height: 320px!important;
    }

    .home-hero-textbox {
        padding-top: 28px!important;
        padding-bottom: 28px!important;
    }

    .studio-hero-v62 {
        padding: 48px 0;
    }

    .studio-hero-grid {
        grid-template-columns: 1fr 1fr;
    }

    .studio-hero-image {
        height: 78vh;
        min-height: 300px;
    }

    .navlinks[data-open="1"] {
        top: 58px;
        max-height: calc(100vh - 58px);
        overflow: auto;
    }
}

/* V63 — team roles + Studio Pilates typography and image cleanup */
.team-grid-v62 {
    grid-template-columns: repeat(3,1fr);
    gap: 28px;
}

.team-role {
    font-size: 12px!important;
    line-height: 1.45!important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 5px 0 10px!important;
    color: var(--navy);
}

/* Use Mat's established signature heading artwork/font treatment rather than the temporary serif. */
.studio-live-heading,
.studio-offer-grid h2 {
    font-family: "Mat Pilates",Georgia,"Times New Roman",serif;
    color: var(--navy);
}

/* Where the custom font is not locally available, match the established bold, characterful Mat heading scale. */
.studio-live-heading {
    font-weight: 700;
    letter-spacing: .015em;
    line-height: .96;
}

.studio-offer-grid h2 {
    font-weight: 700;
    letter-spacing: .01em;
    line-height: 1.02;
}

.studio-page-v62 p,
.studio-page-v62 li,
.studio-page-v62 .studio-prices,
.studio-page-v62 .site-subheading {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
}

/* Exactly two supplied Studio Pilates images, presented edge-to-edge with no white frame. */
.studio-hero-image,
.studio-offer-image {
    overflow: hidden;
    background: transparent;
    border: 0;
    padding: 0;
}

.studio-hero-image img,
.studio-offer-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 0;
    margin: 0;
}

/* Avoid repeating the first image in the private/semi-private information block. */
.studio-offer-blue .studio-offer-image {
    display: none;
}

.studio-offer-blue .studio-offer-grid {
    grid-template-columns: minmax(0,760px);
    justify-content: start;
}

@media (max-width:1050px){
    .team-grid-v62 {
        grid-template-columns: repeat(3,1fr);
        gap: 20px;
    }
}

@media (max-width:700px){
    .team-grid-v62 {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .team-grid-v62 .team-image {
        aspect-ratio: 4/5;
    }

    .studio-offer-blue .studio-offer-grid {
        grid-template-columns: 1fr;
    }
}

/* V64 — final Studio Pilates photo cleanup + signature heading artwork */
.team-copy .team-role {
    margin-bottom: 0!important;
}

.studio-art-heading {
    margin: 12px 0 28px!important;
    line-height: 1;
}

.studio-art-heading img {
    display: block;
    width: min(100%,680px);
    height: auto;
    border: 0;
}

.studio-offer-title img {
    width: min(100%,540px);
}

.studio-hero-image,
.studio-offer-image {
    background: transparent!important;
}

.studio-hero-image img,
.studio-offer-image img {
    object-fit: cover;
    object-position: center center;
}

.studio-hero-image {
    height: min(48vw,620px);
}

.studio-offer-image {
    height: min(48vw,600px);
}

@media (max-width:900px){
    .studio-hero-image,
    .studio-offer-image {
        height: 72vw;
        min-height: 320px;
        max-height: 560px;
    }

    .studio-art-heading img {
        width: min(100%,560px);
    }

    .studio-offer-title img {
        width: min(100%,470px);
    }
}

@media (max-width:600px){
    .studio-hero-image,
    .studio-offer-image {
        height: 88vw;
        min-height: 300px;
    }

    .studio-art-heading {
        margin: 8px 0 24px!important;
    }

    .studio-art-heading img,
    .studio-offer-title img {
        width: 100%;
    }
}

/* V65 — supplied Studio photography + cleaner team service hierarchy */
.team-services {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin-top: 8px;
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 400;
    letter-spacing: .015em;
    color: var(--navy);
}

.team-services span {
    display: block;
    width: 100%;
    padding: 7px 0;
    border-top: 1px solid rgba(25,42,58,.14);
}

.team-services span:last-child {
    border-bottom: 1px solid rgba(25,42,58,.14);
}

.studio-hero-image img {
    object-position: center 48%;
}

.studio-offer-reverse .studio-offer-image img {
    object-position: center 48%;
}

.studio-teaser-photo img {
    object-position: center 50%;
}

.studio-hero-image,
.studio-offer-image,
.studio-teaser-photo {
    border: 0!important;
    box-shadow: none!important;
    padding: 0!important;
}

@media (max-width:900px){
    .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img,
    .studio-teaser-photo img {
        object-position: center center;
    }
}

@media (max-width:600px){
    .team-services {
        font-size: 12.5px;
        margin-top: 7px;
    }

    .team-services span {
        padding: 6px 0;
    }
}

/* V66 — consistent Mat typography + editorial Studio photography */
/* Homepage Studio heading now uses the Mat custom outlined artwork. */
.studio-home-title {
    margin: 12px 0 26px!important;
}

.studio-home-title img {
    display: block;
    width: min(100%,520px);
    height: auto;
}

/* All instructor cards use the same typography and service structure. */
.team-grid-v62 .team-copy {
    padding-top: 18px;
}

.team-grid-v62 .team-copy h3 {
    margin: 0 0 10px;
}

.team-grid-v62 .team-services {
    margin-top: 0;
    font-size: 14px;
    line-height: 1.35;
    font-weight: 400;
    letter-spacing: .01em;
}

.team-grid-v62 .team-services span {
    min-height: 38px;
    display: flex;
    align-items: center;
    padding: 8px 0;
    border-top: 1px solid rgba(25,42,58,.15);
}

.team-grid-v62 .team-services span:last-child {
    border-bottom: 1px solid rgba(25,42,58,.15);
}

/* Studio page: less 'large square photo', more intentional editorial composition. */
.studio-hero-grid {
    grid-template-columns: minmax(0,1.16fr) minmax(300px,.84fr);
}

.studio-hero-image {
    width: 78%;
    height: min(48vw,610px);
    justify-self: end;
    position: relative;
    overflow: hidden;
    clip-path: polygon(0 7%,100% 0,100% 93%,0 100%);
}

.studio-hero-image img {
    transform: scale(1.035);
    object-position: center 52%;
}

/* Blue Studio section: image sits as a tall arched editorial panel with breathing room. */
.studio-offer-blue .studio-offer-grid {
    grid-template-columns: minmax(0,1fr) minmax(270px,.58fr)!important;
    justify-content: stretch!important;
}

.studio-offer-blue .studio-offer-image {
    display: block!important;
    width: 82%;
    height: min(45vw,570px);
    justify-self: end;
    overflow: hidden;
    border-radius: 260px 260px 0 0;
}

.studio-offer-blue .studio-offer-image img {
    object-position: center 50%;
    transform: scale(1.03);
}

/* 1:1 Reformer: a wider, low-set image block to deliberately contrast with Studio. */
.studio-offer-reverse {
    grid-template-columns: minmax(300px,.78fr) minmax(0,1.22fr);
}

.studio-offer-reverse .studio-offer-image {
    width: 88%;
    height: min(40vw,500px);
    align-self: center;
    overflow: hidden;
    clip-path: polygon(7% 0,100% 0,93% 100%,0 100%);
}

.studio-offer-reverse .studio-offer-image img {
    object-position: center 54%;
    transform: scale(1.025);
}

/* Keep the homepage Studio image composition clean but less blocky. */
.studio-teaser-photo {
    overflow: hidden;
}

.studio-teaser-photo img {
    transform: scale(1.025);
    object-position: center 52%;
}

@media (max-width:900px){
    .studio-home-title img {
        width: min(100%,480px);
    }

    .studio-hero-grid,
    .studio-offer-blue .studio-offer-grid,
    .studio-offer-reverse {
        grid-template-columns: 1fr!important;
    }

    .studio-hero-image,
    .studio-offer-blue .studio-offer-image,
    .studio-offer-reverse .studio-offer-image {
        width: min(88%,620px);
        justify-self: center;
        height: min(76vw,560px);
    }

    .studio-hero-image {
        clip-path: polygon(0 5%,100% 0,100% 95%,0 100%);
    }

    .studio-offer-blue .studio-offer-image {
        border-radius: 220px 220px 0 0;
    }

    .studio-offer-reverse .studio-offer-image {
        clip-path: polygon(5% 0,100% 0,95% 100%,0 100%);
    }
}

@media (max-width:600px){
    .studio-home-title img {
        width: 100%;
    }

    .team-grid-v62 .team-copy {
        padding-top: 13px;
    }

    .team-grid-v62 .team-services {
        font-size: 13px;
    }

    .team-grid-v62 .team-services span {
        min-height: 34px;
        padding: 7px 0;
    }

    .studio-hero-image,
    .studio-offer-blue .studio-offer-image,
    .studio-offer-reverse .studio-offer-image {
        width: 92%;
        height: 105vw;
        max-height: 500px;
        min-height: 300px;
    }

    .studio-offer-blue .studio-offer-image {
        border-radius: 180px 180px 0 0;
    }
}

/* V67 — seamless Studio Pilates photography */
.studio-hero-image,
.studio-offer-blue .studio-offer-image,
.studio-offer-reverse .studio-offer-image {
    clip-path: none!important;
    border-radius: 0!important;
    border: 0!important;
    box-shadow: none!important;
    padding: 0!important;
    overflow: hidden!important;
    background: transparent!important;
}

.studio-hero-grid {
    grid-template-columns: minmax(0,1.04fr) minmax(360px,.96fr)!important;
    column-gap: clamp(48px,7vw,110px)!important;
    align-items: stretch!important;
}

.studio-hero-image {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 620px!important;
    justify-self: stretch!important;
}

.studio-hero-image img {
    width: 100%!important;
    height: 100%!important;
    min-height: 620px!important;
    object-fit: cover!important;
    object-position: center!important;
    transform: none!important;
}

.studio-offer-blue .studio-offer-image {
    display: none!important;
}

.studio-offer-blue .studio-offer-grid {
    grid-template-columns: minmax(0,760px)!important;
}

.studio-offer-reverse {
    grid-template-columns: minmax(360px,.94fr) minmax(0,1.06fr)!important;
    column-gap: clamp(48px,7vw,110px)!important;
    align-items: stretch!important;
}

.studio-offer-reverse .studio-offer-image {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 600px!important;
    justify-self: stretch!important;
}

.studio-offer-reverse .studio-offer-image img {
    width: 100%!important;
    height: 100%!important;
    min-height: 600px!important;
    object-fit: cover!important;
    object-position: center!important;
    transform: none!important;
}

@media (max-width:900px){
    .studio-hero-grid,
    .studio-offer-reverse {
        grid-template-columns: 1fr!important;
        row-gap: 38px!important;
    }

    .studio-hero-image,
    .studio-offer-reverse .studio-offer-image {
        width: 100%!important;
        height: auto!important;
        min-height: 0!important;
    }

    .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img {
        width: 100%!important;
        height: auto!important;
        min-height: 0!important;
        aspect-ratio: 4/3;
        object-fit: cover!important;
    }
}

@media (max-width:600px){
    .studio-hero-grid,
    .studio-offer-reverse {
        row-gap: 28px!important;
    }

    .studio-hero-image,
    .studio-offer-reverse .studio-offer-image {
        width: calc(100% + 32px)!important;
        margin-left: -16px!important;
        max-height: none!important;
    }

    .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img {
        aspect-ratio: 4/3!important;
        max-height: none!important;
    }
}

/* V68 — full-height vertical Studio imagery + exact supplied homepage hero */
/* Studio page: image column fills the full vertical length of each relevant section. */
.studio-hero-grid,
.studio-offer-reverse {
    align-items: stretch!important;
}

.studio-hero-image,
.studio-offer-reverse .studio-offer-image {
    align-self: stretch!important;
    height: auto!important;
    min-height: 100%!important;
    width: 100%!important;
    overflow: hidden!important;
    clip-path: none!important;
    border-radius: 0!important;
    margin: 0!important;
}

.studio-hero-image img,
.studio-offer-reverse .studio-offer-image img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 100%!important;
    object-fit: cover!important;
    object-position: center center!important;
    transform: none!important;
}

/* Desktop: narrow the photo columns slightly so they read as tall vertical panels. */
@media (min-width:901px){
    .studio-hero-grid {
        grid-template-columns: minmax(0,1.12fr) minmax(330px,.72fr)!important;
    }

    .studio-offer-reverse {
        grid-template-columns: minmax(330px,.72fr) minmax(0,1.12fr)!important;
    }
}

/* Mobile/tablet: return to natural-width image blocks to avoid ultra-tall crops. */
@media (max-width:900px){
    .studio-hero-image,
    .studio-offer-reverse .studio-offer-image {
        min-height: 0!important;
        height: auto!important;
    }

    .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img {
        height: auto!important;
        min-height: 0!important;
        aspect-ratio: 4/3!important;
    }
}

/* Homepage: preserve the exact supplied photo and crop only via its container. */
.home-hero img,
.hero-photo img,
.home-intro-photo img {
    object-fit: cover!important;
    object-position: center 56%!important;
}

/* V69 — FINAL Studio split layout
   Desktop: full-bleed 50/50 text + image, flush to viewport edges.
   Narrow browser/tablet/phone: stacked. */
/* Remove inner max-width behaviour from the two image-led Studio sections. */
.studio-hero,
.studio-offer-reverse-wrap {
    overflow: hidden!important;
}

/* Hero Studio Pilates section */
.studio-hero .studio-hero-grid {
    width: 100%!important;
    max-width: none!important;
    margin: 0!important;
    padding: 0!important;
    display: grid!important;
    grid-template-columns: 50% 50%!important;
    gap: 0!important;
    align-items: stretch!important;
}

.studio-hero .studio-hero-copy {
    width: 100%!important;
    max-width: 720px!important;
    justify-self: end!important;
    padding: clamp(70px,8vw,125px) clamp(46px,7vw,110px)!important;
    box-sizing: border-box!important;
}

.studio-hero .studio-hero-image {
    width: 100%!important;
    height: 100%!important;
    min-height: 720px!important;
    margin: 0!important;
    padding: 0!important;
    align-self: stretch!important;
    justify-self: stretch!important;
    overflow: hidden!important;
    clip-path: none!important;
    border-radius: 0!important;
}

.studio-hero .studio-hero-image img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 720px!important;
    object-fit: cover!important;
    object-position: center center!important;
    transform: none!important;
}

/* 1:1 Reformer section — image flush left, copy flush into right half */
.studio-offer-reverse {
    width: 100%!important;
    max-width: none!important;
    margin: 0!important;
    padding: 0!important;
    display: grid!important;
    grid-template-columns: 50% 50%!important;
    gap: 0!important;
    align-items: stretch!important;
}

.studio-offer-reverse .studio-offer-image {
    width: 100%!important;
    height: 100%!important;
    min-height: 700px!important;
    margin: 0!important;
    padding: 0!important;
    align-self: stretch!important;
    justify-self: stretch!important;
    overflow: hidden!important;
    clip-path: none!important;
    border-radius: 0!important;
}

.studio-offer-reverse .studio-offer-image img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 700px!important;
    object-fit: cover!important;
    object-position: center center!important;
    transform: none!important;
}

.studio-offer-reverse .studio-offer-copy {
    width: 100%!important;
    max-width: 720px!important;
    justify-self: start!important;
    padding: clamp(70px,8vw,125px) clamp(46px,7vw,110px)!important;
    box-sizing: border-box!important;
    align-self: center!important;
}

/* Make sure no decorative duplicate Studio image survives. */
.studio-offer-blue .studio-offer-image {
    display: none!important;
}

/* Narrow browser/tablet: same sections stack cleanly. */
@media (max-width:900px){
    .studio-hero .studio-hero-grid,
    .studio-offer-reverse {
        grid-template-columns: 1fr!important;
    }

    .studio-hero .studio-hero-copy,
    .studio-offer-reverse .studio-offer-copy {
        max-width: none!important;
        width: 100%!important;
        padding: 64px clamp(28px,7vw,60px)!important;
        justify-self: stretch!important;
    }

    .studio-hero .studio-hero-image,
    .studio-offer-reverse .studio-offer-image {
        min-height: 0!important;
        height: auto!important;
        width: 100%!important;
    }

    .studio-hero .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img {
        min-height: 0!important;
        height: auto!important;
        width: 100%!important;
        aspect-ratio: 4/3!important;
        object-fit: cover!important;
    }
}

/* Phone/foldable: edge-to-edge images, comfortable copy. */
@media (max-width:600px){
    .studio-hero .studio-hero-copy,
    .studio-offer-reverse .studio-offer-copy {
        padding: 48px 22px!important;
    }

    .studio-hero .studio-hero-image,
    .studio-offer-reverse .studio-offer-image {
        width: 100%!important;
        margin: 0!important;
    }

    .studio-hero .studio-hero-image img,
    .studio-offer-reverse .studio-offer-image img {
        aspect-ratio: 4/3!important;
    }
}

/* V70 — true premium full-bleed Studio sections */
/* STUDIO PILATES INTRO: text left / image right, image flush to browser edge */
.studio-page-v62 .studio-hero-v62 {
    padding: 0!important;
    margin: 0!important;
    background: var(--cream)!important;
    overflow: hidden!important;
}

.studio-page-v62 .studio-hero-v62 > .studio-hero-grid.shell {
    width: 100%!important;
    max-width: none!important;
    margin: 0!important;
    padding: 0!important;
    display: grid!important;
    grid-template-columns: 50% 50%!important;
    gap: 0!important;
    align-items: stretch!important;
}

.studio-page-v62 .studio-hero-copy {
    box-sizing: border-box!important;
    width: 100%!important;
    max-width: 760px!important;
    justify-self: end!important;
    align-self: center!important;
    padding: clamp(82px,8vw,132px) clamp(52px,7vw,112px)!important;
}

.studio-page-v62 .studio-hero-image {
    width: 100%!important;
    height: auto!important;
    min-height: 760px!important;
    max-height: none!important;
    margin: 0!important;
    padding: 0!important;
    align-self: stretch!important;
    overflow: hidden!important;
    clip-path: none!important;
    border-radius: 0!important;
}

.studio-page-v62 .studio-hero-image img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 760px!important;
    object-fit: cover!important;
    object-position: center center!important;
    transform: none!important;
}

/* PRIVATE REFORMER: image left / text right, same exact architecture */
.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) {
    padding: 0!important;
    margin: 0!important;
    overflow: hidden!important;
}

.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) > .studio-offer-grid.shell {
    width: 100%!important;
    max-width: none!important;
    margin: 0!important;
    padding: 0!important;
    display: grid!important;
    grid-template-columns: 50% 50%!important;
    gap: 0!important;
    align-items: stretch!important;
}

.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
    width: 100%!important;
    height: auto!important;
    min-height: 760px!important;
    max-height: none!important;
    margin: 0!important;
    padding: 0!important;
    align-self: stretch!important;
    overflow: hidden!important;
    clip-path: none!important;
    border-radius: 0!important;
}

.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
    display: block!important;
    width: 100%!important;
    height: 100%!important;
    min-height: 760px!important;
    object-fit: cover!important;
    object-position: center center!important;
    transform: none!important;
}

.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-grid > div:last-child {
    box-sizing: border-box!important;
    width: 100%!important;
    max-width: 760px!important;
    justify-self: start!important;
    align-self: center!important;
    padding: clamp(82px,8vw,132px) clamp(52px,7vw,112px)!important;
}

/* Keep the pricing section calm and contained between the two full-bleed sections. */
.studio-page-v62 .studio-offer-blue {
    padding: clamp(78px,8vw,118px) 0!important;
}

.studio-page-v62 .studio-offer-blue > .studio-offer-grid.shell {
    width: min(calc(100% - 56px),1180px)!important;
    max-width: 1180px!important;
    margin: 0 auto!important;
    padding: 0!important;
}

/* Smaller desktop / tablet / narrow browser: stack just like the homepage split section. */
@media (max-width:950px){
    .studio-page-v62 .studio-hero-v62 > .studio-hero-grid.shell,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) > .studio-offer-grid.shell {
        grid-template-columns: 1fr!important;
    }

    .studio-page-v62 .studio-hero-copy,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-grid > div:last-child {
        max-width: none!important;
        width: 100%!important;
        justify-self: stretch!important;
        padding: clamp(58px,8vw,84px) clamp(28px,7vw,60px)!important;
    }

    .studio-page-v62 .studio-hero-image,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        min-height: 0!important;
        height: auto!important;
        width: 100%!important;
    }

    .studio-page-v62 .studio-hero-image img,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        min-height: 0!important;
        height: auto!important;
        width: 100%!important;
        aspect-ratio: 4/3!important;
        object-fit: cover!important;
    }

    /* On stacked layout keep text first, image second for Studio;
     Private Reformer keeps image first, text second. */
    .studio-page-v62 .studio-hero-copy {
        order: 1!important;
    }

    .studio-page-v62 .studio-hero-image {
        order: 2!important;
    }

    .studio-page-v62 .studio-offer-reverse .studio-offer-image {
        order: 1!important;
    }

    .studio-page-v62 .studio-offer-reverse > div:last-child {
        order: 2!important;
    }
}

@media (max-width:600px){
    .studio-page-v62 .studio-hero-copy,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-grid > div:last-child {
        padding: 50px 22px!important;
    }

    .studio-page-v62 .studio-hero-image img,
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        aspect-ratio: 1/1!important;
    }

    .studio-page-v62 .studio-offer-blue > .studio-offer-grid.shell {
        width: calc(100% - 44px)!important;
    }
}

/* V71 — Privacy Policy */
.privacy-page {
    background: var(--cream);
    color: var(--navy);
}

.privacy-hero {
    padding: clamp(78px,9vw,135px) 0 clamp(44px,6vw,76px);
}

.privacy-shell {
    max-width: 900px;
}

.privacy-hero .eyebrow {
    margin: 0 0 18px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.privacy-hero h1 {
    margin: 0 0 30px;
    font-size: clamp(44px,6vw,78px);
    line-height: .98;
    color: var(--navy);
}

.privacy-intro {
    max-width: 760px;
    font-size: clamp(19px,2vw,24px);
    line-height: 1.55;
}

.privacy-content {
    padding: 0 0 clamp(90px,10vw,150px);
}

.privacy-content p {
    font-size: 16px;
    line-height: 1.8;
    margin: 0 0 24px;
}

.privacy-content h2 {
    margin: 58px 0 18px;
    padding-top: 28px;
    border-top: 1px solid rgba(25,42,58,.16);
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 21px;
    line-height: 1.35;
    font-weight: 700;
    color: var(--navy);
}

.privacy-content h3 {
    margin: 30px 0 10px;
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: 16px;
    font-weight: 700;
    color: var(--navy);
}

.privacy-content a {
    color: var(--magenta);
}

.footer-privacy {
    color: inherit;
    text-decoration: none;
}

.footer-privacy:hover {
    text-decoration: underline;
}

.footer-privacy-fallback {
    display: block;
    margin: 18px auto 0;
    text-align: center;
}

@media (max-width:600px){
    .privacy-hero {
        padding: 58px 0 34px;
    }

    .privacy-content h2 {
        margin-top: 44px;
    }

    .privacy-content p {
        font-size: 15px;
    }
}

/* V72 — updated supplied 1:1 Reformer photograph */
.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
    object-position: center 52%!important;
}

@media (max-width:950px){
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 54%!important;
    }
}

/* V73 — exact requested photography + compact privacy page */
.studio-page-v62 .studio-hero-image img {
    object-position: center center!important;
}

.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
    object-position: center 54%!important;
}

.studio-teaser-photo img {
    object-position: center center!important;
}

.privacy-page .privacy-hero-compact {
    padding: 54px 0 26px!important;
}

.privacy-page .privacy-hero-compact h1 {
    margin: 0!important;
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif!important;
    font-size: clamp(34px,4vw,50px)!important;
    line-height: 1.05!important;
    font-weight: 600!important;
    letter-spacing: -.025em!important;
}

.privacy-page .privacy-hero-compact .eyebrow {
    margin: 0 0 10px!important;
}

.privacy-page .privacy-content {
    padding-top: 0!important;
}

@media (max-width:600px){
    .privacy-page .privacy-hero-compact {
        padding: 40px 0 20px!important;
    }
}

/* =========================================================
   V74 — responsive image crops + proper Privacy header
   ========================================================= */
/* Privacy: use the same compact site header as every other page.
   The policy begins immediately beneath it with a restrained title. */
.privacy-page {
    background: var(--paper)!important;
}

.privacy-page .privacy-hero-compact {
    padding: clamp(48px,5vw,72px) 0 24px!important;
    background: var(--paper)!important;
}

.privacy-page .privacy-shell {
    width: min(calc(100% - 56px),900px)!important;
    max-width: 900px!important;
    margin: 0 auto!important;
    padding: 0!important;
}

.privacy-page .privacy-hero-compact h1 {
    margin: 0!important;
    font-size: clamp(36px,4vw,52px)!important;
    line-height: 1.05!important;
    font-weight: 600!important;
}

.privacy-page .privacy-content {
    padding: 0 0 clamp(80px,9vw,130px)!important;
}

.privacy-page .privacy-content h2 {
    font-size: 20px!important;
}

/* Homepage Studio Pilates: maintain premium 50/50 split on large screens.
   The new brightened image fills its half without an artificial zoom. */
.studio-teaser {
    grid-template-columns: 50% 50%!important;
    min-height: 650px!important;
    align-items: stretch!important;
}

.studio-teaser-copy {
    min-width: 0!important;
}

.studio-teaser-photo {
    min-height: 650px!important;
    height: auto!important;
}

.studio-teaser-photo img {
    width: 100%!important;
    height: 100%!important;
    object-fit: cover!important;
    object-position: center 50%!important;
    transform: none!important;
}

/* Private Reformer: desktop remains full-height split. */
.studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
    object-position: center 54%!important;
}

/* Narrow desktop / iPad / minimised browser:
   stack naturally and show more vertical context in the portrait photos. */
@media (max-width:950px){
    .studio-teaser {
        grid-template-columns: 1fr!important;
        min-height: 0!important;
    }

    .studio-teaser-copy {
        padding: clamp(58px,8vw,82px) clamp(28px,7vw,60px)!important;
    }

    .studio-teaser-photo {
        height: 72vw!important;
        min-height: 430px!important;
        max-height: 720px!important;
    }

    .studio-teaser-photo img {
        object-position: center 48%!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: clamp(520px,78vw,760px)!important;
        min-height: 520px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        width: 100%!important;
        height: 100%!important;
        aspect-ratio: auto!important;
        object-fit: cover!important;

        /* Move the photograph down within the crop so the carriage/reformer,
       rather than only the footbar, remains visible. */
        object-position: center 70%!important;
    }
}

/* Standard phone browser */
@media (max-width:600px){
    .privacy-page .privacy-shell {
        width: calc(100% - 40px)!important;
    }

    .privacy-page .privacy-hero-compact {
        padding: 36px 0 18px!important;
    }

    .privacy-page .privacy-hero-compact h1 {
        font-size: 34px!important;
    }

    .studio-teaser-copy {
        padding: 50px 22px!important;
    }

    .studio-teaser-photo {
        height: 92vw!important;
        min-height: 340px!important;
        max-height: 540px!important;
    }

    .studio-teaser-photo img {
        object-position: center 48%!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: 118vw!important;
        min-height: 430px!important;
        max-height: 650px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        aspect-ratio: auto!important;
        object-position: center 72%!important;
    }
}

/* Narrow flip/fold phone cover screens */
@media (max-width:390px){
    .privacy-page .privacy-shell {
        width: calc(100% - 32px)!important;
    }

    .studio-teaser-photo {
        height: 105vw!important;
        min-height: 320px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: 128vw!important;
        min-height: 400px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 74%!important;
    }
}

/* Short landscape phone / foldable: avoid giant image blocks. */
@media (max-height:520px) and (orientation:landscape){
    .studio-teaser {
        grid-template-columns: 1fr 1fr!important;
    }

    .studio-teaser-copy {
        padding: 38px 28px!important;
    }

    .studio-teaser-photo {
        height: auto!important;
        min-height: 360px!important;
        max-height: none!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) > .studio-offer-grid.shell {
        grid-template-columns: 1fr 1fr!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: auto!important;
        min-height: 440px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 66%!important;
    }
}

/* =========================================================
   V75 — final photo crop, 1:1 label + consistent Privacy header
   ========================================================= */
/* Privacy: exact same header sizing/structure as every other page. */
.privacy-page {
    background: var(--paper)!important;
}

body:has(.privacy-page) .header .logo img {
    height: 50px!important;
    width: auto!important;
    max-width: none!important;
    object-fit: contain!important;
}

body:has(.privacy-page) .header {
    min-height: 0!important;
}

body:has(.privacy-page) .header .shell.nav {
    min-height: 74px!important;
}

/* Homepage Studio Pilates — use the new brightened image cleanly. */
.studio-teaser-photo img {
    object-fit: cover!important;
    object-position: center 50%!important;
    transform: none!important;
}

/* Reformer crop: reverse the previous crop direction on smaller screens.
   This shifts the photograph the other way so the composition shows more
   of the reformer body rather than landing heavily on the footbar. */
@media (max-width:950px){
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 30%!important;
    }
}

@media (max-width:600px){
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: 112vw!important;
        min-height: 410px!important;
        max-height: 620px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 27%!important;
    }

    body:has(.privacy-page) .header .shell.nav {
        min-height: 64px!important;
    }

    body:has(.privacy-page) .header .logo img {
        height: 42px!important;
    }
}

@media (max-width:390px){
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image {
        height: 122vw!important;
        min-height: 390px!important;
    }

    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 24%!important;
    }
}

/* Minimized desktop / tablet: homepage Studio block stacks without awkward crops. */
@media (min-width:601px) and (max-width:950px){
    .studio-teaser-photo {
        min-height: 500px!important;
        height: min(72vw,700px)!important;
    }
}

/* Short landscape flip/fold devices. */
@media (max-height:520px) and (orientation:landscape){
    .studio-page-v62 .studio-offer-v62:not(.studio-offer-blue) .studio-offer-image img {
        object-position: center 32%!important;
    }
}

/* V79: FAQs and Education */
.mat-faq-section,
.mat-education-section {
    padding: 75px 0;
}

.mat-faq-section {
    background: #f4e8d5;
}

.mat-faq-section h2,
.mat-education-section h2 {
    font-size: clamp(2rem,4vw,3.5rem);
    line-height: 1.12;
    margin: 14px 0 28px;
    color: #192a3a;
}

.mat-faq-list {
    max-width: 900px;
}

.mat-faq {
    border-bottom: 1px solid #192a3a55;
}

.mat-faq:first-child {
    border-top: 1px solid #192a3a55;
}

.mat-faq summary {
    cursor: pointer;
    list-style: none;
    padding: 21px 34px 21px 0;
    font-size: 1.1rem;
    font-weight: 600;
    position: relative;
}

.mat-faq summary::-webkit-details-marker {
    display: none;
}

.mat-faq summary:after {
    content: '+';
    position: absolute;
    right: 8px;
    font-size: 1.6rem;
    top: 13px;
}

.mat-faq[open] summary:after {
    content: '−';
}

.mat-faq-answer {
    padding: 0 30px 18px 0;
    max-width: 780px;
}

.mat-education-hero {
    background: #f4e8d5;
    padding: 100px 0 85px;
}

.mat-education-hero .shell {
    max-width: 1080px;
}

.mat-education-hero h1 {
    font-size: clamp(2.8rem,7vw,6rem);
    line-height: 1.02;
    color: #192a3a;
    max-width: 950px;
    margin: 20px 0 35px;
}

.mat-education-hero p {
    max-width: 800px;
    font-size: 1.1rem;
    line-height: 1.7;
}

.mat-education-section .shell {
    max-width: 1080px;
}

.mat-education-blue {
    background: #cfe8fa;
}

.mat-pathway-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 16px;
    margin-top: 28px;
}

.mat-pathway-grid>div {
    border: 1px solid #192a3a;
    padding: 25px;
    font-size: 1.15rem;
    border-radius: 3px;
}

.mat-education-date {
    font-size: 1.6rem;
    font-weight: 600;
}

.mat-recognition {
    display: flex;
    align-items: center;
    gap: 45px;
}

.mat-recognition img {
    width: 260px;
    max-width: 40%;
    height: auto;
}

.mat-recognition p {
    line-height: 1.7;
}

.mat-enquiry-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 55px;
}

.mat-enquiry-grid .contact-form select {
    width: 100%;
    display: block;
    padding: 14px;
    border: 1px solid #192a3a;
    background: white;
    font: inherit;
    margin-top: 8px;
}

@media (max-width:750px){
    .mat-faq-section,
    .mat-education-section {
        padding: 48px 0;
    }

    .mat-education-hero {
        padding: 60px 0;
    }

    .mat-pathway-grid,
    .mat-enquiry-grid {
        grid-template-columns: 1fr;
    }

    .mat-recognition {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .mat-recognition img {
        max-width: 75%;
    }
}

/* V80: use the site's existing typography and spacing for the new sections */
.mat-education-hero h1,
.mat-education-section h2,
.mat-faq-section h2 {
    font-family: var(--body-font);
    font-weight: 700;
    letter-spacing: -.025em;
}

.mat-education-hero p,
.mat-education-section p,
.mat-faq-answer p,
.mat-faq summary,
.mat-pathway-grid>div {
    font-family: var(--body-font);
}

.mat-education-hero h1 {
    font-size: clamp(2.5rem,5vw,4.5rem);
}

.mat-education-section h2,
.mat-faq-section h2 {
    font-size: clamp(2rem,3.5vw,3rem);
}

/* V81: match education pathways to the existing coloured class panels */
.mat-pathway-grid {
    gap: 16px;
}

.mat-pathway-grid>div {
    border: 0;
    border-radius: 0;
    min-height: 170px;
    padding: 34px;
    display: flex;
    align-items: center;
    font-family: var(--body-font);
    font-weight: 700;
    font-size: clamp(1.2rem,2.2vw,1.7rem);
    line-height: 1.25;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.mat-pathway-grid>div:nth-child(4n+1) {
    background: var(--magenta);
    color: #fff;
}

.mat-pathway-grid>div:nth-child(4n+2) {
    background: var(--cream);
    color: var(--navy);
}

.mat-pathway-grid>div:nth-child(4n+3) {
    background: var(--blue);
    color: var(--navy);
}

.mat-pathway-grid>div:nth-child(4n+4) {
    background: var(--gold);
    color: var(--navy);
}

@media (max-width:600px){
    .mat-pathway-grid>div {
        min-height: 125px;
        padding: 24px;
    }
}

/* V82 updates */
.mat-pathway-grid>div.pathway-comprehensive {
    background: #9a144b!important;
    color: #fff!important;
}

.class-styles-stack .class-style-row {
    box-sizing: border-box;
}

@media (min-width:751px){
    .class-styles-stack .class-style-row {
        min-height: 430px;
        grid-template-columns: 42% 58%!important;
    }

    .class-styles-stack .class-style-label,
    .class-styles-stack .class-style-copy {
        box-sizing: border-box;
    }

    .class-styles-stack .class-style-copy {
        border-left: 1px solid rgba(25,42,58,.25)!important;
    }
}

.v82-heading {
    font-family: var(--display-font);
    font-size: clamp(42px,6vw,78px);
    font-weight: 800;
    line-height: 1.1;
    color: var(--navy);
    margin: 0 0 30px;
    letter-spacing: .025em;
}

.more-pricing-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f4e8d5;
    color: #192a3a;
    text-decoration: none;
    font-weight: 800;
    letter-spacing: .08em;
    padding: 24px 32px;
    margin-top: 14px;
    font-size: 20px;
    text-transform: uppercase;
}

.more-pricing-options:hover {
    text-decoration: underline;
}

.footer-contact {
    color: inherit;
}

html {
    scroll-behavior: smooth;
}

.v82-svg-heading img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 160px;
    object-fit: contain;
    object-position: left center;
}

.mat-education-hero .v82-svg-heading img {
    max-width: 900px;
}

/* V83 refinements */
.footer-v53 .footer-contact,
.footer-v53 .footer-privacy {
    font-size: inherit!important;
    font-weight: inherit!important;
    line-height: inherit!important;
    letter-spacing: inherit!important;
    text-transform: none!important;
}

.home-see-more {
    position: relative;
    z-index: 5;
    cursor: pointer;
    pointer-events: auto;
}

#home-welcome {
    scroll-margin-top: 95px;
}

.more-pricing-options {
    font-family: Avenir Next,Helvetica Neue,Arial,sans-serif;
    font-size: clamp(20px,2.5vw,28px);
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
    line-height: 1.2;
    gap: 20px;
}

.more-options-arrow {
    font-family: Arial,sans-serif;
    font-size: 1.65em;
    font-weight: 400;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    transition: transform .2s ease;
}

.more-pricing-options:hover .more-options-arrow,
.more-pricing-options:focus-visible .more-options-arrow {
    transform: translateX(7px);
}

/* mat gentle homepage refinements v3 — existing layout retained */
body:has(.home-intro) {
    background-color: #F4E8D5;
}

body:has(.home-intro) .home-classes-section .class-card,
body:has(.home-intro) .home-pricing-section .price {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #000000;
}

body:has(.home-intro) .studio-teaser-photo {
    overflow: hidden;
    border-radius: 14px;
}

body:has(.home-intro) .studio-teaser-photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body:has(.home-intro) .map-wrap {
    border-radius: 12px;
    overflow: hidden;
}

/* Editable homepage v1 — intentionally isolated from the existing site */
@font-face{
    font-family: "Mat Pilates Editable";
    src: url("assets/MatPilates-Regular.otf") format("opentype");
    font-display: swap;
}

.home-intro-v55 .home-hero-photo {
    position: relative;
    height: clamp(490px,61vw,740px);
    overflow: hidden;
    background: #333;
}

.home-intro-v55 .home-hero-photo>img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 50%;
    filter: grayscale(1);
}

.home-intro-v55 .home-hero-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,rgba(10,20,30,.20),rgba(10,20,30,.42));
    pointer-events: none;
}

.home-intro-v55 .home-hero-copy.mat-editable-hero {
    position: absolute!important;
    inset: 0!important;
    z-index: 2;
    max-width: none!important;
    width: 100%!important;
    padding: 36px 24px!important;
    display: flex!important;
    justify-content: center!important;
    align-items: center!important;
    text-align: center!important;
    pointer-events: none;
}

.home-intro-v55 .mat-editable-hero-inner {
    position: relative;
    max-width: 950px;
    width: 100%;
    padding: 0;
    background: transparent!important;
    box-shadow: none!important;
    pointer-events: auto;
}

.home-intro-v55 .mat-editable-title {
    font-family: "Mat Pilates Editable",Georgia,serif;
    font-size: clamp(58px,9vw,138px);
    font-weight: 400;
    line-height: 1.03;
    letter-spacing: .015em;
    color: #fff;
    margin: 0 0 25px;
    text-shadow: 0 2px 14px rgba(0,0,0,.18);
}

.home-intro-v55 .mat-editable-tagline {
    font-family: var(--body-font);
    font-size: clamp(15px,2vw,23px);
    font-weight: 650;
    line-height: 1.5;
    letter-spacing: .035em;
    color: #fff;
    text-transform: none;
    max-width: 650px;
    margin: 0 auto 28px;
    text-shadow: 0 2px 12px rgba(0,0,0,.3);
}

.home-intro-v55 .mat-editable-hero-link {
    display: inline-flex;
    gap: 14px;
    align-items: center;
    background: var(--blue);
    color: var(--navy);
    border-radius: 9px;
    padding: 13px 21px;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-size: 12px;
    font-weight: 700;
}

.mat-announcements {
    padding: 68px 0 82px;
    background: var(--paper);
}

.mat-announcements-header {
    margin-bottom: 26px;
}

.mat-announcements-header h2 {
    font-family: "Mat Pilates Editable",Georgia,serif;
    font-size: clamp(36px,4vw,57px);
    font-weight: 400;
    line-height: 1.12;
    margin: 0 0 8px;
}

.mat-announcements-header p {
    margin: 0;
    font-size: 16px;
}

.mat-announcements-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.mat-announcement {
    padding: 44px 40px;
    min-height: 330px;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.mat-announcement-open {
    background: var(--blue);
    color: var(--navy);
}

.mat-announcement-intro {
    background: var(--magenta);
    color: white;
    border-width: 10px;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 0px;
    padding-top: 0px;
    letter-spacing: 1px;
}

.mat-announcement-kicker {
    font-size: 12px!important;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.mat-announcement h3 {
    font-family: "Mat Pilates Editable",Georgia,serif;
    font-size: clamp(36px,4vw,58px);
    font-weight: 400;
    line-height: 1.05;
    margin: 8px 0 16px;
}

.mat-announcement p {
    margin: 0 0 14px;
    font-size: 16px;
    line-height: 1.5;
    max-width: 430px;
}

.mat-announcement .mat-announcement-price {
    font-size: 23px;
    font-weight: 700;
}

.mat-announcement-button {
    display: inline-flex;
    padding: 13px 19px;
    border: 1px solid currentColor;
    border-radius: 9px;
    margin-top: 14px;
    font-size: 12px;
    letter-spacing: .07em;
    font-weight: 700;
    text-transform: uppercase;
}

.home-classes-section .class-grid,
.home-pricing-section .price-grid {
    border-radius: 12px;
    overflow: hidden;
}

.home-classes-section .class-card,
.home-pricing-section .price {
    border-radius: 0;
}

.home-intro-v55 .btn,
.home-classes-section .btn,
.home-pricing-section .btn,
.studio-teaser .btn {
    border-radius: 9px;
}

.studio-teaser-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (max-width:700px){
    .home-intro-v55 .home-hero-photo {
        height: 590px;
        min-height: 0;
    }

    .home-intro-v55 .mat-editable-title {
        font-size: clamp(46px,12vw,82px);
    }

    .home-intro-v55 .mat-editable-tagline {
        font-size: 16px;
    }

    .mat-announcements {
        padding: 52px 0;
    }

    .mat-announcements-grid {
        grid-template-columns: 1fr;
    }

    .mat-announcement {
        min-height: 270px;
        padding: 34px 28px;
    }
}

/* Fully editable text headings and team placeholders — Pinegrow-friendly */
.mat-live-heading {
    display: block;
    width: auto!important;
    height: auto!important;
    max-width: 100%;
    font-family: "Mat Pilates Editable",Georgia,serif!important;
    font-weight: 400!important;
    line-height: 1.1!important;
    letter-spacing: .005em;
    text-transform: none;
    margin: 0 0 28px;
    color: var(--navy);
    font-size: clamp(32px,4.3vw,62px)!important;
    object-fit: initial!important;
}

.section-title-mat.mat-live-heading {
    font-size: clamp(34px,4.5vw,60px)!important;
}

.home-relaxed-heading.mat-live-heading {
    font-size: clamp(38px,5.2vw,74px)!important;
}

.team-heading .mat-live-heading {
    font-size: clamp(36px,5vw,72px)!important;
}

.team-grid-v62 {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

.mat-team-photo-placeholder {
    background: #e6e0db;
    min-height: 290px;
    aspect-ratio: 4/5;
    display: flex!important;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 22px;
    color: #192A3A;
    border: 1px dashed rgba(25,42,58,.3);
}

.mat-team-photo-placeholder span {
    font-family: var(--body-font);
    font-size: 13px;
    letter-spacing: .08em;
    font-weight: 600;
}

body:has(.home-intro) .btn,
body:has(.home-intro) .class-card,
body:has(.home-intro) .price,
body:has(.home-intro) .mat-announcement-button {
    border-radius: 12px;
}

@media (max-width:700px){
    .team-grid-v62 {
        grid-template-columns: 1fr;
    }
}


/* About page: editable three-image editorial gallery */
.about-photo-gallery { padding: 12px 0 66px; }
.about-photo-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
}
.about-photo-panel {
  margin: 0;
  padding: 7px;
  background: var(--paper);
  border: 1px solid rgba(25,42,58,.2);
  border-radius: 16px;
  min-width: 0;
}
.about-photo-panel img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: 10px;
}
.about-photo-panel:nth-child(1) img { object-position: 50% 66%; }
.about-photo-panel:nth-child(2) img { object-position: 50% 55%; }
.about-photo-panel:nth-child(3) img { object-position: 50% 62%; }

/* About team: same dimensions at all screen sizes, no inline fixed widths */
.about-page-new .team-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 20px;
}
.about-page-new .team-image {
  width: 100%;
  aspect-ratio: 4 / 5;
  height: auto;
  border-radius: 12px;
  overflow: hidden;
}
.about-page-new .team-image img {
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.about-page-new .team-portrait-jasmine {
  object-position: 72% 82%;
  transform: scale(1.10);
}
.about-page-new .team-portrait-mark { object-position: center 45%; }
@media (max-width: 800px) {
  .about-page-new .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-photo-gallery-grid { gap: 10px; }
  .about-photo-panel { padding: 4px; border-radius: 10px; }
  .about-photo-panel img { border-radius: 6px; }
}
@media (max-width: 520px) {
  .about-photo-gallery { padding-bottom: 42px; }
  .about-photo-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .about-photo-panel { padding: 3px; border-radius: 7px; }
  .about-photo-panel img { border-radius: 4px; }
  .about-page-new .team-grid { gap: 24px 12px; }
}


/* 2026-10-31: Open Day actions and responsive layout refinements */
.mat-open-day-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: stretch;
  margin-top: 12px;
}
.mat-open-day-actions .mat-announcement-button {
  margin-top: 0;
  text-align: center;
  justify-content: center;
  align-items: center;
  line-height: 1.35;
}
@media (max-width: 767px) {
  html, body { max-width: 100%; overflow-x: clip; }
  *, *::before, *::after { box-sizing: border-box; }
  img, svg, video, iframe { max-width: 100%; }
  .shell, .container { max-width: 100%; }
  .mat-announcements-grid { grid-template-columns: minmax(0, 1fr); }
  .mat-announcement { min-width: 0; padding: 28px 22px !important; }
  .mat-announcement h3 { font-size: clamp(30px, 9vw, 46px); overflow-wrap: anywhere; }
  .mat-open-day-actions { flex-direction: column; align-items: stretch; width: 100%; }
  .mat-open-day-actions .mat-announcement-button { width: 100%; }
  .mat-live-heading { overflow-wrap: anywhere; }
  .about-page-new .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .about-page-new .team-image { min-height: 0; }
  .about-page-new .team-image img { display: block; }
}
@media (max-width: 480px) {
  .about-page-new .team-grid { grid-template-columns: minmax(0, 1fr); }
  .about-photo-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .about-photo-panel img { aspect-ratio: 3 / 5; }
  .home-intro-v55 .home-hero-photo { height: min(590px, 78svh); }
}
