
:root{--cream:#efe7dc;--cream-2:#f7f3ee;--black:#060606;--charcoal:#211b17;--gold:#c79500;--gold-soft:#e5cf8f;--taupe:#c7b69f;--muted:#6e6257;--white:#fffaf4;--shadow:0 24px 70px rgba(23,18,14,.16);--radius:28px;--site:1180px;--display:"Didot","Bodoni 72","Bodoni MT",Georgia,serif;--script:"Brittany Signature","Amsterdam Four","Segoe Script","Snell Roundhand",cursive;--body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--charcoal);font-family:var(--body);line-height:1.65}img,svg,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.container{width:min(var(--site),calc(100% - 2rem));margin-inline:auto}.skip-link{position:absolute;left:-999px;top:.5rem;background:var(--black);color:white;padding:.75rem 1rem;border-radius:999px;z-index:3000}.skip-link:focus{left:.5rem}.topbar{position:sticky;top:0;z-index:1500;background:rgba(239,231,220,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.08)}.nav{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.85rem;min-width:0}.brand-logo{width:156px;max-height:74px;object-fit:contain}.brand-copy strong{display:block;font-family:var(--display);font-size:1.05rem;line-height:1.1}.brand-copy span{display:block;font-size:.78rem;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:.25rem;list-style:none;margin:0;padding:0}.nav-links a,.nav-links button{border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;padding:.75rem .9rem;border-radius:999px;display:inline-flex}.nav-links a:hover,.nav-links button:hover,.nav-links a.active,.dropdown:has(a.active)>button{background:rgba(0,0,0,.07);text-decoration:none}.booking-pill{background:var(--black)!important;color:white!important}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;min-width:270px;background:rgba(255,250,244,.98);border:1px solid rgba(0,0,0,.08);border-radius:20px;box-shadow:var(--shadow);padding:.55rem;opacity:0;visibility:hidden;transform:translateY(10px);transition:.22s ease}.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:translateY(.35rem)}.dropdown-menu a{display:block;border-radius:14px}.menu-toggle{display:none;width:52px;height:52px;border-radius:50%;border:1px solid rgba(0,0,0,.12);background:rgba(255,255,255,.8);position:relative}.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";position:absolute;left:14px;width:22px;height:2px;background:var(--black);transition:.22s ease}.menu-toggle span{top:25px}.menu-toggle:before{top:17px}.menu-toggle:after{top:33px}.menu-open .menu-toggle span{opacity:0}.menu-open .menu-toggle:before{top:25px;transform:rotate(45deg)}.menu-open .menu-toggle:after{top:25px;transform:rotate(-45deg)}.mobile-panel{position:fixed;inset:0;background:rgba(239,231,220,.98);z-index:1300;display:grid;place-items:center;opacity:0;visibility:hidden;transition:.25s ease}.mobile-panel:before{content:"";position:absolute;inset:0;background:url('/assets/img/logo-lace.jpg') center/cover no-repeat;opacity:.12}.mobile-panel.open{opacity:1;visibility:visible}.mobile-panel nav{position:relative;text-align:center;width:min(520px,calc(100% - 2rem))}.mobile-logo{width:min(360px,85%);margin:0 auto 1rem}.mobile-panel ul{list-style:none;margin:0;padding:0}.mobile-panel a{display:block;padding:.85rem;font-family:var(--display);font-size:clamp(1.55rem,7vw,2.7rem)}.mobile-submenu{display:grid;grid-template-columns:1fr 1fr;gap:.25rem .5rem;margin:.25rem auto .75rem;max-width:520px}.mobile-panel .mobile-submenu a{font-family:var(--body);font-size:1rem;font-weight:800;padding:.35rem .5rem;color:var(--muted)}.mobile-panel .mobile-submenu a:hover{color:var(--black);text-decoration:none}
.hero{position:relative;min-height:calc(100svh - 92px);display:grid;align-items:center;overflow:hidden;background:#18120f;color:white}.hero-subpage{min-height:56svh}.hero-media{position:absolute;inset:0}.logo-lace-bg{background:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.34)),url('/assets/img/logo-lace.jpg') center/cover no-repeat;filter:saturate(.94)}.hero-content{position:relative;z-index:2;max-width:850px;padding-block:5rem}.hero-badge{display:inline-flex;margin-bottom:1rem;padding:.5rem .9rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.13);backdrop-filter:blur(10px);font-weight:700}.script{display:block;font-family:var(--script);font-size:clamp(2rem,4vw,3.4rem);font-weight:400;color:var(--gold);line-height:1.05;margin-bottom:.45rem}h1,h2,h3{font-family:var(--display);line-height:1.05;margin:0 0 1rem;letter-spacing:.01em}h1{font-size:clamp(3rem,7vw,6.8rem)}h2{font-size:clamp(2.2rem,5vw,4.6rem)}h3{font-size:clamp(1.35rem,2.8vw,2rem)}p{margin:0 0 1rem}.lead{font-size:clamp(1.08rem,1.8vw,1.3rem)}.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:.9rem 1.3rem;border-radius:999px;border:1px solid transparent;font-weight:800;box-shadow:0 12px 34px rgba(0,0,0,.12);transition:.2s ease}.btn:hover{transform:translateY(-2px);text-decoration:none}.btn-primary{background:var(--black);color:white}.btn-secondary{background:rgba(255,255,255,.78);color:var(--charcoal);border-color:rgba(0,0,0,.12)}.btn-accent{background:var(--gold);color:#15110e}.section{position:relative;padding:6rem 0}.section-light{background:var(--cream-2)}.section-mid{background:var(--cream)}.section-dark{background:linear-gradient(135deg,#17110e,#3b3029);color:white}.text-center{text-align:center}.narrow{max-width:760px;margin-inline:auto}.grid{display:grid;gap:1.5rem}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.service-listing,.logo-card{background:rgba(255,250,244,.82);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.service-card{display:flex;flex-direction:column}.service-card a{margin-top:auto;font-weight:800;color:var(--gold)}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.18em;font-size:.74rem;font-weight:900;color:var(--muted);margin-bottom:.75rem}.check-list{padding:0;margin:1.2rem 0;list-style:none}.check-list li{position:relative;padding-left:1.75rem;margin:.65rem 0}.check-list li:before{content:"";position:absolute;left:0;top:.5rem;width:.7rem;height:.7rem;border-radius:50%;background:var(--gold)}.flourish-divider{height:66px;background:linear-gradient(var(--cream-2),var(--cream));display:grid;place-items:center;overflow:hidden}.flourish-divider svg{width:min(560px,70%);height:54px}.flourish-divider path{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round}.lace-corners:before,.lace-corners:after{content:"";position:absolute;width:360px;height:360px;background:url('/assets/img/logo-lace.jpg') center/cover no-repeat;opacity:.13;pointer-events:none;mix-blend-mode:multiply}.lace-corners:before{left:-130px;bottom:-80px}.lace-corners:after{right:-130px;top:-80px;transform:rotate(180deg)}.logo-card img{width:100%;height:auto;border-radius:20px}.square-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.square-category-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.booking-widget-card{overflow:hidden}.square-appointments-widget{margin:1.25rem 0;padding:1rem;border-radius:22px;background:rgba(255,255,255,.72);border:1px solid rgba(0,0,0,.08)}.square-appointments-widget iframe{max-width:100%;border-radius:18px}.booking-widget-note{font-size:.95rem;color:var(--muted);margin-top:1rem}
.service-item{background:rgba(255,250,244,.88);border:1px solid rgba(0,0,0,.08);border-radius:22px;padding:1.15rem;box-shadow:0 14px 42px rgba(0,0,0,.08)}.service-item-top{display:flex;justify-content:space-between;gap:1rem}.service-meta{color:var(--muted);font-size:.95rem}.cta-band{display:grid;grid-template-columns:1.5fr auto;gap:1.5rem;align-items:center;padding:2rem;border-radius:32px;background:linear-gradient(135deg,rgba(0,0,0,.82),rgba(63,49,40,.9));box-shadow:var(--shadow)}.contact-list{list-style:none;padding:0;margin:1rem 0}.icon-link{display:inline-flex;align-items:flex-start;gap:.5rem}.icon-link img{width:1.15rem;margin-top:.25rem}.map-frame{width:100%;min-height:430px;border:0;border-radius:28px;box-shadow:var(--shadow)}.form-card form{display:grid;gap:1rem}label{display:grid;gap:.35rem;font-weight:800}input,textarea{width:100%;border:1px solid rgba(0,0,0,.14);border-radius:16px;padding:.95rem 1rem;background:white;color:var(--charcoal);font:inherit}textarea{min-height:160px}.footer-top{background:#201915;color:rgba(255,255,255,.84);padding:4rem 0 2rem}.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:1.5rem}.footer-title{color:white;font-size:1.15rem}.footer-logo{width:260px;filter:invert(1);mix-blend-mode:screen;background:white;border-radius:14px;padding:.35rem;margin-bottom:1rem}.socials{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.socials a{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18)}.socials img{width:22px;height:22px;filter:invert(1)}.socials-dark a{background:var(--black)}.copyright{padding:1rem 0 2rem;color:rgba(255,255,255,.72);background:#201915}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:1100px){.grid-2,.grid-3,.service-grid,.footer-grid,.square-category-cards,.square-service-list,.cta-band{grid-template-columns:1fr}.nav-links{display:none}.menu-toggle{display:block}.brand-logo{width:128px}.hero{min-height:76svh}}@media(max-width:680px){.container{width:min(var(--site),calc(100% - 1.1rem))}.brand-copy{display:none}.hero-content{padding-block:4rem}h1{font-size:clamp(2.65rem,14vw,4.2rem)}.btn-row{flex-direction:column}.btn{width:100%}.section{padding:4rem 0}.hero-subpage{min-height:68svh}.footer-logo{width:210px}.lace-corners:before,.lace-corners:after{width:240px;height:240px}.service-item-top{display:block}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}


/* Booking page refinement */
.booking-widget-card {
  position: relative;
  border: 1px solid rgba(190, 149, 86, .28);
}
.booking-widget-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(circle at top right, rgba(190,149,86,.12), transparent 45%);
}
.square-appointments-widget {
  min-height: 620px;
}
.square-appointments-widget > * {
  position: relative;
  z-index: 1;
}
.square-appointments-widget iframe {
  width: 100% !important;
  min-height: 600px;
  background: #fff;
}
@media(max-width:680px){
  .square-appointments-widget {
    padding: .5rem;
    min-height: 700px;
  }
  .square-appointments-widget iframe {
    min-height: 700px;
  }
}

/* Direct Square booking page iframe embed */
.booking-page-intro {
  text-align: center;
}
.booking-check-list {
  display: inline-grid;
  text-align: left;
  max-width: 760px;
}
.booking-frame-container {
  margin-top: 2.25rem;
}
.booking-location-card {
  width: min(1100px, 100%);
  margin: 0 auto 1rem;
  padding: 1rem 1.25rem;
  border-radius: 22px;
  background: rgba(255,250,244,.82);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 12px 34px rgba(0,0,0,.08);
  text-align: center;
}
.booking-frame-wrap {
  width: min(1100px, 100%);
  margin: 0 auto;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 28px;
  overflow: hidden;
  box-shadow: 0 24px 70px rgba(23,18,14,.16);
}
.booking-frame-wrap iframe {
  width: 100%;
  min-height: 980px;
  border: 0;
  display: block;
  background: #fff;
}
.booking-fallback {
  width: min(1100px, 100%);
  margin: 1.25rem auto 0;
  text-align: center;
}
.booking-fallback p {
  color: var(--muted);
  margin-bottom: .75rem;
}
@media(max-width: 680px) {
  .booking-frame-wrap {
    border-radius: 18px;
  }
  .booking-frame-wrap iframe {
    min-height: 1100px;
  }
}
