
:root{--ink:#272220;--muted:#6f6661;--cream:#fffaf0;--paper:#fff;--yellow:#f5d44e;--pink:#e96e8b;--green:#71ab9a;--blue:#5e8fb2;--line:#e9e1d6;--shadow:0 20px 55px rgba(63,49,37,.12);--radius:28px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.55}img{max-width:100%;display:block}a{color:inherit}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;z-index:999;background:#fff;padding:12px}
.site-header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:10px clamp(20px,5vw,72px);position:sticky;top:0;z-index:50;background:rgba(255,250,240,.92);backdrop-filter:blur(16px);border-bottom:1px solid rgba(233,225,214,.8)}.brand img{width:285px;max-height:64px}.site-header nav{display:flex;align-items:center;gap:23px}.site-header nav a{text-decoration:none;font-weight:700;font-size:14px}.nav-cta{background:var(--ink);color:#fff!important;padding:12px 18px;border-radius:999px}.menu-toggle{display:none;border:0;background:var(--ink);color:#fff;border-radius:999px;padding:10px 16px;font-weight:800}
.hero{min-height:720px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;background:#f4cf4b}.hero-media{min-height:720px}.hero-media img{width:100%;height:100%;object-fit:cover}.hero-copy{padding:clamp(55px,8vw,125px);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.46),transparent 34%),#f4cf4b}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:900;margin:0 0 14px;color:#8b3f55}.hero h1,.section h2,.visit h2{font-family:"Nunito",sans-serif;letter-spacing:-.045em;line-height:.95}.hero h1{font-size:clamp(54px,7vw,98px);margin:0 0 25px;max-width:800px}.hero-copy>p:not(.eyebrow){font-size:19px;max-width:630px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.button{display:inline-flex;text-decoration:none;padding:15px 22px;border-radius:999px;font-weight:900;justify-content:center}.button.primary{background:var(--ink);color:#fff}.button.secondary{background:rgba(255,255,255,.75);border:1px solid rgba(39,34,32,.18)}.hero-points{display:flex;gap:10px;flex-wrap:wrap}.hero-points span,.feature-list span{background:rgba(255,255,255,.58);border:1px solid rgba(39,34,32,.12);padding:8px 12px;border-radius:999px;font-weight:700;font-size:13px}
.quick-facts{display:grid;grid-template-columns:repeat(4,1fr);padding:28px clamp(20px,5vw,72px);background:var(--ink);color:#fff}.quick-facts div{padding:6px 28px;border-right:1px solid rgba(255,255,255,.15)}.quick-facts div:last-child{border:0}.quick-facts strong{display:block;font-family:"Nunito";font-size:28px}.quick-facts span{color:#d6cfca;font-size:13px}
.section,.specials-wrap{padding:100px clamp(20px,6vw,90px)}.section-heading{margin-bottom:42px}.section-heading.split{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end}.section-heading h2{font-size:clamp(42px,5vw,74px);margin:0;max-width:900px}.section-heading>p:last-child{color:var(--muted);max-width:600px}.services{background:#fff}.service-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:28px}.service-filters button{border:1px solid var(--line);background:#fff;padding:10px 15px;border-radius:999px;font-weight:800;cursor:pointer}.service-filters button.active{background:var(--ink);color:#fff}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{background:#fffaf1;border:1px solid var(--line);border-radius:22px;padding:24px;display:flex;flex-direction:column;min-height:220px}.service-card .category{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:#9e5268}.service-card h3{font-family:"Nunito";font-size:23px;line-height:1.05;margin:10px 0}.service-card p{color:var(--muted);font-size:14px;flex:1}.service-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.price{font-family:"Nunito";font-weight:900;font-size:22px}.service-card a{text-decoration:none;font-weight:900;font-size:13px;border-bottom:2px solid var(--pink)}
.data-note{font-size:13px;color:var(--muted);margin-top:20px}.gallery-section{background:#f3e9dc}.gallery-grid{columns:4 230px;column-gap:12px}.gallery-item{width:100%;padding:0;border:0;background:none;margin:0 0 12px;break-inside:avoid;cursor:zoom-in;border-radius:18px;overflow:hidden}.gallery-item img{width:100%;transition:transform .35s}.gallery-item:hover img{transform:scale(1.035)}
.social-section{background:#fff}.social-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.social-card{background:#faf7f2;border:1px solid var(--line);border-radius:26px;padding:22px;overflow:hidden;min-width:0}.social-card-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:18px}.social-card-head span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.social-card-head strong{display:block}.social-card-head a{font-size:13px;font-weight:900}
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center;background:#ef778e}.about-photo img{width:100%;height:650px;object-fit:cover;border-radius:var(--radius);box-shadow:var(--shadow)}.about-copy h2{font-size:clamp(42px,5vw,70px);margin:0 0 24px}.about-copy>p:not(.eyebrow){font-size:18px}.feature-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.team-section{background:#fff}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.team-card{border:1px solid var(--line);border-radius:26px;overflow:hidden;background:#fff}.team-card img{width:100%;height:430px;object-fit:cover;object-position:center top}.team-copy{padding:24px}.team-copy h3{font-family:"Nunito";font-size:28px;margin:0}.team-role{color:#a14562;font-weight:900;margin:3px 0 13px}.team-bio{color:var(--muted);font-size:14px;max-height:210px;overflow:auto;padding-right:8px}
.visit{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;background:#f3e9dc}.visit-card,.hours-card{background:#fff;border-radius:var(--radius);padding:clamp(32px,5vw,64px)}.visit h2{font-size:clamp(45px,5vw,76px);margin:0 0 20px}.contact-links{display:grid;gap:12px;margin-top:35px}.contact-links a{text-decoration:none;padding:15px 0;border-top:1px solid var(--line)}.contact-links span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:900;color:#9a5265}.hours-card h3{font-family:"Nunito";font-size:32px;margin-top:0}.hour-row{display:flex;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.hour-row strong{font-weight:900}.hour-row span{color:var(--muted)}
.specials-wrap{background:var(--yellow)}.specials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.special-card{background:#fff;border-radius:22px;padding:24px}
footer{padding:46px clamp(20px,6vw,90px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;background:var(--ink);color:#fff}footer img{width:260px;background:#fff;border-radius:15px}.footer-links{display:flex;gap:18px}.footer-links a{color:#fff;font-weight:800}footer p{grid-column:1/-1;color:#bfb7b2;font-size:12px}
.lightbox{position:fixed;inset:0;background:rgba(20,17,16,.94);z-index:100;display:grid;place-items:center;padding:40px}.lightbox[hidden]{display:none}.lightbox img{max-height:90vh;max-width:90vw;border-radius:14px}.lightbox-close{position:absolute;right:25px;top:18px;background:none;color:#fff;border:0;font-size:50px;cursor:pointer}
@media(max-width:980px){.site-header nav{display:none;position:absolute;top:86px;left:0;right:0;background:#fff;padding:25px;flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.menu-toggle{display:block}.hero{grid-template-columns:1fr}.hero-media{min-height:470px}.hero-copy{padding:55px 25px}.quick-facts{grid-template-columns:1fr 1fr}.quick-facts div{border-bottom:1px solid rgba(255,255,255,.15)}.section-heading.split,.about,.visit,.social-grid{grid-template-columns:1fr}.services-grid,.team-grid{grid-template-columns:1fr 1fr}.about-photo img{height:500px}.gallery-grid{columns:3 180px}}
@media(max-width:650px){.site-header{height:74px;padding:8px 15px}.brand img{width:210px}.site-header nav{top:74px}.hero-media{min-height:380px}.hero h1{font-size:52px}.quick-facts{grid-template-columns:1fr}.quick-facts div{border-right:0}.section,.specials-wrap{padding:72px 18px}.services-grid,.team-grid,.specials-grid{grid-template-columns:1fr}.gallery-grid{columns:2 140px}.section-heading h2{font-size:44px}.team-card img{height:440px}footer{grid-template-columns:1fr}.footer-links{flex-wrap:wrap}}
