:root{
  --blush:#fcf6f6;
  --petal:#f7e6e9;
  --petal-2:#f0d5db;
  --rose:#e4b4c0;
  --pink:#c98599;
  --berry:#94566a;
  --ink:#3e3238;
  --ink-soft:#6e5f66;
  --line:#ecd3d9;
  --sage:#e0eadc;
  --sage-2:#c3d5be;
  --sage-deep:#6f8b74;
  --forest:#d3e0cd;
  --white:#ffffff;
  --serif:"Playfair Display", Georgia, serif;
  --script:"Pinyon Script", cursive;
  --hand:"Caveat", cursive;
  --sans:"Jost", system-ui, sans-serif;
  --radius:22px;
  --shadow:0 20px 50px -20px rgba(148,86,106,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--sans);color:var(--ink);background:var(--blush);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--berry)}
.eyebrow-script{font-family:var(--script);font-size:2.6rem;letter-spacing:0;text-transform:none;font-weight:400;color:var(--berry);line-height:1;display:block;margin-bottom:.3rem}
.eyebrow-script.small{font-size:1.9rem}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05;letter-spacing:-.01em}
h2{font-size:clamp(2.3rem,5vw,3.8rem)}
h2 em,h1 em{font-style:italic;color:var(--pink)}
.script{font-family:var(--script);font-weight:400;color:var(--pink)}
.btn{display:inline-flex;align-items:center;gap:.5em;padding:.95em 1.7em;border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none;transition:transform .2s, box-shadow .2s, background .2s;cursor:pointer;border:0}
.btn-primary{background:var(--pink);color:#fff;box-shadow:0 10px 24px -10px var(--pink)}
.btn-primary:hover{background:var(--berry);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--blush)}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.logo-text{display:flex;flex-direction:column;align-items:center;line-height:1;white-space:nowrap}
.logo-text .l0{font-family:var(--serif);font-size:.58rem;letter-spacing:.34em;padding-left:.34em;text-transform:uppercase;color:var(--ink);margin-bottom:.05rem}
.logo-text .l1{font-family:var(--script);font-size:2.3rem;color:var(--pink);line-height:.9}
.logo-text .l2{display:flex;align-items:center;gap:.55rem;margin-top:.5rem;font-family:var(--serif);font-size:.6rem;letter-spacing:.3em;padding-left:.3em;color:var(--ink)}
.logo-text .l2 i{display:block;width:24px;height:1px;background:var(--pink)}

/* ---------- Nav ---------- */
header{position:sticky;top:0;z-index:50;background:rgba(252,246,246,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s}
header.scrolled{border-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:78px}
.nav-links{display:flex;gap:2rem;align-items:center;list-style:none}
.nav-links a{text-decoration:none;font-size:.92rem;font-weight:500;position:relative}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--pink);transform:scaleX(0);transition:transform .25s;transform-origin:left}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-links .btn{padding:.7em 1.3em}
.menu-toggle{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;color:var(--ink)}
@media (max-width:860px){
  .menu-toggle{display:grid;place-items:center}
  .nav-links{position:fixed;inset:78px 0 auto 0;flex-direction:column;gap:0;background:var(--blush);border-bottom:1px solid var(--line);padding:.5rem 16px 1.5rem;transform:translateY(-120%);transition:transform .35s ease;z-index:-1}
  .nav-links.open{transform:none}
  .nav-links li{width:100%}
  .nav-links a:not(.btn){display:block;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1.05rem}
  .nav-links .btn{margin-top:1rem;width:100%;justify-content:center}
}

/* ---------- Hero ---------- */
.hero{position:relative;padding:clamp(2.5rem,6vw,5rem) 0 clamp(5rem,9vw,8rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3rem);align-items:center}
.hero h1{font-size:clamp(3rem,6.2vw,5.4rem);margin:1rem 0 1.4rem}
.hero h1 .script{display:block;font-size:.72em;line-height:1;margin-top:.1em;color:var(--pink)}
.hero p.lead{font-size:1.12rem;color:var(--ink-soft);max-width:34rem;margin-bottom:2rem}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem}
.hero-photo{position:relative;justify-self:center;width:min(58%,330px);isolation:isolate}
.hero-photo::after{content:"";position:absolute;inset:-22% -30%;border-radius:50%;background:radial-gradient(closest-side,rgba(228,180,192,.75),rgba(240,213,219,.45) 55%,rgba(253,227,236,0));filter:blur(18px);z-index:-2;pointer-events:none}
.arch{border-radius:999px 999px var(--radius) var(--radius);overflow:hidden;aspect-ratio:3/4;box-shadow:var(--shadow);background:var(--petal)}
.arch img{width:100%;height:100%;object-fit:cover}
.hero-photo .arch img{object-position:62% 20%}
.hero-photo .arch{box-shadow:0 0 50px 12px rgba(228,180,192,.65),0 0 120px 50px rgba(228,180,192,.35)}
.hero-photo::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1.5px solid var(--rose);border-radius:999px 999px var(--radius) var(--radius);z-index:-1}
/* hand-drawn notes + arrows around Kate's photo */
.doodle{position:absolute;width:46%;font-family:var(--hand);font-size:1.45rem;font-weight:600;line-height:1.05;color:var(--berry);z-index:2}
.doodle span{display:inline-block;transform:rotate(var(--tilt,-4deg))}
.doodle svg{display:block;width:82px;height:50px;fill:none;stroke:var(--pink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.doodle svg.flip{transform:scaleX(-1)}
.doodle path{stroke-dasharray:160;stroke-dashoffset:160;transition:stroke-dashoffset 1.1s ease}
.hero-photo.in .doodle path{stroke-dashoffset:0}
.d1{left:-50%;top:2%;text-align:right}
.d1 svg{margin-left:auto;transition-delay:.3s}
.d2{right:-50%;top:20%;--tilt:5deg}
.d3{left:-54%;top:47%;text-align:right;--tilt:-3deg}
.d3 svg{margin-left:auto}
.d4{right:-50%;bottom:24%;--tilt:4deg}
.d5{left:-52%;bottom:-2%;text-align:right;--tilt:-6deg}
.d5 svg{margin-left:auto}
.d1 path{transition-delay:.4s}.d2 path{transition-delay:.7s}.d3 path{transition-delay:1s}.d4 path{transition-delay:1.3s}.d5 path{transition-delay:1.6s}
.sparkle{position:absolute;color:var(--pink);z-index:2;animation:twinkle 3.2s ease-in-out infinite}
.sparkle.s1{right:9%;top:4%;width:34px}
.sparkle.s2{right:3%;top:11%;width:17px;color:var(--rose);animation-delay:-1.6s}
@keyframes twinkle{0%,100%{opacity:1}50%{opacity:.25}}
.flower{position:absolute;z-index:2;animation:sway 5s ease-in-out infinite}
.flower.f1{left:-9%;top:22%;width:44px;height:44px;color:var(--rose)}
.flower.f2{left:-3%;top:33%;width:28px;height:28px;color:var(--sage-deep);animation-delay:-2s}
.flower.f3{right:-8%;bottom:4%;width:46px;height:46px;color:var(--pink);animation-delay:-1s}
.flower.f4{right:2%;bottom:-3%;width:28px;height:28px;color:var(--rose);animation-delay:-3s}
@keyframes sway{50%{transform:rotate(14deg) scale(1.06)}}
/* faint scattered flowers behind sections */
.petals{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.petals svg{position:absolute;color:var(--petal-2);opacity:.9}
.guests .petals svg{color:var(--sage-2)}
.guests .wrap,.about .wrap{position:relative;z-index:1}
@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr}
  .hero-photo{width:min(50%,300px);margin:1.5rem 0 1rem}
  .hero-photo::before,.flower{display:none}
}
@media (max-width:600px){
  /* phone: notes hug the smaller photo, arrows still point at Kate */
  .hero-photo{width:46%}
  .doodle{width:58%;font-size:1rem;line-height:1}
  .doodle svg{width:42px;height:26px;stroke-width:2.2}
  .d1{left:-62%;top:-2%}
  .d2{right:-64%;top:14%}
  .d3{left:-64%;top:40%}
  .d4{right:-64%;bottom:18%}
  .d5{left:-62%;bottom:-4%}
  .sparkle.s1{width:24px;right:9%;top:4%}
  .sparkle.s2{width:12px;right:3%;top:11%}
}

.wave{display:block;width:100%;height:auto}

/* ---------- Marquee ---------- */
.marquee{background:var(--pink);color:#fff;overflow:hidden;padding:1rem 0;transform:rotate(-1.5deg);margin:-2.5rem -10px 0;position:relative;z-index:2}
.marquee-track{display:flex;width:max-content;animation:marquee 32s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-size:1.45rem;white-space:nowrap;padding-right:2.4rem;display:flex;align-items:center;gap:2.4rem}
.marquee span::after{content:"";width:1.15rem;height:1.15rem;flex:none;background:#fff;opacity:.9;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%20viewBox=%270%200%2060%2060%27%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%280%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2845%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2890%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28135%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28180%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28225%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28270%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28315%2030%2030%29%27/%3E%3Ccircle%20cx=%2730%27%20cy=%2730%27%20r=%275.2%27/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%20viewBox=%270%200%2060%2060%27%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%280%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2845%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2890%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28135%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28180%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28225%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28270%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28315%2030%2030%29%27/%3E%3Ccircle%20cx=%2730%27%20cy=%2730%27%20r=%275.2%27/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes marquee{to{transform:translateX(-50%)}}

section{scroll-margin-top:80px}

/* ---------- About ---------- */
.about{padding:clamp(5rem,10vw,8rem) 0;position:relative}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,6vw,5.5rem);align-items:center}
.about-photos{position:relative;padding-bottom:3.5rem}
.about-photos .arch{width:82%}
.about-photos .small{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1;border-radius:50%;overflow:hidden;border:8px solid var(--blush);box-shadow:var(--shadow)}
.about-photos .small img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.about h2{margin:.8rem 0 1.4rem}
.about p{color:var(--ink-soft);margin-bottom:1.1rem;font-size:1.04rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:2rem 0}
.stats div{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:1.1rem 1rem;text-align:center}
.stats strong{display:block;font-family:var(--sans);font-size:2.1rem;font-weight:500;line-height:1;color:var(--pink);margin-bottom:.35rem}
.stats span{font-size:.85rem;color:var(--ink-soft);line-height:1.3;display:block}
.signoff{font-family:var(--script);font-size:2.6rem;color:var(--pink);line-height:1}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}.about-photos{max-width:440px}}

/* ---------- Services ---------- */
.services{background:var(--forest);color:var(--blush);padding:clamp(5rem,10vw,8rem) 0;position:relative}
.services .eyebrow{color:var(--rose)}
.services h2 em{color:var(--rose)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.section-head p{max-width:30rem;color:inherit;opacity:.78}
.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2.5rem}
.tab{font:inherit;font-weight:500;font-size:.95rem;padding:.7rem 1.3rem;border-radius:999px;border:1.5px solid rgba(253,227,236,.3);background:transparent;color:var(--blush);cursor:pointer;transition:.2s}
.tab:hover{border-color:var(--rose)}
.tab[aria-selected="true"]{background:var(--rose);border-color:var(--rose);color:var(--ink)}
.panel{display:none;grid-template-columns:1fr 1fr;gap:0 4rem}
.panel.active{display:grid;animation:fade .45s ease}
@keyframes fade{from{opacity:0;transform:translateY(10px)}}
.item{padding:1.4rem 0;border-bottom:1px solid rgba(253,227,236,.15)}
.item-row{display:flex;align-items:baseline;gap:.8rem}
.item h3{font-size:1.4rem}
.item .leader{flex:1;border-bottom:1.5px dotted rgba(253,227,236,.35);transform:translateY(-.35em)}
.item .price{font-family:var(--serif);font-size:1.4rem;color:var(--rose);white-space:nowrap}
.item .time{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:.6;margin-top:.25rem}
.item p{font-size:.93rem;opacity:.75;margin-top:.45rem;max-width:32rem}
.item.feature{grid-column:1/-1;background:rgba(228,180,192,.1);border:1px solid rgba(228,180,192,.3);border-radius:var(--radius);padding:1.6rem 1.8rem;margin:1rem 0}
.pill{display:inline-block;font-family:var(--sans);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;background:var(--rose);color:var(--ink);padding:.25rem .6rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}
.price-note{margin-top:2.5rem;display:flex;gap:1rem;align-items:flex-start;padding:1.4rem 1.6rem;border-radius:var(--radius);background:rgba(253,227,236,.06);font-size:.93rem;opacity:.9}
.price-note svg{flex:none;color:var(--rose);margin-top:.15rem}
.services-cta{margin-top:2.5rem;display:flex;gap:.8rem;flex-wrap:wrap}
.services .btn-ghost{color:var(--blush);border-color:var(--blush)}
.services .btn-ghost:hover{background:var(--blush);color:var(--ink)}
@media (max-width:760px){.panel.active{grid-template-columns:1fr}.item h3,.item .price{font-size:1.2rem}}

/* ---------- Gallery ---------- */
.gallery{padding:clamp(5rem,10vw,8rem) 0}
.gallery .section-head p{color:var(--ink-soft);opacity:1}
.masonry{columns:4 240px;column-gap:14px}
.masonry figure{break-inside:avoid;margin-bottom:14px;border-radius:18px;overflow:hidden;position:relative;cursor:zoom-in;background:var(--petal)}
.masonry img{width:100%;transition:transform .6s ease}
.masonry figure:hover img{transform:scale(1.05)}
.masonry figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(148,86,106,.45),transparent 45%);opacity:0;transition:opacity .3s}
.masonry figure:hover::after{opacity:1}
.gallery-cta{text-align:center;margin-top:2.5rem}
.lightbox{position:fixed;inset:0;background:rgba(90,110,95,.92);display:none;place-items:center;z-index:100;padding:16px}
.lightbox.open{display:grid}
.lightbox img{max-height:88vh;max-width:min(92vw,900px);border-radius:16px}
.lightbox button{position:absolute;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:0;background:var(--blush);color:var(--ink);font-size:1.6rem;cursor:pointer}

/* ---------- New guests ---------- */
.guests{background:var(--sage);padding:clamp(5rem,10vw,8rem) 0;position:relative}
.guests .section-head p{color:var(--ink-soft);opacity:1}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;counter-reset:step}
.step{background:var(--white);border-radius:var(--radius);padding:2.2rem 1.8rem 2rem;position:relative;box-shadow:0 10px 30px -18px rgba(148,86,106,.4);transition:transform .3s}
.step:hover{transform:translateY(-6px)}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--serif);font-style:italic;font-size:3.4rem;color:var(--petal-2);line-height:1;display:block;margin-bottom:1rem}
.step h3{font-size:1.55rem;margin-bottom:.7rem}
.step p{color:var(--ink-soft);font-size:.96rem;margin-bottom:1.3rem}
.step a{font-weight:600;color:var(--berry);text-decoration:none;border-bottom:1.5px solid var(--rose)}
@media (max-width:860px){.steps{grid-template-columns:1fr}}

/* ---------- Visit ---------- */
.visit{padding:clamp(5rem,10vw,8rem) 0}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:stretch}
.visit-card{background:var(--white);border-radius:var(--radius);padding:clamp(2rem,4vw,3rem);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1.6rem}
.visit-card h2{margin-top:.5rem}
.info{display:flex;gap:1rem;align-items:flex-start}
.info .ic{width:44px;height:44px;border-radius:50%;background:var(--petal);color:var(--berry);display:grid;place-items:center;flex:none}
.info b{display:block;font-weight:600}
.info span,.info a{color:var(--ink-soft);text-decoration:none}
.info a:hover{color:var(--pink)}
.map{border-radius:var(--radius);overflow:hidden;min-height:380px;box-shadow:var(--shadow);background:var(--petal)}
.map iframe{width:100%;height:100%;min-height:380px;border:0;filter:grayscale(1) sepia(.4) hue-rotate(295deg) saturate(1.8)}
@media (max-width:860px){.visit-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
footer{background:var(--forest);color:var(--blush);padding:4rem 0 2rem;position:relative}
.foot-top{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;padding-bottom:2.5rem;border-bottom:1px solid rgba(253,227,236,.15)}
footer .logo{color:var(--blush)}
footer .logo-text .l1{color:var(--rose)}
footer .logo-text .l0,footer .logo-text .l2{color:var(--blush)}
footer .logo-text .l2 i{background:var(--rose)}
.tagline{font-family:var(--serif);font-style:italic;font-size:1.5rem}
.socials{display:flex;gap:.6rem}
.socials a{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(253,227,236,.35);display:grid;place-items:center;transition:.2s}
.socials a:hover{background:var(--rose);border-color:var(--rose);color:var(--ink)}
.foot-bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.6rem;font-size:.85rem;opacity:.65}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* ---------- Multi-page additions ---------- */
.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
h1.title{font-size:clamp(2.3rem,5vw,3.8rem)}
.about h1.title{margin:.8rem 0 1.4rem}
.page-first{padding-top:clamp(3rem,6vw,5rem)}

/* home: about teaser */
.teaser-about .about-photos{padding-bottom:0}
.teaser-about .about-photos .arch{width:78%}

/* home: services teaser cards */
.tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.tcard{background:rgba(255,255,255,.06);border:1px solid rgba(228,180,192,.3);border-radius:var(--radius);padding:1.8rem 1.6rem;display:flex;flex-direction:column;gap:.6rem}
.tcard h3{font-size:1.6rem}
.tcard .price{font-family:var(--serif);font-size:1.5rem;color:var(--rose)}
.tcard p{font-size:.95rem;opacity:.78}
.tcard .pill{align-self:flex-start;margin:0}
@media (max-width:860px){.tcards{grid-template-columns:1fr}}

/* home: gallery teaser */
.teaser-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.teaser-photos img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:18px}
@media (max-width:760px){.teaser-photos{grid-template-columns:repeat(2,1fr)}}

/* home: new guest teaser */
.guests-teaser{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.guests-teaser p{max-width:32rem;color:var(--ink-soft);margin-top:1rem}

/* home: visit teaser */
.visit-band{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(2rem,4vw,3rem);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.visit-band .meta{display:flex;gap:1rem 2.5rem;flex-wrap:wrap;color:var(--ink-soft);margin-top:1rem}
.visit-band .meta b{display:block;color:var(--ink);font-weight:600}
.visit-band .actions{display:flex;gap:.8rem;flex-wrap:wrap}

/* inner pages: closing book-now band */
.cta-band{padding:clamp(4rem,8vw,6rem) 0;text-align:center}
.cta-band h2{margin:.4rem 0 1.6rem}
.cta-band .actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* polaroid hair photos with washi tape + handwritten caption */
.polaroid{background:#fff;padding:10px 10px 0;border-radius:4px;box-shadow:0 16px 32px -14px rgba(62,50,56,.4);transform:rotate(var(--tilt,-4deg));width:var(--w,190px);position:relative;flex:none;transition:transform .4s ease}
.polaroid:hover{transform:rotate(0) scale(1.03)}
.polaroid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.polaroid figcaption{font-family:var(--hand);font-size:1.25rem;font-weight:600;color:var(--berry);text-align:center;padding:.4rem 0 .55rem;line-height:1.1}
.polaroid::before{content:"";position:absolute;top:-11px;left:50%;width:72px;height:22px;transform:translateX(-50%) rotate(-4deg);background:rgba(228,180,192,.75);border-radius:2px}
.polaroid.tape-sage::before{background:rgba(195,213,190,.85)}
.photo-pair{display:flex;justify-content:center;align-items:flex-start}
.photo-pair .polaroid + .polaroid{margin-left:-10px;margin-top:36px;--tilt:5deg}

/* about: favorites strip */
.fav-strip{padding:0 0 clamp(1rem,3vw,2rem);text-align:center}
.fav-strip .wrap{background:var(--petal);border-radius:32px;padding:clamp(2.2rem,5vw,3.2rem) 16px clamp(2.6rem,5vw,3.6rem);position:relative;overflow:hidden}
.fav-strip .hand-note{font-family:var(--hand);font-size:2.1rem;font-weight:600;color:var(--berry);margin-bottom:1.6rem;transform:rotate(-2deg)}

/* services + new guests: photos beside the heading */
.head-with-photos{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.head-with-photos .intro{max-width:34rem}
.head-with-photos .intro p{margin-top:1.2rem;opacity:.8}
.guests .head-with-photos .intro p{color:var(--ink-soft);opacity:1}
.head-with-photos .photo-pair,.head-with-photos .polaroid{margin-right:clamp(0px,4vw,3rem)}
.head-with-photos > .photo-pair,.head-with-photos > .polaroid{order:2}
/* services: photos sit inside the intro (after the title) so on phones they float beside the paragraph */
@media (min-width:861px){
  .head-with-photos.split{display:grid;grid-template-columns:minmax(0,32rem) auto;grid-template-rows:1fr auto auto 1fr;justify-content:start;column-gap:clamp(3rem,7vw,6.5rem);margin-bottom:2.2rem}
  .head-with-photos.split .intro > p{margin-top:.8rem}
  .head-with-photos.split .photo-pair{margin-right:0}
  .head-with-photos.split .polaroid{--w:clamp(190px,17vw,235px)}
  .head-with-photos.split + .tabs{margin-bottom:3.4rem}
  .head-with-photos.split .intro{display:contents}
  .head-with-photos.split .title{grid-column:1;grid-row:2}
  .head-with-photos.split .intro > p{grid-column:1;grid-row:3}
  .head-with-photos.split .photo-pair{grid-column:2;grid-row:1 / span 4;align-self:center;transform:translateY(2.2rem);margin-bottom:-6rem}
}
@media (max-width:860px){
  /* small screens: photos float right so the heading and text wrap beside them */
  .head-with-photos{display:block}
  .head-with-photos::after{content:"";display:table;clear:both}
  .head-with-photos > .photo-pair,.head-with-photos > .polaroid,.head-with-photos.split .photo-pair{float:right;margin:.6rem 0 1rem 1rem}
  .head-with-photos .polaroid{--w:118px;padding:7px 7px 0}
  .head-with-photos .polaroid figcaption{font-size:1rem;padding:.3rem 0 .4rem}
  .head-with-photos .polaroid::before{width:48px;height:16px;top:-8px}
  .head-with-photos .photo-pair .polaroid + .polaroid{margin-left:-26px;margin-top:26px}
}
@media (max-width:600px){
  .head-with-photos .polaroid{--w:86px}
  .head-with-photos .polaroid figcaption{font-size:.8rem;line-height:1.05}
  .head-with-photos .photo-pair .polaroid + .polaroid{margin-left:-6px;margin-top:22px}
}

/* visit: polaroid tucked on the map corner */
.map-wrap{position:relative;display:flex;flex-direction:column}
.map-wrap .map{flex:1}
.map-wrap .polaroid{position:absolute;right:-28px;bottom:-40px;z-index:3;--w:150px;--tilt:6deg}
@media (max-width:860px){
  .map-wrap .polaroid{right:6px;bottom:-36px;--w:120px;--tilt:5deg}
  .map-wrap{margin-bottom:2rem}
}
@media (max-width:600px){
  .polaroid{--w:145px}
  .photo-pair .polaroid + .polaroid{margin-left:-8px}
}

/* buttons: underlined text links with a little flower (style 7) */
.btn,.btn-primary,.btn-ghost,.nav-links .btn{background:none;border:0;border-bottom:1.5px solid var(--pink);border-radius:0;box-shadow:none;padding:.4em .1em;color:var(--berry);font-weight:600;font-size:1rem;letter-spacing:.01em}
.btn:hover,.btn-primary:hover,.btn-ghost:hover{background:none;color:var(--pink);border-color:var(--berry);transform:none}
.btn:hover::after{transform:rotate(45deg)}
.btn svg{color:var(--pink)}
.services .btn,.services .btn-ghost,footer .btn{color:var(--blush);border-color:var(--rose)}
.services .btn::after,.services .btn svg{color:var(--rose)}
.services .btn:hover,.services .btn-ghost:hover{background:none;color:var(--rose)}
.hero-ctas,.services-cta,.cta-band .actions,.visit-band .actions{gap:1.6rem 2rem}
@media (max-width:860px){.nav-links .btn{width:auto;margin-top:1.2rem}}

/* about page: stats centered in a row below the story */
.about-photos.with-stats{padding-bottom:0}
.photo-stack{position:relative;padding-bottom:3.5rem}
.stats-center{max-width:760px;margin:clamp(2.5rem,5vw,3.5rem) auto 0;position:relative;z-index:1}

/* reviews: taped "love note" cards */
.love-notes{padding:clamp(4rem,8vw,6rem) 0;position:relative}
.love-notes .section-head{justify-content:center;text-align:center}
.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;align-items:start}
.note{background:var(--white);border-radius:6px;padding:2.2rem 1.8rem 1.6rem;position:relative;box-shadow:0 16px 32px -18px rgba(62,50,56,.35);transform:rotate(var(--tilt,-1.5deg))}
.note:nth-child(2){--tilt:1.5deg;margin-top:1.6rem}
.note:nth-child(3){--tilt:-.8deg}
.note::before{content:"";position:absolute;top:-11px;left:50%;width:78px;height:22px;transform:translateX(-50%) rotate(-3deg);background:rgba(228,180,192,.75);border-radius:2px}
.note:nth-child(2)::before{background:rgba(195,213,190,.85)}
.note .stars{color:var(--pink);letter-spacing:.18em;font-size:.95rem;margin-bottom:.8rem}
.note blockquote{font-family:var(--serif);font-style:italic;font-size:1.15rem;line-height:1.45;color:var(--ink)}
.note cite{display:block;font-style:normal;font-family:var(--hand);font-size:1.4rem;font-weight:600;color:var(--berry);margin-top:1rem}
.note cite small{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;margin-left:.4rem}
@media (max-width:860px){.notes-grid{grid-template-columns:1fr;gap:2.2rem;max-width:520px;margin:0 auto}.note:nth-child(2){margin-top:0}}

/* single love note on inner pages */
.note-single{padding:clamp(3rem,6vw,4.5rem) 0;text-align:center}
.note-single .note{max-width:640px;margin:0 auto;padding:2.6rem 2.2rem 2rem;--tilt:-1deg}
.note-single .note blockquote{font-size:clamp(1.25rem,2.4vw,1.55rem)}
.note-single .eyebrow-script{margin-bottom:1.6rem}
.services .note-single,.guests .note-single{padding-bottom:0}

/* home reviews: their own soft pink band */
.love-notes.band{background:var(--petal);margin-top:60px;padding:clamp(3.5rem,7vw,5rem) 0 clamp(6rem,10vw,7.5rem)}
.love-notes.band .wrap{position:relative;z-index:1}
.love-notes.band .petals svg{color:var(--petal-2)}
.love-notes .section-head{margin-bottom:2.6rem}
.gallery.tight-bottom{padding-bottom:clamp(2.5rem,5vw,3.5rem)}
.services.page-first{padding-top:clamp(1.8rem,3.5vw,2.6rem)}

/* little hand-drawn shells */
.flower.f5{left:-4%;bottom:10%;width:40px;height:40px;color:var(--pink);--r:-12deg;transform:rotate(-12deg)}
.inline-shell{width:.85em;height:.85em;vertical-align:-.05em;color:var(--pink);margin-left:.1em}
.card-shell{position:absolute;top:18px;right:20px;width:44px;height:44px;color:var(--petal-2);transform:rotate(14deg)}
.visit-card{position:relative}
.fav-strip .card-shell{color:var(--rose);top:22px;right:26px}
.petals svg:has(> use[href="#shell"]){color:var(--rose);opacity:.75}
.guests .petals svg:has(> use[href="#shell"]){color:var(--sage-deep);opacity:.45}

/* hero: doodles stay still; only the sparkles twinkle */
.hero-photo .flower{animation:none}
.hero-photo .doodle path{stroke-dashoffset:0;transition:none}
.hero-photo.reveal{opacity:1;transform:none;transition:none}
.fav-strip .hand-note{display:inline-block}
.visit-card .card-shell{top:auto;bottom:24px;right:24px}
@media (max-width:860px){.petals svg:has(> use[href="#shell"]){display:none}}

/* visit: review sits in its own pink band */
.visit.tight-bottom{padding-bottom:clamp(3.5rem,6vw,4.5rem)}
.note-single.band{background:var(--petal);position:relative;margin-top:60px;padding:clamp(2.5rem,5vw,3.5rem) 0 clamp(4rem,7vw,5rem)}

/* buttons: little solid shell instead of the flower */
.pill.shell-pill::before{content:"";display:inline-block;width:1.15em;height:1.15em;margin-right:.35em;vertical-align:-.2em;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27272%27%20height=%27256%27%20viewBox=%27-4%20-4%2068%2064%27%3E%3Cdefs%3E%3Cmask%20id=%27m%27%3E%3Crect%20x=%27-4%27%20y=%27-4%27%20width=%2768%27%20height=%2764%27%20fill=%27white%27/%3E%3Cpath%20d=%27M30%2046.5Q15.6%2036%205.2%2025.6M30%2046.5Q19%2029.6%2011.1%2012.7M30%2046.5Q25.9%2025.8%2022.9%205M30%2046.5Q34.1%2025.8%2037.1%205M30%2046.5Q41%2029.6%2048.9%2012.7M30%2046.5Q44.4%2036%2054.8%2025.6%27%20stroke=%27black%27%20stroke-width=%273.2%27%20fill=%27none%27%20stroke-linecap=%27round%27/%3E%3Cpath%20d=%27M23%2046.5h14%27%20stroke=%27black%27%20stroke-width=%272.4%27/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%27url(%23m)%27%3E%3Cpath%20d=%27M25%2046.5%207.3%2039.6A7.6%207.6%200%200%201%205.2%2025.6A7.6%207.6%200%200%201%2011.1%2012.7A7.6%207.6%200%200%201%2022.9%205A7.6%207.6%200%200%201%2037.1%205A7.6%207.6%200%200%201%2048.9%2012.7A7.6%207.6%200%200%201%2054.8%2025.6A7.6%207.6%200%200%201%2052.7%2039.6L35%2046.5Z%27/%3E%3Cpath%20d=%27M25%2046.5%2023.6%2053.4q-.2%201.6%201.4%201.6h10q1.6%200%201.4-1.6L35%2046.5Z%27/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27272%27%20height=%27256%27%20viewBox=%27-4%20-4%2068%2064%27%3E%3Cdefs%3E%3Cmask%20id=%27m%27%3E%3Crect%20x=%27-4%27%20y=%27-4%27%20width=%2768%27%20height=%2764%27%20fill=%27white%27/%3E%3Cpath%20d=%27M30%2046.5Q15.6%2036%205.2%2025.6M30%2046.5Q19%2029.6%2011.1%2012.7M30%2046.5Q25.9%2025.8%2022.9%205M30%2046.5Q34.1%2025.8%2037.1%205M30%2046.5Q41%2029.6%2048.9%2012.7M30%2046.5Q44.4%2036%2054.8%2025.6%27%20stroke=%27black%27%20stroke-width=%273.2%27%20fill=%27none%27%20stroke-linecap=%27round%27/%3E%3Cpath%20d=%27M23%2046.5h14%27%20stroke=%27black%27%20stroke-width=%272.4%27/%3E%3C/mask%3E%3C/defs%3E%3Cg%20mask=%27url(%23m)%27%3E%3Cpath%20d=%27M25%2046.5%207.3%2039.6A7.6%207.6%200%200%201%205.2%2025.6A7.6%207.6%200%200%201%2011.1%2012.7A7.6%207.6%200%200%201%2022.9%205A7.6%207.6%200%200%201%2037.1%205A7.6%207.6%200%200%201%2048.9%2012.7A7.6%207.6%200%200%201%2054.8%2025.6A7.6%207.6%200%200%201%2052.7%2039.6L35%2046.5Z%27/%3E%3Cpath%20d=%27M25%2046.5%2023.6%2053.4q-.2%201.6%201.4%201.6h10q1.6%200%201.4-1.6L35%2046.5Z%27/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.btn:hover::after{transform:rotate(-12deg)}
@media (min-width:601px) and (max-width:860px){.hero-photo{width:min(42%,300px)}.doodle{font-size:1.15rem}.doodle svg{width:62px;height:38px}}
@media (min-width:861px) and (max-width:1300px){.hero-photo{width:min(46%,300px)}.doodle{font-size:1.08rem;width:52%}.doodle svg{width:52px;height:32px}.d1{left:-56%}.d2{right:-56%}.d3{left:-58%}.d4{right:-56%}.d5{left:-56%}}
@media (max-width:360px){.doodle{font-size:.9rem}.d2{top:10%}.d4{bottom:14%}}
@media (min-width:1301px){.d3{left:-46%;width:42%}.d5{left:-46%;width:42%}}
.hero p.lead{max-width:31rem}
.note-single.band.sage{background:var(--sage)}


/* hero notes write themselves in, one after another (arrows and flowers stay still) */
@keyframes noteIn{from{opacity:0;transform:translateY(10px) rotate(var(--tilt,-4deg))}to{opacity:1;transform:rotate(var(--tilt,-4deg))}}
.hero-photo .doodle span{animation:noteIn .8s ease both}
.hero-photo .d1 span{animation-delay:.4s}
.hero-photo .d2 span{animation-delay:.8s}
.hero-photo .d3 span{animation-delay:1.2s}
.hero-photo .d4 span{animation-delay:1.6s}
.hero-photo .d5 span{animation-delay:2s}

/* slimmer header */
.nav{height:62px}
header .logo-text .l0{font-size:.5rem;margin-bottom:0}
header .logo-text .l1{font-size:1.85rem}
header .logo-text .l2{font-size:.52rem;margin-top:.3rem}
header .logo-text .l2 i{width:18px}
@media (max-width:860px){.nav-links{inset:62px 0 auto 0}}
.d3{top:41%}
@media (max-width:600px){.d3{top:37%}}
@media (max-width:360px){.d3{top:33%}}
@media (min-width:861px) and (max-width:1300px){.d3{top:39%}}
@media (min-width:861px) and (max-width:1000px){.d4{bottom:14%}}
@media (max-width:360px){.d3{top:30%}.d4{bottom:6%}.d5{bottom:-10%}}
/* home about preview: photo sits nearer the text */
.teaser-about .about-photos .arch{margin-inline:auto}
.teaser-about .about-grid{column-gap:clamp(2.5rem,5vw,4.5rem)}
@media (max-width:860px){.teaser-about .about-photos .arch{margin-left:0}}
/* bigger 941 in the logo */
.logo-text .l2{font-size:1rem;letter-spacing:.2em;padding-left:.2em}
header .logo-text .l2{font-size:.88rem;margin-top:.15rem}
header .logo-text .l0{margin-bottom:-.05rem}
.hero h1{margin-bottom:2rem}
/* logo: "Beauty Cove" in Playfair italic */
.logo-text .l1{font-family:var(--serif);font-style:italic;font-weight:400;font-size:2rem;line-height:1;letter-spacing:-.01em}
header .logo-text .l1{font-size:1.55rem}
/* logo: "the" in script */
.logo-text .l0{font-family:var(--script);text-transform:none;letter-spacing:0;padding-left:0;font-size:1.35rem;line-height:.8;color:var(--berry);margin-bottom:-.1rem}
header .logo-text .l0{font-size:1.1rem;margin-bottom:-.15rem}
footer .logo-text .l0{color:var(--petal)}
/* logo: smaller italic 941 under the name */
.logo-text .l3{font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1;color:var(--pink);margin-top:.1rem;letter-spacing:.04em}
header .logo-text .l3{font-size:.85rem;margin-top:.05rem}
footer .logo-text .l3{color:var(--rose)}
/* logo: "the" sits over the B, "941" tucks under Cove */
.logo-text .l0{align-self:flex-start;margin-left:.1em}
.logo-text .l3{align-self:flex-end;margin-right:.15em}
/* logo layout B: one line, script "the", raised 941 */
.logo-text{flex-direction:row;align-items:baseline;gap:.3em}
.logo-text .l0{align-self:auto;margin:0;font-size:1.75rem;line-height:1}
.logo-text .l1{line-height:1}
.logo-text .l3{align-self:flex-start;margin:.15em 0 0;font-size:.95rem}
header .logo-text .l0{font-size:1.4rem;margin:0}
header .logo-text .l3{font-size:.78rem;margin:.1em 0 0}
/* 941 same size as Beauty Cove, on the same baseline */
.logo-text .l3{align-self:auto;margin:0;font-size:2rem;letter-spacing:-.01em}
header .logo-text .l3{font-size:1.55rem;margin:0}
/* a little more room between script labels and the headings under them */
.eyebrow-script{margin-bottom:.75rem}
/* phones/tablets: no faint background doodles behind text */
@media (max-width:1100px){.petals svg{display:none}}
@media (max-width:600px){.fav-strip .polaroid{--w:132px}.fav-strip .photo-pair .polaroid + .polaroid{margin-left:6px}}
@media (max-width:420px){.fav-strip .card-shell{display:none}}
/* give handwritten notes room for letter overhang so no browser clips them */
.doodle span{padding:.2em .45em;margin:-.2em -.45em}

/* home: new guests preview, photo beside centered copy */
.guests-teaser{display:flex;justify-content:center;align-items:center;gap:clamp(2.5rem,6vw,5.5rem);flex-wrap:nowrap}
.guests-teaser .guests-photo{--w:clamp(210px,20vw,250px);--tilt:-4deg}
.guests-copy{max-width:32rem}
.guests-copy p{margin:1rem 0 1.6rem}
@media (max-width:760px){
  .guests-teaser{flex-direction:column;text-align:center;gap:2.6rem}
  .guests-teaser .guests-photo{--w:200px}
  .guests-copy p{margin-inline:auto}
}

/* ---------- Menu buttons: New Guests + Current Clients ---------- */
.nav-links{gap:1.6rem}
.nav-links .nav-cta{display:inline-block;padding:.6em 1.15em;border-radius:999px;font-size:.85rem;font-weight:600;line-height:1;text-decoration:none;transition:background .2s,color .2s}
.nav-links .nav-cta::after{display:none}
.nav-links .nav-cta.solid{background:var(--pink);color:#fff}
.nav-links .nav-cta.solid:hover,.nav-links .nav-cta.solid[aria-current="page"]{background:var(--berry)}
.nav-links .nav-cta.ghost{border:1.5px solid var(--pink);color:var(--berry);padding:calc(.6em - 1.5px) calc(1.15em - 1.5px)}
.nav-links .nav-cta.ghost:hover{background:var(--petal)}
.nav-links li:nth-last-child(2){margin-left:.4rem}
@media (max-width:1000px) and (min-width:861px){.nav-links{gap:1.1rem}}
@media (max-width:860px){
  .nav-links li:nth-last-child(2){margin-left:0}
  .nav-links a.nav-cta{display:block;text-align:center;margin-top:.8rem;padding:.95em 1em;font-size:1rem;border-bottom:0}
  .nav-links a.nav-cta.ghost{border:1.5px solid var(--pink)}
}

/* ---------- Home banner ---------- */
.banner{position:relative;min-height:clamp(460px,78vh,740px);display:grid;place-items:center;text-align:center;overflow:hidden;isolation:isolate;padding:4rem 0 5rem}
.banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;z-index:-2;transform:scale(1.04)}
.banner::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(62,50,56,.35),rgba(62,50,56,.55) 55%,rgba(62,50,56,.4))}
.banner-title{font-family:var(--serif);font-weight:500;font-size:clamp(2.4rem,6vw,5rem);line-height:1.06;max-width:15ch;margin:0 auto;color:#fff;text-shadow:0 2px 28px rgba(0,0,0,.25)}
.banner-title em{color:var(--petal-2)}
.banner-squiggle{display:block;width:clamp(150px,20vw,240px);height:auto;margin:1.3rem auto 0;fill:none;stroke:var(--rose);stroke-width:6;stroke-linecap:round}
.banner-down{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;margin:2.2rem auto 0;background:rgba(252,246,246,.92);color:var(--berry);transition:transform .25s}
.banner-down:hover{transform:translateY(4px)}
.banner-wave{position:absolute;left:0;bottom:-1px;width:100%;height:60px}
.hero .hero-title{font-size:clamp(3rem,6.2vw,5.4rem);margin:1rem 0 2rem}
.hero .hero-title .script{display:block;font-size:.72em;line-height:1;margin-top:.1em;color:var(--pink)}

/* ---------- Consultation form ---------- */
.consult{padding:clamp(4rem,8vw,6rem) 0}
.consult-card{max-width:820px;margin:0 auto;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.8rem,4vw,3rem)}
.consult-head{text-align:center;margin-bottom:2.2rem}
.consult-head p{color:var(--ink-soft);max-width:34rem;margin:.9rem auto 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.3rem}
.field{display:flex;flex-direction:column;gap:.45rem;min-width:0;border:0;padding:0;margin:0}
.field.full,.form-grid > p{grid-column:1/-1}
.field label,.field legend{font-weight:600;font-size:.92rem;color:var(--ink)}
.field legend{margin-bottom:.45rem}
.field .hint{display:block;font-weight:400;font-size:.8rem;color:var(--ink-soft);margin-top:.15rem}
.form-grid input:not([type=checkbox]),.form-grid select,.form-grid textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--blush);border:1.5px solid var(--line);border-radius:12px;padding:.8em 1em;width:100%;transition:border-color .2s,box-shadow .2s}
.form-grid textarea{min-height:110px;resize:vertical}
.form-grid input[type=file]{padding:.65em 1em;font-size:.9rem}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:none;border-color:var(--pink);box-shadow:0 0 0 3px rgba(228,180,192,.35)}
.chips{display:flex;flex-wrap:wrap;gap:.55rem}
.chips label{display:flex;align-items:center;gap:.45rem;background:var(--blush);border:1.5px solid var(--line);border-radius:999px;padding:.5em 1em;font-weight:500;font-size:.9rem;cursor:pointer}
.chips input{accent-color:var(--pink);width:1rem;height:1rem;margin:0}
.chips label:has(input:checked){border-color:var(--pink);background:var(--petal)}
.form-submit{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:.8rem}
.submit-btn{background:var(--pink);color:#fff;border:0;border-radius:999px;padding:1em 2.3em;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;transition:background .2s,transform .2s}
.submit-btn:hover{background:var(--berry);transform:translateY(-2px)}
.form-note{font-size:.9rem;color:var(--ink-soft)}
.form-note a{color:var(--berry)}
@media (max-width:640px){.form-grid{grid-template-columns:1fr}}

/* ---------- Thank-you page ---------- */
.thanks{text-align:center;padding-bottom:clamp(5rem,10vw,8rem)}
.thanks p{color:var(--ink-soft);max-width:30rem;margin:1rem auto 2rem}
.thanks .actions{display:flex;gap:1.6rem 2rem;justify-content:center;flex-wrap:wrap}
.banner-img{object-position:35% 18%}
.banner-img{object-position:50% 8%}

/* new logo artwork */
.logo-img{display:block;height:50px;width:auto}
footer .logo-img{height:76px}
@media (max-width:600px){.logo-img{height:44px}footer .logo-img{height:64px}}

/* ---------- Centered footer with shimmer tagline ---------- */
footer{margin-top:60px;padding:3.5rem 0 2rem}
.footer-wave{position:absolute;left:0;top:-59px;width:100%;height:60px}
.foot-top{flex-direction:column;justify-content:center;text-align:center;gap:1.6rem;padding-bottom:2.4rem}
.foot-top .logo{justify-content:center}
.tagline-wrap{display:flex;flex-direction:column;align-items:center}
.tagline{font-size:clamp(1.6rem,3.4vw,2.3rem);line-height:1.2;background:linear-gradient(100deg,var(--blush) 0%,var(--blush) 38%,var(--rose) 46%,#fff 50%,var(--rose) 54%,var(--blush) 62%,var(--blush) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s ease-in-out infinite}
@keyframes shimmer{0%{background-position:100% 0}60%,100%{background-position:0 0}}
.tagline-line{width:clamp(150px,22vw,230px);height:auto;margin-top:.5rem;fill:none;stroke:var(--rose);stroke-width:3;stroke-linecap:round}
.tagline-line path{stroke-dasharray:320;stroke-dashoffset:320;transition:stroke-dashoffset 1.6s ease .3s}
.tagline-wrap.in .tagline-line path{stroke-dashoffset:0}
.socials{justify-content:center}
.foot-bottom{flex-direction:column;align-items:center;text-align:center;gap:.45rem}
@media (prefers-reduced-motion:reduce){.tagline{color:var(--blush);background:none}.tagline-line path{stroke-dashoffset:0}}
footer{margin-top:0}

/* footer: twinkling sparkles around the tagline (replaces the shimmer) */
.tagline{background:none;color:var(--blush);animation:none}
.tagline-wrap{position:relative;padding:0 .5rem}
.fsp{position:absolute;color:var(--rose);animation:twinkle 2.6s ease-in-out infinite}
.fsp1{width:20px;left:-44px;top:-6px}
.fsp2{width:12px;left:-22px;bottom:4px;color:var(--petal-2);animation-delay:-.9s}
.fsp3{width:18px;right:-40px;top:2px;animation-delay:-1.7s}
.fsp4{width:11px;right:-20px;bottom:-2px;color:var(--petal-2);animation-delay:-.5s}
@media (max-width:600px){
  .fsp1{left:6%;top:-26px}.fsp2{left:20%;top:-14px;bottom:auto}
  .fsp3{right:8%;top:-24px}.fsp4{right:22%;top:-10px;bottom:auto}
}
@media (min-width:601px){.fsp1{width:26px;left:-54px;top:-10px}.fsp2{width:15px;left:-28px}.fsp3{width:24px;right:-50px}.fsp4{width:14px;right:-26px}}
@media (max-width:600px){.fsp4{top:-24px;right:24%}}
.banner-squiggle{overflow:visible}
/* booking band: extra bottom room for the footer wave so the text sits centered */
.cta-band{padding-bottom:calc(clamp(4rem,8vw,6rem) + 50px)}
/* footer: sparkles on the right side only */
.fsp1,.fsp2{display:none}
/* footer sparkles: shimmer sweep instead of twinkle */
.fsp{animation:none}
.form-error{grid-column:1/-1;background:var(--petal);border:1.5px solid var(--rose);color:var(--berry);border-radius:12px;padding:.85em 1.1em;font-size:.95rem;text-align:center}
.services h1 em{color:var(--rose)}
/* bands after a colored section: wave rises straight out of it (no page-color strip) */
.services + .note-single.band,.services + .love-notes.band,.guests + .note-single.band,.guests + .love-notes.band{margin-top:0}
/* keep the menu bar sticky: clip sideways overflow without making body a scroll box */
body{overflow-x:clip}
/* phones/tablets: center the stylist photos */
@media (max-width:860px){.about-photos{margin-inline:auto;width:100%;justify-self:center}.teaser-about .about-photos .arch{margin-inline:auto}}
/* phones/tablets: hero headline and buttons centered over the photo */
@media (max-width:860px){.hero-grid>.reveal:first-child{text-align:center}.hero-ctas{justify-content:center}}
/* hero notes write in left to right once the photo scrolls into view */
@keyframes noteWrite{from{opacity:0;clip-path:inset(-.4em 100% -.4em -.4em)}to{opacity:1;clip-path:inset(-.4em -.4em -.4em -.4em)}}
.hero-photo .doodle span{animation:none;opacity:0}
.hero-photo.write .doodle span{animation:noteWrite 1.1s cubic-bezier(.45,.05,.35,1) both}
.hero-photo.write .d1 span{animation-delay:.2s}
.hero-photo.write .d2 span{animation-delay:.7s}
.hero-photo.write .d3 span{animation-delay:1.2s}
.hero-photo.write .d4 span{animation-delay:1.7s}
.hero-photo.write .d5 span{animation-delay:2.2s}
@media (prefers-reduced-motion:reduce){.hero-photo .doodle span{opacity:1;animation:none!important}}
/* tilted pink band: smooth the edges on iPhone (no jagged/flickering line) */
.marquee{transform:rotate(-1.5deg);outline:1px solid transparent;box-shadow:0 0 1px var(--pink)}
/* consultation: note about texting photos (replaces the upload box) */
.photo-tip{margin:0;padding:1rem 1.2rem;border-radius:14px;background:var(--petal);color:var(--ink-soft);font-size:.98rem;line-height:1.5}
.photo-tip b{color:var(--berry);font-weight:600}
/* phones: sparkles tucked in a little cluster at the end of the tagline */
@media (max-width:600px){
  .tagline-wrap{width:fit-content;max-width:100%;margin-inline:auto;padding:0}
  .fsp3{width:17px;right:-16px;left:auto;top:-12px;bottom:auto}
  .fsp4{width:10px;right:-24px;left:auto;top:8px;bottom:auto}
}
@media (max-width:600px){.tagline-wrap .tagline{font-size:min(1.6rem,6.4vw);white-space:nowrap}}
/* phones: bigger banner headline */
@media (max-width:600px){.banner-title{font-size:clamp(2.55rem,12.2vw,3.2rem);line-height:1.04}}
/* sharp shells on iPhone: let the moving band redraw crisply instead of as a cached bitmap */
.marquee-track{will-change:auto}
.marquee span::after,.pill.shell-pill::before{-webkit-mask-size:contain;mask-size:contain}

/* marquee daisies a touch bigger */
.marquee span::after{width:1.45rem;height:1.45rem}
/* services page, phones: title, then intro full width, then the polaroids centered underneath */
@media (max-width:600px){
  .services .head-with-photos.split{margin-bottom:2.8rem}
  .services .head-with-photos.split .intro{display:flex;flex-direction:column}
  .services .head-with-photos.split .title{order:1}
  .services .head-with-photos.split .intro > p{order:2;margin-top:.9rem}
  .services .head-with-photos.split .photo-pair{order:3;float:none;align-self:center;margin:2.2rem 0 0;transform:none}
  .services .head-with-photos.split .polaroid{--w:132px}
  .services .head-with-photos.split .polaroid figcaption{font-size:.95rem}
  .services .head-with-photos.split .photo-pair .polaroid + .polaroid{margin-left:-10px;margin-top:26px}
}
/* phones: banner headline in three set lines (Bright blondes. / Lived-in color. Hair / that feels like you.) */
@media (max-width:600px){.banner-title{max-width:none}.banner-title .bl{display:block;white-space:nowrap}}
@media (max-width:600px){.banner-title{font-size:9.9vw;line-height:1.12}}
/* phones: shorter photo banner, sized to the headline instead of most of the screen */
@media (max-width:600px){.banner{min-height:0;padding:4.5rem 0 6.5rem}.banner-down{margin-top:1.6rem}}
/* hero tucks 2px under the banner so no hairline shows where the wave meets the page */
.banner + .hero{margin-top:-2px;background:#fcf6f6}
/* phones/tablets: hero buttons sit under Kate's photo */
@media (max-width:860px){
  .hero-grid>.reveal:first-child{display:contents}
  .hero-grid .hero-title{order:1;margin-bottom:.5rem}
  .hero-grid .hero-photo{order:2}
  .hero-grid .hero-ctas{order:3;justify-content:center;margin:.5rem 0 1rem}
}
/* phones: "Amazing hair starts here" on one line */
@media (max-width:600px){.guests-teaser h2{white-space:nowrap;font-size:min(2.3rem,calc((100vw - 2.6rem)/10.6))}}
@media (min-width:601px){.guests-teaser h2{white-space:nowrap;font-size:min(3.8rem,4.2vw)}}
@media (min-width:601px) and (max-width:860px){.guests-teaser h2{font-size:2.6rem}}
/* a little more room above "welcome to the cove" */
.hero .hero-title .script{margin-top:.55em}
/* phone menu: even rows, matching buttons with equal spacing */
@media (max-width:860px){
  .nav-links{gap:0;padding-bottom:1.4rem}
  .nav-links li:nth-last-child(2){margin-top:1.4rem}
  .nav-links li:last-child{margin-top:.75rem}
  .nav-links a.nav-cta,.nav-links a.nav-cta.ghost{margin-top:0;height:48px;display:flex;align-items:center;justify-content:center;padding:0 1em;box-sizing:border-box;font-size:1rem}
}

/* Kate's fav badge: daisy instead of the shell */
.pill.shell-pill::before{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%20viewBox=%270%200%2060%2060%27%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%280%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2845%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2890%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28135%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28180%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28225%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28270%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28315%2030%2030%29%27/%3E%3Ccircle%20cx=%2730%27%20cy=%2730%27%20r=%275.2%27/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%20viewBox=%270%200%2060%2060%27%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%280%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2845%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%2890%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28135%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28180%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28225%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28270%2030%2030%29%27/%3E%3Cellipse%20cx=%2730%27%20cy=%2715%27%20rx=%275%27%20ry=%277.6%27%20transform=%27rotate%28315%2030%2030%29%27/%3E%3Ccircle%20cx=%2730%27%20cy=%2730%27%20r=%275.2%27/%3E%3C/svg%3E") center/contain no-repeat}
/* phones: "Kate's fav" sits above the service name as a little tag, lined up with the text */
@media (max-width:600px){
  .item-row h3:has(.pill){display:flex;flex-direction:column-reverse;align-items:flex-start;gap:.55rem}
  .item-row h3 .pill{margin:0}
}
@media (max-width:600px){.item-row:has(.pill){align-items:last baseline}}
/* script line sitting under a heading instead of above it */
.eyebrow-under{display:block;margin:.5rem 0 0}
/* reviews heading: script title on top, serif line underneath */
h2.script-head{font-family:var(--script);font-size:1.9rem;line-height:1;letter-spacing:0;color:var(--berry)}
h2.script-head em{font-style:normal;color:inherit}
.serif-sub{display:block;margin-top:.8rem;font-family:var(--serif);font-size:clamp(1.75rem,3.6vw,2.7rem);line-height:1.05;letter-spacing:-.01em;color:var(--ink)}
/* phones: even out the reviews band (less air on top, more room under the heading and between cards) */
@media (max-width:600px){
  .love-notes.band{padding-top:2.4rem}
  .love-notes .section-head{margin-bottom:3.2rem}
  .love-notes .notes-grid{row-gap:3rem}
}
/* phones: same breathing room under the last button before a wavy edge */
@media (max-width:600px){.teaser-about,.services.page-first{padding-bottom:6.3rem}}
/* About: space between the green review band and the "beauty cove babes" box */
.note-single.band + .fav-strip{margin-top:2.5rem}
/* phones: Services title sits as far below the menu as the other page titles */
@media (max-width:600px){.services.page-first{padding-top:3rem}}
/* footer: even spacing above and below the divider line */
.foot-top{padding-bottom:2rem}
.foot-bottom{padding-top:2rem}
footer{padding-bottom:calc(2rem + env(safe-area-inset-bottom,0px))}
/* home "Visit the cove" panel: same space above and below (the footer wave tucks into the bottom) */
main > section.visit:not(.page-first){padding-bottom:calc(clamp(3.5rem,8vw,8rem) + 48px);padding-top:clamp(3.5rem,8vw,8rem)}
/* polaroids: smooth the tilted edges on iPhone, keep captions centered on one line */
.polaroid{outline:1px solid transparent;-webkit-font-smoothing:antialiased}
.polaroid{transform:rotate(var(--tilt,-4deg))}
.polaroid:hover{transform:rotate(0) scale(1.03)}
.polaroid img{display:block;outline:1px solid transparent}
.polaroid figcaption{display:block;width:100%;text-align:center;white-space:nowrap;padding-left:0;padding-right:0}
/* captions in the smaller polaroids, sized to fit on one line */
.map-wrap .polaroid figcaption{font-size:1rem}
@media (max-width:600px){.fav-strip .polaroid figcaption{font-size:1.05rem}.map-wrap .polaroid figcaption{font-size:.9rem}}
@media (min-width:601px) and (max-width:860px){.head-with-photos .polaroid figcaption{font-size:.82rem}}
/* footer tagline a bit smaller */
.tagline-wrap .tagline{font-size:clamp(1.3rem,2.6vw,1.8rem)}
@media (max-width:600px){.tagline-wrap .tagline{font-size:min(1.3rem,5.4vw)}}
/* footer sparkles scaled down with the smaller tagline */
@media (min-width:601px){.fsp3{width:19px;right:-38px;top:-6px}.fsp4{width:11px;right:-20px;bottom:-2px}}
@media (max-width:600px){.fsp3{width:14px;right:-13px;top:-10px}.fsp4{width:8px;right:-20px;top:6px}}
/* footer: less empty space under the wave, a little more at the very bottom */
footer{padding-top:1.5rem;padding-bottom:calc(2.5rem + env(safe-area-inset-bottom,0px))}
/* green section under the tilted pink band: tuck it up under the band so no sliver of page shows through */
.marquee + .guests > .wave{display:none}
.marquee + .guests{margin-top:calc(-2.7vw - 16px);padding-top:calc(clamp(5rem,9vw,8rem) + 2.7vw + 16px)}
@media (max-width:600px){.marquee + .guests{padding-top:calc(5rem + 2.7vw + 16px)}}
/* home "meet your stylist": equal space above and below (the next section's wave tucks ~48px into the bottom);
   keep the little flowers clear of that wave */
@media (min-width:601px){.teaser-about{padding-bottom:calc(clamp(5rem,9.96vw,8rem) + 48px)}}
.teaser-about .petals{bottom:56px;top:0;height:auto}

/* ===== Section spacing system =====
   Every section gets the same space above and below its content (--sp).
   A wavy edge reads as sitting ~28px into the neighbouring section, so a section that
   starts with a wave, or is followed by one, gets that much extra at the bottom to stay even. */
:where(main > section){--sp:clamp(3.5rem,8vw,7rem);--wave-in:0px;--wave-next:0px}
html body main > section:not(.banner):not(.fav-strip){padding-bottom:calc(var(--sp) + var(--wave-in) + var(--wave-next))}
html body main > section:not(.banner):not(.fav-strip):not(.page-first){padding-top:var(--sp)}
html body main > section:not(.x):has(> .wave){--wave-in:28px}
html body main > section:not(.x):has(+ section > .wave),html body main > section:not(.x):last-child{--wave-next:28px}
/* hero: the photo banner's wave sits above it; the tilted pink band overlaps its bottom */
html body main > section.hero.hero{--wave-in:28px;--wave-next:calc(1.5rem + 1.3vw)}
/* green section tucked under the tilted pink band */
html body main > .marquee + section.guests.guests{--wave-in:0px;padding-top:calc(var(--sp) + 2.7vw + 16px)}
/* bands with a wavy top: no extra margin above them (the wave already overlaps the section before) */
html body main > section.band.band:not(.x):not(.y){margin-top:0}
/* page-title sections: bottom space matches the space under the menu bar */
html body main > section.page-first.page-first:not(.x):not(.y){padding-bottom:calc(clamp(2.75rem,5.5vw,5rem) + var(--wave-in) + var(--wave-next))}
/* tablets: Services title the same distance under the menu as the other page titles */
@media (min-width:601px) and (max-width:860px){html body main > section.services.page-first:not(.x){padding-top:3rem}}
/* wavy edges: overlap the section below by a few px so no light hairline flickers along the seam while scrolling */
svg.wave:not(.banner-wave){height:63px!important;top:-59px!important}
svg.wave.banner-wave{height:62px;bottom:-2px}
/* reviews heading a little bigger */
h2.script-head{font-size:2.25rem}
.serif-sub{font-size:clamp(2rem,4vw,3rem)}
@media (max-width:600px){.serif-sub{font-size:min(2rem,calc((100vw - 2.6rem)/9.9))}}

/* wavy edges drawn with the section's own CSS colour (a masked block) instead of an SVG fill,
   so iPhone Safari paints the wave and the panel in exactly the same shade while scrolling */
svg.wave path{fill:transparent}
svg.wave{-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%201440%2060%27%20preserveAspectRatio=%27none%27%3E%3Cpath%20d=%27M0%2060V30c120-25%20240-25%20360%200s240%2025%20360%200%20240-25%20360%200%20240%2025%20360%200v30Z%27/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%201440%2060%27%20preserveAspectRatio=%27none%27%3E%3Cpath%20d=%27M0%2060V30c120-25%20240-25%20360%200s240%2025%20360%200%20240-25%20360%200%20240%2025%20360%200v30Z%27/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
svg.wave:has(path[fill="#5a6e5f"]){background:var(--forest)}
svg.wave:has(path[fill="#e0eadc"]){background:var(--sage)}
svg.wave:has(path[fill="#f7e6e9"]){background:#f7e6e9}
svg.wave:has(path[fill="#fcf6f6"]){background:#fcf6f6}

/* ===== Former dark-green panels now use the light sage (same as the "first visit?" section) =====
   Text switches from cream to the site's dark ink + pink accents. */
.services,footer{color:var(--ink)}
.services .eyebrow,.services h2 em,.services h1 em{color:var(--pink)}
.services p,.services .intro > p{color:var(--ink-soft)}
.tcard{background:rgba(255,255,255,.6);border-color:rgba(201,133,153,.25)}
.tcard .price,.item .price{color:var(--pink)}
.tcard p{opacity:1;color:var(--ink-soft)}
.tab{border-color:rgba(201,133,153,.4);color:var(--berry)}
.tab:hover{border-color:var(--pink)}
.tab[aria-selected="true"]{background:var(--pink);border-color:var(--pink);color:#fff}
.item{border-bottom-color:rgba(62,50,56,.1)}
.item .leader{border-bottom-color:rgba(148,86,106,.35)}
.item .time{opacity:.75;color:var(--ink-soft)}
.item p{opacity:1;color:var(--ink-soft)}
.item.feature{background:rgba(255,255,255,.55);border-color:rgba(201,133,153,.3)}
.price-note{background:rgba(255,255,255,.55);opacity:1;color:var(--ink-soft)}
.price-note svg{color:var(--pink)}
.price-note a{color:var(--berry)}
.services .btn,.services .btn-ghost,footer .btn{color:var(--berry);border-color:var(--pink)}
.services .btn::after,.services .btn svg{color:var(--pink)}
.services .btn:hover,.services .btn-ghost:hover{background:none;color:var(--pink)}
footer .logo{color:var(--berry)}
.foot-top{border-bottom-color:rgba(62,50,56,.12)}
.tagline,.tagline-wrap .tagline{color:var(--berry)}
.fsp3{color:var(--pink)}
.fsp4{color:var(--rose)}
.socials a{border-color:rgba(148,86,106,.35);color:var(--berry)}
.socials a:hover{background:var(--pink);border-color:var(--pink);color:#fff}
.foot-bottom{opacity:1;color:var(--ink-soft)}
.foot-bottom a{color:var(--berry)}
/* slightly deeper body text on the darker sage panels so small text stays easy to read */
.services p,.services .intro > p,.tcard p,.item p,.item .time,.price-note,.foot-bottom{color:#5c4e55}
/* footer: deeper dusty pink */
footer{background:#efd3da}
footer > svg.wave.wave:has(path[fill]){background:#efd3da}
.foot-top{border-bottom-color:rgba(148,86,106,.2)}
.socials a{border-color:rgba(148,86,106,.45)}
/* Services & Pricing page: menu panel in blush pink, review band below it in sage */
main > section.services.page-first{background:var(--petal)}
main > section.services.page-first + section.note-single.band{background:var(--forest)}
main > section.services.page-first + section.note-single.band > svg.wave.wave:has(path[fill]){background:var(--forest)}
/* home page Services & pricing panel: blush pink (green is kept for the smaller accent bands) */
main > section.services:not(.page-first){background:var(--petal)}
main > section.services:not(.page-first) > svg.wave.wave:has(path[fill]){background:var(--petal)}
/* all green accent bands share the same light sage */
main > section.services.page-first + section.note-single.band{background:var(--sage)}
main > section.services.page-first + section.note-single.band > svg.wave.wave:has(path[fill]){background:var(--sage)}
/* footer sparkles twinkle the same way as the ones by Kate's photo (solid pink, gentle fade) */
footer .fsp path{fill:currentColor}
footer .fsp{animation:twinkle 3.2s ease-in-out infinite}
footer .fsp3{color:var(--pink)}
footer .fsp4{color:var(--rose);animation-delay:-1.6s}
