
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --forest:#1E3D34; --forest-dk:#132822; --forest-soft:#33574A;
  --brass:#A9824A; --brass-lt:#CBA86E; --brass-pale:#E4D3AE;
  --clay:#A85A41;
  --gold:#C9A65C; --gold-deep:#9C7838;
  --gold-grad:linear-gradient(120deg,#CBA86E 0%,#E4D3AE 28%,#A9824A 62%,#D8BE8A 100%);
  --parchment:#F4ECDC; --parchment-dk:#E8DCC4; --cream:#FBF6EC;
  --espresso:#2A221A; --ink:#564A3C; --ink-soft:#6F6455;
  --line:rgba(169,130,74,.30);
}
html{scroll-behavior:smooth}
body{font-family:"Mulish",sans-serif; font-size:18px; line-height:1.7; background:var(--cream); color:var(--ink); overflow-x:hidden; -webkit-font-smoothing:antialiased}
img{display:block; max-width:100%}
h1,h2,h3{font-family:"Fraunces",serif; color:var(--espresso); font-weight:400; line-height:1.08}
a{color:inherit}

/* paper grain texture */
body::before{content:""; position:fixed; inset:0; pointer-events:none; z-index:1; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  mix-blend-mode:multiply}

/* ===== NAV ===== */
nav{position:fixed; top:0; left:0; right:0; z-index:200; height:74px; padding:0 2.4rem;
  display:flex; align-items:center; justify-content:space-between;
  background:rgba(251,246,236,.86); backdrop-filter:blur(12px);
  border-bottom:2px solid transparent; border-image:linear-gradient(90deg,#E4D3AE,#A9824A,#CBA86E,#A9824A,#E4D3AE) 1; transition:box-shadow .35s, background .35s}
nav.scrolled{box-shadow:0 6px 30px rgba(42,34,26,.10); background:rgba(251,246,236,.96)}
.brand{display:flex; align-items:center; gap:.7rem; text-decoration:none}
.brand-mark{width:38px; height:38px; border-radius:50%; border:1.5px solid var(--brass);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  font-family:"Fraunces",serif; font-size:1.1rem; color:var(--forest); background:var(--parchment)}
.brand-name{font-family:"Fraunces",serif; font-size:1.45rem; color:var(--espresso); letter-spacing:.01em}
.brand-name b{color:var(--brass); font-weight:500}
.nav-links{display:flex; align-items:center; gap:2rem; list-style:none}
.nav-links a{text-decoration:none; font-weight:600; font-size:.97rem; color:var(--ink); transition:color .2s; position:relative}
.nav-links a:not(.nav-cta)::after{content:""; position:absolute; left:0; bottom:-5px; height:1.5px; width:0; background:var(--brass); transition:width .25s}
.nav-links a:not(.nav-cta):hover{color:var(--forest)}
.nav-links a:not(.nav-cta):hover::after{width:100%}
.nav-cta{background:var(--forest); color:var(--cream)!important; padding:.55rem 1.3rem; border-radius:4px;
  font-weight:700!important; letter-spacing:.02em; transition:background .25s}
.nav-cta:hover{background:var(--forest-dk)}
.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:14px 10px}
.hamburger span{display:block; width:24px; height:2px; background:var(--espresso); border-radius:2px; transition:.3s}

/* ===== HERO ===== */
#hero{position:relative; padding:130px 2.4rem 70px; background:
  radial-gradient(120% 90% at 100% 0%, var(--parchment-dk) 0%, var(--parchment) 45%, var(--cream) 100%)}
.hero-wrap{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:4rem; align-items:center}
.hero-eyebrow{display:inline-flex; align-items:center; gap:.6rem; font-weight:700; font-size:.82rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--brass); margin-bottom:1.4rem}
.hero-eyebrow::before{content:""; width:34px; height:1.5px; background:var(--brass)}
.hero h1{font-size:clamp(3.2rem,6vw,5.3rem); font-weight:300; letter-spacing:-.01em}
.hero h1 b{font-weight:500; font-style:italic; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent}
.hero-tag{font-family:"Fraunces",serif; font-style:italic; font-size:clamp(1.3rem,2.4vw,1.75rem);
  color:var(--forest); margin:1rem 0 1.3rem; font-weight:400; line-height:1.3}
.hero-lede{font-size:1.08rem; color:var(--ink); max-width:30rem; margin-bottom:2rem}
.hero-btns{display:flex; gap:1rem; flex-wrap:wrap}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:.6rem; text-decoration:none;
  font-weight:700; font-size:1rem; padding:1rem 1.9rem; border-radius:5px; cursor:pointer; transition:all .25s; border:none}
.btn-primary{background:var(--forest); color:var(--cream); border:1px solid rgba(203,168,110,.55); box-shadow:0 10px 26px rgba(30,61,52,.28)}
.btn-primary:hover{background:var(--forest-dk); transform:translateY(-2px); box-shadow:0 14px 32px rgba(30,61,52,.34)}
.btn-outline{background:transparent; color:var(--forest); border:1.5px solid var(--brass)}
.btn-outline:hover{background:var(--parchment-dk); border-color:var(--forest)}

/* arched hero photo */
.hero-frame{position:relative}
.arch{position:relative; aspect-ratio:4/5; border-radius:50% 50% 8px 8px / 30% 30% 8px 8px; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 26px 60px rgba(42,34,26,.22)}
.arch img{width:100%; height:100%; object-fit:cover}
.arch-deco{position:absolute; inset:14px; border:1px solid rgba(251,246,236,.5);
  border-radius:50% 50% 6px 6px / 30% 30% 6px 6px; pointer-events:none; z-index:3}
.hero-badge{position:absolute; bottom:-22px; left:50%; transform:translateX(-50%);
  background:var(--cream); border:2px solid var(--gold); border-radius:50%; width:118px; height:118px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  box-shadow:0 12px 30px rgba(42,34,26,.18), inset 0 0 0 4px rgba(203,168,110,.25); z-index:4}
.hero-badge .n{font-family:"Fraunces",serif; font-size:2.1rem; line-height:1; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent}
.hero-badge .t{font-size:.62rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); margin-top:.2rem}

/* ===== TRUST STRIP ===== */
#trust{background:var(--forest); color:var(--parchment); padding:2.2rem 2.4rem; position:relative; z-index:2}
.trust-wrap{max-width:1100px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem}
.tcell{display:flex; align-items:center; gap:.85rem}
.tcell svg{flex-shrink:0; color:var(--brass-lt)}
.tcell b{display:block; font-family:"Fraunces",serif; font-size:1.15rem; color:var(--cream); font-weight:500}
.tcell small{font-size:.82rem; color:var(--brass-pale); letter-spacing:.02em}

/* ===== SECTION SHARED ===== */
section{padding:5.5rem 2.4rem; position:relative; z-index:2}
.container{max-width:1100px; margin:0 auto}
.eyebrow{display:inline-flex; align-items:center; gap:.6rem; font-weight:700; font-size:.8rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--brass); margin-bottom:1rem}
.eyebrow::before{content:"❧"; font-size:1rem; color:var(--gold); margin-right:.1rem}
.eyebrow.c{justify-content:center}
/* ── Meet-the-team strip (homepage) — stays 3-across on every screen ── */
.team-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; max-width:640px; margin:1.7rem auto 0}
.tmini{text-align:center}
.tmini-ph{width:100%; max-width:172px; aspect-ratio:1/1; margin:0 auto .75rem; border-radius:50%; overflow:hidden;
  border:1px solid var(--line); box-shadow:0 14px 32px rgba(42,34,26,.18); background:var(--parchment)}
.tmini-ph img{width:100%; height:100%; object-fit:cover; object-position:50% 20%; display:block; transition:transform .5s ease}
.tmini:hover .tmini-ph img{transform:scale(1.05)}
.tmini h3{margin:0 0 .12rem; font-size:1.25rem; font-weight:500}
@media(max-width:680px){
  .team-strip{gap:.55rem; max-width:none}
  .tmini{min-width:0}
  .tmini-ph{max-width:96px}
  .tmini h3{font-size:.98rem}
}
@media(max-width:380px){
  .tmini-ph{max-width:82px}
  .tmini h3{font-size:.9rem}
}
.sec-title{font-size:clamp(2rem,4vw,3rem); font-weight:300}
.sec-title b{font-style:italic; font-weight:500; background:var(--gold-grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent}
.center{text-align:center}
.lead{font-size:1.08rem; color:var(--ink); line-height:1.85}

/* divider flourish */
.flourish{display:flex; align-items:center; justify-content:center; gap:.8rem; margin:1rem auto 2.4rem; color:var(--gold)}
.flourish .ln{height:2px; width:52px; background:var(--gold-grad); border-radius:2px}
.flourish span{font-size:1.15rem; color:var(--gold)}

/* ===== ABOUT ===== */
#about{background:var(--cream)}
.about-frame{aspect-ratio:4/5; border-radius:8px; overflow:hidden; border:1px solid var(--line); box-shadow:0 20px 50px rgba(42,34,26,.15)}
.about-body p{margin-bottom:1.2rem; font-size:1.08rem; line-height:1.9}
.about-body strong{color:var(--forest); font-weight:700}
.about-quote{font-family:"Fraunces",serif; font-style:italic; font-size:1.35rem; color:var(--forest);
  border-left:3px solid var(--brass); padding-left:1.3rem; margin:1.8rem 0; line-height:1.4}

/* ===== SERVICES (menu) ===== */
.menu-cols{display:grid; grid-template-columns:1fr 1fr; gap:3rem 4rem}
.menu-group{break-inside:avoid}
.menu-group-title{font-family:"Fraunces",serif; font-size:1.5rem; color:var(--forest); font-weight:500;
  display:flex; align-items:center; gap:.8rem; margin-bottom:.35rem}
.menu-group-title::after{content:""; flex:1; height:2px; background:var(--gold-grad); border-radius:2px; opacity:.7}
.menu-note{font-size:.86rem; font-style:italic; color:var(--ink-soft); margin-bottom:1.1rem}
.mrow{padding:.7rem 0; border-bottom:1px dotted var(--line)}
.mrow:last-child{border-bottom:none}
.mrow-top{display:flex; align-items:baseline; gap:.6rem}
.mrow-name{font-weight:700; color:var(--espresso); font-size:1.05rem; white-space:nowrap}
.mrow-tag{font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  background:#8A6531; color:var(--cream); padding:.12rem .45rem; border-radius:3px}
.mrow-lead{flex:1; border-bottom:1px dotted var(--brass); transform:translateY(-3px); min-width:1rem; opacity:.5}
.mrow-price{font-family:"Fraunces",serif; font-weight:600; font-size:1.2rem; color:var(--forest); white-space:nowrap}
.mrow-desc{font-size:.92rem; color:var(--ink-soft); margin-top:.25rem; line-height:1.55}
.menu-foot{text-align:center; margin-top:3rem; font-size:.96rem; color:var(--ink); font-style:italic}
.menu-foot a{color:var(--forest); font-weight:700; font-style:normal; text-decoration:none; border-bottom:1.5px solid var(--brass)}

/* ===== COLORS ===== */
#colors{background:var(--forest); color:var(--parchment)}
#colors .sec-title{color:var(--cream)}
#colors .sec-title b{background:none; -webkit-text-fill-color:var(--brass-lt); color:var(--brass-lt)}
#colors .eyebrow{color:var(--brass-lt)}
#colors .lead{color:var(--brass-pale)}
.swatches{display:flex; flex-wrap:wrap; gap:9px; justify-content:center; margin:2rem auto 2.6rem; max-width:560px}
.swatches .s{width:30px; height:30px; border-radius:50%; box-shadow:0 3px 10px rgba(0,0,0,.3)}
.brandlines{display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-top:.5rem}
.bl-card{background:rgba(251,246,236,.06); border:1px solid rgba(203,168,110,.3); border-radius:8px;
  padding:1.6rem 1.4rem; text-align:center; transition:all .3s}
.bl-card:hover{background:rgba(251,246,236,.1); transform:translateY(-4px)}
.bl-card .num{font-family:"Fraunces",serif; font-size:2.4rem; color:var(--brass-lt); line-height:1}
.bl-card .nm{font-weight:700; color:var(--cream); margin-top:.5rem; font-size:1.02rem}
.bl-card .ds{font-size:.84rem; color:var(--brass-pale); margin-top:.2rem}
.colors-foot{text-align:center; margin-top:2.4rem; font-style:italic; color:var(--brass-pale); font-size:.96rem}

/* ===== TEAM ===== */
#team{background:var(--cream)}

/* ===== REVIEWS ===== */
.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; margin-top:1rem}
.rcard{background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:2rem 1.8rem; position:relative}
.rcard::after{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:var(--gold-grad); border-radius:8px 8px 0 0}
.rcard .stars{color:var(--brass); letter-spacing:3px; font-size:1.05rem; margin-bottom:.8rem}
.rcard p{font-size:1.02rem; line-height:1.7; color:var(--ink); font-family:"Fraunces",serif; font-style:italic; font-weight:400; margin-bottom:1.1rem}
.rcard .who{font-weight:700; color:var(--espresso); font-size:.92rem; font-style:normal}
.rcard .who small{display:block; font-weight:500; color:var(--ink-soft); font-size:.8rem; margin-top:.1rem}
/* ===== CONTACT ===== */
#contact{background:var(--cream)}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start}
.ci{display:flex; gap:1.1rem; margin-bottom:1.7rem}
.ci-ic{width:46px; height:46px; border-radius:50%; background:var(--parchment); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--forest)}
.ci .lab{font-size:.74rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:var(--brass); margin-bottom:.25rem}
.ci .val{font-size:1.05rem; color:var(--espresso); font-weight:600; line-height:1.5}
.ci .val a{color:var(--forest); text-decoration:none}
.ci .val small{display:block; font-weight:500; color:var(--ink-soft); font-size:.85rem; margin-top:.2rem}
.hours{display:flex; flex-direction:column; gap:.1rem; margin-top:.3rem}
.hours .hr{display:flex; justify-content:space-between; gap:1rem; padding:.45rem 0; border-bottom:1px dotted var(--line); font-size:.98rem}
.hours .hr:last-child{border-bottom:none}
.hours .hr .d{font-weight:700; color:var(--espresso)}
.hours .hr .t{color:var(--ink)}
.hours .hr.today{background:var(--parchment); margin:0 -.6rem; padding-left:.6rem; padding-right:.6rem; border-radius:4px}

.map-card{border-radius:10px; overflow:hidden; border:1px solid var(--line); box-shadow:0 18px 44px rgba(42,34,26,.13)}
.map-card iframe{display:block; width:100%; height:300px; border:0; filter:saturate(.85)}
.map-foot{padding:1.4rem 1.5rem; background:var(--parchment)}
.map-foot .ttl{font-family:"Fraunces",serif; font-size:1.2rem; color:var(--forest)}
.map-foot .sub{font-size:.9rem; color:var(--ink-soft); margin:.15rem 0 1rem}
.map-btns{display:flex; gap:.7rem; flex-wrap:wrap}
.map-btns a{flex:1; min-width:140px; display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  text-decoration:none; font-weight:700; font-size:.9rem; padding:.7rem 1rem; border-radius:5px; transition:.2s}
.map-btns .g{background:var(--forest); color:var(--cream)}
.map-btns .g:hover{background:var(--forest-dk)}
.map-btns .a{background:var(--cream); color:var(--forest); border:1.5px solid var(--brass)}
.map-btns .a:hover{background:var(--parchment-dk)}

/* ===== FOOTER ===== */
footer{background:var(--forest-dk); color:var(--brass-pale); text-align:center; padding:3.5rem 2.4rem 2.6rem}
.ft-brand{font-family:"Fraunces",serif; font-size:1.8rem; color:var(--cream); margin-bottom:.5rem}
.ft-brand b{color:var(--brass-lt); font-weight:500}
footer .ft-sub{font-size:.95rem; color:var(--brass-pale); margin-bottom:1.4rem}
footer .ft-links{display:flex; gap:1.6rem; justify-content:center; flex-wrap:wrap; margin-bottom:1.6rem}
footer .ft-links a{color:var(--brass-pale); text-decoration:none; font-weight:600; font-size:.92rem; transition:color .2s}
footer .ft-links a:hover{color:var(--cream)}
footer .ft-line{height:1px; max-width:340px; margin:0 auto 1.4rem; background:rgba(203,168,110,.25)}
footer .ft-fine{font-size:.8rem; color:rgba(228,211,174,.6); line-height:1.7}

/* ===== STICKY MOBILE BAR ===== */
.mbar{display:none; position:fixed; bottom:0; left:0; right:0; z-index:300; background:var(--forest-dk);
  border-top:1px solid rgba(203,168,110,.3); padding:.7rem .8rem; gap:.6rem; box-shadow:0 -6px 22px rgba(0,0,0,.25)}
.mbar a{flex:1; display:flex; align-items:center; justify-content:center; gap:.45rem; text-decoration:none;
  font-weight:700; font-size:.92rem; padding:.85rem; border-radius:6px}
.mbar .call{background:var(--brass); color:var(--forest-dk)}

/* ===== CALL/TEXT MODAL ===== */
.modal{display:none; position:fixed; inset:0; z-index:999; background:rgba(19,40,34,.6); backdrop-filter:blur(5px);
  align-items:center; justify-content:center; padding:1.5rem}
.modal.open{display:flex; animation:mIn .2s ease-out}
@keyframes mIn{from{opacity:0} to{opacity:1}}
.modal-card{background:var(--cream); border-radius:12px; padding:2.4rem 2rem 1.8rem; max-width:360px; width:100%;
  text-align:center; position:relative; box-shadow:0 24px 70px rgba(0,0,0,.3); border-top:4px solid var(--brass)}
.modal-x{position:absolute; top:.2rem; right:0; width:44px; height:44px; display:flex; align-items:center; justify-content:center; background:none; border:none; font-size:1.5rem; color:var(--ink-soft); cursor:pointer; line-height:1}
.modal-card h3{font-size:1.7rem; color:var(--forest); font-weight:500}
.modal-card .num{font-family:"Fraunces",serif; font-size:1.4rem; font-weight:600; color:var(--brass); margin:.3rem 0 1.5rem}
/* ===== RESPONSIVE ===== */
@media(max-width:920px){
  .hero-wrap{grid-template-columns:1fr; gap:3rem}
  .hero-frame{max-width:420px; margin:0 auto}
  .about-frame{max-width:380px; margin:0 auto}
  .trust-wrap{grid-template-columns:1fr 1fr; gap:1.4rem 1rem}
  .menu-cols{grid-template-columns:1fr; gap:2.6rem}
  .contact-grid{grid-template-columns:1fr; gap:2.6rem}
}
@media(max-width:760px){
  body{font-size:17px}
  nav{padding:0 1.3rem; height:66px}
  .nav-links{position:fixed; top:66px; left:0; right:0; background:var(--cream); flex-direction:column;
    align-items:stretch; gap:0; padding:.5rem 1.3rem 1.3rem; border-bottom:1px solid var(--line);
    box-shadow:0 12px 30px rgba(42,34,26,.12); display:none}
  .nav-links.open{display:flex}
  .nav-links li{border-bottom:1px solid var(--line)}
  .nav-links li:last-child{border-bottom:none; margin-top:.6rem}
  .nav-links a{display:block; padding:.85rem 0; font-size:1.05rem}
  .nav-links .nav-cta{text-align:center; padding:.85rem}
  .hamburger{display:flex}
  section{padding:2.75rem 1.3rem}
  #hero{padding:92px 1.3rem 34px}
  .rev-grid,.brandlines{grid-template-columns:1fr}
  .mbar{display:flex}
  body{padding-bottom:74px}
}
@media(max-width:480px){
  .trust-wrap{grid-template-columns:1fr}
}

    /* multipage additions */
    .nav-links a.current{color:var(--forest)}
    .nav-links a.current::after{width:100%}
    .page-head{padding:128px 2.4rem 2.4rem; text-align:center;
      background:radial-gradient(120% 90% at 50% 0%, var(--parchment-dk) 0%, var(--parchment) 55%, var(--cream) 100%)}
    .page-head .lead{max-width:600px;margin:0 auto}
    .open-pill{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;font-weight:700;
      letter-spacing:.04em;padding:.3rem .8rem;border-radius:30px;margin-top:.4rem}
    .open-pill.open{background:rgba(31,61,52,.10);color:var(--forest)}
    .open-pill.closed{background:rgba(168,90,65,.12);color:#833F2B}
    .open-pill .dot{width:8px;height:8px;border-radius:50%}
    .open-pill.open .dot{background:var(--forest)}
    .open-pill.closed .dot{background:#833F2B}
    .mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;max-width:900px;margin:0 auto}
    .glance{max-width:560px;margin:0 auto}
    @media(max-width:760px){.page-head{padding:96px 1.3rem 2rem}.mini-grid{grid-template-columns:1fr;gap:2rem}}

    /* gallery editorial layout */
    .gal-section{padding:4.5rem 2.4rem}
    .gal-feature{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 34px rgba(42,34,26,.14);margin-top:2rem}
    .gal-feature img{width:100%;height:440px;object-fit:cover;display:block;transition:transform .6s}
    .gal-feature:hover img{transform:scale(1.03)}
    .gal-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
    .gal-pair figure{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 30px rgba(42,34,26,.12);margin:0}
    .gal-pair img{width:100%;height:300px;object-fit:cover;display:block;transition:transform .6s}
    .gal-pair figure:hover img{transform:scale(1.04)}
    .gal-feature .cap,.gal-pair .cap,.gal-uniform .cap{position:absolute;left:0;right:0;bottom:0;color:var(--cream);background:linear-gradient(rgba(19,40,34,0),rgba(19,40,34,.55) 45%,rgba(19,40,34,.82));font-weight:700;letter-spacing:.04em;text-shadow:0 1px 3px rgba(19,40,34,.6)}
    .gal-feature .cap{padding:2.2rem 1.2rem 1rem;font-size:.95rem}
    .gal-pair .cap{padding:1.4rem .85rem .65rem;font-size:.82rem}
    .galleryart{display:grid;grid-template-columns:1.05fr .95fr;gap:2.6rem;align-items:center;margin-top:2rem;text-align:left}
    .galleryart figure{margin:0}
    .galleryart img{width:100%;height:auto;border-radius:12px;border:1px solid var(--line);box-shadow:0 14px 34px rgba(42,34,26,.14);display:block}
    .gal-uniform{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:2rem}
    .gal-uniform figure{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 10px 26px rgba(42,34,26,.10);margin:0}
    .gal-uniform img{width:100%;height:100%;object-fit:cover;transition:transform .5s;display:block}
    .gal-uniform figure:hover img{transform:scale(1.06)}
    .gal-uniform .cap{padding:1.4rem .75rem .6rem;font-size:.74rem;text-transform:uppercase}
    @media(max-width:760px){.gal-feature img{height:250px}.gal-pair{grid-template-columns:1fr}.gal-pair img{height:240px}.galleryart{grid-template-columns:1fr;gap:1.4rem}.gal-section{padding:3.4rem 1.3rem}}

    /* dynamic */
    .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
    .reveal.in{opacity:1;transform:none}
    .zoomable{cursor:zoom-in}
    .lb{position:fixed;inset:0;z-index:1000;background:rgba(19,40,34,.9);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:2rem;cursor:zoom-out}
    .lb.open{display:flex;animation:lbf .2s ease}
    @keyframes lbf{from{opacity:0}to{opacity:1}}
    .lb img{max-width:92vw;max-height:84vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.55);border:2px solid var(--brass)}
    .lb .lbx{position:absolute;top:.6rem;right:.8rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#fff;font-size:2.3rem;cursor:pointer;line-height:1}
    .lb .lbcap{position:absolute;bottom:1.2rem;left:0;right:0;text-align:center;color:var(--brass-pale);font-size:.92rem;font-weight:600;letter-spacing:.02em}
    .totop{position:fixed;right:18px;bottom:18px;z-index:240;width:46px;height:46px;border-radius:50%;background:var(--forest);color:var(--cream);border:1px solid var(--brass);box-shadow:0 8px 22px rgba(0,0,0,.28);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.3rem;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;transform:translateY(8px)}
    .totop.show{opacity:1;pointer-events:auto;transform:none}
    @media(max-width:760px){.totop{bottom:86px}}
    @media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

    /* ===== botanical motif ===== */
    .flourish span{display:inline-block;width:40px;height:40px;font-size:0;color:transparent;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQTk4MjRBIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KPGNpcmNsZSBjeD0iMjAiIGN5PSI5IiByPSI0Ii8+PGNpcmNsZSBjeD0iMzAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjYiIGN5PSIyNyIgcj0iNCIvPgo8Y2lyY2xlIGN4PSIxNCIgY3k9IjI3IiByPSI0Ii8+PGNpcmNsZSBjeD0iMTAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjAiIGN5PSIxOC41IiByPSIyLjIiIGZpbGw9IiNBOTgyNEEiLz4KPC9zdmc+Cg==") center/contain no-repeat}
    .flourish .ln{width:62px}
    #hero{position:relative}
    .hero-wrap{position:relative;z-index:2}
    #hero::before,#hero::after{content:"";position:absolute;top:58px;width:205px;height:205px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgMTkwIiBmaWxsPSJub25lIiBzdHJva2U9IiNBOTgyNEEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgo8cGF0aCBkPSJNMiA4IEM0NiAyNiA5MiA1OCAxMjAgMTA0IEMxNDAgMTM3IDE1MCAxNjIgMTU2IDE4NiIvPgo8cGF0aCBkPSJNNDAgMjMgQzM2IDEyIDQwIDQgNTAgMSBDNTMgMTEgNDkgMTkgNDAgMjNaIi8+CjxwYXRoIGQ9Ik03MCA0NCBDNzAgMzIgNzYgMjUgODcgMjUgQzg3IDM2IDgwIDQzIDcwIDQ0WiIvPgo8cGF0aCBkPSJNMTAxIDc2IEMxMDQgNjQgMTEyIDU5IDEyMiA2MSBDMTE5IDcyIDExMSA3OCAxMDEgNzZaIi8+CjxwYXRoIGQ9Ik0xMjYgMTE2IEMxMzEgMTA1IDE0MCAxMDIgMTQ5IDEwNiBDMTQ0IDExNiAxMzUgMTIwIDEyNiAxMTZaIi8+CjxjaXJjbGUgY3g9IjE1MCIgY3k9IjE1MCIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTU4IiBjeT0iMTU2IiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTQiIGN5PSIxNjUiIHI9IjMuNCIvPjxjaXJjbGUgY3g9IjE0NCIgY3k9IjE2MSIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTQzIiBjeT0iMTUxIiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTciIHI9IjEuOSIgZmlsbD0iI0E5ODI0QSIvPgo8L3N2Zz4K") center/contain no-repeat;opacity:.42;pointer-events:none;z-index:0}
    #hero::before{left:-14px}
    #hero::after{right:-14px;transform:scaleX(-1)}
    .page-head{position:relative;overflow:hidden}
    .page-head>*{position:relative;z-index:2}
    .page-head::before,.page-head::after{content:"";position:absolute;top:60px;width:150px;height:150px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgMTkwIiBmaWxsPSJub25lIiBzdHJva2U9IiNBOTgyNEEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgo8cGF0aCBkPSJNMiA4IEM0NiAyNiA5MiA1OCAxMjAgMTA0IEMxNDAgMTM3IDE1MCAxNjIgMTU2IDE4NiIvPgo8cGF0aCBkPSJNNDAgMjMgQzM2IDEyIDQwIDQgNTAgMSBDNTMgMTEgNDkgMTkgNDAgMjNaIi8+CjxwYXRoIGQ9Ik03MCA0NCBDNzAgMzIgNzYgMjUgODcgMjUgQzg3IDM2IDgwIDQzIDcwIDQ0WiIvPgo8cGF0aCBkPSJNMTAxIDc2IEMxMDQgNjQgMTEyIDU5IDEyMiA2MSBDMTE5IDcyIDExMSA3OCAxMDEgNzZaIi8+CjxwYXRoIGQ9Ik0xMjYgMTE2IEMxMzEgMTA1IDE0MCAxMDIgMTQ5IDEwNiBDMTQ0IDExNiAxMzUgMTIwIDEyNiAxMTZaIi8+CjxjaXJjbGUgY3g9IjE1MCIgY3k9IjE1MCIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTU4IiBjeT0iMTU2IiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTQiIGN5PSIxNjUiIHI9IjMuNCIvPjxjaXJjbGUgY3g9IjE0NCIgY3k9IjE2MSIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTQzIiBjeT0iMTUxIiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTciIHI9IjEuOSIgZmlsbD0iI0E5ODI0QSIvPgo8L3N2Zz4K") center/contain no-repeat;opacity:.30;pointer-events:none;z-index:0}
    .page-head::before{left:-18px}
    .page-head::after{right:-18px;transform:scaleX(-1)}
    #about{position:relative;overflow:hidden}
    #about .container{position:relative;z-index:2}
    #about::after{content:"";position:absolute;right:-36px;bottom:-40px;width:240px;height:240px;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOTAgMTkwIiBmaWxsPSJub25lIiBzdHJva2U9IiNBOTgyNEEiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgo8cGF0aCBkPSJNMiA4IEM0NiAyNiA5MiA1OCAxMjAgMTA0IEMxNDAgMTM3IDE1MCAxNjIgMTU2IDE4NiIvPgo8cGF0aCBkPSJNNDAgMjMgQzM2IDEyIDQwIDQgNTAgMSBDNTMgMTEgNDkgMTkgNDAgMjNaIi8+CjxwYXRoIGQ9Ik03MCA0NCBDNzAgMzIgNzYgMjUgODcgMjUgQzg3IDM2IDgwIDQzIDcwIDQ0WiIvPgo8cGF0aCBkPSJNMTAxIDc2IEMxMDQgNjQgMTEyIDU5IDEyMiA2MSBDMTE5IDcyIDExMSA3OCAxMDEgNzZaIi8+CjxwYXRoIGQ9Ik0xMjYgMTE2IEMxMzEgMTA1IDE0MCAxMDIgMTQ5IDEwNiBDMTQ0IDExNiAxMzUgMTIwIDEyNiAxMTZaIi8+CjxjaXJjbGUgY3g9IjE1MCIgY3k9IjE1MCIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTU4IiBjeT0iMTU2IiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTQiIGN5PSIxNjUiIHI9IjMuNCIvPjxjaXJjbGUgY3g9IjE0NCIgY3k9IjE2MSIgcj0iMy40Ii8+PGNpcmNsZSBjeD0iMTQzIiBjeT0iMTUxIiByPSIzLjQiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTciIHI9IjEuOSIgZmlsbD0iI0E5ODI0QSIvPgo8L3N2Zz4K") center/contain no-repeat;opacity:.085;transform:rotate(180deg);pointer-events:none;z-index:0}
    footer{position:relative}
    footer::before{content:"";display:block;width:36px;height:36px;margin:0 auto 1.1rem;background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQ0JBODZFIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KPGNpcmNsZSBjeD0iMjAiIGN5PSI5IiByPSI0Ii8+PGNpcmNsZSBjeD0iMzAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjYiIGN5PSIyNyIgcj0iNCIvPgo8Y2lyY2xlIGN4PSIxNCIgY3k9IjI3IiByPSI0Ii8+PGNpcmNsZSBjeD0iMTAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjAiIGN5PSIxOC41IiByPSIyLjIiIGZpbGw9IiNDQkE4NkUiLz4KPC9zdmc+Cg==") center/contain no-repeat;opacity:.9}
    @media(max-width:760px){
      #hero::before,#hero::after{width:120px;height:120px;top:38px;opacity:.3}
      .page-head::before,.page-head::after{width:94px;height:94px;top:50px;opacity:.26}
      #about::after{width:160px;height:160px}
    }


/* ===================================================================
   v2 ENHANCEMENTS — Number 1 Nails
   (large-screen scaling · color-photos · booking modal · motion)
   =================================================================== */

/* ---------- color-photos grid (previously unstyled) ---------- */
.color-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:2.4rem}
.color-photos figure{position:relative;margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 30px rgba(42,34,26,.18);background:rgba(251,246,236,.05)}
.color-photos img{width:100%;height:300px;object-fit:cover;display:block;transition:transform .55s}
.color-photos figure:hover img{transform:scale(1.05)}
.color-photos figcaption{position:absolute;left:0;right:0;bottom:0;color:var(--cream);background:linear-gradient(transparent,rgba(19,40,34,.82));padding:1.6rem .9rem .7rem;font-weight:700;font-size:.85rem;letter-spacing:.03em}
.work-credit{margin-top:1.7rem;font-style:italic;color:var(--ink-soft);font-size:.92rem}
@media(max-width:760px){.color-photos{grid-template-columns:1fr;gap:14px}.color-photos img{height:280px}}

/* ---------- booking / call-text modal ---------- */
.modal-card{max-width:380px;max-height:90vh;overflow-y:auto;text-align:left;-webkit-overflow-scrolling:touch}
.modal-head{text-align:center}
.modal-card .num{margin:.3rem 0 1.2rem}
.modal-call,.modal-text{display:flex;align-items:center;justify-content:center;gap:.55rem;text-decoration:none;font-weight:700;font-size:1.02rem;padding:.95rem 1rem;border-radius:7px;transition:background .2s,transform .15s}
.modal-call{background:var(--forest);color:var(--cream)}
.modal-call:hover{background:var(--forest-dk)}
.modal-call:active,.modal-text:active{transform:translateY(1px)}
.modal-or{display:flex;align-items:center;gap:.8rem;margin:1.15rem 0 .9rem;color:var(--ink-soft)}
.modal-or::before,.modal-or::after{content:"";flex:1;height:1px;background:var(--line)}
.modal-or span{font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.bk{display:flex;flex-direction:column;gap:.7rem}
.bk-field{display:flex;flex-direction:column;gap:.32rem}
.bk-field>span{font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.bk-field input,.bk-field select{width:100%;font-family:"Mulish",sans-serif;font-size:1rem;color:var(--espresso);background:var(--cream);border:1.5px solid var(--line);border-radius:7px;padding:.62rem .7rem;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.bk-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23A9824A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;padding-right:2rem;cursor:pointer}
.bk-field input::placeholder{color:var(--ink-soft)}
.bk-field input:focus,.bk-field select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(169,130,74,.16)}
.bk-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.modal-text{background:var(--brass);color:var(--forest-dk);margin-top:.45rem}
.modal-text:hover{background:var(--brass-lt)}
.bk-note{font-size:.74rem;color:var(--ink-soft);line-height:1.5;margin-top:.15rem;text-align:center}

/* ---------- "newly renovated" hero tag ---------- */
.reno-tag{display:inline-flex;align-items:center;gap:.45rem;font-size:.72rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--forest);background:linear-gradient(120deg,var(--brass-pale),#FBF1DC);border:1px solid var(--brass-lt);padding:.36rem .9rem;border-radius:30px;margin-bottom:1rem;box-shadow:0 5px 16px rgba(169,130,74,.18)}
.reno-tag::before{content:"✦";color:var(--brass)}

/* ===================================================================
   LARGE-SCREEN / ULTRAWIDE / 4K SCALING
   keeps content from stranding in whitespace; grows type + media
   =================================================================== */
@media (min-width:1700px){
  body{font-size:19px}
  .container,.trust-wrap{max-width:1320px}
  .hero-wrap{max-width:1460px;gap:5rem}
  .mini-grid{max-width:1060px}
  section{padding:6.5rem 2.4rem}
  .gal-uniform{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
  .gal-feature img{height:540px}
  .gal-pair img{height:360px}
  .color-photos img{height:360px}
  .swatches{max-width:680px}
  .swatches .s{width:36px;height:36px}
  .rev-grid{gap:2rem}
}
@media (min-width:2200px){
  body{font-size:20.5px}
  .container,.trust-wrap{max-width:1500px}
  .hero-wrap{max-width:1640px}
  .mini-grid{max-width:1180px}
  section{padding:7.5rem 2.4rem}
  .page-head{padding-top:150px}
  .gal-uniform{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:22px}
  .gal-feature img{height:640px}
  .gal-pair img{height:440px}
  .color-photos img{height:420px}
  .swatches .s{width:42px;height:42px}
  .hero-badge{width:138px;height:138px}
  .hero-badge .n{font-size:2.5rem}
}
@media (min-width:3000px){
  body{font-size:23px}
  .container,.trust-wrap{max-width:1760px}
  .hero-wrap{max-width:1900px}
  .mini-grid{max-width:1360px}
  .gal-uniform{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}
  .gal-feature img{height:760px}
  .gal-pair img{height:520px}
  .color-photos img{height:500px}
  section{padding:8.5rem 2.4rem}
}

/* ===================================================================
   MOTION — orchestrated entrances + tasteful micro-interactions
   =================================================================== */

/* hero / page-head: neutralize the JS scroll-reveal so our own load
   choreography runs cleanly (they're above the fold anyway) */
#hero.reveal,.page-head.reveal{opacity:1!important;transform:none!important}

@keyframes n1Rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes n1Frame{from{opacity:0;transform:translateY(26px) scale(.985)}to{opacity:1;transform:none}}

.hero-text>*{opacity:0;animation:n1Rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.hero-text>*:nth-child(1){animation-delay:.04s}
.hero-text>*:nth-child(2){animation-delay:.13s}
.hero-text>*:nth-child(3){animation-delay:.22s}
.hero-text>*:nth-child(4){animation-delay:.31s}
.hero-text>*:nth-child(5){animation-delay:.40s}
.hero-text>*:nth-child(6){animation-delay:.49s}
.hero-text>*:nth-child(7){animation-delay:.58s}
.hero-frame{opacity:0;animation:n1Frame .9s cubic-bezier(.2,.7,.2,1) .2s forwards}

.page-head>*{opacity:0;animation:n1Rise .72s cubic-bezier(.2,.7,.2,1) forwards}
.page-head>*:nth-child(1){animation-delay:.05s}
.page-head>*:nth-child(2){animation-delay:.15s}
.page-head>*:nth-child(3){animation-delay:.25s}
.page-head>*:nth-child(4){animation-delay:.35s}
.page-head>*:nth-child(5){animation-delay:.45s}

/* slow Ken-Burns drift on the hero photo */
@keyframes n1KB{from{transform:scale(1.05)}to{transform:scale(1.13)}}
.arch img{animation:n1KB 22s ease-in-out infinite alternate;will-change:transform}

/* subtle gold shimmer on hero titles + badge number only */
@keyframes n1Shim{to{background-position:200% center}}
.hero h1 b,.page-head h1 b,.hero-badge .n{background-size:220% auto;animation:n1Shim 7.5s linear infinite}

/* gloss sweep across primary buttons on hover */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-140%;width:55%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.30),transparent);
  transform:skewX(-18deg);pointer-events:none}
@keyframes n1Sweep{from{left:-140%}to{left:150%}}
.btn-primary:hover::after{animation:n1Sweep .85s ease}

/* staggered item reveal inside grids (toggled by JS) */
.st{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.st.in{opacity:1;transform:none}

/* honour reduced-motion for every enhancement above */
@media (prefers-reduced-motion: reduce){
  .hero-text>*,.hero-frame,.page-head>*{opacity:1!important;animation:none!important}
  .arch img{animation:none!important}
  .hero h1 b,.page-head h1 b,.hero-badge .n{animation:none!important}
  .btn-primary:hover::after{animation:none!important}
  .st{opacity:1!important;transform:none!important;transition:none!important}
}

/* ===================================================================
   v3 POLISH — readability + photo definition
   =================================================================== */
/* deeper antique-gold for small accent text on light backgrounds
   (#colors .eyebrow keeps its lighter tone on the dark section via specificity) */
.eyebrow,.hero-eyebrow,.ci .lab,.bk-field>span,.hero-badge .t{color:#835F28}
.eyebrow::before{color:#9C7838}
.hero-eyebrow::before{background:#9C7838}

/* gentle contrast/saturation so light photos read with depth, not wash-out */
.arch img,.about-frame img,.gal-feature img,.gal-pair img,.gal-uniform img,.color-photos img{filter:contrast(1.05) saturate(1.06)}
/* soft inner vignette on the hero + about portrait frames for edge definition */
.about-frame{position:relative}
.arch::after,.about-frame::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;box-shadow:inset 0 0 64px rgba(42,34,26,.15)}

/* ===================================================================
   v4 — warm the interior room shots (hero + about) so the space feels
   inviting, not cool/gray. Polish & color photos are intentionally
   left color-accurate so the "750+ colors" swatches stay true.
   =================================================================== */
.arch img,.about-frame img{filter:saturate(1.12) sepia(.08) hue-rotate(-8deg) brightness(1.03) contrast(1.04)}

/* ===================================================================
   v5 — inline calendar date picker (booking modal)
   =================================================================== */
.bk-daybtn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;font-family:"Mulish",sans-serif;font-size:1rem;color:var(--espresso);background:var(--cream);border:1.5px solid var(--line);border-radius:7px;padding:.62rem .7rem;cursor:pointer;text-align:left}
.bk-daybtn:hover{border-color:var(--brass-lt)}
.bk-daybtn:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(169,130,74,.16)}
.bk-daybtn svg{color:var(--brass);flex:none}
.bk-cal{margin-top:.5rem;background:var(--cream);border:1.5px solid var(--line);border-radius:10px;padding:.75rem .75rem .85rem;box-shadow:0 16px 36px rgba(42,34,26,.18)}
.bk-cal[hidden]{display:none}
.bk-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}
.bk-cal-title{font-family:"Fraunces",serif;font-size:1.05rem;color:var(--forest);font-weight:600}
.bk-cal-nav{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--forest);font-size:1.15rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,opacity .15s}
.bk-cal-nav:hover:not(:disabled){background:var(--brass-pale)}
.bk-cal-nav:disabled{opacity:.3;cursor:default}
.bk-cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}
.bk-cal-dow span{text-align:center;font-size:.64rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:#835F28;padding:.15rem 0}
.bk-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.bk-cd{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:8px;font-family:"Mulish",sans-serif;font-size:.92rem;color:var(--espresso);cursor:pointer;transition:background .15s,color .15s;padding:0}
.bk-cd.blank{visibility:hidden;cursor:default}
.bk-cd:hover:not(.off):not(.sel){background:var(--brass-pale)}
.bk-cd.off{color:#cabfa8;cursor:default}
.bk-cd.today{box-shadow:inset 0 0 0 1.5px var(--brass-lt);font-weight:700}
.bk-cd.sel{background:var(--forest);color:var(--cream);font-weight:700}
.bk-cd.sel.today{box-shadow:none}

/* ===================================================================
   THEME TOGGLE  (sits in the nav, right-hand cluster)
   =================================================================== */
.nav-right{display:flex;align-items:center;gap:1.5rem}
@media(max-width:760px){.nav-right{gap:.7rem}}

/* ===================================================================
   DARK MODE
   Surfaces + body text are remapped through the existing design tokens;
   the brand greens & brass stay as accents. A number of panels are
   green/brass in BOTH themes and relied on --cream / --parchment /
   --espresso as a *light* foreground — the remap would flip those to
   dark, so each gets a light colour re-asserted below. Two extra
   dark-only helpers: --on-brand (light text on green/brass) and
   --sage (the green text-accent, lightened so it reads on dark).
   =================================================================== */
[data-theme="dark"]{
  /* surfaces (were light) */
  --cream:#15211C; --parchment:#1B2A24; --parchment-dk:#243730;
  /* body + headings (were dark) */
  --espresso:#F3EAD6; --ink:#D8CDB7; --ink-soft:#A2937A;
  /* brand greens — nudged lighter so panels lift off the page */
  --forest:#27483D; --forest-dk:#1B362E; --forest-soft:#356355;
  /* brass / gold — a touch brighter for dark backgrounds */
  --brass:#C8A369; --brass-lt:#DCC089; --brass-pale:#ECDBB4;
  --gold:#D4B36C; --gold-deep:#B68E48;
  --line:rgba(203,168,110,.22);
  /* dark-only helpers */
  --sage:#7FB6A6; --on-brand:#F3EAD6;
  color-scheme:dark;
}

/* paper grain reads better lightened over a dark base */
[data-theme="dark"] body::before{mix-blend-mode:screen;opacity:.4}

/* --- nav (hardcoded light translucency) --- */
[data-theme="dark"] nav{background:rgba(21,33,28,.85)}
[data-theme="dark"] nav.scrolled{background:rgba(21,33,28,.95);box-shadow:0 6px 30px rgba(0,0,0,.45)}
[data-theme="dark"] .brand-mark{background:transparent;color:var(--brass-lt)}
[data-theme="dark"] .nav-links a.current,
[data-theme="dark"] .nav-links a:not(.nav-cta):hover{color:var(--sage)}
[data-theme="dark"] .nav-cta{color:var(--on-brand)!important}

/* --- light text re-asserted on green / dark panels --- */
[data-theme="dark"] #trust,
[data-theme="dark"] .tcell b,
[data-theme="dark"] .btn-primary,
[data-theme="dark"] .modal-call,
[data-theme="dark"] .totop,
[data-theme="dark"] .ft-brand,
[data-theme="dark"] footer .ft-links a:hover,
[data-theme="dark"] #colors,
[data-theme="dark"] #colors .sec-title,
[data-theme="dark"] .bl-card .nm,
[data-theme="dark"] .map-btns .g{color:var(--on-brand)}
[data-theme="dark"] .cf-chip:hover:not(.active){color:var(--on-brand)}
[data-theme="dark"] footer .ft-fine{color:rgba(236,219,180,.72)}

/* image captions sit on a dark gradient in BOTH themes -> keep them light */
[data-theme="dark"] .gal-feature .cap,
[data-theme="dark"] .gal-pair .cap,
[data-theme="dark"] .gal-uniform .cap,
[data-theme="dark"] .color-photos figcaption{color:var(--on-brand)}

/* --- green-as-text accent -> soft sage on dark --- */
[data-theme="dark"] .hero-tag,
[data-theme="dark"] .about-quote,
[data-theme="dark"] .about-body strong,
[data-theme="dark"] .menu-group-title,
[data-theme="dark"] .mrow-price,
[data-theme="dark"] .open-pill.open,
[data-theme="dark"] .map-foot .ttl,
[data-theme="dark"] .map-btns .a,
[data-theme="dark"] .ci .val a,
[data-theme="dark"] .modal-card h3,
[data-theme="dark"] .btn-outline,
[data-theme="dark"] .ci-ic,
[data-theme="dark"] .bk-cal-title{color:var(--sage)}
[data-theme="dark"] .open-pill.open .dot{background:var(--sage)}
[data-theme="dark"] .open-pill.closed{color:#E39B7E}
[data-theme="dark"] .open-pill.closed .dot{background:#E39B7E}
[data-theme="dark"] .menu-foot a{color:var(--sage)!important}
[data-theme="dark"] .about-stats div>span:first-child{color:var(--sage)!important}

/* --- hardcoded accent text from the v3 polish pass --- */
[data-theme="dark"] .eyebrow,
[data-theme="dark"] .hero-eyebrow,
[data-theme="dark"] .ci .lab,
[data-theme="dark"] .bk-field>span,
[data-theme="dark"] .hero-badge .t{color:var(--brass-lt)}
[data-theme="dark"] .eyebrow::before{color:var(--gold)}
[data-theme="dark"] .hero-eyebrow::before{background:var(--gold)}

/* --- booking calendar (had #fff bg + light hovers) --- */
[data-theme="dark"] .bk-cal-nav{background:#243730;color:var(--sage)}
[data-theme="dark"] .bk-cal-nav:hover:not(:disabled){background:var(--forest-soft);color:var(--on-brand)}
[data-theme="dark"] .bk-cd:hover:not(.off):not(.sel){background:var(--forest-soft);color:var(--on-brand)}
[data-theme="dark"] .bk-cd.sel{color:var(--on-brand)}
[data-theme="dark"] .bk-cd.off{color:#5f6f64}
[data-theme="dark"] .bk-cal-dow span{color:#9a8a6f}
[data-theme="dark"] .bk-field input:not(:focus),
[data-theme="dark"] .bk-field select:not(:focus),
[data-theme="dark"] .bk-daybtn:not(:focus):not(:hover){border-color:rgba(203,168,110,.6)}

/* --- embedded map: dim it so it doesn't glare on a dark page --- */
[data-theme="dark"] .map-card iframe{filter:saturate(.8) brightness(.82) contrast(1.04)}

/* ===================================================================
   v6 ENHANCEMENTS — conversion, accessibility, FAQ, gift, colors filter
   =================================================================== */

/* --- accessibility: skip link + global focus ring + sr-only --- */
.skip-link{position:fixed;left:10px;top:-60px;z-index:400;background:var(--forest);color:var(--cream);
  padding:.65rem 1.1rem;border-radius:0 0 7px 7px;font-weight:700;text-decoration:none;transition:top .2s}
.skip-link:focus{top:0;outline:none;box-shadow:0 0 0 3px rgba(169,130,74,.45)}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible{
  outline:2px solid var(--brass);outline-offset:2px;border-radius:3px}
#main{scroll-margin-top:84px}

/* --- desktop nav phone (hidden where the sticky bar takes over) --- */
.nav-phone{display:inline-flex;align-items:center;gap:.42rem;text-decoration:none;font-weight:700;
  font-size:.95rem;color:var(--forest);white-space:nowrap;transition:color .2s}
.nav-phone svg{color:var(--brass);flex:none}
.nav-phone:hover{color:var(--brass)}
@media(max-width:1200px){.nav-phone{display:none}}
[data-theme="dark"] .nav-phone{color:var(--sage)}
[data-theme="dark"] .nav-phone:hover{color:var(--brass-lt)}

/* --- sticky mobile bar: second button (Text) --- */
.mbar .text{background:transparent;color:var(--cream);border:1.5px solid var(--brass-lt)}
[data-theme="dark"] .mbar .text{color:var(--on-brand)}

/* --- hamburger animates to an X when open --- */
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --- lightbox prev/next + counter --- */
.lbnav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
  border:1px solid var(--brass);background:rgba(19,40,34,.5);color:#fff;font-size:1.9rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .2s}
.lbnav:hover{background:rgba(19,40,34,.85)}
.lbprev{left:1.1rem}.lbnext{right:1.1rem}
.lbctr{position:absolute;top:1.1rem;left:0;right:0;text-align:center;color:var(--brass-pale);
  font-size:.85rem;font-weight:700;letter-spacing:.05em;pointer-events:none}
@media(max-width:760px){.lbnav{width:40px;height:40px;font-size:1.55rem}.lbprev{left:.4rem}.lbnext{right:.4rem}}

/* --- modal: desktop / no-SMS copy fallback --- */
.modal-fallback{margin-top:.9rem;text-align:center;font-size:.8rem;color:var(--ink-soft);line-height:1.55}
.modal-fallback .num2{font-weight:700;color:var(--forest);font-size:.92rem}
.copy-btn{display:inline-flex;align-items:center;gap:.4rem;margin-top:.55rem;background:transparent;
  border:1.5px solid var(--line);border-radius:6px;padding:.45rem .85rem;font-weight:700;font-size:.8rem;
  color:var(--espresso);cursor:pointer;font-family:"Mulish",sans-serif;transition:.2s}
.copy-btn:hover{border-color:var(--brass)}
.copy-btn.copied{border-color:var(--forest);color:var(--forest)}
[data-theme="dark"] .modal-fallback .num2{color:var(--sage)}
[data-theme="dark"] .copy-btn.copied{color:var(--sage);border-color:var(--forest-soft)}

/* --- gift certificates band --- */
.giftband{background:linear-gradient(120deg,var(--forest),var(--forest-soft));color:var(--cream);text-align:center;padding:3rem 1.5rem}
.giftband .gb-in{max-width:640px;margin:0 auto}
.giftband .eyebrow{justify-content:center;color:var(--brass-pale)}
.giftband .eyebrow::before{color:var(--gold)}
.giftband h2{color:var(--cream);font-size:clamp(1.7rem,3.2vw,2.3rem);font-weight:300;margin-bottom:.6rem}
.giftband h2 b{font-style:italic;color:var(--brass-lt);font-weight:500}
.giftband p{color:var(--brass-pale);margin:0 auto 1.5rem;max-width:30rem}
.giftband .btn-primary{background:var(--brass);color:var(--forest-dk);border-color:var(--brass-lt)}
.giftband .btn-primary:hover{background:var(--brass-lt)}
.giftband .btn-outline{color:var(--cream);border-color:var(--brass-lt)}
.giftband .btn-outline:hover{background:rgba(251,246,236,.1)}
[data-theme="dark"] .giftband h2{color:var(--on-brand)}
[data-theme="dark"] .giftband .btn-outline{color:var(--on-brand)}

/* --- FAQ accordion --- */
.faq-wrap{max-width:760px;margin:1.5rem auto 0;text-align:left}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:"Fraunces",serif;
  font-size:1.15rem;color:var(--espresso);padding:1.2rem 0;display:flex;justify-content:space-between;
  gap:1rem;align-items:center;transition:color .2s}
.faq-q:hover{color:var(--forest)}
.faq-q .ico{flex:none;width:20px;height:20px;color:var(--brass);transition:transform .3s}
.faq-q[aria-expanded="true"] .ico{transform:rotate(45deg)}
.faq-a{overflow:hidden;max-height:0;transition:max-height .35s ease}
.faq-q[aria-expanded="true"]+.faq-a{max-height:520px}
.faq-a-in{padding:0 0 1.3rem;color:var(--ink);line-height:1.75;font-size:1rem}
.faq-a-in a{color:var(--forest);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--brass)}
[data-theme="dark"] .faq-q:hover{color:var(--sage)}
[data-theme="dark"] .faq-a-in a{color:var(--sage)}

/* --- sanitation / licensing trust block --- */
.safety{display:flex;gap:1.1rem;align-items:flex-start;background:var(--parchment);border:1px solid var(--line);
  border-left:3px solid var(--brass);border-radius:8px;padding:1.5rem 1.6rem;margin-top:1.9rem}
.safety .si{flex:none;color:var(--forest);margin-top:.15rem}
.safety h3{font-size:1.2rem;color:var(--forest);font-weight:500;margin-bottom:.35rem}
.safety p{font-size:.96rem;color:var(--ink);line-height:1.65;margin:0}
[data-theme="dark"] .safety h3,[data-theme="dark"] .safety .si{color:var(--sage)}

/* --- small note under hours --- */
.hours-note{font-size:.82rem;color:var(--ink-soft);font-style:italic;margin-top:.7rem}

/* --- mobile: drop the hero tagline to give the denser hero more air --- */
@media(max-width:760px){#hero .hero-tag{display:none}}

/* --- booking: per-tech schedule hint (e.g. Ly is off Sundays) --- */
.bk-hint{font-size:.78rem;font-style:italic;color:var(--clay);line-height:1.5;margin-top:-.15rem}
.bk-hint[hidden]{display:none}
[data-theme="dark"] .bk-hint{color:#D9906E}

/* --- hero quick-info card (hours · address · walk-ins at the top of the home page) --- */
.hero-info{margin-top:1.5rem;background:var(--parchment);border:1px solid var(--line);border-left:3px solid var(--brass);
  border-radius:8px;padding:.95rem 1.15rem;display:flex;flex-direction:column;gap:.5rem;max-width:30rem}
.hero-info .open-pill{align-self:flex-start;margin-top:0}
.hi{display:flex;align-items:flex-start;gap:.6rem;font-size:.93rem;font-weight:600;color:var(--espresso);
  text-decoration:none;line-height:1.45;text-align:left}
.hi svg{flex:none;color:var(--forest);margin-top:.14rem}
.hi .dir{color:var(--forest);font-weight:800;white-space:nowrap}
a.hi:hover .dir{color:var(--brass)}
@media(max-width:920px){.hero-info{max-width:none}}
[data-theme="dark"] .hi svg,[data-theme="dark"] .hi .dir{color:var(--sage)}
[data-theme="dark"] a.hi:hover .dir{color:var(--brass-lt)}

/* --- colors page: browse-by-family filter + swatch grid --- */
.color-filter{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:2.2rem auto 0;max-width:660px}
.cf-chip{font-family:"Mulish",sans-serif;font-weight:700;font-size:.82rem;letter-spacing:.02em;
  padding:.45rem 1rem;border-radius:30px;border:1.5px solid rgba(203,168,110,.5);background:transparent;
  color:var(--brass-pale);cursor:pointer;transition:.2s}
.cf-chip:hover{border-color:var(--brass-lt);color:var(--cream)}
.cf-chip.active{background:var(--brass);color:var(--forest-dk);border-color:var(--brass)}
.shade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:13px;margin:1.9rem auto .5rem;max-width:720px}
.shade{display:flex;flex-direction:column;align-items:center;gap:.45rem}
.shade .sw{width:100%;aspect-ratio:1/1;border-radius:11px;box-shadow:0 4px 14px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.14)}
.shade .nm{font-size:.72rem;font-weight:600;color:var(--brass-pale);text-align:center;letter-spacing:.01em;line-height:1.25}
.shade[hidden]{display:none}

/* ===================================================================
   v7 — AMBIENT BOTANICAL MOTION (gentle · on-brand · reduced-motion-safe)
   =================================================================== */
@media (prefers-reduced-motion: no-preference){
  /* --- blossoms drifting across the whole viewport (fixed: keeps falling as you scroll, on every page) --- */
  .petals{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:5;perspective:680px}
  [data-theme="dark"] .petal{filter:blur(var(--blur,0px)) brightness(1.85) saturate(.6)}
  .petal{position:absolute;top:0;width:18px;height:18px;opacity:0;will-change:transform,opacity,filter;
    filter:blur(var(--blur,0px));
    animation:n1Drift linear infinite;
    background:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjQTk4MjRBIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KPGNpcmNsZSBjeD0iMjAiIGN5PSI5IiByPSI0Ii8+PGNpcmNsZSBjeD0iMzAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjYiIGN5PSIyNyIgcj0iNCIvPgo8Y2lyY2xlIGN4PSIxNCIgY3k9IjI3IiByPSI0Ii8+PGNpcmNsZSBjeD0iMTAiIGN5PSIxNS41IiByPSI0Ii8+PGNpcmNsZSBjeD0iMjAiIGN5PSIxOC41IiByPSIyLjIiIGZpbGw9IiNBOTgyNEEiLz4KPC9zdmc+Cg==") center/contain no-repeat}
  @keyframes n1Drift{
    0%{opacity:0;transform:translate3d(0,-6vh,0) rotateX(0deg) rotateY(0deg) rotateZ(0deg)}
    10%{opacity:var(--op,.42)}
    90%{opacity:calc(var(--op,.42) * .62)}
    100%{opacity:0;transform:translate3d(var(--drift,30px),var(--fall,106vh),0) rotateX(var(--rx,160deg)) rotateY(var(--ry,520deg)) rotateZ(var(--rz,90deg))}
  }

  /* --- the divider + footer blossoms gently sway --- */
  .flourish span:not(.ln){animation:n1Sway 6s ease-in-out infinite;transform-origin:50% 60%}
  footer::before{animation:n1Sway 7.5s ease-in-out infinite;transform-origin:50% 60%}
  @keyframes n1Sway{0%,100%{transform:rotate(-6deg) scale(.97)}50%{transform:rotate(6deg) scale(1.04)}}

  /* --- hero 3D depth: corner botanicals + photo lean with the cursor (desktop) --- */
  #hero::before{transition:transform .35s ease-out;transform:translate3d(calc(var(--px,0)*14px),calc(var(--py,0)*9px),0)}
  #hero::after{transition:transform .35s ease-out;transform:scaleX(-1) translate3d(calc(var(--px,0)*-14px),calc(var(--py,0)*9px),0)}
  .hero-frame{perspective:1000px}
  .arch{transition:transform .4s ease-out;transform:rotateX(calc(var(--py,0)*-3.5deg)) rotateY(calc(var(--px,0)*5deg))}
}

/* ===================================================================
   v8 — AA polish pass (verified review panel, 2026-07)
   =================================================================== */
/* darker label on brass buttons: 4.41:1 -> 5.06:1 light / ~7.5:1 dark */
.mbar .call,.modal-text,.cf-chip.active,.giftband .btn-primary{color:#0B1B16}
