:root{--green:#073f2d;--deep:#032f22;--cream:#f7f4ed;--ivory:#fffdf8;--gold:#b88b3a;--line:rgba(7,63,45,.16);--ink:#17352b}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65}
a{color:inherit}
img{display:block;max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{height:88px;padding:0 clamp(22px,5vw,80px);display:flex;align-items:center;justify-content:space-between;background:var(--ivory);position:relative;z-index:20}
.brand{text-decoration:none;display:flex;align-items:baseline;gap:8px;color:var(--green)}
.brand-main{font-family:"Playfair Display",serif;font-weight:600;font-size:1.55rem;line-height:1}
.brand-sub{font-family:"Playfair Display",serif;font-style:italic;font-size:.92rem}
.brand-header{align-self:stretch;display:flex;align-items:center}
.brand-logo{display:block;width:164px;height:72px;object-fit:contain}
.site-header nav{display:flex;align-items:center;gap:32px}
.site-header nav a{text-decoration:none;font-size:.91rem;font-weight:600}
.nav-book{background:var(--green);color:white!important;padding:11px 20px;border-radius:999px}
.menu-button{display:none;background:none;border:0;padding:10px}
.menu-button span:not(.sr-only){display:block;width:25px;height:2px;background:var(--green);margin:5px}
.hero{min-height:calc(100svh - 88px);position:relative;display:flex;align-items:center;overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,32,23,.93) 0%,rgba(3,32,23,.72) 38%,rgba(3,32,23,.12) 72%)}
.hero-copy{position:relative;color:white;width:min(650px,88%);margin-left:clamp(24px,8vw,130px);padding:70px 0 120px}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:600;margin:0 0 16px;color:var(--gold)}
h1,h2,h3{font-family:"Playfair Display",serif;line-height:1.08;margin:0}
h1{font-size:clamp(3.3rem,7.2vw,7.2rem);letter-spacing:-.045em}
h1 em{font-weight:500;color:#e8d3a6}
h2{font-size:clamp(2.3rem,4.4vw,4.7rem);letter-spacing:-.035em}
.intro{font-size:1.08rem;max-width:560px;color:rgba(255,255,255,.86);margin:26px 0 32px}
.hero-actions,.contact-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:14px 23px;border-radius:999px;font-weight:600;transition:.2s ease}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--gold);color:#fff}
.button-light{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.45);color:white;backdrop-filter:blur(8px)}
.hours-ribbon{position:absolute;right:0;bottom:0;background:var(--ivory);padding:24px clamp(28px,5vw,72px);display:flex;gap:16px;align-items:center;border-radius:26px 0 0 0;color:var(--green)}
.hours-ribbon span{color:#6f7d77;font-size:.85rem}
.section{padding:clamp(85px,11vw,150px) clamp(22px,8vw,130px)}
.section-heading{display:grid;grid-template-columns:1fr 2fr;column-gap:50px;align-items:start;margin-bottom:55px}
.section-heading .eyebrow{grid-row:span 2}
.section-heading>p:last-child{max-width:520px;margin:20px 0 0;color:#66756f}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service-grid article{padding:34px 25px 38px;border-right:1px solid var(--line)}
.service-grid article:last-child{border:0}
.service-number{color:var(--gold);font-size:.75rem}
.service-grid h3{font-size:1.75rem;margin:30px 0 14px}
.service-grid p{color:#68766f;font-size:.94rem}
.text-link{display:inline-block;margin-top:38px;text-underline-offset:6px;font-weight:600}
.promise{display:grid;grid-template-columns:1.25fr .75fr;background:var(--cream);min-height:630px}
.promise-copy{padding:clamp(70px,9vw,130px);align-self:center}
.promise-copy>p:not(.eyebrow){max-width:610px;color:#68766f;font-size:1.05rem;margin:24px 0 32px}
.promise-points{display:flex;gap:20px;flex-wrap:wrap}
.promise-points span{border:1px solid var(--line);border-radius:999px;padding:9px 15px;font-size:.86rem}
.quote-card{background:var(--green);color:white;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.quote-card:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%}
.quote-card blockquote{font-family:"Playfair Display",serif;font-size:clamp(2.6rem,4.8vw,5rem);line-height:1.25;margin:0;text-align:center;position:relative}
.quote-card em{color:#e8d3a6}
.sparkle{position:absolute;top:12%;right:16%;font-size:2rem;color:var(--gold)}
.visit{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:white}
.visit-card,.opening-card{padding:clamp(38px,5vw,70px);border:1px solid var(--line);border-radius:28px}
.visit-card{background:var(--cream)}
address{font-style:normal;font-family:"Playfair Display",serif;font-size:1.5rem;line-height:1.5;margin:26px 0}
.opening-card dl{margin:25px 0}
.opening-card dl div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.opening-card dd{margin:0;font-weight:600}
.small-note{color:#6f7d77;font-size:.9rem}
.contact{padding:clamp(85px,11vw,150px) 22px;text-align:center;background:var(--deep);color:white}
.contact h2{font-size:clamp(3rem,6vw,6rem)}
.contact>p:not(.eyebrow){max-width:580px;margin:24px auto 32px;color:rgba(255,255,255,.75)}
.contact-actions{justify-content:center}
.button-cream{background:var(--cream);color:var(--green)}
.button-outline{border:1px solid rgba(255,255,255,.4);color:white}
footer{padding:45px clamp(22px,8vw,130px);display:grid;grid-template-columns:1fr auto auto;gap:40px;align-items:center;background:#02261b;color:white}
footer .brand{color:#e8d3a6}
footer div:nth-child(2){display:flex;gap:24px}
footer a{text-decoration:none;font-size:.88rem}
footer p{font-size:.78rem;color:rgba(255,255,255,.55)}
@media(max-width:900px){.menu-button{display:block}
.site-header nav{display:none;position:absolute;top:88px;left:0;right:0;background:var(--ivory);padding:24px;flex-direction:column;align-items:stretch;box-shadow:0 16px 30px rgba(0,0,0,.08)}
.site-header nav.open{display:flex}
.hero-copy{margin:0 auto;padding-bottom:145px}
.hero-shade{background:linear-gradient(90deg,rgba(3,32,23,.91),rgba(3,32,23,.55))}
.section-heading{grid-template-columns:1fr}
.section-heading .eyebrow{grid-row:auto}
.service-grid{grid-template-columns:1fr 1fr}
.service-grid article:nth-child(2){border-right:0}
.service-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}
.promise{grid-template-columns:1fr}
.quote-card{min-height:500px}
.visit{grid-template-columns:1fr}
footer{grid-template-columns:1fr;text-align:center}
footer .brand,footer div:nth-child(2){justify-content:center}
}
@media(max-width:560px){.site-header{height:76px}
.site-header nav{top:76px}
.brand-main{font-size:1.3rem}
.brand-logo{width:138px;height:62px}
.hero{min-height:760px}
.hero-copy{width:auto;margin:0 22px;padding-top:55px}
.hero-actions{flex-direction:column;align-items:stretch}
.hours-ribbon{left:16px;right:0;justify-content:center;padding:20px 15px}
.section{padding-left:20px;padding-right:20px}
.service-grid{grid-template-columns:1fr}
.service-grid article{border-right:0!important;border-bottom:1px solid var(--line)}
.service-grid article:last-child{border-bottom:0}
.promise-copy{padding:75px 22px}
.quote-card{min-height:390px}
.visit-card,.opening-card{padding:34px 24px}
.opening-card dl div{flex-direction:column;gap:2px}
.contact-actions{flex-direction:column}
.contact-actions .button{width:100%}
footer div:nth-child(2){flex-direction:column;gap:5px}
}

.prices{background:#f3f6f2}
.prices-heading{margin-bottom:45px}
.price-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.price-column{display:grid;gap:18px}
.price-category,.price-info{background:var(--ivory);border:1px solid var(--line);border-radius:20px;padding:26px}
.price-category h3{margin:-26px -26px 23px;padding:16px 24px;background:var(--green);color:#fff;border-radius:19px 19px 0 0;font-size:1.7rem}
.price-category h4,.price-info h4{margin:0 0 13px;color:var(--green);font-family:"Playfair Display",serif;font-size:1.28rem;line-height:1.2;text-transform:uppercase;letter-spacing:.025em}
.price-category dl{margin:0}
.price-category dl div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding:7px 0;border-bottom:1px dotted rgba(7,63,45,.3)}
.price-category dl div:last-child{border-bottom:0}
.price-category dt{min-width:0;line-height:1.35}
.price-category dd{margin:0;font-weight:600;white-space:nowrap}
.price-note{margin:17px -8px -8px;padding:13px 15px;border-radius:12px;background:#e9eee9;line-height:1.4}
.price-note small{color:#586861}
.price-category-dark{background:var(--green);color:#fff}
.price-category-dark h4{color:#fff}
.price-category-dark dl div{border-color:rgba(255,255,255,.26)}
.facial-item>p{color:#68766f;line-height:1.45;margin:6px 0 12px}
.price-info{background:#fff}
.price-info ul{list-style:none;margin:0;padding:0}
.price-info li{position:relative;padding:8px 0 8px 23px;line-height:1.45}
.price-info li:before{content:"◆";position:absolute;left:0;top:9px;color:var(--green);font-size:.65rem}
@media(max-width:1100px){
  .price-columns{grid-template-columns:1fr 1fr}
  .price-column:last-child{grid-column:1/-1;grid-template-columns:1fr 1fr}
  .price-column:last-child .price-info{grid-column:1/-1}
}
@media(max-width:680px){
  .price-columns{grid-template-columns:1fr}
  .price-column:last-child{grid-column:auto;grid-template-columns:1fr}
  .price-column:last-child .price-info{grid-column:auto}
  .price-category,.price-info{padding:22px}
  .price-category h3{margin:-22px -22px 20px;padding:15px 21px}
}
