:root { --cm-ink:#143c3a; --cm-forest:#0e2e2e; --cm-paper:#f5f4ee; --cm-mist:#e1e7df; --cm-mint:#a9c8bc; --cm-coral:#dc7b61; --cm-line:rgba(20,60,58,.19); --cm-serif:"Instrument Serif", Georgia, serif; --cm-sans:"Manrope", Arial, sans-serif; --cm-mono:"DM Mono", monospace; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; overflow-x:hidden; color:var(--cm-ink); background:var(--cm-paper); font-family:var(--cm-sans); } button,input,select { font:inherit; } button { cursor:pointer; } a { color:inherit; text-decoration:none; } .cm-skip { position:fixed; z-index:10; top:9px; left:9px; padding:10px 14px; color:#fff; background:var(--cm-forest); transform:translateY(-140%); } .cm-skip:focus { transform:translateY(0); } .cm-title-mobile { display:none; }
.cm-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; min-height:78px; padding:0 4.8vw; border-bottom:1px solid var(--cm-line); background:rgba(245,244,238,.93); } .cm-mark,.cm-book-link,.cm-nav a { font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; } .cm-mark { color:#6b7d77; } .cm-mark span { margin-left:8px; color:var(--cm-ink); }.cm-logo { font:500 1.4rem/.85 var(--cm-serif); letter-spacing:-.05em; text-align:center; }.cm-logo i { color:var(--cm-coral); font-style:italic; }.cm-header-actions { display:flex; justify-content:end; align-items:center; gap:30px; }.cm-nav { display:flex; gap:20px; }.cm-nav a { color:#55706a; }.cm-nav a:hover { color:var(--cm-coral); }.cm-book-link { display:inline-flex; align-items:center; gap:9px; }.cm-book-link span { color:var(--cm-coral); font-size:15px; }
.cm-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(340px,.72fr); min-height:742px; overflow:hidden; background:var(--cm-mist); }.cm-hero-grid { position:absolute; inset:0; display:grid; grid-template-columns:repeat(4,1fr); pointer-events:none; }.cm-hero-grid span { border-right:1px solid rgba(20,60,58,.12); }.cm-hero-grid span:first-child { border-left:1px solid rgba(20,60,58,.12); }.cm-hero:after { content:""; position:absolute; width:clamp(420px,55vw,860px); height:clamp(420px,55vw,860px); right:-18vw; bottom:-46%; border:1px solid rgba(20,60,58,.27); border-radius:50%; box-shadow:0 0 0 80px rgba(169,200,188,.27),0 0 0 160px rgba(169,200,188,.17); }.cm-hero-copy { position:relative; z-index:1; align-self:center; padding:106px 6.2vw 122px; }.cm-eyebrow { margin:0; color:#c36952; font:700 10px/1.3 var(--cm-mono); letter-spacing:.1em; }.cm-hero h1,.cm-section-top h2,.cm-specialists h2,.cm-calendar h2,.cm-privacy h2,.cm-final h2 { margin:24px 0 0; font:400 clamp(4.3rem,8vw,8.9rem)/.79 var(--cm-serif); letter-spacing:-.065em; }.cm-hero h1 em,.cm-section-top h2 em,.cm-final h2 em { color:var(--cm-coral); font-style:italic; }.cm-lede { max-width:363px; margin:39px 0 25px; color:#4c6660; font-size:14px; line-height:1.7; }.cm-quiet-link { display:inline-flex; align-items:center; gap:13px; min-height:44px; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.cm-quiet-link span { display:grid; width:29px; height:29px; place-items:center; border:1px solid var(--cm-ink); border-radius:50%; color:var(--cm-coral); transition:color .2s ease,background .2s ease; }.cm-quiet-link:hover span { color:#fff; background:var(--cm-ink); }
.cm-booking-card { position:relative; z-index:2; align-self:center; width:min(100%,485px); margin:70px 5vw 70px 0; padding:29px; color:#e8f0ea; background:var(--cm-forest); box-shadow:0 24px 48px rgba(13,43,42,.22); }.cm-card-head { display:flex; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid rgba(232,240,234,.28); }.cm-card-head p,.cm-card-head span { margin:0; color:#a7cdbd; font:500 9px var(--cm-mono); letter-spacing:.1em; }.cm-booking-card h2 { margin:24px 0 29px; font:400 clamp(2.7rem,4.2vw,4rem)/.8 var(--cm-serif); letter-spacing:-.05em; }.cm-booking-card fieldset { margin:0; padding:0; border:0; }.cm-booking-card legend,.cm-select-label { display:block; color:#b7c9bf; font-size:10px; font-weight:700; letter-spacing:.06em; }.cm-specialty-select { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:11px 0 19px; }.cm-specialty-select button { min-height:46px; padding:5px; border:1px solid rgba(232,240,234,.28); color:#e8f0ea; background:transparent; font-size:10px; transition:background .2s ease,color .2s ease; }.cm-specialty-select button.is-selected,.cm-specialty-select button:hover { color:var(--cm-forest); background:#e8f0ea; }.cm-select-label { margin-bottom:22px; }.cm-select-label select { display:block; width:100%; margin-top:9px; padding:13px 2px; border:0; border-bottom:1px solid rgba(232,240,234,.4); color:#fff; background:transparent; font-size:13px; outline:none; }.cm-select-label option { color:var(--cm-forest); }.cm-primary-button { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:53px; padding:0 18px; border:0; color:var(--cm-forest); background:#b6d1c4; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.cm-primary-button:hover:not(:disabled) { background:#fff; transform:translateY(-2px); }.cm-primary-button:disabled { cursor:not-allowed; opacity:.45; }.cm-primary-button span { color:var(--cm-coral); font-size:17px; }.cm-form-feedback { min-height:20px; margin:12px 0 0; color:#b8d8cb; font-size:11px; line-height:1.45; }.cm-card-note { margin:18px 0 0; color:#a3b8ae; font-size:10px; line-height:1.5; }.cm-card-note span { margin-right:8px; color:#df8a70; font-size:14px; }
.cm-assurance { display:flex; align-items:center; justify-content:space-between; gap:30px; padding:21px 4.8vw; border-bottom:1px solid var(--cm-line); background:#f9f8f4; }.cm-assurance p,.cm-assurance ul { margin:0; }.cm-assurance p { font:500 1.1rem var(--cm-serif); }.cm-assurance ul { display:flex; gap:24px; padding:0; list-style:none; color:#688179; font:700 9px var(--cm-mono); letter-spacing:.07em; text-transform:uppercase; }.cm-assurance li:before { content:"•"; margin-right:7px; color:var(--cm-coral); }
.cm-section { max-width:1510px; margin:0 auto; padding:150px 4.8vw; }.cm-section-top { display:grid; grid-template-columns:.34fr 1.3fr .68fr; gap:30px; align-items:end; }.cm-index { margin:0; color:#839a91; font:500 10px var(--cm-mono); }.cm-section-top h2,.cm-specialists h2,.cm-calendar h2,.cm-privacy h2 { font-size:clamp(3.35rem,6.2vw,6.8rem); }.cm-section-top > p:last-child,.cm-specialists-head > p,.cm-calendar-copy > p:last-child { max-width:260px; margin:0 0 6px; color:#60766f; font-size:13px; line-height:1.65; }.cm-steps { margin:78px 0 0; padding:0; border-top:1px solid var(--cm-line); list-style:none; }.cm-steps li { display:grid; grid-template-columns:.33fr 1.3fr .68fr; gap:30px; align-items:center; min-height:148px; border-bottom:1px solid var(--cm-line); }.cm-steps li > span,.cm-steps b { font:500 10px var(--cm-mono); letter-spacing:.06em; }.cm-steps b { justify-self:end; color:#809890; }.cm-steps h3 { margin:0; font:400 clamp(1.85rem,2.4vw,2.7rem)/.9 var(--cm-serif); letter-spacing:-.045em; }.cm-steps p { max-width:410px; margin:12px 0 0; color:#687b75; font-size:13px; line-height:1.5; }
.cm-specialists { padding-top:0; }.cm-specialists-head { display:flex; justify-content:space-between; align-items:end; gap:40px; }.cm-specialists-head h2 { margin-top:18px; }.cm-doctor-layout { display:grid; grid-template-columns:.84fr 1.16fr; gap:0; margin-top:76px; border:1px solid var(--cm-line); }.cm-doctor-list button { display:grid; grid-template-columns:40px 1fr auto; align-items:center; width:100%; min-height:128px; padding:20px 25px; border:0; border-bottom:1px solid var(--cm-line); color:var(--cm-ink); background:transparent; text-align:left; transition:background .2s ease,color .2s ease; }.cm-doctor-list button:last-child { border-bottom:0; }.cm-doctor-list button.is-active,.cm-doctor-list button:hover { color:#f3f5ef; background:var(--cm-forest); }.cm-doctor-list span,.cm-doctor-list small { font:500 10px var(--cm-mono); }.cm-doctor-list strong { display:block; margin-bottom:7px; font:400 1.6rem/.9 var(--cm-serif); letter-spacing:-.035em; }.cm-doctor-list small { color:#78938a; }.cm-doctor-list button.is-active small { color:#aac9bc; }.cm-doctor-list i { color:var(--cm-coral); font-style:normal; font-size:18px; }.cm-doctor-panel { display:grid; grid-template-columns:.6fr 1fr; min-height:385px; background:#d9e5dc; }.cm-doctor-monogram { display:grid; place-items:center; color:#dcece4; background:#2f6962; font:400 clamp(4.5rem,8vw,8rem)/1 var(--cm-serif); letter-spacing:-.08em; }.cm-doctor-details { padding:38px; }.cm-doctor-details > p { margin:0; color:#537e70; font:500 9px var(--cm-mono); letter-spacing:.1em; }.cm-doctor-details h3 { margin:16px 0 8px; font:400 clamp(2.2rem,3.2vw,3.7rem)/.84 var(--cm-serif); letter-spacing:-.055em; }.cm-doctor-details > span { color:#55736a; font-size:12px; }.cm-doctor-details dl { display:grid; grid-template-columns:1fr 1fr; gap:15px; margin:33px 0 26px; padding-top:16px; border-top:1px solid rgba(20,60,58,.25); }.cm-doctor-details dt { color:#607d73; font:500 9px var(--cm-mono); letter-spacing:.06em; }.cm-doctor-details dd { margin:7px 0 0; font:400 1.2rem var(--cm-serif); }.cm-outline-button { min-height:44px; padding:0; border:0; border-bottom:1px solid var(--cm-ink); color:var(--cm-ink); background:transparent; font-size:10px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }.cm-outline-button span { margin-left:9px; color:var(--cm-coral); font-size:16px; }
.cm-calendar { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(50px,11vw,170px); align-items:center; }.cm-calendar-copy h2 { margin:19px 0 26px; }.cm-calendar-copy > p:last-child { margin:0; }.cm-calendar-card { overflow:hidden; color:#e9f1eb; background:var(--cm-forest); box-shadow:0 22px 46px rgba(13,43,42,.18); }.cm-calendar-head { display:flex; justify-content:space-between; align-items:start; padding:29px; border-bottom:1px solid rgba(233,241,235,.22); }.cm-calendar-head small { display:block; color:#a3c9b8; font:500 9px var(--cm-mono); letter-spacing:.1em; }.cm-calendar-head strong { display:block; margin-top:12px; font:400 2.25rem/.85 var(--cm-serif); }.cm-calendar-head > span { padding-top:3px; color:#b8cbc1; font-size:10px; text-align:right; }.cm-day-switcher { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid rgba(233,241,235,.22); }.cm-day-switcher button { min-height:83px; border:0; border-right:1px solid rgba(233,241,235,.17); color:#b9cec2; background:transparent; transition:color .2s ease,background .2s ease; }.cm-day-switcher button:last-child { border-right:0; }.cm-day-switcher button.is-current,.cm-day-switcher button:hover { color:var(--cm-forest); background:#e9f1eb; }.cm-day-switcher small { display:block; font:500 9px var(--cm-mono); letter-spacing:.08em; }.cm-day-switcher b { display:block; margin-top:9px; font:400 1.8rem var(--cm-serif); }.cm-slots { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; padding:28px; }.cm-slots button { min-height:53px; border:1px solid rgba(233,241,235,.35); color:#e9f1eb; background:transparent; font:400 1.35rem var(--cm-serif); transition:background .2s ease,color .2s ease; }.cm-slots button.is-selected,.cm-slots button:hover { color:var(--cm-forest); background:#b7d3c3; }.cm-calendar-confirm { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:0 28px; padding:18px 0; border-top:1px solid rgba(233,241,235,.22); }.cm-calendar-confirm p { max-width:210px; margin:0; color:#b4c8be; font-size:10px; line-height:1.5; }.cm-calendar-confirm .cm-primary-button { width:165px; min-height:45px; }.cm-calendar-feedback { min-height:22px; margin:0 28px 16px; color:#c3dacd; font-size:11px; }
.cm-privacy { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,14vw,220px); padding:130px 12.8vw; color:#e7eee9; background:#275b55; }.cm-privacy h2 { font-size:clamp(3.4rem,5.8vw,6.6rem); }.cm-privacy-copy > p { max-width:425px; margin:6px 0 37px; color:#c5d8ce; font-size:15px; line-height:1.65; }.cm-privacy-copy ul { margin:0; padding:0; border-top:1px solid rgba(231,238,233,.3); list-style:none; }.cm-privacy-copy li { display:grid; grid-template-columns:44px 1fr; gap:12px; padding:15px 0; border-bottom:1px solid rgba(231,238,233,.3); font:400 1.35rem/1 var(--cm-serif); }.cm-privacy-copy li span { padding-top:4px; color:#afcfbe; font:500 9px var(--cm-mono); }.cm-privacy-copy small { display:block; max-width:395px; margin-top:24px; color:#b5cabf; font-size:10px; line-height:1.6; }.cm-final { padding:152px 22px; color:var(--cm-forest); background:#d5e3da; text-align:center; }.cm-final h2 { margin:20px 0 43px; font-size:clamp(4.4rem,8vw,9.1rem); }.cm-final-button { display:inline-flex; align-items:center; justify-content:center; gap:11px; min-width:235px; min-height:53px; padding:0 19px; color:#fff; background:var(--cm-forest); font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }.cm-final-button:hover { background:#356c63; transform:translateY(-2px); }.cm-final-button span { color:#e58a6f; font-size:15px; }.cm-footer { display:flex; justify-content:space-between; gap:20px; padding:22px 4.8vw; color:#638078; background:var(--cm-paper); font:500 9px var(--cm-mono); letter-spacing:.08em; }.cm-footer a { color:#c36952; }
a:focus-visible,button:focus-visible,select:focus-visible { outline:2px solid var(--cm-coral); outline-offset:4px; } @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; } }
@media (max-width:850px) { .cm-title-desktop { display:none; }.cm-title-mobile { display:inline; }.cm-header { grid-template-columns:1fr auto; min-height:67px; padding:0 22px; }.cm-mark,.cm-nav { display:none; }.cm-logo { grid-column:1; justify-self:start; font-size:1.2rem; text-align:left; }.cm-header-actions { grid-column:2; gap:0; }.cm-hero { display:block; min-height:0; padding:0 0 26px; }.cm-hero:after { right:-62%; bottom:22%; width:520px; height:520px; }.cm-hero-grid { grid-template-columns:repeat(2,1fr); }.cm-hero-copy { padding:112px 22px 74px; }.cm-hero h1 { font-size:clamp(3.85rem,17vw,4.6rem); }.cm-lede { max-width:300px; margin-top:31px; }.cm-booking-card { width:auto; margin:0 12px; padding:22px; }.cm-booking-card h2 { font-size:3rem; }.cm-assurance { display:block; padding:21px 22px; }.cm-assurance ul { flex-wrap:wrap; gap:10px 18px; margin-top:13px; font-size:8px; }.cm-section { padding:92px 22px; }.cm-section-top { display:block; }.cm-index { margin-bottom:29px; }.cm-section-top h2,.cm-specialists h2,.cm-calendar h2,.cm-privacy h2 { font-size:clamp(2.9rem,12.1vw,3.8rem); }.cm-section-top > p:last-child { margin:26px 0 0; }.cm-steps { margin-top:48px; }.cm-steps li { grid-template-columns:42px 1fr; gap:15px; min-height:0; padding:24px 0; }.cm-steps b { grid-column:2; justify-self:start; margin-top:-4px; }.cm-specialists { padding-top:0; }.cm-specialists-head { display:block; }.cm-specialists-head > p { margin:25px 0 0; }.cm-doctor-layout { display:block; margin-top:48px; }.cm-doctor-list button { min-height:102px; padding:17px; }.cm-doctor-panel { grid-template-columns:1fr; min-height:0; }.cm-doctor-monogram { min-height:120px; }.cm-doctor-details { min-width:0; padding:26px 20px; }.cm-doctor-details h3 { font-size:2.6rem; }.cm-doctor-details dl { display:block; margin:24px 0 20px; }.cm-doctor-details dl div + div { margin-top:13px; }.cm-calendar { display:block; }.cm-calendar-copy > p:last-child { margin:24px 0 0; }.cm-calendar-card { margin-top:45px; }.cm-calendar-head { padding:22px; }.cm-calendar-head strong { font-size:2rem; }.cm-calendar-head > span { max-width:120px; font-size:9px; }.cm-slots { padding:20px; }.cm-calendar-confirm { display:block; margin:0 20px; }.cm-calendar-confirm p { max-width:none; margin-bottom:15px; }.cm-calendar-confirm .cm-primary-button { width:100%; }.cm-calendar-feedback { margin-right:20px; margin-left:20px; }.cm-privacy { display:block; padding:95px 22px; }.cm-privacy-copy > p { margin-top:28px; }.cm-final { padding:105px 22px; }.cm-final h2 { font-size:clamp(3.35rem,13.5vw,4.3rem); }.cm-footer { display:block; padding:20px 22px; }.cm-footer span + span,.cm-footer a { display:block; margin-top:8px; } }
