:root {
  --ink: #4f2b34;
  --cream: #fdf9f5;
  --sand: #f1ded4;
  --blush: #f8eee9;
  --stone: #f5f0e8;
  --gold: #a95568;
  --gold-soft: #d7aa9b;
  --muted: #80646a;
  --line: #ead9d2;
  --white: #ffffff;
  --button: #6b3541;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font: 15px/1.65 Montserrat, Arial, sans-serif; }
a { color: inherit; text-decoration: none; }
.header { height: 104px; display: flex; align-items: center; justify-content: space-between; padding: 0 6vw; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.8); }
.logo { display: inline-flex; align-items: center; gap: 10px; height: 90px; }
.logo img { display: block; width: 90px; height: 90px; object-fit: contain; }
.brand-wordmark { display: grid; gap: 1px; color: var(--ink); line-height: 1; }
.footer-logo { height: auto; gap: 14px; padding: 10px 0; }
.footer-logo img { display: block; width: auto; height: 120px; }
.footer-logo .brand-wordmark strong { font-size: 32px; }
.footer-logo .brand-wordmark small { font-size: 10px; }
.footer-logo .logo-media small { font-size: 10px; }
.nav { display: flex; gap: 30px; font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }.nav a:hover,.button-link:hover { color: var(--gold); }
.nav-cta,.button-link { display: flex; align-items: center; gap: 8px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .7px; text-transform: uppercase; }.nav-cta svg,.button-link svg { width: 15px; }.menu-button { display: none; border: 0; background: transparent; color: var(--ink); }
.hero { min-height: 620px; display: grid; grid-template-columns: 1.07fr .93fr; gap: 9vw; padding: 66px 9vw 70px; }.hero-copy { max-width: 605px; align-self: center; }
.kicker,.section-label { margin: 0; color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; }.hero h1,.section h2,.insurance h2 { margin: 16px 0 0; font: 600 clamp(50px,5.2vw,78px)/.95 'Cormorant Garamond', serif; }.hero h1 em,.section h2 em,.insurance h2 em { color: var(--gold); font-weight: 500; }.hero-description { max-width: 450px; margin: 27px 0 31px; color: var(--muted); }
.hero-actions { display: flex; align-items: center; gap: 24px; }.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: 0; padding: 16px 20px; font: 700 11px Montserrat, sans-serif; letter-spacing: .7px; text-transform: uppercase; cursor: pointer; }.button svg { width: 16px; }.button-dark { background: var(--button); color: #fff; }.button-dark:hover,.button-gold:hover { background: var(--gold); }.button-gold { background: var(--gold); color: #fff; }
.hero-details { display: flex; gap: 25px; margin: 39px 0 0; padding-top: 17px; border-top: 1px solid var(--line); }.hero-details div { display: grid; gap: 2px; }.hero-details dt { font-size: 9px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }.hero-details dd { margin: 0; color: var(--muted); font-size: 10px; }
.hero-portrait { height: 560px; align-self: center; position: relative; }.portrait-border { position: absolute; inset: -14px 14px 14px -14px; z-index: -1; border: 1px solid var(--gold-soft); }.hero-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 25%; filter: saturate(.62) sepia(.05); }.portrait-caption { position: absolute; bottom: 19px; left: -28px; display: flex; align-items: center; gap: 9px; padding: 12px 15px; background: var(--white); box-shadow: 0 8px 24px rgba(91,46,58,.12); font-size: 9px; font-weight: 600; }.portrait-caption span { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.statement { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 29px 9vw; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--sand); }.statement p { max-width: 690px; margin: 0; font: 500 25px/1.25 'Cormorant Garamond', serif; }.statement a { display: flex; align-items: center; gap: 8px; color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; }.statement svg { width: 15px; }
.section { padding: 112px 9vw; }.section-label { display: flex; align-items: center; gap: 17px; }.section-label span { color: var(--muted); }.about { background: var(--blush); }.about-copy { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10vw; max-width: 1110px; margin: 45px auto 0; }.about h2,.practice-heading h2 { margin: 0; font-size: 57px; }.about-copy>div { padding-top: 8px; }.about-copy p,.practice-heading p { margin: 0 0 17px; color: var(--muted); font-size: 14px; }.about-copy .button-link { margin-top: 13px; }
.practice { background: var(--cream); }.practice-heading { display: grid; grid-template-columns: 1.1fr .65fr; gap: 8vw; align-items: end; margin: 45px 0; }.practice-heading p { max-width: 350px; margin: 0; }.practice-list { border-top: 1px solid var(--line); }.practice-list article { min-height: 103px; display: grid; grid-template-columns: 70px 1fr 1fr 42px; gap: 18px; align-items: center; border-bottom: 1px solid var(--line); }.practice-list article>span { color: var(--gold); font-size: 11px; font-weight: 700; }.practice-list h3 { margin: 0; font: 600 30px 'Cormorant Garamond', serif; }.practice-list p { margin: 0; color: var(--muted); font-size: 13px; }.practice-list a { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); }.practice-list a:hover { background: var(--gold); color: #fff; }.practice-list svg { width: 15px; }
.insurance { display: grid; grid-template-columns: .92fr 1.08fr; background: #f8f0ec; color: var(--ink); }.insurance-visual { height: 610px; position: relative; }.insurance-visual img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.4) sepia(.1); }.insurance-visual::after { content: ''; position: absolute; inset: 24px -24px 0 24px; border: 1px solid var(--gold-soft); pointer-events: none; }.insurance-visual p { position: absolute; z-index: 1; bottom: 26px; left: 0; margin: 0; padding: 12px 18px; background: var(--white); box-shadow: 0 8px 24px rgba(91,46,58,.1); font-size: 9px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; }.insurance-copy { max-width: 610px; padding: 86px 8vw 75px 11vw; }.insurance-copy h2 { font-size: 57px; }.insurance-copy>p:not(.kicker) { max-width: 465px; margin: 23px 0 29px; color: var(--muted); font-size: 14px; }.insurance-copy ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }.insurance-copy li { display: grid; grid-template-columns: 29px 1fr; gap: 11px; padding: 14px 0; border-bottom: 1px solid var(--line); }.insurance-copy li svg { width: 19px; margin-top: 3px; color: var(--gold); stroke-width: 1.4; }.insurance-copy li span { display: grid; color: var(--muted); font-size: 12px; }.insurance-copy li strong { color: var(--ink); font-size: 13px; }.insurance-copy .button { margin-top: 29px; }
.booking { display: grid; grid-template-columns: .78fr 1.22fr; gap: 11vw; }.booking-intro h2 { margin-top: 34px; font-size: 62px; }.booking-intro>p { max-width: 330px; color: var(--muted); font-size: 14px; }.booking-form { padding: 31px; border: 1px solid var(--line); background: var(--white); box-shadow: 9px 9px 0 var(--sand); }.booking-form label { display: grid; gap: 7px; margin-bottom: 15px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; }.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.booking-form input,.booking-form select { width: 100%; border: 1px solid var(--line); padding: 12px; background: #fffefa; color: var(--ink); font: 13px Montserrat,sans-serif; }.booking-form input:focus,.booking-form select:focus { outline: 1px solid var(--gold); }.selection { margin: 23px 0; }.selection p { margin: 16px 0 8px; color: var(--muted); font-size: 10px; font-weight: 600; letter-spacing: .6px; text-transform: uppercase; }.date-options,.time-options { display: flex; flex-wrap: wrap; gap: 7px; }.choice { border: 1px solid var(--line); padding: 8px 9px; background: #fffefa; color: var(--ink); font: 500 11px Montserrat,sans-serif; cursor: pointer; }.choice:hover,.choice.selected { border-color: var(--button); background: var(--button); color: #fff; }.submit { width: 100%; }.booking-form small { display: block; margin-top: 11px; color: var(--muted); font-size: 10px; text-align: center; }
.offices { background: var(--stone); }
.offices h2 { margin: 16px 0 0; font: 600 clamp(50px,5.2vw,78px)/.95 'Cormorant Garamond', serif; }
.offices h2 em { color: var(--gold); font-weight: 500; }
.offices-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 45px; }
.offices-grid article { display: flex; gap: 20px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.offices-grid h3 { margin: 0 0 8px; font: 600 30px 'Cormorant Garamond', serif; }
.offices-grid p { margin: 0; color: var(--muted); font-size: 13px; }
.offices-grid svg { width: 28px; height: 28px; flex-shrink: 0; color: var(--gold); stroke-width: 1.4; }
footer { display: grid; grid-template-columns: 1fr 1fr; padding: 52px 9vw 28px; background: var(--white); border-top: 1px solid var(--gold-soft); }footer>div:first-child p { margin: 14px 0 0; color: var(--muted); font-size: 12px; }.footer-contact { border-top: 1px solid var(--line); }.footer-contact a { display: grid; grid-template-columns: 90px 1fr 18px; gap: 10px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; }.footer-contact span { color: var(--muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }.footer-contact svg { width: 15px; color: var(--gold); }.footer-bottom { grid-column: 1/-1; display: flex; gap: 21px; margin-top: 36px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }.footer-bottom a:last-child { margin-left: auto; }
@media(max-width:760px){.header{height:88px;padding:0 22px;position:relative}.header.menu-open .nav{display:flex;flex-direction:column;position:absolute;top:88px;left:0;right:0;gap:4px;padding:14px 22px 20px;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(91,46,58,.08)}.header.menu-open .nav a{padding:12px 0;border-bottom:1px solid var(--line)}.header.menu-open .nav a:last-child{border-bottom:0}.logo{height:70px;gap:7px}.logo img{width:70px;height:70px}.brand-wordmark strong{font-size:19px}.brand-wordmark small{font-size:7px;letter-spacing:1.7px}.footer-logo{height:auto;gap:12px;padding:8px 0}.footer-logo img{width:auto;height:100px}.footer-logo .brand-wordmark strong{font-size:28px}.footer-logo .brand-wordmark small{font-size:9px}.nav,.nav-cta{display:none}.menu-button{display:block}.hero{display:flex;flex-direction:column;gap:28px;min-height:0;padding:40px 22px 48px}.hero h1{font-size:42px}.hero h1,.section h2,.insurance h2{margin-top:12px}.hero-description{margin:16px 0 22px}.hero-actions{flex-direction:column;align-items:flex-start;gap:14px}.hero-details{margin-top:26px;padding-top:14px;gap:13px;justify-content:space-between}.hero-details dd{font-size:9px}.hero-portrait{height:380px}.portrait-border{inset:-10px 10px 10px -10px}.portrait-caption{bottom:0;left:0;max-width:250px}.statement{display:block;padding:30px 22px}.statement p{font-size:23px}.statement a{margin-top:20px}.section{padding:70px 22px}.about-copy,.practice-heading{display:block;margin-top:30px}.about h2,.practice-heading h2{font-size:48px}.about-copy>div{padding-top:27px}.practice-heading p{margin-top:19px}.practice-list article{grid-template-columns:30px 1fr 35px;gap:10px;min-height:0;padding:18px 0}.practice-list p{grid-column:2/4}.practice-list h3{font-size:25px}.practice-list a{grid-column:3;grid-row:1;width:32px;height:32px}.insurance{display:flex;flex-direction:column}.insurance-visual{height:340px}.insurance-visual::after{inset:14px -14px 0 14px}.insurance-copy{padding:62px 22px}.insurance-copy h2{font-size:49px}.offices h2{font-size:48px}.offices-grid{grid-template-columns:1fr;gap:20px}.offices-grid article{padding:18px 0}.booking{display:block}.booking-intro{margin-bottom:40px}.booking-intro h2{margin-top:28px;font-size:54px}.booking-form{padding:22px;box-shadow:6px 6px 0 var(--sand)}.field-grid{grid-template-columns:1fr;gap:0}footer{display:block;padding:42px 22px 24px;background:var(--white);border-top:1px solid var(--gold-soft)}.footer-contact{margin-top:30px;border-top:1px solid var(--line)}.footer-contact a{grid-template-columns:72px 1fr 15px;font-size:10px}.footer-contact span{font-size:10px;overflow-wrap:anywhere}.footer-bottom{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;padding-top:12px;border-top:1px solid var(--line)}.footer-bottom a:last-child{margin-left:0}}
