:root {
    --black: #050505;
    --ink: #111111;
    --graphite: #242424;
    --gray: #767676;
    --line: #d8d8d4;
    --paper: #f4f3ef;
    --white: #ffffff;
    --display: Georgia, 'Times New Roman', serif;
    --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --header-h: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.modal-open, body.menu-open, body.media-open { overflow: hidden; overscroll-behavior: none; }
button, input, textarea { font: inherit; }
button { border-radius: 8px; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; width: 100%; }
a { color: inherit; }

.site-header {
    position: fixed; inset: 0 0 auto; z-index: 80; height: var(--header-h); padding: 0 clamp(20px, 4vw, 72px);
    display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
    color: #fff; border-bottom: 1px solid rgba(255,255,255,.16); background: rgba(5,5,5,.76); backdrop-filter: blur(16px);
}
.brand { position: relative; z-index: 84; display: inline-flex; align-items: center; gap: 13px; width: max-content; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 46px; height: 46px; padding: 4px; overflow: hidden; border: 1px solid rgba(255,255,255,.78); border-radius: 8px; }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; }
.brand-mark.inverse { color: #fff; }
.brand-copy { display: grid; line-height: 1; letter-spacing: .16em; }
.brand-copy strong { font-size: 14px; }
.brand-copy small { margin-top: 6px; font-size: 8px; letter-spacing: .27em; }
.main-nav { display: flex; gap: clamp(20px, 2.5vw, 42px); align-items: center; }
.main-nav > .menu-link { position: relative; color: rgba(255,255,255,.72); font-size: 12px; font-weight: 650; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.main-nav > .menu-link::after { content: ''; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: #fff; transition: right .25s ease; }
.main-nav > .menu-link:hover { color: #fff; }
.main-nav > .menu-link:hover::after { right: 0; }
.main-nav > button.menu-link { padding: 0; border: 0; background: transparent; cursor: pointer; font-family: inherit; }
.mobile-menu-actions, .menu-backdrop { display: none; }
.header-appointment { justify-self: end; }
.menu-toggle { display: none; }

.button { min-height: 48px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border: 1px solid transparent; border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; box-shadow: 0 8px 24px rgba(0,0,0,.12); transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,.18); }
.button-light { color: #080808; background: #fff; border-color: #fff; }
.button-light:hover { color: #fff; background: transparent; }
.button-dark { color: #fff; background: #080808; border-color: #080808; }
.button-dark:hover { color: #080808; background: transparent; }
.button-outline { color: #fff; background: transparent; border-color: rgba(255,255,255,.5); }
.button-outline:hover { color: #080808; background: #fff; border-color: #fff; }
.button-ghost { color: #555; background: transparent; border-color: #ccc; }
.button-ghost:hover { color: #000; border-color: #000; }

.hero { position: relative; min-height: 780px; height: 100svh; max-height: 1020px; display: flex; align-items: center; overflow: hidden; background: #050505; color: #fff; }
.hero-media { position: absolute; inset: 0; overflow:hidden; background:#050505; transform: scale(1.01); }
.hero-slide { position:absolute; inset:-1%; margin:0; opacity:0; transform:scale(1.06); transition:opacity 1.1s ease,transform 7s linear; }
.hero-slide.active { opacity:1; transform:scale(1); }
.hero-slide img { width:100%; height:100%; object-fit:cover; object-position:center; filter:grayscale(1) contrast(1.08) brightness(.78); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.1) 100%), linear-gradient(0deg, rgba(0,0,0,.45), transparent 48%); }
.hero-content { position: relative; z-index: 2; width: min(760px, 68vw); margin-left: clamp(24px, 8vw, 150px); padding-top: var(--header-h); }
.eyebrow, .section-index, .step-kicker { margin: 0 0 28px; font-size: 10px; font-weight: 800; letter-spacing: .28em; text-transform: uppercase; }
.eyebrow::before, .section-index::before { content: ''; display: inline-block; width: 36px; height: 1px; margin: 0 14px 3px 0; background: currentColor; }
.hero h1 { margin: 0; font-family: var(--display); font-size: clamp(66px, 8.2vw, 142px); font-weight: 400; letter-spacing: -.055em; line-height: .82; }
.hero h1 em, .statement h2 em, .prosthesis-copy h2 em { font-weight: 400; color: rgba(255,255,255,.62); }
.hero-lead { width: min(560px, 90%); margin: 38px 0 32px; color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; gap: 34px; }
.text-link { font-size: 11px; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.text-link span { margin-left: 9px; }
.hero-aside { position: absolute; z-index: 2; right: clamp(22px, 4vw, 70px); bottom: 70px; display: grid; gap: 18px; }
.hero-aside div { display: flex; align-items: flex-start; gap: 13px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.28); }
.hero-aside strong { font-family: var(--display); font-size: 20px; font-weight: 400; }
.hero-aside span { color: rgba(255,255,255,.55); font-size: 9px; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.scroll-cue { position: absolute; z-index: 2; left: 36px; bottom: 50px; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.55); font-size: 8px; letter-spacing: .22em; transform: rotate(-90deg); transform-origin: left center; }
.scroll-cue span { width: 34px; height: 1px; background: currentColor; }

.statement { padding: clamp(90px, 11vw, 170px) clamp(24px, 8vw, 150px); }
.section-index { color: #555; }
.section-index.light { color: rgba(255,255,255,.58); }
.statement-grid { display: grid; grid-template-columns: 1.5fr .75fr; gap: clamp(50px, 8vw, 150px); align-items: start; }
.statement h2 { margin: 0; font-family: var(--display); font-size: clamp(43px, 5vw, 82px); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; }
.statement h2 em { color: #777; }
.statement-grid > div { padding-top: 14px; }
.statement-grid p { margin: 0 0 22px; color: #555; font-size: 15px; line-height: 1.9; }

.services-section { padding: clamp(85px, 9vw, 140px) clamp(20px, 5vw, 86px); background: #080808; color: #fff; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 54px; }
.section-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(46px, 5vw, 80px); font-weight: 400; letter-spacing: -.04em; line-height: 1; }
.service-showcase { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.service-card { position: relative; min-height: 540px; grid-column: span 2; overflow: hidden; background: #191919; }
.service-card:nth-child(n+4) { min-height: 380px; }
.service-card img { position: absolute; inset: 0; height: 100%; object-fit: cover; filter: grayscale(1); transition: transform .6s cubic-bezier(.2,.75,.2,1), filter .4s ease; }
.service-card:hover img { transform: scale(1.045); filter: grayscale(1) contrast(1.06); }
.service-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.88), rgba(0,0,0,.02) 70%); }
.service-card-top { position: absolute; inset: 22px 22px auto; display: flex; justify-content: space-between; color: rgba(255,255,255,.68); font-size: 9px; letter-spacing: .15em; }
.service-card-copy { position: absolute; inset: auto 26px 28px; }
.service-card-copy h3 { margin: 0 0 11px; font-family: var(--display); font-size: clamp(26px, 2.1vw, 38px); font-weight: 400; }
.service-card-copy p { max-width: 410px; margin: 0 0 22px; color: rgba(255,255,255,.65); font-size: 12px; line-height: 1.6; }
.service-card-copy button { padding: 0 0 7px; color: #fff; border: 0; border-bottom: 1px solid rgba(255,255,255,.45); background: transparent; cursor: pointer; font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.service-card-copy button span { margin-left: 12px; }

.prosthesis-focus { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 760px; background: #fff; }
.prosthesis-image { position: relative; min-height: 650px; overflow: hidden; }
.prosthesis-image img { height: 100%; object-fit: cover; object-position: 50% 45%; filter: grayscale(1); }
.image-tag { position: absolute; left: 0; bottom: 0; padding: 17px 22px; color: #fff; background: #080808; font-size: 9px; font-weight: 700; letter-spacing: .16em; }
.prosthesis-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(60px, 8vw, 140px); }
.prosthesis-copy h2 { margin: 0 0 30px; font-family: var(--display); font-size: clamp(46px, 5vw, 82px); font-weight: 400; letter-spacing: -.05em; line-height: .98; }
.prosthesis-copy h2 em { color: #888; }
.prosthesis-copy > p:not(.section-index) { color: #555; font-size: 15px; line-height: 1.85; }
.prosthesis-copy ul { list-style: none; margin: 30px 0 34px; padding: 0; border-top: 1px solid #ddd; }
.prosthesis-copy li { display: flex; gap: 20px; padding: 15px 0; border-bottom: 1px solid #ddd; font-size: 12px; font-weight: 700; }
.prosthesis-copy li span { color: #999; font-family: var(--display); }
.prosthesis-copy .button { align-self: flex-start; }

/* Google business gallery */
.gallery-section { padding:clamp(85px,9vw,145px) 0 clamp(90px,10vw,160px); overflow:hidden; color:#fff; background:#080808; }
.gallery-heading { padding:0 clamp(22px,6vw,105px); display:flex; align-items:flex-end; justify-content:space-between; gap:60px; }
.gallery-heading h2 { margin:0; font-family:var(--display); font-size:clamp(46px,5vw,82px); font-weight:400; letter-spacing:-.045em; line-height:.98; }
.gallery-heading-copy { width:min(370px,32vw); display:grid; gap:24px; }
.gallery-heading-copy > p { margin:0; color:#8e8e8e; font-size:12px; line-height:1.75; }
.gallery-controls { display:flex; gap:8px; }
.gallery-controls button { width:48px; height:48px; color:#fff; border:1px solid #555; border-radius:8px; background:#161616; cursor:pointer; font-size:20px; transition:background .2s ease,color .2s ease; }
.gallery-controls button:hover { color:#080808; background:#fff; }
.gallery-rail { margin-top:52px; padding:0 clamp(22px,6vw,105px) 18px; display:grid; grid-auto-flow:column; grid-auto-columns:clamp(270px,29vw,430px); gap:12px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#555 #161616; }
.gallery-card { position:relative; aspect-ratio:4/5; padding:0; overflow:hidden; color:#fff; border:1px solid #292929; border-radius:8px; background:#131313; cursor:pointer; text-align:left; scroll-snap-align:start; }
.gallery-card:nth-child(5n+3) { aspect-ratio:1/1.16; }
.gallery-card > img,.gallery-card > video { width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.04); transform:scale(1.01); transition:filter .45s ease,transform .65s cubic-bezier(.2,.8,.2,1); }
.gallery-card:hover > img,.gallery-card:hover > video { filter:grayscale(.15); transform:scale(1.045); }
.gallery-card-index { position:absolute; z-index:3; top:18px; left:18px; min-width:34px; height:34px; display:grid; place-items:center; color:#111; border-radius:50%; background:#fff; font-family:var(--display); font-size:11px; }
.gallery-card-shade { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.9),transparent 58%); }
.gallery-card-label { position:absolute; z-index:2; inset:auto 20px 21px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:5px 12px; }
.gallery-card-label small { grid-column:1/-1; color:#aaa; font-size:8px; font-weight:800; letter-spacing:.16em; }
.gallery-card-label strong { font-family:var(--display); font-size:25px; font-weight:400; }
.gallery-card-label i { font-size:22px; font-style:normal; }
.gallery-play { position:absolute; z-index:3; top:50%; left:50%; width:64px; height:64px; display:grid; place-items:center; color:#111; border-radius:50%; background:#fff; box-shadow:0 12px 35px rgba(0,0,0,.3); transform:translate(-50%,-50%); font-size:17px; text-indent:3px; }

.media-viewer[hidden] { display:none; }
.media-viewer { position:fixed; inset:0; z-index:240; display:grid; place-items:center; padding:24px; visibility:hidden; opacity:0; perspective:1800px; transition:opacity .3s ease,visibility .3s ease; }
.media-viewer.open { visibility:visible; opacity:1; }
.media-viewer-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.86); backdrop-filter:blur(12px); }
.media-viewer-card { position:relative; width:min(var(--viewer-width,1180px),calc(100vw - 48px)); height:min(var(--viewer-height,820px),calc(100svh - 48px)); display:grid; grid-template-columns:74px 1fr 74px; grid-template-rows:1fr auto; overflow:hidden; color:#fff; border:1px solid #333; border-radius:8px; background:#080808; box-shadow:0 46px 140px rgba(0,0,0,.7); backface-visibility:hidden; transform-origin:center right; transform:rotateY(-76deg) scale(.9); transition:transform .55s cubic-bezier(.2,.82,.2,1),width .35s ease,height .35s ease; }
.media-viewer.open .media-viewer-card { transform:rotateY(0) scale(1); }
.media-viewer-close { position:absolute; z-index:5; top:18px; right:18px; width:52px; height:52px; display:grid; place-items:center; color:#fff; border:1px solid #777; border-radius:50%; background:rgba(5,5,5,.82); cursor:pointer; font-size:31px; line-height:1; }
.media-viewer-stage { min-width:0; min-height:0; grid-column:2; display:grid; place-items:center; padding:24px 0; overflow:hidden; }
.media-viewer-stage img,.media-viewer-stage video { display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; border-radius:4px; box-shadow:0 20px 65px rgba(0,0,0,.4); opacity:0; transition:opacity .22s ease; }
.media-viewer.media-ready .media-viewer-stage img,.media-viewer.media-ready .media-viewer-stage video { opacity:1; }
.media-viewer-stage video { background:#000; }
.media-viewer-nav { align-self:center; width:52px; height:66px; justify-self:center; color:#fff; border:1px solid #444; border-radius:8px; background:#151515; cursor:pointer; font-size:22px; }
.media-viewer-nav:hover { color:#080808; background:#fff; }
.media-viewer-nav.previous { grid-column:1; grid-row:1; }
.media-viewer-nav.next { grid-column:3; grid-row:1; }
.media-viewer-card > footer { grid-column:1/-1; padding:20px 74px 22px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; border-top:1px solid #292929; }
.media-viewer-card > footer span,.media-viewer-card > footer small { color:#888; font-size:8px; font-weight:800; letter-spacing:.16em; }
.media-viewer-card > footer h3 { margin:0; font-family:var(--display); font-size:26px; font-weight:400; text-align:center; }

.experts-section { padding: clamp(90px, 10vw, 155px) clamp(24px, 8vw, 150px); }
.section-heading.dark-text { align-items: end; }
.section-heading.dark-text > p { max-width: 420px; margin: 0; color: #666; font-size: 14px; line-height: 1.8; }
.experts-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #bbb; border-left: 1px solid #bbb; }
.expert-profile { position: relative; min-height: 370px; padding: 26px; display: flex; flex-direction: column; justify-content: flex-end; border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; }
.expert-number { position: absolute; top: 22px; right: 22px; color: #888; font-family: var(--display); }
.expert-avatar { width: 94px; height: 94px; margin-bottom: auto; display: grid; place-items: center; color: #fff; background: #111; border-radius: 50%; font-family: var(--display); font-size: 30px; }
.expert-avatar.has-photo,.expert-choice-avatar.has-photo { overflow:hidden; }
.expert-avatar.has-photo img,.expert-choice-avatar.has-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 29%; filter:grayscale(1) contrast(1.04); }
.expert-profile h3 { margin: 34px 0 6px; font-family: var(--display); font-size: 28px; font-weight: 400; }
.expert-profile p { margin: 0 0 13px; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.expert-profile small { display: block; color: #777; font-size: 12px; line-height: 1.55; }

.appointment-cta { padding: clamp(95px, 12vw, 190px) 24px; text-align: center; color: #fff; background: #080808; }
.appointment-cta > p { font-size: 9px; letter-spacing: .25em; }
.appointment-cta h2 { margin: 24px auto 45px; font-family: var(--display); font-size: clamp(50px, 6vw, 98px); font-weight: 400; letter-spacing: -.05em; line-height: .95; }
.site-footer { padding: 70px clamp(24px, 7vw, 120px) 28px; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 50px; color: #fff; background: #050505; border-top: 1px solid #292929; }
.footer-brand { display: flex; align-items: center; gap: 15px; }
.footer-brand > div { display: grid; }
.footer-brand small { margin-top: 5px; font-size: 9px; letter-spacing: .2em; }
.site-footer > div:not(.footer-brand):not(.footer-bottom) { display: grid; align-content: start; gap: 11px; }
.site-footer p { margin: 0 0 9px; color: #777; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.site-footer a, .site-footer button { width: max-content; padding: 0; color: #ddd; border: 0; background: none; cursor: pointer; font-size: 12px; text-decoration: none; }
.footer-bottom { grid-column: 1 / -1; margin-top: 40px; padding-top: 24px; display: flex; justify-content: space-between; color: #666; border-top: 1px solid #222; font-size: 9px; letter-spacing: .12em; }

/* Appointment modal */
.appointment-modal { position: fixed; inset: 0; z-index: 200; display: grid; visibility: hidden; opacity: 0; perspective: 1500px; transition: opacity .3s ease, visibility .3s ease; }
.appointment-modal.open { visibility: visible; opacity: 1; }
.appointment-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); backdrop-filter: blur(7px); }
.appointment-panel { position: relative; width: min(1140px, calc(100vw - 40px)); height: min(780px, calc(100svh - 32px)); margin: auto; display: grid; grid-template-columns: 320px 1fr; overflow: hidden; background: #fff; border-radius: 8px; box-shadow: 0 30px 100px rgba(0,0,0,.48); backface-visibility: hidden; transform-origin: center right; transform-style: preserve-3d; transform: rotateY(-78deg) scale(.94); transition: transform .62s cubic-bezier(.2,.8,.2,1), box-shadow .62s ease; will-change: transform; }
.appointment-modal.open .appointment-panel { transform: rotateY(0) scale(1); box-shadow: 0 38px 120px rgba(0,0,0,.58); }
.appointment-close { position: absolute; z-index: 4; top: 18px; right: 21px; width: 42px; height: 42px; border: 0; background: transparent; cursor: pointer; font-family: var(--display); font-size: 34px; font-weight: 300; }
.appointment-sidebar { padding: 34px; display: flex; flex-direction: column; color: #fff; background: #090909; }
.appointment-brand { display: flex; align-items: center; gap: 13px; }
.appointment-brand .brand-copy { color: #fff; }
.appointment-brand .brand-copy strong { font-size: 13px; }
.appointment-brand .brand-copy small { color: #aaa; font-size: 7px; }
.appointment-intro { margin-top: 58px; }
.appointment-sidebar p { margin: 0 0 13px; color: #888; font-size: 9px; letter-spacing: .2em; }
.appointment-sidebar h2 { margin: 0; font-family: var(--display); font-size: 35px; font-weight: 400; line-height: 1.05; }
.appointment-progress { list-style: none; margin: 52px 0 30px; padding: 0; display: grid; gap: 9px; }
.appointment-progress li { display: flex; align-items: center; gap: 13px; color: #666; font-size: 11px; font-weight: 700; letter-spacing: .05em; transition: color .2s ease; }
.appointment-progress li span { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #333; border-radius: 50%; font-family: var(--display); font-size: 12px; }
.appointment-progress li.active, .appointment-progress li.done { color: #fff; }
.appointment-progress li.active span { color: #000; background: #fff; border-color: #fff; }
.appointment-progress li.done span { border-color: #777; }
.appointment-sidebar > small { margin-top: auto; color: #666; font-size: 9px; line-height: 1.6; }
.appointment-body { min-width: 0; min-height: 0; overflow: hidden; }
.appointment-body form { height: 100%; min-height: 0; }
.appointment-step { display: none; height: 100%; min-height: 0; padding: clamp(28px, 4vh, 48px) clamp(34px, 5vw, 68px); animation: stepIn .26s ease; }
.appointment-step.active { display: flex; flex-direction: column; }
@keyframes stepIn { from { opacity: 0; transform: translateX(10px); } to { opacity: 1; transform: none; } }
.step-kicker { margin-bottom: 14px; color: #888; }
.appointment-step h3, .appointment-success h3 { margin: 0; font-family: var(--display); font-size: clamp(35px, 4vw, 52px); font-weight: 400; letter-spacing: -.035em; }
.step-description { max-width: 590px; margin: 10px 0 20px; color: #737373; font-size: 13px; line-height: 1.6; }
.field { display: grid; gap: 9px; margin-bottom: 23px; }
.field > span { font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.field span small { color: #999; font-weight: 500; text-transform: none; }
.field input, .field textarea { width: 100%; padding: 15px 0; color: #111; border: 0; border-bottom: 1px solid #bdbdbd; border-radius: 0; outline: 0; background: transparent; font-size: 17px; transition: border-color .2s ease; }
.field input:focus, .field textarea:focus { border-color: #000; }
.field textarea { resize: vertical; font-size: 14px; }
.consent { display: flex; align-items: flex-start; gap: 12px; margin: 28px 0; color: #666; cursor: pointer; font-size: 11px; line-height: 1.55; }
.consent input { margin-top: 2px; accent-color: #000; }
.form-error { min-height: 20px; margin-top: 8px; color: #111; font-size: 11px; font-weight: 750; }
.step-actions { flex: 0 0 auto; margin-top: auto; padding-top: 18px; display: flex; justify-content: space-between; gap: 12px; }
.step-actions.end { justify-content: flex-end; }
.choice-list { display: grid; gap: 8px; }
.service-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.choice-card { width: 100%; padding: 15px 17px; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; color: #222; border: 1px solid #ddd; background: #fff; cursor: pointer; text-align: left; transition: border .2s ease, background .2s ease; }
.service-choices .choice-card { min-width: 0; min-height: 84px; }
.choice-card:hover, .choice-card.selected { border-color: #000; background: #f1f1ee; }
.choice-radio { width: 17px; height: 17px; border: 1px solid #888; border-radius: 50%; box-shadow: inset 0 0 0 4px #fff; }
.choice-card.selected .choice-radio { background: #000; border-color: #000; }
.choice-card span:nth-child(2) { display: grid; gap: 4px; }
.choice-card strong { font-family: var(--display); font-size: 18px; font-weight: 400; }
.choice-card small { color: #777; font-size: 10px; }
.choice-card em { color: #555; font-size: 9px; font-style: normal; font-weight: 750; text-transform: uppercase; white-space: nowrap; }
.expert-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.expert-choice { padding: 18px; display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; border: 1px solid #ddd; background: #fff; cursor: pointer; text-align: left; }
.expert-choice:hover, .expert-choice.selected { border-color: #000; background: #f1f1ee; }
.expert-choice-avatar { width: 52px; height: 52px; display: grid; place-items: center; color: #fff; background: #111; border-radius: 50%; font-family: var(--display); }
.expert-choice > span:nth-child(2) { display: grid; gap: 5px; }
.expert-choice strong { font-family: var(--display); font-size: 18px; font-weight: 400; }
.expert-choice small { color: #777; font-size: 9px; line-height: 1.3; }
.expert-choice i { color: #999; font-size: 9px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.expert-choice.selected i { color: #000; }
.expert-choice.booking-closed { opacity:.38; filter:grayscale(1); cursor:not-allowed; background:#eee; }
.expert-choice.booking-closed:hover { border-color:#ddd; background:#eee; }
.expert-choice .expert-closed-note { color:#a5161d; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.day-planner { margin-top: 16px; display: grid; grid-template-columns: 58px 1fr 58px; overflow: hidden; color: #fff; background: #0a0a0a; border-radius: 8px; }
.day-nav { min-height: 84px; color: #fff; border: 0; background: #171717; cursor: pointer; font-size: 23px; transition: color .2s ease, background .2s ease; }
.day-nav:hover:not(:disabled) { color: #080808; background: #fff; }
.day-nav:disabled { color: #4b4b4b; cursor: not-allowed; }
.day-planner-date { display: grid; place-items: center; align-content: center; gap: 4px; padding: 12px; text-align: center; }
.day-planner-date span { color: #929292; font-size: 9px; font-weight: 800; letter-spacing: .22em; }
.day-planner-date strong { font-family: var(--display); font-size: clamp(29px, 3vw, 39px); font-weight: 400; letter-spacing: -.03em; }
.day-planner-date small { color: #777; font-size: 10px; letter-spacing: .15em; }
.slot-section { margin-top: 16px; }
.slot-heading { display: flex; justify-content: space-between; margin-bottom: 12px; }
.slot-heading strong { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.slot-heading span { color: #777; font-size: 10px; }
.slot-legend { margin-bottom: 9px; display: flex; flex-wrap: wrap; gap: 15px; color: #777; font-size: 8px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.slot-legend span { display: inline-flex; align-items: center; gap: 6px; }
.slot-legend i { width: 7px; height: 7px; display: block; border-radius: 2px; }
.slot-legend i.available { background: #111; }
.slot-legend i.full { background: #aaa; }
.slot-legend i.past { border: 1px solid #ccc; background: #eee; }
.time-slots { display: grid; grid-template-columns: repeat(5, minmax(70px, 1fr)); gap: 6px; min-height: 50px; }
.time-slot { min-height: 45px; padding: 5px 8px; display: grid; place-items: center; gap: 2px; color: #222; border: 1px solid #c9c9c9; background: #fff; cursor: pointer; }
.time-slot strong { font-family: var(--display); font-size: 17px; font-weight: 400; }
.time-slot small { color: #888; font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.time-slot.available:hover, .time-slot.available.selected { color: #fff; background: #080808; border-color: #080808; }
.time-slot.available:hover small, .time-slot.available.selected small { color: #bbb; }
.time-slot.full, .time-slot.past, .time-slot.closed { color: #999; background: #ececea; border-color: #dededb; cursor: not-allowed; }
.time-slot.full { text-decoration: line-through; }
.time-slot.past { opacity: .58; }
.time-slot.closed { color: #777; background: repeating-linear-gradient(135deg,#e8e8e5,#e8e8e5 6px,#f2f2ef 6px,#f2f2ef 12px); }
.time-slots p { grid-column: 1 / -1; margin: 7px 0; color: #999; font-size: 11px; }
.appointment-summary { margin: 18px 0; border-top: 1px solid #d2d2d2; }
.summary-row { padding: 11px 0; display: grid; grid-template-columns: 130px 1fr; border-bottom: 1px solid #d2d2d2; }
.summary-row span { color: #888; font-size: 9px; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.summary-row strong { font-family: var(--display); font-size: 18px; font-weight: 400; }
.appointment-success { min-height: 100%; padding: clamp(60px, 8vw, 110px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.appointment-success[hidden] { display: none; }
.success-mark { width: 66px; height: 66px; margin-bottom: 30px; display: grid; place-items: center; color: #fff; background: #080808; border-radius: 50%; font-size: 25px; }
.appointment-success > p:first-of-type { color: #777; font-size: 9px; font-weight: 800; letter-spacing: .2em; }
.appointment-success > p:not(:first-of-type) { max-width: 500px; color: #666; font-size: 14px; line-height: 1.7; }
.success-code { margin: 22px 0 32px; padding: 17px 22px; display: grid; gap: 6px; border: 1px solid #bbb; }
.success-code span { color: #777; font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.success-code strong { font-family: var(--display); font-size: 24px; letter-spacing: .08em; }

/* Business profile landing */
.business-profile { padding: calc(var(--header-h) + 46px) clamp(22px, 5vw, 82px) clamp(78px, 8vw, 125px); background: var(--paper); }
.business-profile-heading { width: min(1440px, 100%); margin: 0 auto 26px; display: flex; align-items: center; justify-content: space-between; gap: 34px; }
.business-identity { min-width: 0; display: flex; align-items: center; gap: 19px; }
.business-logo { flex: 0 0 auto; width: 74px; height: 74px; padding: 7px; display: grid; place-items: center; overflow: hidden; border: 1px solid #bbb; border-radius: 8px; background: #080808; }
.business-logo img { width: 100%; height: 100%; object-fit: contain; }
.business-identity p { margin: 0 0 7px; color: #777; font-size: 8px; font-weight: 800; letter-spacing: .22em; }
.business-identity h1 { margin: 0 0 7px; font-family: var(--display); font-size: clamp(31px, 3.2vw, 54px); font-weight: 400; letter-spacing: -.035em; line-height: .95; }
.business-identity > div > span { color: #666; font-size: 11px; }
.business-heading-actions { display: flex; gap: 8px; }
.business-heading-actions a,.business-heading-actions button { min-height: 50px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; gap: 24px; border: 1px solid #aaa; border-radius: 8px; background: transparent; cursor: pointer; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.business-heading-actions button { color: #fff; border-color: #080808; background: #080808; }
.business-heading-actions span { font-size: 17px; font-weight: 400; }
.business-heading-actions [data-open-manage-appointment] { color:#111; border-color:#aaa; background:#fff; }
.button:disabled,.business-service-row>button:disabled,.business-heading-actions button:disabled,.mobile-menu-actions button:disabled,.site-footer button:disabled { opacity:.48; cursor:not-allowed; }
.appointment-cta-actions { display:flex; justify-content:center; gap:10px; }
.button-outline-light { color:#fff; border-color:#777; background:transparent; }
.business-booking-layout { width: min(1440px, 100%); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(430px, .65fr); overflow: hidden; border: 1px solid #bdbdb8; border-radius: 8px; background: #fff; box-shadow: 0 28px 70px rgba(0,0,0,.08); }
.business-gallery { position: relative; min-width: 0; min-height: 680px; padding: 8px; overflow: hidden; background: #080808; }
.business-gallery-track { width:100%; min-height:664px; height:100%; display:grid; grid-template-columns:1.55fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:8px; }
.business-gallery-item { position: relative; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; border-radius: 6px; background: #191919; cursor: pointer; }
.business-gallery-item.featured { grid-row: 1 / 3; }
.business-gallery-item img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.03); transform: scale(1.01); transition: filter .4s ease, transform .6s ease; }
.business-gallery-item:hover img { filter: grayscale(.15); transform: scale(1.045); }
.business-gallery-item::after { content:''; position:absolute; inset:auto 0 0; height:42%; background:linear-gradient(0deg,rgba(0,0,0,.72),transparent); pointer-events:none; }
.business-gallery-item > span { position: absolute; left: 13px; bottom: 13px; width: 30px; height: 30px; display: grid; place-items: center; color: #111; border-radius: 50%; background: #fff; font-family: var(--display); font-size: 10px; }
.business-gallery-item > small { position:absolute; z-index:1; right:13px; bottom:20px; max-width:calc(100% - 65px); overflow:hidden; color:#fff; font-size:8px; font-weight:750; letter-spacing:.06em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.business-gallery-all { position: absolute; z-index: 3; right: 22px; bottom: 22px; min-height: 44px; padding: 0 15px; display: flex; align-items: center; gap: 9px; color: #080808; border: 0; border-radius: 8px; background: #fff; box-shadow: 0 12px 35px rgba(0,0,0,.3); cursor: pointer; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.business-gallery-all strong { font-size:inherit; font-weight:inherit; }
.business-gallery-all span { min-width: 25px; height: 25px; display: grid; place-items: center; color: #fff; border-radius: 50%; background: #080808; font-family: var(--display); font-weight: 400; }
.business-gallery-all b { font-size: 16px; font-weight: 400; }
.business-gallery-mobile-hint { display:none; }
.business-services { min-width: 0; height: 680px; padding: 28px 30px 18px; display: flex; flex-direction: column; background: #fff; }
.business-services-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.business-services-head p { margin: 0 0 7px; color: #888; font-size: 8px; font-weight: 850; letter-spacing: .2em; }
.business-services-head h2 { margin: 0; font-family: var(--display); font-size: 42px; font-weight: 400; letter-spacing: -.04em; }
.business-services-head > span { padding-bottom: 7px; color: #888; font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.business-services-note { margin: 14px 0 18px; padding: 12px 14px; color: #5f5f5f; border: 1px solid #deded9; border-radius: 8px; background: #f4f3ef; font-size: 10px; line-height: 1.55; }
.business-service-list { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #888 #eee; border-top: 1px solid #d8d8d4; }
.business-service-row { padding: 16px 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 5px 12px; align-items: center; border-bottom: 1px solid #d8d8d4; }
.business-service-number { grid-row: 1 / 3; align-self: start; padding-top: 3px; color: #999; font-family: var(--display); font-size: 12px; }
.business-service-row h3 { margin: 0; font-family: var(--display); font-size: 20px; font-weight: 400; line-height: 1.1; }
.business-service-row p { margin: 5px 0 0; color: #777; font-size: 9px; line-height: 1.45; }
.business-service-row > strong { align-self: end; color: #606060; font-size: 8px; letter-spacing: .06em; white-space: nowrap; }
.business-service-row > button { grid-column: 2 / 4; min-height: 37px; margin-top: 5px; padding: 0 13px; display: flex; align-items: center; justify-content: space-between; color: #fff; border: 1px solid #111; border-radius: 8px; background: #111; cursor: pointer; font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.business-service-row > button span { font-size: 15px; font-weight: 400; }
.business-facts { width: min(1440px, 100%); margin: 14px auto 0; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #c9c9c5; border-radius: 8px; background: #fff; }
.business-facts article { min-height: 118px; padding: 24px; display: grid; grid-template-columns: auto 1fr; gap: 16px; border-right: 1px solid #d5d5d1; }
.business-facts article:last-child { border-right: 0; }
.business-facts article > span { color: #999; font-family: var(--display); font-size: 13px; }
.business-facts strong { display: block; margin-bottom: 8px; font-family: var(--display); font-size: 20px; font-weight: 400; }
.business-facts p { margin: 0; color: #666; font-size: 10px; line-height: 1.6; }

@media (max-width: 1100px) {
    .site-header { grid-template-columns: 1fr auto; }
    .brand-copy { transition: opacity .25s ease, transform .25s ease; }
    .site-header.menu-open .brand-copy { opacity: 0; transform: translateX(-8px); }
    .menu-backdrop { position: fixed; inset: 0; z-index: 81; display: block; visibility: hidden; opacity: 0; background: rgba(0,0,0,.76); backdrop-filter: blur(3px); transition: opacity .45s ease, visibility .45s ease; }
    .site-header.menu-open .menu-backdrop { visibility: visible; opacity: 1; }
    .main-nav { position: fixed; z-index: 82; inset: 0 0 0 auto; width: min(420px, calc(100vw - 54px)); height: 100svh; padding: 94px 26px 30px; display: flex; gap: 0; align-items: stretch; flex-direction: column; color: #fff; background: #080808; border-left: 1px solid #202020; box-shadow: -30px 0 90px rgba(0,0,0,.45); visibility: hidden; pointer-events: none; transform: translateX(105%); transition: transform .58s cubic-bezier(.2,.8,.2,1), visibility .58s ease; }
    .main-nav.open { visibility: visible; pointer-events: auto; transform: translateX(0); }
    .main-nav > .menu-link { width: 100%; min-height: 62px; padding: 0; display: flex; align-items: center; justify-content: space-between; color: #fff; border-bottom: 1px solid #292929; font-size: 22px; font-weight: 500; letter-spacing: -.02em; text-transform: none; opacity: 0; transform: translateX(26px); transition: color .2s ease, opacity .35s ease, transform .45s ease; }
    .main-nav > .menu-link::after { content: '↗'; position: static; width: auto; height: auto; color: #fff; background: none; font-size: 20px; }
    .main-nav.open > .menu-link { opacity: 1; transform: translateX(0); }
    .main-nav.open > .menu-link:nth-child(1) { transition-delay: .08s; }
    .main-nav.open > .menu-link:nth-child(2) { transition-delay: .12s; }
    .main-nav.open > .menu-link:nth-child(3) { transition-delay: .16s; }
    .main-nav.open > .menu-link:nth-child(4) { transition-delay: .20s; }
    .main-nav.open > .menu-link:nth-child(5) { transition-delay: .24s; }
    .mobile-menu-actions { margin-top: 34px; display: grid; gap: 12px; opacity: 0; transform: translateY(18px); transition: opacity .35s ease .28s, transform .45s ease .28s; }
    .main-nav.open .mobile-menu-actions { opacity: 1; transform: translateY(0); }
    .mobile-menu-actions button, .mobile-menu-actions a { min-height: 52px; padding: 0 18px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #4a4a4a; border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 850; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
    .mobile-menu-actions button { color: #080808; background: #fff; border-color: #fff; }
    .mobile-menu-actions a { color: #fff; background: transparent; }
    .mobile-menu-actions b { font-size: 20px; font-weight: 400; }
    .menu-toggle { position: relative; z-index: 84; justify-self: end; width: 46px; height: 46px; display: grid; place-content: center; gap: 6px; color: #fff; border: 1px solid #777; border-radius: 8px; background: #090909; transition: border-color .25s ease, box-shadow .25s ease; }
    .menu-toggle span { width: 19px; height: 1px; background: currentColor; transition: transform .35s ease, opacity .2s ease; }
    .menu-toggle[aria-expanded="true"] { border-color: #fff; box-shadow: 0 0 0 3px #090909, 0 0 0 4px #777; }
    .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .header-appointment { display: none; }
    .business-booking-layout { grid-template-columns: 1fr; }
    .business-gallery { min-height: 590px; }
    .business-gallery-track { min-height:574px; }
    .business-services { height: auto; max-height: none; }
    .business-service-list { overflow: visible; }
    .hero-content { width: min(740px, 78vw); }
    .hero-aside { display: none; }
    .service-showcase { grid-template-columns: repeat(2, 1fr); }
    .service-card { grid-column: span 1; min-height: 470px; }
    .prosthesis-copy { padding: 70px; }
    .experts-grid { grid-template-columns: repeat(2, 1fr); }
    .appointment-panel { grid-template-columns: 270px 1fr; }
    .appointment-step { padding: 34px 42px; }
}

@media (max-width: 760px) {
    :root { --header-h: 68px; }
    .site-header { padding: 0 18px; }
    .brand-mark { width: 40px; height: 40px; padding: 4px; }
    .brand-copy strong { font-size: 12px; }
    .business-profile { padding: calc(var(--header-h) + 24px) 14px 72px; }
    .business-profile-heading { align-items: flex-start; flex-direction: column; gap: 19px; margin-bottom: 18px; }
    .business-logo { width: 58px; height: 58px; }
    .business-identity { align-items: flex-start; gap: 13px; }
    .business-identity p { font-size: 6px; line-height: 1.4; }
    .business-identity h1 { font-size: clamp(27px, 8.2vw, 35px); }
    .business-identity > div > span { font-size: 9px; }
    .business-heading-actions { width: 100%; }
    .business-heading-actions a,.business-heading-actions button { flex: 1; min-height: 46px; padding: 0 13px; gap: 10px; }
    .business-booking-layout { overflow: visible; border: 0; background: transparent; box-shadow: none; }
    .business-gallery { min-height:0; padding:0; overflow:visible; background:transparent; }
    .business-gallery-track { width:100%; min-height:0; height:auto; padding:0 1px 10px; display:grid; grid-auto-flow:column; grid-auto-columns:calc(100vw - 50px); grid-template-columns:none; grid-template-rows:clamp(340px,105vw,420px); gap:10px; overflow-x:auto; overflow-y:hidden; overscroll-behavior-inline:contain; scroll-padding-inline:1px 18px; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
    .business-gallery-track::-webkit-scrollbar { display:none; }
    .business-gallery-item,.business-gallery-item.featured { grid-row:auto; scroll-snap-align:start; border:1px solid #2c2c2c; border-radius:8px; box-shadow:0 13px 30px rgba(0,0,0,.16); }
    .business-gallery-item img { transform:none; }
    .business-gallery-item::after { height:48%; }
    .business-gallery-item > span { z-index:1; left:14px; bottom:15px; width:34px; height:34px; }
    .business-gallery-item > small { right:15px; bottom:24px; max-width:calc(100% - 76px); font-size:9px; }
    .business-gallery-mobile-hint { margin:2px 1px 11px; display:flex; align-items:center; justify-content:space-between; gap:16px; color:#777; font-size:8px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
    .business-gallery-mobile-hint i { position:relative; flex:1; height:1px; overflow:hidden; background:#c8c8c3; }
    .business-gallery-mobile-hint i::after { content:''; position:absolute; inset:0 58% 0 0; background:#111; }
    .business-gallery-all { position:static; width:100%; min-height:54px; margin:0; padding:0 16px; justify-content:space-between; color:#fff; border:1px solid #111; border-radius:8px; background:#111; box-shadow:none; white-space:normal; }
    .business-gallery-all span { min-width:30px; height:30px; color:#111; background:#fff; }
    .business-gallery-all strong { flex:1; text-align:left; }
    .business-gallery-all b { font-size:19px; }
    .business-services { height: auto; margin-top: 10px; padding: 24px 16px 8px; border: 1px solid #c9c9c5; border-radius: 8px; }
    .business-services-head h2 { font-size: 36px; }
    .business-service-row { padding: 15px 0; grid-template-columns: 27px minmax(0,1fr) auto; }
    .business-service-row h3 { font-size: 20px; }
    .business-service-row p { font-size: 9px; }
    .business-service-row > button { min-height: 43px; font-size: 9px; }
    .business-facts { grid-template-columns: 1fr; }
    .business-facts article { min-height: auto; border-right: 0; border-bottom: 1px solid #d5d5d1; }
    .business-facts article:last-child { border-bottom: 0; }
    .hero { min-height: 700px; }
    .hero-slide img { object-position: center; }
    .hero-overlay { background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.25)), linear-gradient(0deg, rgba(0,0,0,.72), transparent 60%); }
    .hero-content { width: 100%; min-width: 0; margin: 0; padding: 100px 22px 30px; align-self: flex-end; }
    .hero h1 { font-size: clamp(40px, 11vw, 52px); line-height: .88; }
    .hero-lead { font-size: 13px; line-height: 1.7; }
    .hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
    .scroll-cue { display: none; }
    .statement { padding: 85px 22px; }
    .statement-grid { grid-template-columns: 1fr; gap: 35px; }
    .statement h2 { font-size: 43px; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .service-showcase { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
    .service-card, .service-card:nth-child(n+4) { flex: 0 0 84vw; min-height: 500px; scroll-snap-align: start; }
    .prosthesis-focus { grid-template-columns: 1fr; }
    .prosthesis-image { min-height: 430px; }
    .prosthesis-image img { object-position: 50% 42%; }
    .prosthesis-copy { padding: 75px 22px; }
    .gallery-section { padding:78px 0 90px; }.gallery-heading{padding:0 22px;align-items:flex-start;flex-direction:column;gap:28px}.gallery-heading h2{font-size:43px}.gallery-heading-copy{width:100%;grid-template-columns:1fr auto;align-items:end;gap:18px}.gallery-heading-copy>p{font-size:11px}.gallery-controls button{width:44px;height:44px}.gallery-rail{margin-top:36px;padding:0 22px 14px;grid-auto-columns:78vw;gap:9px}.gallery-card,.gallery-card:nth-child(5n+3){aspect-ratio:4/5}.gallery-card-label strong{font-size:23px}
    .media-viewer{padding:0;place-items:stretch}.media-viewer-card{width:100%;height:100svh;grid-template-columns:1fr;grid-template-rows:1fr auto;border:0;border-radius:0;transform:rotateY(-90deg) scale(.96)}.media-viewer-stage{grid-column:1;grid-row:1;padding:70px 12px 14px}.media-viewer-stage img,.media-viewer-stage video{max-height:calc(100svh - 158px);border-radius:3px}.media-viewer-nav{position:absolute;z-index:4;top:50%;width:44px;height:55px;transform:translateY(-50%);background:rgba(10,10,10,.72)}.media-viewer-nav.previous{left:9px}.media-viewer-nav.next{right:9px}.media-viewer-close{position:fixed;top:12px;right:12px;width:48px;height:48px}.media-viewer-card>footer{grid-column:1;grid-row:2;padding:15px 18px calc(17px + env(safe-area-inset-bottom));grid-template-columns:auto 1fr;gap:8px 14px}.media-viewer-card>footer h3{font-size:21px;text-align:left}.media-viewer-card>footer small{grid-column:2}
    .experts-section { padding: 80px 22px; }
    .experts-grid { grid-template-columns: 1fr; }
    .expert-profile { min-height: 310px; }
    .site-footer { grid-template-columns: 1fr; padding: 60px 22px 25px; }
    .footer-bottom { grid-column: 1; }
    .appointment-panel { width: 100%; height: 100svh; max-height: none; margin: 0; grid-template-columns: 1fr; border-radius: 0; transform-origin: center right; transform: rotateY(-92deg); }
    .appointment-sidebar { min-height: 57px; padding: 15px 64px 15px 18px; display: block; }
    .appointment-sidebar > .appointment-brand, .appointment-sidebar > .appointment-intro, .appointment-sidebar > small { display: none; }
    .appointment-progress { margin: 0; display: flex; gap: 7px; }
    .appointment-progress li { flex: 1; gap: 0; font-size: 0; }
    .appointment-progress li span { width: 27px; height: 27px; font-size: 10px; }
    .appointment-close { top: 8px; right: 10px; width: 42px; height: 42px; display: grid; place-items: center; color: #fff; border: 1px solid #fff; border-radius: 50%; background: #0b0b0b; box-shadow: 0 0 0 3px #0b0b0b, 0 0 0 4px #555; font-family: var(--sans); font-size: 27px; line-height: 1; }
    .appointment-body { height: calc(100svh - 57px); overflow: hidden; }
    .appointment-body form { height: 100%; min-height: 0; }
    .appointment-step { height: 100%; min-height: 0; padding: 24px 16px 14px; }
    .appointment-step[data-step-kind="schedule"] { padding-top: 17px; }
    .appointment-step h3 { font-size: clamp(29px, 9vw, 36px); line-height: 1; }
    .step-kicker { margin-bottom: 8px; font-size: 8px; }
    .step-description { margin: 8px 0 14px; font-size: 11px; line-height: 1.45; }
    .field { margin-bottom: 16px; }
    .consent { margin: 18px 0; }
    .expert-choices { grid-template-columns: 1fr; }
    .expert-choice { padding: 11px 13px; }
    .expert-choice-avatar { width: 42px; height: 42px; }
    .choice-list { gap: 6px; }
    .appointment-step[data-step-kind="service"] .service-choices { flex: 1 1 auto; min-height: 0; grid-template-columns: 1fr; grid-template-rows: repeat(6, minmax(0, 1fr)); }
    .choice-card { padding: 10px 11px; gap: 10px; }
    .service-choices .choice-card { height: 100%; min-height: 0; padding: clamp(10px, 2vh, 16px) 13px; }
    .service-choices .choice-radio { width: 19px; height: 19px; }
    .service-choices .choice-card strong { font-size: clamp(18px, 5vw, 21px); }
    .service-choices .choice-card em { font-size: 8px; }
    .choice-card strong { font-size: 16px; }
    .choice-card small { font-size: 8px; }
    .step-actions { position: static; margin: auto 0 0; padding: 10px 0 0; background: transparent; border: 0; backdrop-filter: none; }
    .step-actions .button { min-height: 41px; padding: 0 12px; font-size: 9px; }
    .day-planner { margin-top: 10px; grid-template-columns: 46px 1fr 46px; }
    .day-nav { min-height: 70px; }
    .day-planner-date { padding: 8px; }
    .day-planner-date strong { font-size: 24px; }
    .day-planner-date span, .day-planner-date small { font-size: 7px; }
    .slot-section { margin-top: 10px; }
    .slot-heading { margin-bottom: 6px; }
    .slot-legend { margin-bottom: 6px; gap: 10px; font-size: 6px; }
    .time-slots { grid-template-columns: repeat(4, 1fr); gap: 4px; }
    .time-slot { min-height: 39px; padding: 3px; }
    .time-slot strong { font-size: 14px; }
    .time-slot small { font-size: 5px; }
    .appointment-step[data-step="5"] { padding: 14px 16px 12px; }
    .appointment-step[data-step="5"] .step-kicker { margin-bottom: 4px; }
    .appointment-step[data-step="5"] h3 { font-size: clamp(24px, 7vw, 30px); letter-spacing: -.04em; }
    .appointment-step[data-step="5"] .step-description { margin: 5px 0 8px; font-size: 10px; line-height: 1.35; }
    .appointment-step[data-step="5"] .appointment-summary { margin: 8px 0; }
    .appointment-step[data-step="5"] .summary-row { padding: 7px 0; grid-template-columns: 90px minmax(0, 1fr); align-items: center; }
    .appointment-step[data-step="5"] .summary-row span { font-size: 7px; }
    .appointment-step[data-step="5"] .summary-row strong { min-width: 0; font-size: 16px; line-height: 1.15; }
    .appointment-step[data-step="5"] .field { gap: 5px; margin-bottom: 0; }
    .appointment-step[data-step="5"] .field > span { font-size: 8px; }
    .appointment-step[data-step="5"] .field textarea { height: 50px; min-height: 50px; padding: 6px 0; resize: none; font-size: 13px; }
    .appointment-step[data-step="5"] .form-error { min-height: 12px; margin-top: 0; }
    .appointment-step[data-step="5"] .step-actions { margin-top: 10px; padding-top: 0; }
    .appointment-step[data-step="5"] .step-actions .button { min-height: 39px; }
    .appointment-modal[data-current-step="5"] .appointment-panel { height: auto; max-height: calc(100svh - 16px); margin: auto; }
    .appointment-modal[data-current-step="5"] .appointment-body,
    .appointment-modal[data-current-step="5"] .appointment-body form,
    .appointment-modal[data-current-step="5"] .appointment-step.active { height: auto; }
    .appointment-success { padding: 50px 22px; }
}

@media (max-width: 760px) and (max-height: 700px) {
    .appointment-step { padding-top: 14px; }
    .appointment-step h3 { font-size: 27px; }
    .step-description { margin-bottom: 9px; }
    .choice-card { padding-block: 7px; }
    .choice-card small { display: none; }
    .expert-choice { padding-block: 7px; }
    .day-nav { min-height: 62px; }
    .time-slot { min-height: 34px; }
    .step-actions { padding-top: 6px; }
    .appointment-step[data-step="5"] { padding: 10px 14px 8px; }
    .appointment-step[data-step="5"] .step-kicker { margin-bottom: 4px; }
    .appointment-step[data-step="5"] h3 { font-size: clamp(23px, 7vw, 27px); letter-spacing: -.04em; }
    .appointment-step[data-step="5"] .step-description { margin: 5px 0 8px; font-size: 10px; line-height: 1.35; }
    .appointment-step[data-step="5"] .appointment-summary { margin: 6px 0 9px; }
    .appointment-step[data-step="5"] .summary-row { padding: 6px 0; grid-template-columns: 82px minmax(0, 1fr); align-items: center; }
    .appointment-step[data-step="5"] .summary-row span { font-size: 7px; }
    .appointment-step[data-step="5"] .summary-row strong { min-width: 0; font-size: 15px; line-height: 1.15; }
    .appointment-step[data-step="5"] .field { gap: 5px; margin-bottom: 0; }
    .appointment-step[data-step="5"] .field > span { font-size: 8px; }
    .appointment-step[data-step="5"] .field textarea { height: 44px; min-height: 44px; padding: 5px 0; resize: none; font-size: 13px; }
    .appointment-step[data-step="5"] .form-error { min-height: 12px; margin-top: 0; }
    .appointment-step[data-step="5"] .step-actions { margin-top: 10px; padding-top: 0; }
    .appointment-step[data-step="5"] .step-actions .button { min-height: 39px; }
}

@media (max-width: 760px) and (min-height: 621px) {
    .appointment-modal[data-current-step="1"] .appointment-panel,
    .appointment-modal[data-current-step="2"] .appointment-panel,
    .appointment-modal[data-current-step="3"] .appointment-panel { height: auto; max-height: calc(100svh - 16px); margin: auto; }
    .appointment-modal[data-current-step="1"] .appointment-body,
    .appointment-modal[data-current-step="2"] .appointment-body,
    .appointment-modal[data-current-step="3"] .appointment-body { height: auto; }
    .appointment-modal[data-current-step="1"] .appointment-body form,
    .appointment-modal[data-current-step="2"] .appointment-body form,
    .appointment-modal[data-current-step="3"] .appointment-body form { height: auto; }
    .appointment-modal[data-current-step="1"] .appointment-step.active,
    .appointment-modal[data-current-step="2"] .appointment-step.active,
    .appointment-modal[data-current-step="3"] .appointment-step.active { height: auto; }
    .appointment-modal[data-current-step="1"] .step-actions,
    .appointment-modal[data-current-step="2"] .step-actions,
    .appointment-modal[data-current-step="3"] .step-actions { margin-top: 12px; }
    .appointment-modal[data-current-step="2"] .service-choices { flex: none; grid-template-rows: none; }
    .appointment-modal[data-current-step="2"] .service-choices .choice-card { height: auto; min-height: 56px; padding-block: 11px; }
    .booking-v2[data-current-step="3"] .appointment-panel { width: 100%; height: 100svh; max-height: none; margin: 0; }
    .booking-v2[data-current-step="3"] .appointment-body { height: calc(100svh - 57px); }
    .booking-v2[data-current-step="3"] .appointment-body form,
    .booking-v2[data-current-step="3"] .appointment-step.active { height: 100%; }
    .booking-v2[data-current-step="4"] .appointment-panel { height: auto; max-height: calc(100svh - 16px); margin: auto; }
    .booking-v2[data-current-step="4"] .appointment-body,
    .booking-v2[data-current-step="4"] .appointment-body form,
    .booking-v2[data-current-step="4"] .appointment-step.active { height: auto; }
    .booking-v2[data-current-step="4"] .step-actions { margin-top: 12px; }
    .booking-v2[data-current-step="1"] .service-choices { flex: none; grid-template-rows: none; }
    .booking-v2[data-current-step="1"] .service-choices .choice-card { height: auto; min-height: 56px; padding-block: 11px; }
}

@media (min-width: 761px) and (max-height: 760px) {
    .appointment-panel { height: calc(100svh - 24px); }
    .appointment-step { padding: 20px 40px; }
    .appointment-step h3 { font-size: 40px; }
    .step-description { margin-block: 7px 12px; }
    .day-planner { margin-top: 10px; }
    .day-nav { min-height: 70px; }
    .slot-section { margin-top: 10px; }
    .slot-heading { margin-bottom: 6px; }
    .slot-legend { margin-bottom: 6px; }
    .time-slot { min-height: 38px; }
    .step-actions { padding-top: 10px; }
}

/* Phone-based appointment update and cancellation */
body.manage-appointment-open { overflow:hidden; }
.manage-appointment-modal[hidden] { display:none; }
.manage-appointment-modal { position:fixed; inset:0; z-index:220; padding:24px; display:grid; place-items:center; visibility:hidden; opacity:0; perspective:1800px; transition:opacity .28s ease,visibility .28s ease; }
.manage-appointment-modal.open { visibility:visible; opacity:1; }
.manage-appointment-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.82); backdrop-filter:blur(11px); }
.manage-appointment-panel { position:relative; width:min(940px,calc(100vw - 48px)); max-height:calc(100svh - 48px); display:grid; grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr); overflow:hidden; color:#111; border:1px solid #c9c9c4; border-radius:8px; background:#fff; box-shadow:0 40px 130px rgba(0,0,0,.5); transform:rotateY(-84deg) scale(.9); transform-origin:center; backface-visibility:hidden; transition:transform .48s cubic-bezier(.2,.82,.2,1); }
.manage-appointment-modal.open .manage-appointment-panel { transform:rotateY(0) scale(1); }
.manage-appointment-close { position:absolute; z-index:3; top:16px; right:16px; width:48px; height:48px; display:grid; place-items:center; color:#fff; border:1px solid #555; border-radius:50%; background:#0a0a0a; cursor:pointer; font-family:var(--sans); font-size:29px; line-height:1; }
.manage-appointment-header { min-height:600px; padding:48px 38px; display:flex; flex-direction:column; justify-content:center; color:#fff; background:#090909; }
.manage-appointment-header p { margin:0 0 22px; color:#888; font-size:8px; font-weight:850; letter-spacing:.22em; }
.manage-appointment-header h2 { margin:0; font-family:var(--display); font-size:clamp(39px,4.1vw,59px); font-weight:400; letter-spacing:-.045em; line-height:.95; }
.manage-appointment-header > span { margin-top:28px; color:#999; font-size:11px; line-height:1.7; }
.manage-call-link { min-height:58px; margin-top:34px; padding:0 17px; display:flex; align-items:center; gap:14px; color:#fff; border:1px solid #4c4c4c; border-radius:8px; background:#161616; text-decoration:none; }
.manage-call-link svg { width:25px; height:25px; fill:none; stroke:#fff; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.manage-call-link > span { display:grid; gap:4px; }
.manage-call-link strong { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.manage-call-link small { color:#999; font-family:var(--display); font-size:14px; }
.manage-call-link:hover { border-color:#fff; background:#222; }
.manage-appointment-content { min-height:600px; max-height:calc(100svh - 48px); padding:72px 50px 42px; overflow:auto; overscroll-behavior:contain; }
.manage-view { min-height:486px; display:flex; flex-direction:column; }
.manage-view[hidden] { display:none; }
.manage-phone-field { display:grid; gap:12px; }
.manage-phone-field > span { color:#777; font-size:8px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.manage-phone-field input { width:100%; min-height:65px; padding:0 2px; color:#111; border:0; border-bottom:1px solid #777; border-radius:0; outline:0; background:#fff; font-family:var(--display); font-size:32px; }
.manage-phone-field input:focus { border-color:#111; }
.manage-helper { margin:16px 0 0; color:#777; font-size:10px; line-height:1.6; }
.manage-error { min-height:38px; padding-top:11px; color:#a20d16; font-size:10px; font-weight:750; line-height:1.45; }
.manage-primary-button,.manage-secondary-button,.manage-cancel-button { min-height:58px; padding:0 18px; border-radius:8px; cursor:pointer; font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.manage-primary-button { width:100%; margin-top:auto; display:flex; align-items:center; justify-content:space-between; color:#fff; border:1px solid #111; background:#111; }
.manage-primary-button b { font-size:20px; font-weight:400; }
.manage-primary-button:disabled { opacity:.45; cursor:not-allowed; }
.manage-status-line { padding-bottom:20px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #ddd; }
.manage-status-line span { font-size:8px; font-weight:850; letter-spacing:.15em; }
.manage-status-line strong { padding:7px 10px; color:#fff; border-radius:8px; background:#111; font-size:9px; letter-spacing:.08em; }
.manage-summary { margin-top:8px; }
.manage-summary > div { padding:15px 0; display:grid; grid-template-columns:92px minmax(0,1fr); align-items:center; border-bottom:1px solid #ddd; }
.manage-summary span { color:#888; font-size:8px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.manage-summary strong { font-family:var(--display); font-size:20px; font-weight:400; line-height:1.15; }
.manage-deadline-note { margin:14px 0 0; padding:11px 13px; color:#666; border:1px solid #ddd; border-radius:8px; background:#f5f5f2; font-size:9px; line-height:1.5; }
.manage-detail-actions { margin-top:auto; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.manage-secondary-button { display:flex; align-items:center; justify-content:space-between; color:#fff; border:1px solid #111; background:#111; }
.manage-cancel-button { color:#fff; border:1px solid #a21b24; background:#a21b24; }
.manage-cancel-button:disabled { color:#888; border-color:#ccc; background:#eee; cursor:not-allowed; }
.manage-text-button,.manage-back-button { width:max-content; margin:18px auto 0; padding:0 0 4px; color:#666; border:0; border-bottom:1px solid #aaa; background:none; cursor:pointer; font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.manage-back-button { margin:0 0 18px; }
.manage-schedule-title { margin:0 0 16px; font-family:var(--display); font-size:29px; }
.manage-day-planner { display:grid; grid-template-columns:58px 1fr 58px; border:1px solid #ccc; border-radius:8px; overflow:hidden; }
.manage-day-planner > button { min-height:78px; color:#111; border:0; background:#f1f1ee; cursor:pointer; font-size:20px; }
.manage-day-planner > button:disabled { color:#bbb; cursor:not-allowed; }
.manage-day-planner > div { padding:9px; display:grid; place-items:center; border-inline:1px solid #ccc; text-align:center; }
.manage-day-planner span,.manage-day-planner small { color:#777; font-size:7px; font-weight:850; letter-spacing:.14em; }
.manage-day-planner strong { margin:3px 0; font-family:var(--display); font-size:25px; font-weight:400; }
.manage-slot-heading { margin:17px 0 9px; display:flex; align-items:center; justify-content:space-between; }
.manage-slot-heading strong { font-family:var(--display); font-size:19px; font-weight:400; }
.manage-slot-heading span { color:#777; font-size:8px; font-weight:800; text-transform:uppercase; }
.manage-time-slots { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }
.manage-time-slots > p { grid-column:1/-1; color:#777; font-size:10px; }
.manage-time-slot { min-height:47px; padding:4px; display:grid; place-items:center; gap:2px; color:#222; border:1px solid #ccc; border-radius:8px; background:#fff; cursor:pointer; }
.manage-time-slot strong { font-family:var(--display); font-size:15px; font-weight:400; }
.manage-time-slot small { color:#888; font-size:6px; font-weight:800; text-transform:uppercase; }
.manage-time-slot.available:hover,.manage-time-slot.selected { color:#fff; border-color:#111; background:#111; }
.manage-time-slot.selected small { color:#bbb; }
.manage-time-slot.full,.manage-time-slot.past,.manage-time-slot.closed { color:#aaa; background:#ececea; cursor:not-allowed; }
.manage-time-slot.current { box-shadow:inset 0 0 0 2px #777; }
.manage-time-slot.full { text-decoration:line-through; }
.manage-time-slot.past { opacity:.6; }
.manage-success-view { align-items:center; justify-content:center; text-align:center; }
.manage-success-mark { width:74px; height:74px; display:grid; place-items:center; color:#fff; border-radius:50%; background:#111; font-size:31px; }
.manage-success-view > p { margin:24px 0 10px; color:#777; font-size:8px; font-weight:850; letter-spacing:.18em; }
.manage-success-view h3 { margin:0; font-family:var(--display); font-size:39px; font-weight:400; }
.manage-success-view > span:not(.manage-success-mark) { margin-top:13px; color:#777; font-size:11px; line-height:1.6; }
.manage-success-view .manage-primary-button { margin-top:38px; }

@media (max-width:1100px) {
    .main-nav { overflow-y:auto; }
    .main-nav > .menu-link { flex:0 0 auto; min-height:52px; font-size:19px; }
    .mobile-menu-actions { margin-top:20px; gap:8px; }
    .mobile-menu-actions button,.mobile-menu-actions a { min-height:46px; }
}

@media (max-width:760px) {
    .business-heading-actions { flex-wrap:wrap; }
    .business-heading-actions a,.business-heading-actions button { min-width:calc(50% - 5px); }
    .business-heading-actions button:last-child { flex-basis:100%; }
    .appointment-cta-actions { align-items:center; flex-direction:column; }
    .appointment-cta-actions .button { width:min(330px,100%); }
    .manage-appointment-modal { padding:0; place-items:stretch; }
    .manage-appointment-panel { width:100%; height:100svh; max-height:none; grid-template-columns:1fr; grid-template-rows:auto 1fr; border:0; border-radius:0; transform:rotateY(-91deg) scale(.97); transform-origin:center right; }
    .manage-appointment-close { position:fixed; top:10px; right:11px; width:46px; height:46px; border-color:#fff; box-shadow:0 0 0 3px #090909,0 0 0 4px #555; }
    .manage-appointment-header { min-height:0; padding:22px 68px 20px 18px; justify-content:flex-start; }
    .manage-appointment-header p { margin:0 0 8px; font-size:7px; }
    .manage-appointment-header h2 { font-size:29px; line-height:.96; }
    .manage-appointment-header h2 br { display:none; }
    .manage-appointment-header > span { display:none; }
    .manage-call-link { width:max-content; min-height:39px; margin-top:12px; padding:0 12px; gap:9px; }
    .manage-call-link svg { width:20px; height:20px; }
    .manage-call-link small { font-size:12px; }
    .manage-appointment-content { min-height:0; max-height:none; padding:24px 17px calc(18px + env(safe-area-inset-bottom)); }
    .manage-view { min-height:100%; }
    .manage-phone-field input { min-height:59px; font-size:29px; }
    .manage-summary>div { padding:12px 0; }
    .manage-summary strong { font-size:18px; }
    .manage-detail-actions { grid-template-columns:1fr; margin-top:18px; }
    .manage-primary-button,.manage-secondary-button,.manage-cancel-button { min-height:52px; }
    .manage-schedule-title { margin-bottom:10px; font-size:25px; }
    .manage-day-planner { grid-template-columns:48px 1fr 48px; }
    .manage-day-planner>button { min-height:65px; }
    .manage-day-planner strong { font-size:21px; }
    .manage-slot-heading { margin:12px 0 7px; }
    .manage-time-slots { grid-template-columns:repeat(4,minmax(0,1fr)); gap:4px; }
    .manage-time-slot { min-height:42px; }
    .manage-view[data-manage-view="schedule"] .manage-primary-button { margin-top:12px; }
}

@media (max-width:760px) and (max-height:700px) {
    .manage-appointment-header { padding-block:15px; }
    .manage-appointment-header h2 { font-size:25px; }
    .manage-appointment-content { padding-top:16px; }
    .manage-time-slot { min-height:37px; }
    .manage-time-slot strong { font-size:13px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
