@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap');

:root { --font-display:'Cormorant Garamond', Georgia, serif; --font-body:'Manrope', Arial, sans-serif; --ink:#261d22; --paper:#fffaf8; --powder:#f1d4dc; --rose:#b63d60; --violet:#7a78e8; --line:rgba(38,29,34,.14); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body),sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; height:100%; object-fit:cover; }
button,a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--violet); outline-offset:4px; border-radius:4px; }

.site-header { height:82px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(24px,5vw,80px); border-bottom:1px solid var(--line); background:rgba(255,250,248,.92); backdrop-filter:blur(16px); position:sticky; top:0; z-index:50; }
.brand { display:flex; align-items:center; gap:12px; font-weight:700; font-size:15px; letter-spacing:-.02em; }
.brand i { display:block; font-family:var(--font-display),serif; font-weight:600; font-size:14px; color:var(--rose); line-height:.8; }
.brand-mark { width:38px; height:38px; display:inline-grid; place-items:center; border-radius:50% 50% 46% 54%; background:var(--ink); color:white; font:600 25px/1 var(--font-display),serif; transform:rotate(-5deg); }
nav { display:flex; gap:32px; font-size:13px; font-weight:600; }
nav a { position:relative; }
nav a:after { content:''; position:absolute; left:0; right:100%; bottom:-7px; height:2px; background:var(--rose); transition:right .2s ease; }
nav a:hover:after { right:0; }
.site-header>.button { justify-self:end; }

.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:52px; padding:0 22px; background:var(--ink); color:white; border-radius:4px 22px 4px 22px; font-size:13px; font-weight:700; transition:transform .2s ease,border-radius .2s ease; }
.button:hover { transform:translateY(-2px); border-radius:22px 4px 22px 4px; }
.button-small { min-height:42px; padding:0 17px; }
.text-link { display:inline-flex; align-items:center; gap:9px; font-size:13px; font-weight:700; padding-bottom:4px; border-bottom:1px solid currentColor; }

.hero { min-height:calc(100vh - 82px); display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(30px,5vw,80px); align-items:center; padding:clamp(60px,8vw,120px) clamp(24px,7vw,110px); position:relative; overflow:hidden; }
.hero-copy { position:relative; z-index:2; }
.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:700; color:var(--rose); margin:0 0 20px; }
h1,h2,h3 { font-family:var(--font-display),serif; margin:0; font-weight:600; line-height:.95; letter-spacing:-.045em; }
h1 { font-size:clamp(64px,8vw,124px); max-width:760px; }
h1 em { color:var(--rose); font-weight:500; }
.hero-intro { font-size:clamp(16px,1.5vw,20px); line-height:1.65; max-width:560px; margin:34px 0 30px; color:#5f5359; }
.hero-actions { display:flex; align-items:center; gap:28px; flex-wrap:wrap; }
.hero-proof { margin-top:50px; display:flex; gap:38px; }
.hero-proof>div { display:flex; align-items:center; gap:10px; }
.hero-proof strong { font:600 34px/1 var(--font-display),serif; }
.hero-proof span { font-size:10px; line-height:1.5; color:#746970; text-transform:uppercase; letter-spacing:.06em; }
.hero-visual { position:relative; justify-self:end; width:min(100%,650px); }
.image-frame { overflow:hidden; background:var(--powder); }
.hero-image { aspect-ratio:.83; border-radius:45% 45% 8px 8px; box-shadow:0 30px 90px rgba(69,42,55,.16); }
.hero-image img { filter:saturate(.86) contrast(.96); }
.open-card { position:absolute; left:-48px; bottom:70px; padding:22px 25px; min-width:230px; background:var(--paper); box-shadow:0 18px 48px rgba(38,29,34,.14); border:1px solid var(--line); }
.open-card span,.open-card small { display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#776b72; }
.open-card strong { display:block; margin:7px 0 4px; font:600 22px/1 var(--font-display),serif; }
.polish-dots { display:flex; gap:8px; position:absolute; right:-16px; bottom:26px; transform:rotate(-7deg); }
.polish-dots i { width:30px; height:62px; border-radius:50% 50% 44% 44%; display:block; box-shadow:inset 0 -10px 18px rgba(0,0,0,.08); }
.polish-dots i:nth-child(1){background:#921d3c}.polish-dots i:nth-child(2){background:#e7a9b9}.polish-dots i:nth-child(3){background:#6f6bdc}.polish-dots i:nth-child(4){background:#9e234f}.polish-dots i:nth-child(5){background:#d7b66d}
.lacquer-line { width:520px; height:520px; border:30px solid rgba(182,61,96,.08); border-radius:50%; position:absolute; left:-280px; top:3%; }

.marquee { min-height:76px; display:flex; align-items:center; justify-content:space-around; gap:26px; overflow:hidden; padding:0 24px; background:var(--ink); color:white; font:500 clamp(20px,2.5vw,34px)/1 var(--font-display),serif; white-space:nowrap; }
.marquee i { color:var(--powder); font-size:12px; }
.section { padding:clamp(80px,10vw,150px) clamp(24px,7vw,110px); }
.section-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:end; margin-bottom:60px; }
h2 { font-size:clamp(48px,6vw,86px); }
.section-heading>p { color:#685c62; line-height:1.7; max-width:520px; margin:0; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-card { padding:34px 30px; min-height:360px; display:flex; flex-direction:column; border-right:1px solid var(--line); transition:background .25s ease,transform .25s ease; }
.service-card:last-child { border-right:0; }
.service-card:hover { background:white; transform:translateY(-8px); }
.service-card:nth-child(2) { background:rgba(241,212,220,.34); }
.service-label { font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--rose); font-weight:700; }
.service-card h3 { font-size:42px; margin:36px 0 22px; }
.service-card p { color:#675b61; line-height:1.65; font-size:14px; margin:0; }
.service-meta { margin-top:auto; padding-top:34px; display:flex; justify-content:space-between; align-items:baseline; }
.service-meta strong { font:600 25px/1 var(--font-display),serif; }
.service-meta span { font-size:11px; color:#81757b; }
.center-action { text-align:center; margin-top:40px; }

.studio { background:#e8e0dc; display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(50px,7vw,110px); align-items:center; }
.studio-copy>p:not(.eyebrow) { line-height:1.75; color:#61565b; max-width:540px; margin:34px 0; }
.feature-list { list-style:none; padding:0; margin:0; border-top:1px solid rgba(38,29,34,.18); }
.feature-list li { padding:15px 0 15px 26px; border-bottom:1px solid rgba(38,29,34,.18); font-size:13px; position:relative; }
.feature-list li:before { content:'✦'; color:var(--rose); position:absolute; left:0; }
.studio-gallery { display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:260px 260px; gap:16px; }
.studio-gallery figure { margin:0; overflow:hidden; }
.gallery-large { grid-row:span 2; border-radius:180px 0 0 0; }
.studio-gallery figure:nth-child(2) { border-radius:0 120px 0 0; }
.studio-gallery blockquote { margin:0; background:var(--rose); color:white; padding:34px; font:500 27px/1.15 var(--font-display),serif; display:flex; flex-direction:column; justify-content:center; }
.studio-gallery blockquote>span { font-size:50px; line-height:.5; opacity:.7; }
.studio-gallery cite { font:600 9px/1.4 var(--font-body),sans-serif; text-transform:uppercase; letter-spacing:.1em; margin-top:22px; opacity:.78; }

.reviews { display:grid; grid-template-columns:.7fr 1.3fr; gap:clamp(50px,9vw,150px); align-items:center; }
.review-score { width:min(100%,390px); aspect-ratio:1; border:1px solid var(--line); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; background:white; box-shadow:0 20px 70px rgba(47,31,39,.08); }
.big-star { position:absolute; top:30px; color:var(--rose); font-size:24px; }
.review-score strong { font:600 clamp(80px,11vw,148px)/.8 var(--font-display),serif; }
.review-score p { font-size:10px; text-align:center; line-height:1.5; text-transform:uppercase; letter-spacing:.1em; margin:20px 0 0; }
.review-copy h2 { max-width:900px; }
.review-chips { display:flex; gap:9px; flex-wrap:wrap; margin:35px 0; }
.review-chips span { border:1px solid var(--line); border-radius:30px; padding:9px 15px; font-size:11px; }

.visit { padding-top:0; }
.visit-panel { background:var(--violet); color:white; padding:clamp(42px,7vw,90px); display:grid; grid-template-columns:1fr 1fr; gap:80px; border-radius:3px 90px 3px 3px; }
.visit .eyebrow { color:#eeeaff; }
.visit h2 { max-width:620px; }
.visit address { font:500 28px/1.35 var(--font-display),serif; margin-top:34px; }
.transit { font-size:12px; color:rgba(255,255,255,.72); }
.visit-actions { display:flex; align-items:center; gap:28px; margin-top:34px; flex-wrap:wrap; }
.visit .button { background:white; color:var(--ink); }
.hours { align-self:center; border-top:1px solid rgba(255,255,255,.3); }
.hours>div { display:flex; justify-content:space-between; padding:13px 0; border-bottom:1px solid rgba(255,255,255,.3); font-size:12px; }

.faq { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px; }
.faq-list { border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); padding:25px 0; }
summary { cursor:pointer; list-style:none; font:600 25px/1.2 var(--font-display),serif; padding-right:34px; position:relative; }
summary::-webkit-details-marker { display:none; }
summary:after { content:'+'; position:absolute; right:3px; font:400 25px/1 var(--font-body),sans-serif; color:var(--rose); }
details[open] summary:after { content:'–'; }
details p { color:#675b61; line-height:1.7; font-size:14px; max-width:720px; }

.final-cta { background:var(--ink); color:white; text-align:center; padding:clamp(100px,13vw,180px) 24px; position:relative; overflow:hidden; }
.final-cta .eyebrow { color:var(--powder); }
.final-cta h2 { font-size:clamp(70px,10vw,140px); position:relative; }
.final-cta .hero-actions { justify-content:center; margin-top:42px; position:relative; }
.button-light { background:var(--powder); color:var(--ink); }
.light-link { color:white; }
.cta-orbit { width:510px; height:510px; border:1px solid rgba(255,255,255,.13); border-radius:50%; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); }
.cta-orbit:before,.cta-orbit:after { content:''; position:absolute; inset:45px; border:1px solid rgba(255,255,255,.08); border-radius:50%; }
.cta-orbit:after { inset:100px; }
.cta-orbit span { position:absolute; top:-9px; left:50%; color:var(--powder); font-size:9px; letter-spacing:.3em; }

footer { padding:46px clamp(24px,7vw,110px) 90px; display:grid; grid-template-columns:1fr 1fr; gap:32px 60px; font-size:11px; }
.footer-brand { display:flex; align-items:center; gap:13px; flex-wrap:wrap; }
.footer-brand>span:last-child { color:#766a70; }
.footer-links { display:flex; align-items:center; justify-content:flex-end; gap:25px; flex-wrap:wrap; font-weight:600; }
.footer-links a { border-bottom:1px solid transparent; }.footer-links a:hover { border-color:currentColor; }
.legal { grid-column:1/-1; padding-top:25px; border-top:1px solid var(--line); color:#675b61; line-height:1.6; }
.legal p { margin:0 0 6px; }
.legal-note { color:var(--rose); }
.mobile-actions { display:none; }

@media (max-width:1050px) {
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .service-card:nth-child(2) { border-right:0; }.service-card:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .studio { grid-template-columns:1fr; }.studio-copy{max-width:720px}
}
@media (max-width:760px) {
  body { padding-bottom:64px; }
  .site-header { height:70px; grid-template-columns:1fr auto; padding:0 18px; }
  nav,.site-header>.button { display:none; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:58px 22px 80px; gap:55px; }
  h1 { font-size:clamp(64px,21vw,90px); }.hero-intro{margin:25px 0}.hero-proof{margin-top:38px;gap:22px}.hero-proof strong{font-size:29px}
  .hero-visual { width:90%; }.open-card{left:-10%;bottom:38px;min-width:195px;padding:17px}.polish-dots{right:-8%;transform:scale(.8) rotate(-7deg)}
  .marquee { justify-content:flex-start; }
  .section { padding:82px 22px; }
  .section-heading,.reviews,.visit-panel,.faq { grid-template-columns:1fr; gap:40px; }.section-heading{margin-bottom:42px}
  .service-grid { grid-template-columns:1fr; }.service-card{min-height:290px;border-right:0;border-bottom:1px solid var(--line);padding:28px 8px}.service-card:nth-child(2){background:transparent}.service-card:last-child{border-bottom:0}
  .studio-gallery { grid-template-columns:1fr 1fr; grid-template-rows:340px 210px; }.gallery-large{grid-column:1/-1;grid-row:auto;border-radius:110px 0 0 0}.studio-gallery blockquote{padding:22px;font-size:21px}
  .review-score { width:290px; margin:0 auto; }.visit{padding-top:0}.visit-panel{padding:44px 25px;border-radius:3px 55px 3px 3px}
  footer { grid-template-columns:1fr; padding-bottom:40px; }.footer-links{justify-content:flex-start}.legal{grid-column:auto}
  .mobile-actions { position:fixed; left:0; right:0; bottom:0; z-index:100; height:64px; display:grid; grid-template-columns:.7fr 1.3fr; background:white; box-shadow:0 -10px 30px rgba(38,29,34,.12); }
  .mobile-actions a { display:grid; place-items:center; font-size:12px; font-weight:700; }.mobile-actions a:last-child{background:var(--rose);color:white}
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important} }
