:root{--bg:#f7f7f5;--surface:#ececea;--ink:#0d0d0d;--muted:#66625f;--wine:#b10d2f;--radius-lg:42px;--radius-md:28px;--shadow:0 18px 60px rgba(30,12,17,.09);--page:min(94vw,1500px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}img{display:block;width:100%}a{color:inherit;text-decoration:none}button{font:inherit}.shell{width:var(--page);margin-inline:auto}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;padding:12px 18px;background:#fff;border-radius:999px}.skip-link:focus{top:16px}
.site-header{position:sticky;top:0;z-index:50;padding:10px 0;background:rgba(247,247,245,.82);backdrop-filter:blur(16px)}.nav{min-height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:28px;padding:8px 10px 8px 24px;background:rgba(255,255,255,.94);border-radius:999px;box-shadow:0 8px 28px rgba(0,0,0,.05)}.brand{font-size:22px;font-weight:900;letter-spacing:-.06em}.brand span{color:var(--wine)}.nav-links{display:flex;gap:clamp(18px,2.4vw,42px);font-size:14px}.nav-links a{padding:12px 0}.phone-pill,.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:999px;padding:0 22px;font-weight:700;font-size:14px}.phone-pill{justify-self:end;color:#fff;background:#050505}.menu-toggle{display:none}.card{border-radius:var(--radius-lg);overflow:hidden}
.hero{display:grid;grid-template-columns:.93fr 1.07fr;gap:16px;min-height:720px;padding:8px 0 20px}.hero-copy{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(28px,4vw,64px);background:var(--surface)}.rating-chip{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:7px 13px 7px 7px;background:#fff;border-radius:999px;font-size:12px}.avatars{display:flex;padding-left:6px}.avatars img{width:32px;height:32px;object-fit:cover;border:2px solid #fff;border-radius:50%;margin-left:-7px}.eyebrow,.section-kicker{margin:0 0 16px;color:var(--wine);font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.hero h1{margin:auto 0;font-size:clamp(52px,7.2vw,122px);line-height:.82;letter-spacing:-.085em;font-weight:800}.hero h1 em{color:var(--wine);font-style:normal}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.hero-bottom p{max-width:320px;margin:0;color:var(--muted);line-height:1.35}.button-dark{color:#fff;background:#050505}.button-dark:hover,.phone-pill:hover{background:var(--wine)}.button-light{background:#fff}.button-outline{color:#fff;border:1px solid rgba(255,255,255,.55)}.hero-photo{position:relative;background:#ddd}.hero-photo>img{height:100%;object-fit:cover}.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.52))}.hero-photo figcaption{position:absolute;z-index:2;left:32px;right:32px;bottom:28px;display:flex;justify-content:space-between;color:#fff}.hero-photo figcaption strong{font-size:18px}
.standards{display:grid;grid-template-columns:1.45fr .55fr;gap:30px;margin-top:16px;padding:clamp(34px,5vw,74px);color:#fff;background:var(--wine);border-radius:var(--radius-lg)}.standards .section-kicker{color:rgba(255,255,255,.66)}.standards h2,.section-heading h2,.wide-story h2,.contact h2{margin:0;font-size:clamp(42px,5.3vw,84px);line-height:.92;letter-spacing:-.065em;font-weight:500}.standards-lead{max-width:620px;margin:20px 0 50px;color:rgba(255,255,255,.76)}.standards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.standards-grid article{border-top:1px solid rgba(255,255,255,.35);padding-top:18px}.standards-grid span{opacity:.6;font-size:12px}.standards-grid h3{margin:16px 0 8px;font-size:18px;line-height:1}.standards-grid p{margin:0;color:rgba(255,255,255,.68);font-size:13px}.standards-photo{position:relative;min-height:430px;margin:0;border-radius:32px;overflow:hidden}.standards-photo img{height:100%;object-fit:cover}.standards-photo figcaption{position:absolute;left:18px;bottom:18px;padding:10px 14px;background:#fff;color:var(--ink);border-radius:999px;font-size:12px}
.programs,.gallery{padding:clamp(80px,10vw,150px) 0 40px}.section-heading{text-align:center;max-width:900px;margin:0 auto 54px}.section-heading p:last-child{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{min-height:340px;display:flex;flex-direction:column;padding:28px;background:var(--surface);border-radius:var(--radius-md)}.service-card h3{margin:28px 0 14px;font-size:clamp(26px,2.5vw,42px);line-height:.95;letter-spacing:-.055em;font-weight:500}.service-card p{color:var(--muted);line-height:1.45}.service-index{color:var(--wine);font-size:12px;font-weight:800}.price{margin-top:auto;font-size:18px}.service-photo{position:relative;padding:0;overflow:hidden}.service-photo img{height:100%;object-fit:cover}.service-photo::after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.78))}.service-photo div{position:absolute;z-index:2;left:28px;bottom:26px;display:grid;color:#fff}.service-photo strong{margin-top:6px;font-size:22px}.service-accent{color:#fff;background:var(--wine)}.service-accent .service-index,.service-accent p{color:rgba(255,255,255,.76)}
.wide-story{position:relative;min-height:690px;margin-top:80px;border-radius:var(--radius-lg);overflow:hidden}.wide-story>img{position:absolute;inset:0;height:100%;object-fit:cover}.wide-story::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.05))}.wide-story-copy{position:absolute;z-index:2;left:clamp(28px,6vw,96px);top:50%;transform:translateY(-50%);color:#fff}.wide-story-copy .section-kicker{color:rgba(255,255,255,.7)}.wide-story-copy .button{margin-top:36px}
.gallery-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-auto-rows:300px;gap:16px}.gallery-item{padding:0;border:0;border-radius:var(--radius-md);overflow:hidden;cursor:zoom-in;background:#ddd}.gallery-item img{height:100%;object-fit:cover;transition:transform .5s}.gallery-item:hover img{transform:scale(1.035)}.gallery-tall{grid-row:span 2}
.review-band{display:grid;grid-template-columns:.35fr 1fr auto;align-items:center;gap:clamp(30px,6vw,100px);margin-top:80px;padding:clamp(30px,5vw,70px);background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.review-score strong{display:block;color:var(--wine);font-size:76px;line-height:.8}.review-score span{color:var(--wine)}.review-score p{color:var(--muted);font-size:12px}blockquote{margin:0;font-size:clamp(23px,2.6vw,42px);line-height:1.05;letter-spacing:-.04em}
.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:80px;padding:clamp(36px,6vw,88px);color:#fff;background:var(--wine);border-radius:var(--radius-lg)}.contact .section-kicker{color:rgba(255,255,255,.65)}.contact-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}.contact-details{display:grid;grid-template-columns:repeat(2,1fr);gap:36px}.contact-details article{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid rgba(255,255,255,.35)}.contact-details article:first-child{grid-column:span 2}.contact-details span{color:rgba(255,255,255,.6);font-size:12px;text-transform:uppercase;letter-spacing:.13em}.contact-details strong{font-size:22px}.contact-details a{width:max-content;border-bottom:1px solid rgba(255,255,255,.5)}.footer{min-height:150px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:var(--muted);font-size:12px}
.lightbox{width:min(94vw,900px);padding:0;border:0;border-radius:28px;overflow:hidden;background:#111}.lightbox::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(7px)}.lightbox img{max-height:86vh;object-fit:contain}.lightbox-close{position:absolute;z-index:3;top:12px;right:12px;width:44px;height:44px;border:0;border-radius:50%;color:#fff;background:rgba(0,0,0,.62);font-size:28px}.reveal{opacity:0;transform:translateY(18px);transition:.55s}.reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:3px solid #ffccda;outline-offset:3px}
@media(max-width:980px){.nav{grid-template-columns:1fr auto auto}.menu-toggle{display:grid;place-content:center;width:46px;height:46px;padding:0;border:0;border-radius:50%;background:var(--surface)}.menu-toggle span{width:20px;height:2px;margin:2px;background:var(--ink)}.nav-links{position:absolute;top:82px;left:3vw;right:3vw;display:none;padding:20px;background:#fff;border-radius:24px;box-shadow:var(--shadow)}.nav-links.is-open{display:grid}.phone-pill{font-size:0;width:46px;padding:0}.phone-pill::before{content:"☎";font-size:18px}.hero{grid-template-columns:1fr}.hero-copy{min-height:620px}.hero-photo{min-height:640px}.standards{grid-template-columns:1fr}.standards-photo{min-height:520px}.service-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.review-band{grid-template-columns:1fr}.review-band .button{justify-self:start}.contact{grid-template-columns:1fr}}
@media(max-width:640px){:root{--page:calc(100vw - 20px);--radius-lg:28px;--radius-md:22px}.site-header{padding:6px 0}.nav{min-height:56px;padding-left:16px}.phone-pill,.menu-toggle{width:42px;height:42px;min-height:42px}.hero-copy{min-height:530px;padding:24px}.hero h1{font-size:clamp(48px,16vw,72px)}.hero-bottom{align-items:stretch;flex-direction:column}.hero-bottom .button{align-self:flex-start}.hero-photo{min-height:520px}.standards{padding:32px 24px}.standards h2,.section-heading h2,.wide-story h2,.contact h2{font-size:clamp(38px,12vw,58px)}.standards-grid{grid-template-columns:1fr}.standards-photo{min-height:430px}.programs,.gallery{padding-top:90px}.service-grid{grid-template-columns:1fr}.service-card{min-height:310px}.wide-story{min-height:580px;margin-top:50px}.wide-story>img{object-position:58%}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:220px;gap:10px}.review-band{margin-top:50px;padding:30px 24px}.contact{gap:50px;margin-top:50px;padding:36px 24px}.contact-details{grid-template-columns:1fr}.contact-details article:first-child{grid-column:auto}.footer{align-items:flex-start;flex-direction:column;padding:42px 4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
