:root{
  --cream:#faf5ef;
  --blush:#eeddd0;
  --blush2:#f4e6d9;
  --gold:#b98d5e;
  --gold-deep:#8f6a42;
  --deep:#332720;
  --ink:#2b2420;
  --line:#e6d8c8;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Poppins', sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
  overflow-x:hidden;
}
h1,h2,h3{font-family:'Playfair Display', serif; font-weight:600; color:var(--deep);}
a{text-decoration:none; color:inherit;}
.wrap{max-width:1140px; margin:0 auto; padding:0 32px; position:relative;}
img{display:block; max-width:100%;}

.mockup-banner{
  background:var(--deep); color:#f5ece2; text-align:center;
  font-size:12.5px; letter-spacing:1.2px; padding:11px 20px; text-transform:uppercase;
}

.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal.delay-1{transition-delay:.12s;}
.reveal.delay-2{transition-delay:.24s;}
.reveal.delay-3{transition-delay:.36s;}
.reveal.delay-4{transition-delay:.48s;}

.texture{
  position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image: radial-gradient(circle, var(--gold) 1px, transparent 1.4px);
  background-size: 26px 26px;
}

/* nav */
header{
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 32px; background:rgba(250,245,239,.88); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:50;
  transition:padding .3s ease, box-shadow .3s ease;
}
header.shrink{padding:6px 32px; box-shadow:0 8px 24px rgba(58,47,40,.08);}
header .logo img{height:210px; width:auto; transition:height .3s ease;}
header.shrink .logo img{height:120px;}
nav{display:flex; align-items:center; gap:32px;}
nav a:not(.book-btn){
  font-size:13.5px; letter-spacing:.4px; color:var(--deep); position:relative; padding-bottom:4px;
}
nav a:not(.book-btn)::after{
  content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
  transition:width .3s ease;
}
nav a:not(.book-btn):hover::after{width:100%;}
nav a.active::after{width:100%;}
nav a.active{color:var(--gold-deep);}
.book-btn{
  background:linear-gradient(135deg, var(--gold), var(--gold-deep)); color:#fff !important; padding:12px 24px;
  border-radius:2px; font-size:12.5px; letter-spacing:1px; text-transform:uppercase;
  transition:transform .25s ease, box-shadow .25s ease; box-shadow:0 6px 16px rgba(143,106,66,.25);
}
.book-btn:hover{transform:translateY(-2px); box-shadow:0 10px 22px rgba(143,106,66,.35);}

/* home hero */
.hero{
  position:relative; min-height:88vh;
  background:
    linear-gradient(180deg, rgba(20,15,10,.35), rgba(20,15,10,.55)),
    url('images/04-foam-cleanse.jpg') center 38%/cover no-repeat;
  display:flex; align-items:center; justify-content:center; text-align:center; color:#fff;
  overflow:hidden;
}
.hero::before{
  content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(255,255,255,.25);
  border-radius:50%; top:-140px; right:-140px;
}
.hero::after{
  content:""; position:absolute; width:340px; height:340px; border:1px solid rgba(255,255,255,.18);
  border-radius:50%; bottom:-120px; left:-100px;
}
.hero-inner{max-width:720px; padding:0 24px; position:relative; z-index:2;}
.hero-logo{height:150px; width:auto; margin:0 auto 26px; filter:drop-shadow(0 6px 18px rgba(0,0,0,.35));}
.hero .eyebrow{
  display:block; font-size:13px; letter-spacing:3px; text-transform:uppercase; color:#f0d9bd; margin-bottom:18px;
}
.hero h1{color:#fff; font-size:52px; line-height:1.22; margin-bottom:20px; font-style:italic;}
.hero p{font-size:16.5px; font-weight:300; margin-bottom:32px; color:#f2e9df; max-width:480px; margin-left:auto; margin-right:auto;}
.hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

.btn-solid{
  display:inline-block; background:linear-gradient(135deg, var(--gold), var(--gold-deep)); color:#fff; padding:15px 32px;
  font-size:12.5px; letter-spacing:1.2px; text-transform:uppercase; border-radius:2px;
  box-shadow:0 10px 26px rgba(143,106,66,.4); transition:transform .25s ease;
}
.btn-solid:hover{transform:translateY(-3px);}
.btn-outline{
  display:inline-block; border:1px solid rgba(255,255,255,.7); color:#fff; padding:14px 30px;
  font-size:12.5px; letter-spacing:1.2px; text-transform:uppercase; transition:background .25s ease, color .25s ease;
}
.btn-outline:hover{background:#fff; color:var(--deep);}
.btn-outline.dark{border-color:var(--gold); color:var(--gold-deep);}
.btn-outline.dark:hover{background:var(--gold); color:#fff;}

.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#f0e3d1; opacity:.8;
  display:flex; flex-direction:column; align-items:center; gap:8px;
}
.scroll-cue .line{width:1px; height:34px; background:#f0e3d1; animation:pulse-line 1.8s infinite ease-in-out;}
@keyframes pulse-line{0%,100%{opacity:.3} 50%{opacity:1}}

/* inner page banner */
.page-hero{
  position:relative; padding:64px 24px 40px; text-align:center; color:#fff; overflow:hidden;
  background:linear-gradient(135deg, var(--deep), #4a382c);
}
.page-hero .texture{opacity:.1; background-image: radial-gradient(circle, #f0d9bd 1px, transparent 1.4px);}
.page-hero::before{
  content:""; position:absolute; width:380px; height:380px; border:1px solid rgba(240,217,189,.2);
  border-radius:50%; top:-160px; right:-100px;
}
.page-hero .eyebrow{
  display:block; font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; position:relative; z-index:2;
}
.page-hero h1{color:#f7ece0; font-size:40px; font-style:italic; position:relative; z-index:2;}
.breadcrumb{
  margin-top:16px; font-size:12.5px; color:#d9cabb; position:relative; z-index:2; letter-spacing:.4px;
}
.breadcrumb a{color:var(--gold);}

section{padding:64px 0; position:relative;}
section.tight{padding:56px 0;}
.section-head{text-align:center; max-width:640px; margin:0 auto 40px; position:relative; z-index:2;}
.section-head.left{text-align:left; margin-left:0;}
.section-head .eyebrow{
  font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-deep); margin-bottom:12px; display:inline-block;
  padding-bottom:10px; border-bottom:1px solid var(--gold);
}
.section-head h2{font-size:36px;}
.section-head p{color:#6b5f55; margin-top:16px; font-weight:300;}

/* welcome / about content */
.welcome{background:#fff;}
.welcome-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; position:relative; z-index:2;}
.welcome-imgwrap{position:relative;}
.welcome-imgwrap img{border-radius:2px; box-shadow:0 30px 60px rgba(58,47,40,.18);}
.welcome-imgwrap::before{
  content:""; position:absolute; top:-24px; left:-24px; width:100%; height:100%;
  border:1px solid var(--gold); border-radius:2px; z-index:-1;
}
.welcome-grid .text .eyebrow{
  font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-deep); display:block; margin-bottom:14px;
}
.welcome-grid h2{font-size:34px; margin-bottom:20px;}
.welcome-grid p{color:#5c5148; font-weight:300; margin-bottom:24px; font-size:15.5px;}

/* services */
.services{background:var(--cream);}
.services-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line);
  border:1px solid var(--line); position:relative; z-index:2;
}
.services-grid.two-col{grid-template-columns:repeat(2,1fr);}
.service-card{
  background:#fff; padding:44px 26px; text-align:left; position:relative; overflow:hidden;
  transition:background .3s ease;
}
.service-card::before{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:3px;
  background:linear-gradient(90deg, var(--gold), var(--gold-deep)); transform:scaleX(0); transform-origin:left;
  transition:transform .35s ease;
}
.service-card:hover{background:var(--blush2);}
.service-card:hover::before{transform:scaleX(1);}
.service-card .num{
  font-family:'Playfair Display',serif; font-style:italic; font-size:15px; color:var(--gold); margin-bottom:22px; display:block;
}
.service-card h3{font-size:17px; margin-bottom:10px;}
.service-card p{font-size:13px; color:#7a6e63; font-weight:300;}
.service-card .price-note{font-size:11.5px; color:var(--gold-deep); margin-top:12px; letter-spacing:.4px; text-transform:uppercase;}

/* meet marcella */
.meet{background:var(--deep); color:#f2e6d8; overflow:hidden;}
.meet .texture{opacity:.08; background-image: radial-gradient(circle, #f0d9bd 1px, transparent 1.4px);}
.meet-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:70px; align-items:center; position:relative; z-index:2;}
.badge-ring{
  width:100%; aspect-ratio:1/1; border-radius:50%; border:1px solid rgba(240,217,189,.4);
  display:flex; align-items:center; justify-content:center; position:relative; padding:34px;
  max-width:340px; margin:0 auto;
}
.badge-ring::before{
  content:""; position:absolute; inset:22px; border-radius:50%; border:1px solid rgba(240,217,189,.22);
}
.badge-ring img{width:78%; filter:brightness(0) invert(1); opacity:.92;}
.meet-grid .since{font-size:12.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:14px; display:block;}
.meet-grid h2{color:#f7ece0; font-size:32px; margin-bottom:20px;}
.meet-grid p{color:#d9cabb; font-weight:300; margin-bottom:16px; font-size:15.5px;}
.quote-mark{font-family:'Playfair Display',serif; font-size:60px; color:var(--gold); line-height:0; display:block; margin-bottom:8px;}

/* testimonials */
.testimonials{background:#fff; text-align:center;}
.t-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin-top:10px; position:relative; z-index:2;}
.t-card{
  padding:40px 30px; border:1px solid var(--line); position:relative; background:var(--cream);
  transition:transform .3s ease, box-shadow .3s ease;
}
.t-card:nth-child(2){transform:translateY(-14px);}
.t-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(58,47,40,.12);}
.t-card:nth-child(2):hover{transform:translateY(-20px);}
.t-card .qm{font-family:'Playfair Display',serif; font-size:44px; color:var(--gold); display:block; margin-bottom:12px;}
.t-card p{font-style:italic; color:#5c5148; font-weight:300; margin-bottom:18px; font-size:14.5px;}
.t-card span{font-size:12.5px; color:var(--gold-deep); letter-spacing:.6px; text-transform:uppercase;}
.placeholder-note{font-size:12px; color:#a89c8f; margin-top:30px; text-align:center;}

/* contact page */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; position:relative; z-index:2;}
.contact-card{background:#fff; border:1px solid var(--line); padding:40px; }
.contact-card h3{font-size:20px; margin-bottom:20px;}
.contact-row{display:flex; gap:14px; margin-bottom:18px; font-size:14.5px; color:#5c5148; font-weight:300;}
.contact-row .label{color:var(--gold-deep); font-weight:500; min-width:90px;}
.map-box{
  background:linear-gradient(135deg, var(--blush2), var(--blush)); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; min-height:340px; color:var(--gold-deep);
  font-size:13px; letter-spacing:.5px; text-transform:uppercase; text-align:center; padding:24px;
}

.map-box iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.map-box:has(iframe){position:relative; padding:0;}

/* cta band */
.cta-band{
  position:relative; background:linear-gradient(135deg, var(--gold-deep), var(--gold)); color:#fff5e9;
  text-align:center; padding:26px 24px 34px; overflow:hidden;
}
.cta-band .hero-logo{height:230px; margin-top:-30px; margin-bottom:-34px; filter:brightness(0) invert(1); opacity:.9;}
.cta-band::before{
  content:""; position:absolute; width:400px; height:400px; border:1px solid rgba(255,255,255,.25); border-radius:50%;
  top:-200px; left:-100px;
}
.cta-band h2{color:#fff8f0; font-size:28px; margin-bottom:10px; position:relative; z-index:2;}
.cta-band p{font-weight:300; margin-bottom:18px; color:#fbeadb; position:relative; z-index:2;}
.cta-band .btn-outline{position:relative; z-index:2;}

/* footer */
.footer-grid .ig-link{display:inline-flex; align-items:center; gap:8px; margin-bottom:9px;}
.footer-grid .ig-link svg{width:15px; height:15px; fill:var(--gold-deep); flex:none; transition:fill .2s ease;}
.footer-grid .ig-link:hover{color:var(--gold-deep);}
.footer-grid .ig-link:hover svg{fill:var(--deep);}
footer{background:var(--cream); padding:36px 0 20px; border-top:1px solid var(--line);}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:44px; margin-bottom:28px; align-items:start;}
.footer-grid img{width:270px; height:110px; object-fit:cover; object-position:center 50%; display:block; margin:-14px 0 0 -6px;}
.footer-grid > div:first-child p{margin-top:6px;}
.footer-grid h4{font-size:13px; letter-spacing:1px; text-transform:uppercase; color:var(--gold-deep); margin-bottom:16px;}
.footer-grid p, .footer-grid a{font-size:14px; color:#6b5f55; display:block; margin-bottom:9px; font-weight:300;}
.footer-grid a:hover{color:var(--gold-deep);}
.footer-bottom{
  text-align:center; font-size:12px; color:#a89c8f; padding-top:26px; border-top:1px solid var(--line);
  letter-spacing:.4px;
}

@media(max-width:900px){
  nav{display:none;}
  .welcome-grid, .meet-grid, .contact-grid{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .services-grid.two-col{grid-template-columns:1fr;}
  .t-grid{grid-template-columns:1fr;}
  .t-card:nth-child(2){transform:none;}
  .footer-grid{grid-template-columns:1fr;}
  .hero h1{font-size:34px;}
}

/* new photo blocks */
.photo-strip{padding:36px 0 56px; background:var(--cream);}
.photo-strip .strip-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px; max-width:900px; margin:0 auto;}
.photo-strip.three .strip-grid{grid-template-columns:repeat(3,1fr); max-width:1100px;}
.photo-strip img{width:100%; height:420px; object-fit:cover; border-radius:2px; box-shadow:0 20px 40px rgba(58,47,40,.18);}
.photo-strip .cap{text-align:center; margin-bottom:26px;}
.photo-strip .cap span{font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-deep);}
.photo-strip .cap h2{font-size:30px; margin-top:10px;}
@media(max-width:700px){.photo-strip .strip-grid,.photo-strip.three .strip-grid{grid-template-columns:1fr;} .photo-strip img{height:340px;}}

/* laser feature */
.laser-feature{padding:56px 0 52px; background:#fff;}
.laser-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center;}
.laser-text .eyebrow{font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold-deep); display:block; margin-bottom:14px;}
.laser-text h2{font-size:34px; margin-bottom:20px;}
.laser-text p{color:#5c5148; font-weight:300; margin-bottom:20px; font-size:15.5px;}
.laser-points{list-style:none; padding:0; margin:0 0 28px;}
.laser-points li{color:#5c5148; font-size:15px; padding:8px 0 8px 22px; position:relative; border-bottom:1px solid var(--line);}
.laser-points li::before{content:""; position:absolute; left:0; top:17px; width:8px; height:8px; border-radius:50%; background:var(--gold);}
.laser-photos{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.laser-photos img{width:100%; height:440px; object-fit:cover; border-radius:2px; box-shadow:0 25px 50px rgba(58,47,40,.2);}
.laser-photos .p2{margin-top:44px;}
@media(max-width:800px){.laser-grid{grid-template-columns:1fr; gap:40px;} .laser-photos img{height:300px;}}

.feature-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:32px; max-width:960px; margin:0 auto;}
.feature-card{background:var(--cream); border:1px solid var(--line); overflow:hidden; box-shadow:0 20px 40px rgba(58,47,40,.1);}
.feature-card img{width:100%; height:380px; object-fit:cover; display:block;}
.fc-body{padding:30px 32px 34px;}
.fc-body h3{font-size:24px; margin-bottom:12px;}
.fc-body p{color:#5c5148; font-weight:300; font-size:15px; margin-bottom:22px;}
@media(max-width:800px){.feature-cards{grid-template-columns:1fr;}}

.laser-text .treat{padding:16px 0 16px 22px; border-left:2px solid var(--gold); margin-bottom:18px;}
.laser-text .treat h3{font-size:20px; margin-bottom:6px;}
.laser-text .treat p{margin-bottom:0;}
.laser-text .btn-outline{margin-top:14px;}

/* linked hover: photo <-> treatment text */
.laser-photos img, .laser-text .treat{transition:transform .35s ease, box-shadow .35s ease, opacity .35s ease, filter .35s ease, border-color .3s ease, background .3s ease; cursor:pointer;}
.laser-grid.hovering .laser-photos img:not(.active){opacity:.45; filter:brightness(.8) saturate(.85);}
.laser-grid.hovering .laser-text .treat:not(.active){opacity:.4;}
.laser-photos img.active{transform:translateY(-8px) scale(1.04); box-shadow:0 35px 70px rgba(58,47,40,.35), 0 0 0 2px var(--gold); z-index:3; position:relative;}
.laser-text .treat.active{border-left-width:5px; background:linear-gradient(90deg, rgba(200,169,126,.18), transparent); transform:translateX(6px);}
.laser-text .treat.active h3{color:var(--gold-deep);}

a.service-card{display:block; color:inherit; text-decoration:none; cursor:pointer;}
a.service-card:hover h3{color:var(--gold-deep);}

.services-more{text-align:center; margin-top:44px; position:relative; z-index:2;}

.badge-ring.portrait{padding:14px;}
.badge-ring.portrait img{width:100%; height:100%; border-radius:50%; object-fit:cover; filter:none; opacity:1;}

.badge-ring.cactus{padding:0;}
.badge-ring.cactus svg{width:74%; height:auto; display:block;}

.hero .hero-signature{display:block; width:300px; height:auto; margin:-70px auto -60px; filter:brightness(0) invert(1) drop-shadow(0 4px 14px rgba(0,0,0,.45)); opacity:.95;}
@media(max-width:700px){.hero .hero-signature{width:230px; margin:-50px auto -45px;}}

/* drop hero content ~1 inch */
.hero{min-height:88vh;}
.hero .hero-inner{top:-44px;}
@media(max-width:700px){.hero .hero-inner{top:0;}}

/* Consent Forms page */
.consent{padding:90px 0 100px;}
.consent-note{text-align:center; margin-top:40px; font-size:14px; color:#7a6e63;}
.consent-note a{color:var(--gold-deep); border-bottom:1px solid var(--gold);}

.services-grid.three-col{grid-template-columns:repeat(3,1fr);}
@media(max-width:900px){.services-grid.three-col{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.services-grid.three-col{grid-template-columns:1fr;}}

.service-card.wide{grid-column:1/-1;}


/* Service hover icons */
.service-card{position:relative;}
.service-card h3{padding-right:84px;}
.svc-ico{position:absolute; top:22px; right:24px; width:68px; height:68px; fill:none; stroke:var(--gold-deep); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; pointer-events:none; overflow:visible; opacity:.85; transition:opacity .3s ease;}
.service-card:hover .svc-ico{opacity:1;}
.svc-ico *{transform-box:fill-box; transform-origin:center;}
.svc-ico .fill{fill:rgba(185,141,94,.22);}
.svc-ico .a-heart{opacity:0;}
.service-card:hover .a-face{animation:tilt 1.6s ease-in-out infinite;}
.service-card:hover .a-eyes{animation:blink 2.4s ease-in-out infinite;}
.service-card:hover .a-spark{animation:twinkle 1.2s ease-in-out infinite;}
.service-card:hover .a-spark.s2{animation-delay:.4s;}
.service-card:hover .a-pen{animation:tap .7s ease-in-out infinite;}
.service-card:hover .a-dots{animation:pulse .7s ease-in-out infinite;}
.service-card:hover .a-rays{animation:flash .9s ease-in-out infinite;}
.service-card:hover .a-brow{animation:raise 1.4s ease-in-out infinite;}
.service-card:hover .a-lid{animation:blinkEye 2.2s ease-in-out infinite;}
.service-card:hover .a-pencil{animation:trace 1.8s ease-in-out infinite;}
.service-card:hover .a-lips{animation:smooch 1.4s ease-in-out infinite;}
.service-card:hover .a-heart{animation:heart 1.4s ease-out infinite;}
.service-card:hover .a-wand{animation:circle 1.6s linear infinite;}
.service-card:hover .a-ring{animation:spin 4s linear infinite;}
.service-card:hover .a-up{animation:lift 1.1s ease-in-out infinite;}
.service-card:hover .a-up.s2{animation-delay:.25s;}
.service-card:hover .a-beam{animation:flash .8s ease-in-out infinite;}
.service-card:hover .a-dot{animation:flicker 1s ease-in-out infinite;}
.service-card:hover .a-drop{animation:drip 1.4s ease-in infinite;}
.service-card:hover .a-hair{animation:fade 1.6s ease-in-out infinite; transform-origin:bottom;}
.service-card:hover .a-bub{animation:rise 1.8s ease-in infinite;}
.service-card:hover .a-bub.b2{animation-delay:.4s;} .service-card:hover .a-bub.b3{animation-delay:.8s;} .service-card:hover .a-bub.b4{animation-delay:1.2s;}
.service-card:hover .a-blade{animation:swipe 1.2s ease-in-out infinite;}
.service-card:hover .a-fuzz{animation:fall 1.2s ease-in infinite;}
.service-card:hover .a-rays.spin{animation:spinPulse 3s linear infinite;}
.service-card:hover .a-core{animation:pulse 1.5s ease-in-out infinite;}
.service-card:hover .a-brush{animation:sweep 1.2s ease-in-out infinite;}
.service-card:hover .a-type{animation:bounce 1s ease-in-out infinite;}
.service-card:hover .a-type.t2{animation-delay:.15s;} .service-card:hover .a-type.t3{animation-delay:.3s;}
.service-card:hover .a-dot.d0{animation-delay:0.00s}.service-card:hover .a-dot.d1{animation-delay:0.08s}.service-card:hover .a-dot.d2{animation-delay:0.16s}.service-card:hover .a-dot.d3{animation-delay:0.24s}.service-card:hover .a-dot.d4{animation-delay:0.32s}.service-card:hover .a-dot.d5{animation-delay:0.40s}.service-card:hover .a-dot.d6{animation-delay:0.48s}.service-card:hover .a-dot.d7{animation-delay:0.56s}.service-card:hover .a-dot.d8{animation-delay:0.64s}.service-card:hover .a-dot.d9{animation-delay:0.72s}.service-card:hover .a-dot.d10{animation-delay:0.80s}.service-card:hover .a-dot.d11{animation-delay:0.88s}
@keyframes tilt{0%,100%{transform:rotate(0)}30%{transform:rotate(-7deg)}70%{transform:rotate(7deg)}}
@keyframes blink{0%,44%,56%,100%{transform:scaleY(1)}50%{transform:scaleY(.1)}}
@keyframes blinkEye{0%,40%,54%,100%{transform:scaleY(1)}47%{transform:scaleY(.08)}}
@keyframes twinkle{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(.4) rotate(45deg);opacity:.4}}
@keyframes tap{0%,100%{transform:translate(0,0)}50%{transform:translate(-3px,4px)}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}
@keyframes flash{0%,100%{opacity:1}50%{opacity:.15}}
@keyframes raise{0%,100%{transform:translateY(0)}40%,60%{transform:translateY(-5px) rotate(-3deg)}}
@keyframes trace{0%,100%{transform:translate(0,0)}50%{transform:translate(-22px,8px)}}
@keyframes smooch{0%,100%{transform:scale(1)}35%,55%{transform:scale(.72,1.12)}}
@keyframes heart{0%,30%{opacity:0;transform:translate(0,6px) scale(.5)}50%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(3px,-10px) scale(1.1)}}
@keyframes circle{0%{transform:translate(4px,0)}25%{transform:translate(0,4px)}50%{transform:translate(-4px,0)}75%{transform:translate(0,-4px)}100%{transform:translate(4px,0)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinPulse{0%{transform:rotate(0) scale(1)}50%{transform:rotate(22deg) scale(1.12)}100%{transform:rotate(45deg) scale(1)}}
@keyframes lift{0%,100%{transform:translateY(3px);opacity:.5}50%{transform:translateY(-4px);opacity:1}}
@keyframes flicker{0%,100%{opacity:.2}50%{opacity:1}}
@keyframes drip{0%{transform:translateY(-6px) scale(.6);opacity:0}30%{opacity:1;transform:translateY(0) scale(1)}100%{transform:translateY(12px);opacity:0}}
@keyframes fade{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.25;transform:scaleY(.55)}}
@keyframes rise{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(-16px);opacity:0}}
@keyframes swipe{0%,100%{transform:translate(0,0)}50%{transform:translate(-6px,6px)}}
@keyframes fall{0%{transform:translateY(-3px);opacity:1}100%{transform:translateY(8px);opacity:0}}
@keyframes sweep{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg) translateY(-3px)}}
@keyframes bounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.svc-ico *{animation:none!important}}
.svc-ico .a-closed{opacity:0;}
.service-card:hover .a-open{animation:eyeOpen 2.6s steps(1,end) infinite;}
.service-card:hover .a-closed{animation:eyeClosed 2.6s steps(1,end) infinite;}
.service-card:hover .a-hand{animation:glide 2.2s ease-in-out infinite;}
.service-card:hover .a-zap{animation:flash .5s ease-in-out infinite;}
@keyframes eyeOpen{0%{opacity:1}40%{opacity:0}50%{opacity:1}62%{opacity:0}68%{opacity:1}}
@keyframes eyeClosed{0%{opacity:0}40%{opacity:1}50%{opacity:0}62%{opacity:1}68%{opacity:0}}
@keyframes glide{0%,100%{transform:translate(0,0)}50%{transform:translate(-4px,22px)}}
.svc-ico .a-tick{opacity:0;}
.service-card:hover .a-tick{animation:tick 2.4s ease-out infinite;}
.service-card:hover .a-tick.t2{animation-delay:.4s;} .service-card:hover .a-tick.t3{animation-delay:.8s;}
.svc-ico .a-sign{stroke-dasharray:1; stroke-dashoffset:0;}
.service-card:hover .a-sign{animation:signIt 2.4s ease-in-out infinite;}
@keyframes tick{0%{opacity:0;transform:scale(.4)}15%,80%{opacity:1;transform:scale(1)}100%{opacity:0}}
@keyframes signIt{0%{stroke-dashoffset:1}60%,100%{stroke-dashoffset:0}}
.forms-grid{margin-top:10px;}
/* end icons */

/* Testimonial icons */
.t-card{position:relative;}
.t-ico{top:20px; right:20px; width:58px; height:58px;}
.t-ico .a-heart2{opacity:0;}
.t-card:hover .t-ico{opacity:1;}
.t-card:hover .a-core{animation:pulse 1.5s ease-in-out infinite;}
.t-card:hover .a-sunrays{animation:spinPulse 3s linear infinite;}
.t-card:hover .a-beat{animation:beat 1.1s ease-in-out infinite;}
.t-card:hover .a-heart2{animation:heart 1.4s ease-out infinite;}
.t-card:hover .a-bloom{animation:bloom 2.4s ease-in-out infinite;}
.t-card:hover .a-leaf{animation:sway 2.4s ease-in-out infinite; transform-origin:right bottom;}
.t-card:hover .a-leaf.r{transform-origin:left bottom; animation-delay:.3s;}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.14)}30%{transform:scale(.96)}45%{transform:scale(1.1)}}
@keyframes bloom{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(36deg) scale(1.12)}}
@keyframes sway{0%,100%{transform:rotate(0)}50%{transform:rotate(-10deg)}}
.t-card:hover .a-sprout{animation:grow 2.8s ease-out infinite; transform-origin:center bottom;}
.t-card:hover .a-bud{animation:budOpen 2.8s ease-out infinite; transform-origin:center bottom;}
@keyframes grow{0%{transform:scale(.15);opacity:0}10%{opacity:1}55%,100%{transform:scale(1)}}
@keyframes budOpen{0%,50%{transform:scale(.6)}70%{transform:scale(1.15)}85%,100%{transform:scale(1)}}
/* end t-icons */

/* Contact icons */
.contact-card{position:relative;}
.contact-row .label{display:inline-flex; align-items:flex-start; gap:8px; min-width:110px;}
.c-ico{width:22px; height:22px; flex:none; fill:none; stroke:var(--gold-deep); stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; overflow:visible; margin-top:1px;}
.c-ico *,.c-big *{transform-box:fill-box; transform-origin:center;}
.c-ico .fill{fill:rgba(185,141,94,.3);}
.c-ico .c-flapo,.c-ico .c-heart{opacity:0;}
.c-big{top:28px; right:28px; width:56px; height:56px; opacity:.85;}
.contact-card:hover .c-big{opacity:1;}
.contact-card:hover .c-big .c-ring{animation:ring 1.2s ease-in-out infinite;}
.contact-card:hover .c-big .c-waves{animation:flash .6s ease-in-out infinite;}
.contact-row:hover .c-pin{animation:pinBounce .9s ease-in-out infinite; transform-origin:center bottom;}
.contact-row:hover .c-shadow{animation:pulse .9s ease-in-out infinite;}
.contact-row:hover .c-ring{animation:ring 1s ease-in-out infinite;}
.contact-row:hover .c-waves{animation:flash .5s ease-in-out infinite;}
.contact-row:hover .c-flapc{opacity:0;}
.contact-row:hover .c-flapo{opacity:1;}
.contact-row:hover .c-heart{animation:heart 1.4s ease-out infinite;}
.contact-row:hover .c-hand{animation:spin 2s linear infinite; transform-origin:center bottom;}
.contact-row:hover .c-hand2{animation:spin 8s linear infinite; transform-origin:left top;}
@keyframes ring{0%,50%,100%{transform:rotate(0)}10%,30%{transform:rotate(-12deg)}20%,40%{transform:rotate(12deg)}}
@keyframes pinBounce{0%,100%{transform:translateY(0)}40%{transform:translateY(-5px)}60%{transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.c-ico *,.c-big *{animation:none!important}}
@media(max-width:560px){.contact-card{padding:28px 22px;} .contact-row{flex-direction:column; gap:4px;} .contact-row span{overflow-wrap:anywhere;} .contact-grid{min-width:0;} .contact-card{min-width:0;} .c-big{top:22px; right:20px; width:46px; height:46px;}}
/* end c-icons */

/* Reviews 2col */
.t-grid.two{grid-template-columns:repeat(2,1fr); align-items:start;}
.t-grid.two .t-card:nth-child(2){transform:none;}
.t-grid.two .t-card:nth-child(2):hover{transform:translateY(-6px);}
.t-grid.two .t-card p{text-align:left;}
.t-card .t-ico{top:20px; right:20px;}
.t-card:hover .t-star{animation:twinkle 1.4s ease-in-out infinite;}
.t-card:hover .t-star.s2{animation-delay:.35s;} .t-card:hover .t-star.s3{animation-delay:.7s;}
.testimonials .services-more{text-align:center; margin-top:40px;}
@media(max-width:900px){.t-grid.two{grid-template-columns:1fr;}}
.t-grid.family{margin-top:30px;}
.t-grid.family .t-card:nth-child(2){transform:none;}
.t-grid.family{align-items:start;}
.t-grid.family .t-card p{text-align:left;}
/* end reviews */

/* Cancellation policy */
.policy-note{max-width:640px; margin:34px auto 0; text-align:center; font-size:13.5px; color:#6b5f55; border:1px solid var(--line); background:#fff; padding:14px 20px; position:relative; z-index:2;}
.policy-note strong{color:var(--gold-deep); font-weight:500;}
.footer-policy{text-align:center; font-size:12px; color:#8a7d72; margin:0 0 10px;}
.contact-row:hover .c-x{animation:pulse .9s ease-in-out infinite;}

/* Uniform reviews */
.t-grid.uniform{grid-template-columns:repeat(6,1fr); grid-auto-rows:1fr; gap:30px; align-items:stretch;}
.t-grid.uniform .t-card{grid-column:span 2; display:flex; flex-direction:column; align-items:center; transform:none;}
.t-grid.uniform .t-card:hover{transform:translateY(-6px);}
.t-grid.uniform .t-card:last-child:nth-child(3n+1){grid-column:3 / span 2;}
.t-grid.uniform .t-card p{text-align:left; margin-bottom:10px;}
.t-grid.uniform .t-card.open p{-webkit-line-clamp:unset; display:block;}
.t-grid.uniform .t-card > span:last-child{margin-top:auto; padding-top:12px;}
.t-more{background:none; border:none; font-family:inherit; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gold-deep); cursor:pointer; padding:0; border-bottom:1px solid var(--gold); margin-bottom:6px;}
@media(max-width:900px){.t-grid.uniform{grid-template-columns:1fr; grid-auto-rows:1fr;} .t-grid.uniform .t-card, .t-grid.uniform .t-card:last-child:nth-child(3n+1){grid-column:auto;}}
/* end uniform */

/* compact header (Oct 2026) */
header{padding:14px 32px;}
header.shrink{padding:8px 32px;}
header .logo img{height:auto; width:230px; transition:width .3s ease;}
header.shrink .logo img{height:auto; width:180px;}
.mobile-book,.menu-toggle{display:none;}
@media(max-width:900px){
  header, header.shrink{padding:10px 18px; gap:12px;}
  header .logo{margin-right:auto;}
  header .logo img{width:160px;}
  header.shrink .logo img{width:140px;}
  .mobile-book{display:inline-block; padding:9px 16px; font-size:11.5px;}
  .menu-toggle{display:flex; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; background:none; border:0; padding:8px; cursor:pointer;}
  .menu-toggle span{display:block; height:1.5px; background:var(--deep); border-radius:2px;}
  header nav{display:none;}
  header.open nav{display:flex; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:flex-start; gap:0; background:rgba(250,245,239,.98); border-bottom:1px solid var(--line); padding:6px 24px 16px; box-shadow:0 12px 24px rgba(58,47,40,.08);}
  header.open nav a:not(.book-btn){padding:12px 0; width:100%; border-bottom:1px solid var(--line); font-size:15px;}
  header.open nav .book-btn{display:none;}
  .scroll-cue{display:none;}
}
