@font-face { font-family:"Cormorant Garamond"; src:url("fonts/cormorant-garamond.woff2") format("woff2"); font-style:normal; font-weight:500 700; font-display:swap; }
@font-face { font-family:"Manrope"; src:url("fonts/manrope.woff2") format("woff2"); font-style:normal; font-weight:400 700; font-display:swap; }

:root { --font-display:"Cormorant Garamond"; --font-body:"Manrope"; --mint:#a8d8c3; --deep-mint:#164f46; --forest:#123b35; --plum:#3f2938; --rose:#e6a6ad; --pearl:#f7f3ed; --ink:#202423; --line:rgba(18,59,53,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--pearl); color:var(--ink); font-family:var(--font-body),Arial,sans-serif; font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
a:focus-visible { outline:3px solid var(--rose); outline-offset:4px; }

.site-header { align-items:center; display:flex; justify-content:space-between; margin:0 auto; max-width:1440px; padding:24px 5vw; }
.brand,.footer-brand { align-items:center; display:flex; gap:12px; }
.brand-mark { align-items:center; background:var(--deep-mint); border-radius:50% 50% 46% 54%/44% 48% 52% 56%; color:white; display:inline-flex; font-family:var(--font-display),Georgia,serif; font-size:26px; height:44px; justify-content:center; width:44px; }
.brand strong { display:block; font-family:var(--font-display),Georgia,serif; font-size:21px; line-height:1; }
.brand small { color:#5f6b68; display:block; font-size:9px; letter-spacing:.16em; margin-top:5px; text-transform:uppercase; }
nav { display:flex; gap:clamp(22px,3vw,48px); }
nav a { font-size:13px; font-weight:600; }
nav a:hover,.text-link:hover,.footer-links a:hover { color:var(--deep-mint); }

.button { align-items:center; background:var(--deep-mint); border:1px solid var(--deep-mint); border-radius:999px; color:white; display:inline-flex; font-size:13px; font-weight:700; gap:18px; justify-content:center; min-height:50px; padding:0 24px; transition:transform .2s ease,background .2s ease; }
.button:hover { background:#0d3c34; transform:translateY(-2px); }
.button-small { min-height:42px; padding:0 20px; }

.hero { display:grid; grid-template-columns:1.05fr .95fr; margin:0 auto; max-width:1440px; min-height:720px; padding:60px 5vw 90px; }
.hero-copy { align-self:center; max-width:670px; padding-right:5vw; }
.eyebrow { color:var(--deep-mint); font-size:11px; font-weight:700; letter-spacing:.2em; margin:0 0 22px; text-transform:uppercase; }
h1,h2 { font-family:var(--font-display),Georgia,serif; font-weight:600; letter-spacing:-.045em; line-height:.94; margin:0; }
h1 { font-size:clamp(65px,7.5vw,120px); }
h1 em { color:var(--deep-mint); font-weight:500; }
.hero-lede { color:#4f5a57; font-size:clamp(16px,1.4vw,20px); max-width:610px; padding:26px 0 10px; }
.hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:25px; margin-top:22px; }
.text-link { border-bottom:1px solid currentColor; font-size:13px; font-weight:700; padding-bottom:3px; }
.rating { align-items:center; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px; margin-top:52px; padding-top:22px; width:fit-content; }
.stars { color:#ce7f87; font-size:12px; letter-spacing:.08em; }
.rating strong { font-size:14px; }
.rating span:last-child { color:#68726f; font-size:12px; }
.hero-visual { align-self:stretch; min-height:620px; position:relative; }
.arch-image { border-radius:260px 260px 20px 20px; height:100%; min-height:620px; overflow:hidden; position:relative; }
.arch-image::after { background:linear-gradient(180deg,transparent 55%,rgba(18,59,53,.32)); content:""; inset:0; position:absolute; }
.arch-image img { height:100%; object-fit:cover; width:100%; }
.open-card { background:var(--plum); border-radius:16px; bottom:34px; color:white; display:flex; flex-direction:column; left:-42px; min-width:205px; padding:19px 22px; position:absolute; z-index:2; }
.open-card span { color:var(--mint); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.open-card strong { font-family:var(--font-display),Georgia,serif; font-size:25px; }
.open-card small { color:#d9ced5; font-size:10px; }
.polish-dots { display:flex; flex-direction:column; gap:8px; position:absolute; right:-18px; top:42%; }
.dot { border:5px solid var(--pearl); border-radius:50%; box-shadow:0 4px 16px rgba(0,0,0,.08); height:34px; width:34px; }
.dot.mint { background:var(--mint); } .dot.pearl { background:#f7ded5; } .dot.plum { background:var(--plum); } .dot.rose { background:var(--rose); }

.intro-band { align-items:center; background:var(--deep-mint); color:white; display:flex; gap:28px; justify-content:center; overflow:hidden; padding:19px 5vw; white-space:nowrap; }
.intro-band p { font-family:var(--font-display),Georgia,serif; font-size:20px; margin:0; }
.intro-band span { color:var(--mint); }
.section { margin:0 auto; max-width:1440px; padding:120px 5vw; }
.section-heading { align-items:end; display:grid; gap:40px; grid-template-columns:1fr 1fr; margin-bottom:58px; }
h2 { font-size:clamp(48px,6vw,84px); }
.section-heading>p { color:#5f6966; justify-self:end; margin:0; max-width:480px; }
.service-grid { display:grid; gap:14px; grid-template-columns:repeat(4,1fr); }
.service-card { background:#fff; border:1px solid rgba(18,59,53,.1); display:flex; flex-direction:column; min-height:410px; overflow:hidden; padding:0 26px 25px; position:relative; transition:transform .25s ease; }
.service-card:hover { transform:translateY(-6px); }
.swatch { height:9px; margin:0 -26px 34px; }
.swatch-1 { background:var(--deep-mint); } .swatch-2 { background:var(--rose); } .swatch-3 { background:#c3a164; } .swatch-4 { background:var(--plum); }
.service-index { color:#8d9895; display:block; font-size:10px; letter-spacing:.12em; margin-bottom:46px; }
.service-card h3 { font-family:var(--font-display),Georgia,serif; font-size:38px; line-height:1; margin:0 0 18px; }
.service-card p { color:#64706d; font-size:13px; margin:0; }
.service-card footer { border-top:1px solid var(--line); display:flex; font-size:12px; font-weight:700; justify-content:space-between; margin-top:auto; padding-top:18px; }
.service-card footer a { color:var(--deep-mint); }
.price-note { color:#7b8582; font-size:10px; margin-top:14px; text-align:right; }

.signature { background:#d6e8df; display:grid; grid-template-columns:1fr 1fr; min-height:650px; overflow:hidden; }
.signature-copy { align-self:center; max-width:720px; padding:90px 8vw; }
.signature-copy h2 { color:var(--forest); }
.signature-copy>p:not(.eyebrow) { color:#49605a; max-width:510px; }
.signature-meta { border-bottom:1px solid rgba(18,59,53,.2); border-top:1px solid rgba(18,59,53,.2); display:flex; gap:50px; margin:32px 0 24px; padding:20px 0; }
.signature-meta span { display:flex; flex-direction:column; font-size:10px; text-transform:uppercase; }
.signature-meta strong { font-family:var(--font-display),Georgia,serif; font-size:28px; font-weight:600; text-transform:none; }
.signature-art { align-items:end; background:var(--plum); display:flex; gap:clamp(8px,1.5vw,22px); justify-content:center; padding:0 6vw; position:relative; }
.signature-art::before { color:rgba(255,255,255,.1); content:"MINT"; font-family:var(--font-display),Georgia,serif; font-size:clamp(90px,13vw,210px); left:50%; position:absolute; top:16%; transform:translateX(-50%); }
.nail { background:var(--mint); border-radius:60px 60px 14px 14px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.35),0 -12px 30px rgba(168,216,195,.12); height:47%; width:70px; z-index:1; }
.nail-one { height:31%; } .nail-two { background:#e4b3b7; height:41%; } .nail-three { height:52%; } .nail-four { background:#f3d9cf; height:44%; } .nail-five { height:34%; }

.reviews-top { align-items:end; display:flex; justify-content:space-between; }
.score-card { align-items:center; display:grid; gap:2px 12px; grid-template-columns:auto 1fr; }
.score-card>strong { font-family:var(--font-display),Georgia,serif; font-size:72px; font-weight:600; grid-row:1/3; line-height:1; }
.score-card p { color:#68726f; font-size:10px; margin:0; }
.review-grid { border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); margin-top:60px; }
.review-grid figure { border-right:1px solid var(--line); display:flex; flex-direction:column; margin:0; min-height:310px; padding:34px; }
.review-grid figure:first-child { padding-left:0; } .review-grid figure:last-child { border:0; padding-right:0; }
.quote-mark { color:var(--mint); font-family:var(--font-display),Georgia,serif; font-size:70px; line-height:.7; }
blockquote { font-family:var(--font-display),Georgia,serif; font-size:clamp(24px,2.3vw,34px); line-height:1.15; margin:22px 0 35px; }
figcaption { display:flex; flex-direction:column; font-size:11px; margin-top:auto; }
figcaption span { color:#77817f; }

.visit { background:var(--forest); color:white; display:grid; grid-template-columns:1.25fr .75fr; padding:110px max(5vw,calc((100vw - 1440px)/2 + 5vw)); }
.visit .eyebrow { color:var(--mint); } .visit h2 { max-width:780px; }
address { color:#d1ded9; font-style:normal; margin:34px 0; }
.visit-actions { display:flex; flex-wrap:wrap; gap:12px; }
.button-light { background:var(--mint); border-color:var(--mint); color:var(--forest); } .button-light:hover { background:#c7eadb; }
.button-outline { background:transparent; border-color:rgba(255,255,255,.4); }
.hours { align-self:center; border-left:1px solid rgba(255,255,255,.18); padding-left:5vw; }
.hours h3 { font-family:var(--font-display),Georgia,serif; font-size:32px; margin:0 0 28px; }
.hours dl { margin:0; } .hours dl div { border-bottom:1px solid rgba(255,255,255,.16); display:flex; font-size:13px; justify-content:space-between; padding:14px 0; }
.hours dd { margin:0; } .hours p { color:#9db4ad; font-size:11px; margin-top:22px; }

.footer { display:grid; gap:40px; grid-template-columns:1fr 1fr 1fr; margin:0 auto; max-width:1440px; padding:60px 5vw 80px; }
.footer-brand p { font-family:var(--font-display),Georgia,serif; line-height:1.1; margin:0; }
.footer-links { display:flex; flex-direction:column; font-size:12px; gap:7px; }
.footer-note { color:#6e7775; font-size:9px; justify-self:end; text-align:right; }
.mobile-bar { display:none; }

@media (max-width:980px) {
  nav { display:none; } .hero { grid-template-columns:1fr; padding-top:40px; } .hero-copy { padding:0 0 60px; }
  .hero-visual,.arch-image { min-height:560px; } .service-grid { grid-template-columns:repeat(2,1fr); }
  .signature { grid-template-columns:1fr; } .signature-art { min-height:450px; }
  .visit { grid-template-columns:1fr; gap:70px; } .hours { border-left:0; border-top:1px solid rgba(255,255,255,.18); padding:45px 0 0; }
}
@media (max-width:640px) {
  body { padding-bottom:66px; } .site-header { padding:18px 20px; } .site-header .button { display:none; } .brand-mark { height:40px; width:40px; }
  .hero { min-height:auto; padding:42px 20px 70px; } h1 { font-size:61px; } .hero-lede { font-size:15px; }
  .hero-actions { align-items:stretch; flex-direction:column; } .button { width:100%; } .rating { margin-top:38px; }
  .hero-visual,.arch-image { min-height:440px; } .arch-image { border-radius:180px 180px 14px 14px; }
  .open-card { bottom:22px; left:-8px; min-width:185px; } .polish-dots { right:-10px; }
  .intro-band { justify-content:flex-start; } .section { padding:82px 20px; }
  .section-heading { align-items:start; grid-template-columns:1fr; margin-bottom:38px; } .section-heading>p { justify-self:start; }
  .service-grid { grid-template-columns:1fr; } .service-card { min-height:350px; }
  .signature-copy { padding:80px 20px; } .signature-meta { gap:30px; } .signature-art { min-height:380px; padding:0 20px; } .nail { width:54px; }
  .reviews-top { align-items:start; flex-direction:column; gap:45px; } .review-grid { grid-template-columns:1fr; }
  .review-grid figure,.review-grid figure:first-child,.review-grid figure:last-child { border-bottom:1px solid var(--line); border-right:0; min-height:250px; padding:35px 0; }
  .visit { padding:82px 20px; } .footer { grid-template-columns:1fr; padding:55px 20px; } .footer-note { justify-self:start; text-align:left; }
  .mobile-bar { background:rgba(247,243,237,.96); bottom:0; box-shadow:0 -8px 28px rgba(18,59,53,.12); display:grid; grid-template-columns:1fr 1.5fr; left:0; padding:8px; position:fixed; right:0; z-index:20; }
  .mobile-bar a { align-items:center; display:flex; font-size:12px; font-weight:700; justify-content:center; min-height:50px; }
  .mobile-bar a:last-child { background:var(--deep-mint); border-radius:999px; color:white; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; } }
