/* Sami Gym public pages. Independent of the existing admin styles. */
:root {
    color-scheme: dark;
    --bg: #080b0d;
    --surface: #101619;
    --surface-raised: #151d21;
    --text: #f4f7f6;
    --muted: #a6b2b6;
    --accent: #31d5b1;
    --accent-light: #70e9ce;
    --border: #273136;
    --radius: 20px;
    --font: "Cairo", Tahoma, Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 105px; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font); font-size: 16px; line-height: 1.9; }
body.gallery-open { overflow: hidden; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { line-height: 1.5; }
h1, h2 { font-weight: 800; }
h2 { font-size: clamp(1.8rem, 3.2vw, 2.85rem); letter-spacing: -.04em; }
h3 { font-size: 1.15rem; }
p { color: var(--muted); }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: default; }
img, svg { max-width: 100%; }
img { display: block; height: auto; }
button, input { min-width: 0; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--accent-light); outline-offset: 5px; }
::selection { background: var(--accent); color: var(--bg); }
.container { width: min(100% - 40px, 1220px); margin-inline: auto; }
.section { padding-block: 68px; }
.icon { width: 24px; height: 24px; flex-shrink: 0; vertical-align: middle; }
.accent-text { color: var(--accent); }
.muted, .muted-heading { color: var(--muted); }
.eyebrow { display: flex; align-items: center; gap: 12px; color: var(--accent); font-size: .78rem; font-weight: 700; margin-bottom: 18px; }
.accent-line { width: 30px; height: 2px; background: currentColor; }
.section-number { font-family: Arial, sans-serif; font-size: .8rem; letter-spacing: .04em; opacity: .7; }
.small-label { display: block; font-size: .74rem; color: var(--muted); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; inset-inline-start: 20px; z-index: 100; padding: 12px 20px; color: var(--bg); background: var(--accent); transform: translateY(-160%); border-radius: 8px; }
.skip-link:focus { transform: translateY(0); }
.button { min-height: 52px; display: inline-flex; justify-content: center; align-items: center; gap: 20px; padding: 12px 24px; border: 1px solid transparent; border-radius: 10px; font-size: .9rem; font-weight: 700; line-height: 1.7; transition: background .2s, border-color .2s, color .2s; }
.button-primary { background: var(--accent); color: #06241d; }
.button-primary:hover { background: var(--accent-light); }
.button-outline { background: rgb(8 11 13 / 28%); border-color: #526168; color: var(--text); }
.button-outline:hover { background: var(--surface-raised); border-color: var(--accent); }
.button-dark { background: var(--bg); color: white; }
.button-dark:hover { background: #1c3530; }
.button-small { min-height: 44px; padding: 9px 17px; font-size: .8rem; gap: 12px; }
.button-group { display: flex; gap: 12px; flex-wrap: wrap; }
.text-link { display: inline-flex; align-items: center; gap: 18px; color: var(--accent); min-height: 44px; font-size: .9rem; font-weight: 700; }
.text-link:hover { color: var(--accent-light); }
.public-photo { display: block; overflow: hidden; }
.public-photo img { width: 100%; height: 100%; object-fit: cover; }

/* Header and progressive mobile navigation */
.site-header { position: sticky; top: 0; z-index: 30; background: rgb(8 11 13 / 96%); border-bottom: 1px solid rgb(255 255 255 / 9%); backdrop-filter: blur(16px); }
.header-inner { min-height: 80px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; padding-block: 10px; }
.brand { display: inline-block; flex-shrink: 0; }
.brand img { width: 150px; height: auto; }
.menu-toggle { align-items: center; gap: 8px; background: transparent; color: white; border: 1px solid var(--border); border-radius: 9px; padding: 8px 12px; min-height: 44px; font-size: .8rem; }
.has-public-js .menu-toggle { display: flex; }
.public-navigation { display: flex; flex-wrap: wrap; gap: 4px 16px; width: 100%; padding-block: 8px; }
.public-navigation > a { font-size: .81rem; min-height: 44px; display: flex; align-items: center; color: #c1c9cc; }
.public-navigation > a:hover, .public-navigation > a[aria-current] { color: var(--accent); }
.public-navigation .nav-cta { color: white; border-color: #356056; }
.has-public-js .public-navigation { display: none; }
.has-public-js .public-navigation.is-open { display: flex; flex-direction: column; max-height: calc(100dvh - 100px); overflow-y: auto; border-top: 1px solid var(--border); padding-top: 14px; padding-bottom: 18px; }
.public-navigation.is-open .nav-cta { margin-top: 8px; }

/* Hero */
.hero { isolation: isolate; position: relative; background: #101816; }
.hero-photo { position: absolute; inset: 0 0 auto; height: 420px; z-index: -2; }
.hero-photo img { object-position: 15% top; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 230px, var(--bg) 420px); }
.hero-inner { display: flex; flex-direction: column; padding-top: 345px; }
.hero-copy { padding-bottom: 32px; max-width: 650px; }
.hero-wordmark { color: #d9e7e3; font-family: Arial, sans-serif; font-size: .8rem; font-weight: 700; letter-spacing: .38em; text-align: right; margin-bottom: 13px; }
.hero h1 { font-size: clamp(3.6rem, 7.7vw, 6.75rem); line-height: 1.32; letter-spacing: -.055em; margin-bottom: 22px; }
.hero h1 span { color: var(--accent); }
.hero-description { font-size: .97rem; line-height: 2; max-width: 490px; color: #c8d0d1; margin-bottom: 30px; }
.hero .button { flex: 1 1 145px; max-width: 230px; padding-inline: 17px; }
.hero-bottom { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid rgb(255 255 255 / 16%); padding-block: 20px; margin-top: auto; font-size: .78rem; color: #c3cbc9; }
.hero-bottom > span { display: flex; align-items: center; gap: 12px; }
.hero-bottom i { width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }
.explore-link { min-height: 44px; display: flex; align-items: center; gap: 14px; }
.explore-link span { color: var(--accent); font-size: 1.4rem; }
.desktop-only { display: none; }

/* About, services and gallery */
.split-layout { display: grid; gap: 38px; align-items: center; }
.section-copy h2 { margin-bottom: 24px; }
.section-copy > p:not(.eyebrow) { font-size: .95rem; margin-bottom: 18px; line-height: 2.1; }
.about-features { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-block: 24px; font-size: .83rem; color: #d8e0df; }
.about-features span { display: inline-flex; gap: 8px; align-items: center; }
.about-features .icon { color: var(--accent); width: 19px; }
.about-image { position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }
.about-image .public-photo { height: 360px; }
.about-image figcaption { position: absolute; bottom: 24px; right: 24px; left: 24px; z-index: 1; }
.about-image figcaption .small-label { letter-spacing: .15em; color: var(--accent); font-size: .65rem; text-align: right; }
.about-image figcaption strong { display: block; margin-top: 5px; font-size: 1.3rem; }
.services-section { background: #0d1215; border-block: 1px solid #172025; }
.section-heading { display: flex; flex-direction: column; gap: 20px; margin-bottom: 32px; }
.section-heading > p { font-size: .9rem; max-width: 360px; }
.service-grid { display: grid; gap: 14px; }
.service-card { min-width: 0; position: relative; background: var(--surface-raised); border: 1px solid var(--border); border-radius: 16px; padding: 27px; overflow: hidden; }
.service-icon { color: var(--accent); display: inline-flex; margin-bottom: 20px; }
.service-icon .icon { width: 32px; height: 32px; }
.service-card h3 { margin-bottom: 10px; }
.service-card p { font-size: .85rem; line-height: 1.9; max-width: 290px; }
.service-index { position: absolute; top: 28px; left: 26px; font-family: Arial, sans-serif; color: #82918c; font-size: .7rem; }
.service-featured { display: flex; flex-direction: column; padding: 0; }
.service-featured > .public-photo { aspect-ratio: 3 / 2; width: 100%; }
.service-featured-copy { padding: 26px; }
.service-featured h3 { font-size: 1.5rem; }
.service-featured p { color: #c8d2cf; }
.gallery-grid { display: grid; gap: 14px; }
.gallery-item { position: relative; display: block; height: 250px; border: 1px solid var(--border); border-radius: 16px; overflow: hidden; }
.gallery-item .public-photo { height: 100%; }
.gallery-item img { transition: transform .35s ease; }
.gallery-team img { object-position: center 35%; }
.gallery-dialog { max-width: min(1100px, calc(100vw - 28px)); max-height: 94dvh; background: #101619; color: white; border: 1px solid var(--border); border-radius: 16px; padding: 54px 14px 14px; }
.gallery-dialog::backdrop { background: rgb(0 0 0 / 85%); backdrop-filter: blur(5px); }
.gallery-dialog img { width: auto; max-width: 100%; height: auto; max-height: 72dvh; object-fit: contain; margin: auto; }
.gallery-dialog figcaption { text-align: center; padding: 12px 8px 0; font-size: .88rem; }
.gallery-close { position: absolute; top: 7px; inset-inline-end: 9px; display: grid; place-items: center; height: 40px; width: 44px; background: var(--surface-raised); color: white; border: 1px solid var(--border); border-radius: 8px; }

/* Coach and calls to action */
.coach-section { background: radial-gradient(ellipse at 80% 55%, #142822 0%, #0d1316 52%); border-block: 1px solid #1a2827; }
.coaches-grid { display: grid; gap: 24px; }
.coach-card { overflow: hidden; border: 1px solid var(--border); border-radius: 18px; background: var(--surface); }
.coach-card > .public-photo { aspect-ratio: 1; }
.coach-card img { object-position: center 20%; }
.coach-card-info { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 24px; }
.coach-card-info p { font-size: .78rem; margin-bottom: 4px; }
.coach-card-info h3 { font-size: 1.5rem; }
.coach-card-info .text-link { font-size: .8rem; gap: 10px; }
@media (min-width: 768px) { .coaches-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.coach-layout { display: grid; gap: 40px; align-items: center; }
.coach-image { position: relative; width: 100%; max-width: 510px; margin-inline: auto; border-radius: var(--radius); overflow: hidden; border: 1px solid #35483e; }
.coach-image .public-photo { aspect-ratio: 3 / 4; }
.coach-image img { object-position: center top; }
.coach-image figcaption { position: absolute; bottom: 0; inset-inline: 0; display: flex; flex-direction: column; gap: 4px; padding: 54px 24px 22px; background: linear-gradient(0deg, rgb(8 11 13 / 96%), transparent); }
.coach-image figcaption span:first-child { font: 700 .85rem Arial, sans-serif; letter-spacing: .17em; text-align: right; color: var(--accent); }
.coach-image figcaption span:last-child { font-size: .85rem; }
.section-copy > .coach-lead { color: #e6eeeb; font-size: 1.4rem; line-height: 1.7; margin-bottom: 20px; }
.coach-detail { display: flex; gap: 17px; padding-block: 22px; margin-block: 22px 27px; border-block: 1px solid #2a3b36; }
.coach-detail > .icon { color: var(--accent); width: 30px; height: 30px; margin-top: 5px; }
.coach-detail h3 { font-size: .97rem; margin-bottom: 5px; }
.coach-detail p { font-size: .83rem; }
.membership-section { padding-bottom: 20px; }
.membership-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; padding: 32px 24px; background: linear-gradient(115deg, #1eaf97, #39dbb8); border-radius: 22px; color: #062a22; }
.membership-panel h2 { font-size: clamp(1.85rem, 3.3vw, 2.8rem); }
.membership-panel .eyebrow, .membership-panel p { color: #104f41; }
.membership-panel p:last-child { margin-top: 14px; font-size: .9rem; }
.subscription-cta-section { padding-block: 35px 60px; }
.subscription-cta { border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius); padding: 28px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.large-icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 17px; border: 1px solid #2a5147; color: var(--accent); background: #102c25; flex-shrink: 0; }
.large-icon .icon { width: 30px; height: 30px; }
.subscription-cta .eyebrow { margin-bottom: 6px; }
.subscription-cta h2 { font-size: 1.6rem; margin-bottom: 8px; }
.subscription-cta p { font-size: .9rem; }
.contact-section { padding-top: 15px; }
.contact-layout { display: grid; gap: 30px; }
.contact-layout > div > p:last-child { margin-top: 18px; font-size: .9rem; }
.contact-options { display: flex; flex-direction: column; gap: 16px; }
.contact-link { display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); transition: border-color .2s; }
.contact-link:hover { border-color: #4d8073; }
.contact-icon { color: var(--accent); }
.contact-link > span:nth-child(2) { flex: 1; min-width: 0; }
.contact-link small { display: block; color: var(--muted); font-size: .75rem; }
.contact-link strong { display: block; font-size: .95rem; }
.contact-link strong[dir="ltr"] { text-align: right; letter-spacing: .06em; }
.contact-link > .icon { width: 20px; color: var(--muted); }

/* Footer */
.site-footer { background: #0c1012; border-top: 1px solid var(--border); padding-top: 42px; padding-bottom: 88px; }
.footer-main { display: grid; gap: 27px; padding-bottom: 34px; }
.footer-brand p { font-size: .8rem; max-width: 310px; margin-top: 15px; }
.footer-links, .footer-contact { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; font-size: .82rem; }
.footer-links a, .footer-contact a { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; }
.footer-contact > span { width: 100%; }
.footer-contact .icon { width: 16px; }
.footer-links a:hover, .footer-contact a:hover, .footer-bottom a:hover { color: var(--accent); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 10px 25px; justify-content: space-between; align-items: center; padding-top: 22px; border-top: 1px solid var(--border); color: #98a5a9; font-size: .69rem; }
.footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
.developer-credit { font: .69rem Arial, sans-serif; }
.floating-whatsapp { position: fixed; bottom: max(20px, env(safe-area-inset-bottom)); left: 20px; z-index: 25; display: grid; place-items: center; width: 52px; height: 52px; background: #1da98d; color: #fff; border: 1px solid #70e1c9; border-radius: 50%; box-shadow: 0 5px 25px rgb(0 0 0 / 25%); }
.floating-whatsapp .icon { width: 27px; height: 27px; }
.floating-whatsapp:hover { background: #16816c; }

/* Subscription form, results and real Laravel pagination */
.subscription-main { max-width: 980px; padding-top: 28px; padding-bottom: 60px; min-height: 70vh; }
.back-link { display: flex; align-items: center; gap: 10px; min-height: 44px; color: var(--muted); font-size: .75rem; margin-bottom: 20px; }
.back-link > span:last-child { color: #e0e7e5; }
.subscription-heading { text-align: center; margin-bottom: 30px; }
.subscription-heading .large-icon { margin-bottom: 20px; }
.subscription-heading .eyebrow { justify-content: center; margin-bottom: 8px; }
.subscription-heading h1 { font-size: clamp(2.1rem, 4.6vw, 3rem); margin-bottom: 14px; }
.subscription-heading > p:last-child { max-width: 580px; margin-inline: auto; font-size: .9rem; }
.subscription-search { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 24px 20px; max-width: 780px; margin-inline: auto; }
.subscription-search label { display: block; font-size: .86rem; font-weight: 600; margin-bottom: 10px; }
.search-fields { display: flex; flex-direction: column; gap: 12px; }
.phone-field { position: relative; flex: 1; min-width: 0; }
.phone-field > .icon { position: absolute; right: 16px; top: 18px; color: #83948e; pointer-events: none; width: 21px; height: 21px; }
.phone-field input { background: #080e10; border: 1px solid #40504c; border-radius: 10px; color: white; padding: 14px 50px 14px 16px; width: 100%; height: 58px; direction: ltr; text-align: right; font-size: 1rem; }
.phone-field input::placeholder { color: #8f9c98; opacity: 1; font-size: .83rem; }
.phone-field input:focus { border-color: var(--accent); }
.search-hint { font-size: .72rem; margin-top: 12px; }
.field-error { color: #ffacac; font-size: .8rem; margin-top: 8px; }
.subscription-results { margin-top: 30px; }
.empty-state { padding: 42px 18px; text-align: center; border: 1px dashed #2d3d38; border-radius: var(--radius); }
.empty-icon { display: inline-grid; place-items: center; width: 52px; height: 52px; background: #14211d; border-radius: 50%; color: var(--accent); margin-bottom: 18px; }
.empty-state h2 { font-size: 1.12rem; margin-bottom: 12px; letter-spacing: 0; }
.empty-state h3 { font-size: 1rem; margin-bottom: 12px; }
.empty-state p { font-size: .87rem; }
.empty-state .text-link { margin-top: 16px; }
.empty-state.compact { border: 0; }
.empty-state.compact > .icon { color: var(--muted); margin-bottom: 15px; }
.not-found { border-color: #69512e; }
.member-summary { display: flex; flex-direction: column; gap: 24px; padding: 24px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 22px; }
.member-identity { display: flex; align-items: center; gap: 15px; min-width: 0; }
.member-identity > div { min-width: 0; }
.member-avatar { display: grid; place-items: center; width: 52px; height: 52px; background: #1b2925; border-radius: 15px; color: var(--accent); flex-shrink: 0; }
.member-identity h2 { font-size: 1.2rem; letter-spacing: 0; margin-block: 3px; overflow-wrap: anywhere; }
.member-identity p { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: .76rem; }
.member-identity bdi { letter-spacing: .04em; color: #e4ece8; }
.member-status { display: flex; align-items: center; gap: 12px; background: #10281f; border: 1px solid #285841; border-radius: 12px; padding: 14px 17px; }
.member-status strong { display: block; font-size: .9rem; color: #86e4b5; }
.member-status .small-label { font-size: .68rem; }
.status-symbol { color: #86e4b5; }
.member-status.is-expired { background: #2b1a1c; border-color: #603237; }
.member-status.is-expired strong, .member-status.is-expired .status-symbol { color: #ffb3b3; }
.history-panel { min-width: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.history-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 22px 24px; }
.history-heading h2 { font-size: 1.1rem; letter-spacing: 0; }
.history-heading > span { font-size: .75rem; color: var(--muted); }
.table-hint { margin: 0; padding: 0 24px 16px; font-size: .72rem; }
.table-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: #426657 #101619; }
.table-scroll:focus-visible { outline-offset: -3px; }
.subscription-table { width: 100%; min-width: 590px; border-collapse: collapse; text-align: right; font-size: .86rem; white-space: nowrap; }
.subscription-table th { font-size: .75rem; font-weight: 600; background: #1a2427; color: #b5c2c4; padding: 15px 24px; }
.subscription-table td { padding: 18px 24px; border-bottom: 1px solid #232e32; }
.subscription-table tr:last-child td { border-bottom: 0; }
.subscription-table bdi { color: #d6dedb; font-variant-numeric: tabular-nums; }
.badge { display: inline-flex; align-items: center; gap: 8px; border: 1px solid transparent; padding: 3px 12px; border-radius: 30px; font-size: .75rem; font-weight: 600; }
.badge-success { color: #83e2b0; background: #173326; border-color: #2f5c43; }
.badge-danger { color: #ffb3b3; background: #341e23; border-color: #69373e; }
.badge-warning { color: #ecd090; background: #322a1b; border-color: #5d4d2d; }
.badge-neutral { color: #c1cace; background: #242d32; border-color: #445158; }
.badge-dot { width: 5px; height: 5px; background: currentColor; border-radius: 50%; }
.pagination { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 14px; padding: 22px; border-top: 1px solid var(--border); }
.pagination-summary { font-size: .75rem; }
.pagination-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 7px; list-style: none; padding: 0; margin: 0; }
.page-link { display: inline-flex; align-items: center; justify-content: center; padding: 8px 13px; min-width: 44px; min-height: 44px; border: 1px solid #37463f; border-radius: 8px; font-size: .78rem; }
a.page-link:hover { border-color: var(--accent); color: var(--accent); }
.page-link.current { color: #062a22; background: var(--accent); border-color: var(--accent); font-weight: 700; }
.page-link.disabled { color: #788781; border-color: #27322e; }
.page-ellipsis { color: var(--muted); padding: 5px; }
.pagination-number { display: none; }
.subscription-help { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 26px; }
.subscription-help > .icon { color: var(--accent); width: 20px; }
.subscription-help p { font-size: .78rem; }
.subscription-help a { display: inline-flex; min-height: 44px; align-items: center; color: var(--accent); }

/* Wider screens */
@media (min-width: 600px) {
    .container { width: min(100% - 64px, 1220px); }
    .section { padding-block: 80px; }
    .hero-photo { height: 500px; }
    .hero::after { background: linear-gradient(180deg, transparent 290px, var(--bg) 500px); }
    .hero-inner { padding-top: 425px; }
    .hero-description { font-size: 1.05rem; }
    .hero-bottom { font-size: .86rem; }
    .desktop-only { display: initial; }
    .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-featured { grid-column: 1 / -1; min-height: 330px; }
    .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-wide { grid-column: 1 / -1; height: 320px; }
    .gallery-item:not(.gallery-wide) { height: 290px; }
    .membership-panel { padding: 42px; }
    .membership-section { padding-bottom: 20px; }
    .subscription-cta-section { padding-block: 35px 65px; }
    .contact-section { padding-top: 15px; }
    .footer-main { grid-template-columns: 1.5fr 1fr; }
    .footer-brand { grid-column: 1 / -1; }
    .footer-links { flex-direction: column; align-items: flex-start; gap: 0; }
    .footer-contact { justify-content: flex-start; align-content: start; }
    .search-fields { flex-direction: row; }
    .search-fields .button { flex-shrink: 0; }
    .subscription-search { padding: 28px; }
    .table-hint { display: none; }
    .pagination-number { display: list-item; }
    .pagination { flex-direction: row; }
    .subscription-main { padding-top: 32px; }
}
@media (min-width: 900px) {
    .hero-photo { inset: 0; height: 100%; }
    .hero-photo img { object-position: left center; }
    .hero::after { background: linear-gradient(270deg, rgb(8 11 13 / 18%), transparent 55%), linear-gradient(0deg, var(--bg), transparent 24%); }
    .hero-inner { min-height: 680px; padding-top: 62px; justify-content: center; }
    .hero-copy { width: 50%; padding-bottom: 55px; }
    .hero h1 { font-size: clamp(3.6rem, 6.7vw, 6.5rem); }
}
@media (min-width: 1024px) {
    .section { padding-block: 105px; }
    .split-layout { grid-template-columns: 1fr 1fr; gap: 70px; }
    .about-image .public-photo { height: 450px; }
    .section-heading { flex-direction: row; align-items: flex-end; justify-content: space-between; margin-bottom: 40px; }
    .service-grid { grid-template-columns: 1.2fr 1fr 1fr; gap: 18px; }
    .service-featured { grid-column: auto; grid-row: span 2; }
    .service-card { padding: 28px; }
    .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
    .gallery-wide { grid-column: span 2; }
    .gallery-item, .gallery-item:not(.gallery-wide) { height: 310px; }
    .coach-layout { grid-template-columns: 1fr 1fr; gap: 85px; }
    .coach-copy { padding-inline-end: 20px; }
    .coach-image { max-width: 460px; }
    .membership-section { padding-bottom: 20px; }
    .membership-panel { flex-direction: row; align-items: center; justify-content: space-between; gap: 35px; padding: 52px; }
    .membership-panel .button { flex-shrink: 0; }
    .subscription-cta-section { padding-block: 35px 90px; }
    .subscription-cta { flex-direction: row; align-items: center; padding: 36px; gap: 25px; }
    .subscription-cta > div { flex: 1; }
    .contact-section { padding-top: 15px; }
    .contact-layout { grid-template-columns: 1fr 1fr; gap: 90px; }
    .footer-main { grid-template-columns: 1.5fr 1fr 1fr; gap: 60px; }
    .footer-brand { grid-column: auto; }
    .footer-contact { gap: 0 24px; }
    .site-footer { padding-bottom: 30px; }
    .member-summary { flex-direction: row; align-items: center; justify-content: space-between; }
    .member-status { max-width: 43%; }
}
@media (min-width: 1100px) {
    .header-inner { min-height: 90px; flex-wrap: nowrap; }
    .brand img { width: 170px; }
    .has-public-js .menu-toggle { display: none; }
    .public-navigation, .has-public-js .public-navigation { width: auto; display: flex; flex-direction: row; align-items: center; gap: 22px; padding: 0; }
    .public-navigation > a { font-size: .78rem; }
    .public-navigation .nav-cta { margin-inline-start: 10px; }
    .hero-inner { min-height: 760px; padding-top: 70px; }
    .hero-copy { width: 52%; padding-bottom: 75px; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .gallery-item:hover img { transform: scale(1.035); }
    .service-card:hover { border-color: #436052; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
