/* Swan theme, site-wide parts: header with mobile menu, footer, and the
   restyle of the subpage components that styles.css lays out.
   Loaded last on every /v2/ page. */
:root{
  --sw-ink:#3A1F2B;--sw-body:#5A3E4A;--sw-rose:#E58AAE;--sw-rose-deep:#C94F83;--sw-line:#F0B7CD;--sw-blush:#FBE3EC;
  --sw-serif:'Bodoni Moda',serif;--sw-sans:'Jost',sans-serif;--sw-script:'Pinyon Script',cursive;
  --sw-gloss:linear-gradient(180deg,#F3A9C4 0%,#E277A3 48%,#D45E90 52%,#E88DB2 100%);
}

/* ── header ─────────────────────────────────────────────────────────── */
.sw-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--sw-line);font-family:var(--sw-sans)}
.sw-nav{max-width:1240px;margin:0 auto;padding:0 40px;height:104px;display:grid;
  grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem}
.sw-links{display:flex;gap:1.9rem;align-items:center}
.sw-links.right{justify-content:flex-end}
.sw-links a:not(.sw-btn){font-size:.8rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sw-ink);text-decoration:none;padding:.4em 0;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.sw-links a:not(.sw-btn):hover,.sw-links a[aria-current="page"]{color:var(--sw-rose-deep);border-bottom-color:var(--sw-rose)}
.sw-brand{display:block;line-height:0}
.sw-brand img{height:62px;width:auto;display:block}
.sw-btn{position:relative;overflow:hidden;display:inline-block;padding:.95rem 1.9rem;border-radius:2px;color:#fff;
  font:500 .8rem/1 var(--sw-sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;white-space:nowrap;
  background:var(--sw-gloss);text-shadow:0 1px 1px rgba(140,40,85,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 6px 16px rgba(212,94,144,.28);transition:transform .2s,filter .2s}
.sw-btn:hover{transform:translateY(-1px);filter:brightness(1.06);color:#fff}
.sw-toggle{display:none;justify-self:start;background:none;border:0;padding:10px 0;cursor:pointer;
  font:500 .8rem/1 var(--sw-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--sw-ink)}
.sw-drawer{display:none}
@media (max-width:1000px){
  .sw-nav{height:78px;padding:0 20px;gap:1rem}
  .sw-links{display:none}
  .sw-links.right{display:flex}
  .sw-links.right a:not(.sw-btn){display:none}
  .sw-toggle{display:block}
  .sw-brand img{height:46px}
  .sw-btn{padding:.8rem 1.1rem;font-size:.72rem;letter-spacing:.14em}
  .sw-drawer{display:block;max-height:0;overflow:hidden;transition:max-height .35s ease;background:#fff;
    border-top:1px solid transparent}
  .sw-drawer.open{max-height:420px;border-top-color:var(--sw-line)}
  .sw-drawer a{display:block;padding:1.05rem 20px;font:500 .9rem/1 var(--sw-sans);letter-spacing:.14em;
    text-transform:uppercase;color:var(--sw-ink);text-decoration:none;border-bottom:1px solid #FBE3EC}
  .sw-drawer a[aria-current="page"]{color:var(--sw-rose-deep)}
}

/* ── footer ─────────────────────────────────────────────────────────── */
.sw-footer{background:var(--sw-blush);color:#6B3550;border-top:1px solid var(--sw-line);font-family:var(--sw-sans);
  padding:clamp(3rem,6vw,4.5rem) 0 0;font-size:1rem;text-align:left}
.sw-footer .sw-wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.sw-foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem}
.sw-foot-grid img{height:64px;width:auto;display:block;margin-bottom:1.1rem}
.sw-foot-grid p{max-width:36ch;line-height:1.7;margin:0;font-size:1rem;color:#6B3550;opacity:1}
.sw-foot-head{font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sw-rose-deep);margin-bottom:1rem}
.sw-foot-links a{display:block;color:#6B3550;text-decoration:none;padding:.32rem 0;font-size:1rem}
.sw-foot-links a:hover{color:var(--sw-rose-deep)}
.sw-foot-base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding:1.4rem 0;
  border-top:1px solid var(--sw-line);font-size:.85rem;color:#8A5A70}
@media (max-width:800px){.sw-foot-grid{grid-template-columns:1fr;gap:2rem}.sw-footer .sw-wrap{padding:0 20px}}

/* ── subpages (layout comes from styles.css) ────────────────────────── */
body.sw-page{--cream:#FFF9FA;--ivory:#fff;--band:#FBE3EC;--band-line:#F0B7CD;--band-ink:#3A1F2B;--band-soft:#8A5A70;
  --ink:#3A1F2B;--brown:#3A1F2B;--soft:#5A3E4A;--blush:#F8D3DD;--blush-deep:#C94F83;--hot:#C94F83;--rose:#FFF4F8;
  --line:#F3CFDD;--serif:'Bodoni Moda',serif;--sans:'Jost',sans-serif;
  font-family:var(--sw-sans);font-size:17px;color:var(--sw-ink);
  background:
    radial-gradient(circle at 4% 260px,rgba(255,228,214,.6) 0 58px,rgba(255,228,214,0) 92px),
    radial-gradient(circle at 95% 420px,rgba(255,228,214,.5) 0 70px,rgba(255,228,214,0) 110px),
    radial-gradient(70% 420px at 50% 0,rgba(250,218,226,.8),transparent 70%),#FFF9FA;background-repeat:no-repeat}
body.sw-page h1,body.sw-page h2,body.sw-page h3{font-family:var(--sw-serif);font-weight:500;letter-spacing:0;line-height:1.12;
  font-optical-sizing:none;font-variation-settings:"opsz" 14;color:var(--sw-ink)}
body.sw-page h1{font-size:clamp(2.4rem,5vw,3.8rem)}
body.sw-page .kicker{font-family:var(--sw-sans);font-size:.8rem;font-weight:500;letter-spacing:.26em;color:var(--sw-rose-deep)}
body.sw-page .lede,body.sw-page p{color:var(--sw-body)}
body.sw-page .lede{font-size:1.15rem;line-height:1.7}
/* title ornament, same as the home page */
body.sw-page .section-head h1::after,body.sw-page .section-head h2::after,body.sw-page .page-intro h1::after{content:"";display:block;
  width:120px;height:7px;margin:1.3rem 0 0;background:
    radial-gradient(circle,var(--sw-rose) 0 3px,transparent 3.6px) center/9px 7px no-repeat,
    linear-gradient(var(--sw-rose),var(--sw-rose)) left center/48px 1px no-repeat,
    linear-gradient(var(--sw-rose),var(--sw-rose)) right center/48px 1px no-repeat}
body.sw-page .section-head.center h1::after,body.sw-page .section-head.center h2::after{margin-inline:auto}
/* buttons */
body.sw-page .btn{position:relative;overflow:hidden;border:0;border-radius:2px;color:#fff;background:var(--sw-gloss);
  font:500 .8rem/1 var(--sw-sans);letter-spacing:.2em;text-transform:uppercase;padding:1.15rem 2.2rem;
  text-shadow:0 1px 1px rgba(140,40,85,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 10px 24px rgba(212,94,144,.3)}
body.sw-page .btn:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}
body.sw-page .btn.btn-ghost{background:transparent;color:var(--sw-rose-deep);border:1px solid var(--sw-rose);box-shadow:none;text-shadow:none}
body.sw-page .btn.btn-ghost:hover{background:var(--sw-rose);color:#fff;filter:none}
/* pricing */
body.sw-page .intro-media img{border-radius:0;box-shadow:0 24px 50px rgba(150,60,95,.18);outline:1px solid #fff;outline-offset:-10px}
body.sw-page .intro-media figcaption{font-family:var(--sw-script);font-size:1.9rem;color:var(--sw-rose-deep);letter-spacing:0;text-transform:none}
body.sw-page .price-group{border-top:1px solid var(--sw-rose)}
body.sw-page .price-row{border-bottom:1px solid #F6D5E1}
body.sw-page .price-row .name{font-family:var(--sw-serif);font-weight:500;font-size:1.35rem;font-variation-settings:"opsz" 14;font-optical-sizing:none}
body.sw-page .price-row .desc{color:var(--sw-body);font-size:1rem}
body.sw-page .price-row .amt{font-family:var(--sw-serif);font-style:italic;font-weight:400;font-size:1.6rem;font-variation-settings:"opsz" 14;
  font-optical-sizing:none;background:linear-gradient(100deg,#C2527F,#EE9CBD 45%,#C2527F 70%,#E58AAE);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
body.sw-page .notice{background:#fff;border:0;border-left:2px solid var(--sw-rose);border-radius:0;color:var(--sw-body);
  box-shadow:0 10px 30px rgba(201,79,131,.07)}
body.sw-page .notice b{color:var(--sw-ink)}
/* portfolio */
body.sw-page .folio-grid img{border-radius:0}
body.sw-page .rev{background:#fff;border:0;border-top:1px solid var(--sw-rose);border-radius:0;box-shadow:none}
body.sw-page .rev blockquote{font-family:var(--sw-serif);font-style:italic;font-weight:400;font-size:1.2rem;line-height:1.55;
  font-variation-settings:"opsz" 14;font-optical-sizing:none;color:var(--sw-ink)}
body.sw-page .rev figcaption span{color:var(--sw-body)}
body.sw-page .rev-score b{color:var(--sw-rose-deep)}
/* faq */
body.sw-page .faq-list details{border-bottom:1px solid #F6D5E1}
body.sw-page .faq-list summary{font-family:var(--sw-serif);font-weight:500;font-size:1.25rem;letter-spacing:0;
  font-variation-settings:"opsz" 14;font-optical-sizing:none;color:var(--sw-ink)}
body.sw-page .faq-list summary::after{color:var(--sw-rose-deep)}
body.sw-page .faq-list .a{color:var(--sw-body);font-size:1.02rem}
body.sw-page .vid-box{border-radius:0;box-shadow:0 24px 50px rgba(150,60,95,.18)}
/* aftercare */
body.sw-page .step{border-top:1px solid var(--sw-rose)}
body.sw-page .step h3{font-size:1.35rem}
/* contact */
body.sw-page .c-item{border-bottom:1px solid #F6D5E1}
body.sw-page .hours{border-top:1px solid var(--sw-rose)}
body.sw-page a{color:var(--sw-rose-deep)}
body.sw-page .sw-header a,body.sw-page .sw-footer a{color:inherit}
body.sw-page .sw-links a:not(.sw-btn){color:var(--sw-ink)}
body.sw-page .sw-btn,body.sw-page .btn{color:#fff}
body.sw-page .btn.btn-ghost{color:var(--sw-rose-deep)}
/* closing band on every subpage */
.sw-close{background:radial-gradient(60% 70% at 50% 38%,rgba(255,214,232,.45),transparent 70%),
  linear-gradient(120deg,#F5ADCB 0%,#F2A0C3 45%,#EE95BE 100%);text-align:center;padding:clamp(4rem,8vw,6.5rem) 20px;margin-top:clamp(3rem,6vw,5rem)}
.sw-close h2{font-family:'Parisienne',cursive !important;font-weight:400 !important;font-synthesis:none;font-size:clamp(2.6rem,5.6vw,4.6rem);
  color:#fff !important;line-height:1.2;margin:0;font-variation-settings:normal !important;
  text-shadow:0 0 1px #fff,0 0 5px rgba(255,255,255,.9),0 0 11px #FFB8D9,0 0 22px #FF7DB8,0 0 44px rgba(255,77,158,.7),0 9px 9px rgba(105,10,55,.28);
  animation:swan-sign 2.8s ease-in-out infinite}
.sw-close h2::after{display:none !important}
.sw-close p{color:#fff !important;max-width:52ch;margin:1.6rem auto 2rem;font-size:1.1rem;line-height:1.7}
.sw-close a{display:inline-block;background:#FFF4F9;color:#C94F83 !important;border-radius:999px;padding:1.35em 3.2em;text-decoration:none;
  font:600 .84rem/1 var(--sw-sans);letter-spacing:.2em;text-transform:uppercase;box-shadow:0 14px 30px rgba(190,70,125,.28)}
.sw-close a:hover{background:#fff}
@keyframes swan-sign{
  0%,36%,50%,86%,100%{color:#fff;text-shadow:0 0 1px #fff,0 0 5px rgba(255,255,255,.9),0 0 11px #FFB8D9,0 0 22px #FF7DB8,0 0 44px rgba(255,77,158,.7),0 9px 9px rgba(105,10,55,.28)}
  43%,93%{color:#FFDDEB;text-shadow:0 0 1px #FFE3EF,0 0 4px rgba(255,184,217,.35),0 0 8px rgba(255,125,184,.2),0 0 12px rgba(255,77,158,0),0 0 16px rgba(255,77,158,0),0 9px 9px rgba(105,10,55,.12)}}
@media (prefers-reduced-motion:reduce){.sw-close h2{animation:none}}

/* fixes after first look */
.sw-header{border-top:0}
body.sw-page .sw-header a.sw-btn,.sw-header a.sw-btn{color:#fff}
.sw-footer .sw-foot-base{margin-top:3rem}
.sw-footer .sw-foot-grid{padding-bottom:0}
body.sw-page .page-intro h1{font-size:clamp(2.1rem,3.4vw,3rem)}
body.sw-page .sw-drawer a{color:var(--sw-ink)}

/* the closing line breaks after the first sentence; the paragraph is wide
   enough to hold the second sentence on one line at desktop widths */
.sw-close p{max-width:none}
body.core-swan .cta.cta-sign p{max-width:none}
@media (max-width:700px){.sw-close br.lb,.cta.cta-sign br.lb{display:none}}
body.sw-page .intro-media img{aspect-ratio:16/9;width:100%;height:auto;object-fit:cover;display:block}
/* pricing portrait: closer crop inside the original frame width */
body.sw-page .intro-media img{aspect-ratio:1600/855}

/* Balance the header around the logo: left links sit against it on one side,
   right links on the other, equal gaps. Book now goes to the far right. */
@media (min-width:1001px){
  .sw-nav{gap:3rem}
  .sw-links{justify-content:flex-end}
  .sw-links.right{justify-content:flex-start}
  .sw-links.right .sw-btn{margin-left:auto}
}

/* logo dead center; three links set off to each side; Book now set off again
   after the right-hand links instead of pinned to the far edge */
@media (min-width:1001px){
  .sw-nav{gap:5.5rem}
  .sw-links{gap:2.4rem}
  .sw-links.right .sw-btn{margin-left:1.6rem}
}
@media (min-width:1001px) and (max-width:1180px){
  .sw-nav{gap:2.5rem;padding:0 24px}
  .sw-links{gap:1.4rem}
  .sw-links.right .sw-btn{margin-left:.6rem}
}
/* equal side columns no matter what is in them, so the logo is truly centered */
.sw-nav{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
@media (min-width:1181px){ .sw-nav{gap:4.5rem} .sw-links{gap:2rem} }

/* portfolio title on one line */
@media (min-width:700px){body.sw-page .section-head.center h1{white-space:nowrap}
  body.sw-page .section-head.center h1 br{display:none}}

/* home, recent work: two rows, the second melting away toward the button */
.ba-grid.ba-fade{-webkit-mask-image:linear-gradient(#000 0,#000 58%,rgba(0,0,0,.35) 80%,transparent 97%);
  mask-image:linear-gradient(#000 0,#000 58%,rgba(0,0,0,.35) 80%,transparent 97%)}
.ba-grid.ba-fade + .results-cta{margin-top:-1.2rem;position:relative;z-index:2}
body.core-swan .ba-fade .ba-pair figure{aspect-ratio:4/3}
@media (max-width:900px){
  .ba-grid.ba-fade .ba:nth-child(n+4){display:none}
  .ba-grid.ba-fade{-webkit-mask-image:none;mask-image:none}
  .ba-grid.ba-fade + .results-cta{margin-top:2rem}
}

/* recent work cards: the whole photo, before on top and after below, nothing
   cropped away; a small tag names each half */
.ba.ba-stack{position:relative;margin:0;padding:0 !important;background:#fff;border:0 !important;border-top:1px solid #E58AAE !important;
  padding-top:14px !important;overflow:hidden}
.ba.ba-stack img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}
.ba-tag{position:absolute;left:10px;padding:.5em .95em;background:rgba(255,255,255,.92);color:#C94F83;
  font:600 .68rem/1 'Jost',sans-serif;letter-spacing:.2em;text-transform:uppercase}
.ba-tag.is-before{top:calc(14px + 10px)}
.ba-tag.is-after{top:calc(14px + 50% - 7px + 10px)}
.ba-grid.ba-fade{-webkit-mask-image:linear-gradient(#000 0,#000 68%,rgba(0,0,0,.4) 86%,transparent 99%);
  mask-image:linear-gradient(#000 0,#000 68%,rgba(0,0,0,.4) 86%,transparent 99%)}
.ba-grid.ba-fade + .results-cta{margin-top:-2.6rem}

/* more air between the logo and each group of three */
@media (min-width:1181px){ .sw-nav{gap:7.5rem} .sw-links{gap:2rem} .sw-links.right .sw-btn{margin-left:1.2rem} }
@media (min-width:1181px) and (max-width:1320px){ .sw-nav{gap:5rem} .sw-links{gap:1.6rem} }
/* pricing title small enough to sit on two lines */
body.sw-page .page-intro h1{font-size:clamp(1.9rem,2.7vw,2.35rem)}
/* room for the wider gaps: a wider bar, and the button never shrinks */
.sw-btn{flex-shrink:0}
@media (min-width:1181px){ .sw-nav{max-width:1400px} }
@media (min-width:1181px) and (max-width:1439px){ .sw-nav{gap:5rem} .sw-links{gap:1.6rem} }

/* wider still: the bar runs the full width and the gap beside the logo grows
   with the screen (about 160px at 1440, 220px at 2000) */
@media (min-width:1440px){
  .sw-nav{max-width:none;padding:0 48px;gap:clamp(9rem,11vw,15rem)}
  .sw-links{gap:2.2rem}
  .sw-links.right .sw-btn{margin-left:1.6rem}
}

/* ── audit fixes, 2026-09-19 ─────────────────────────────────────────── */
body.sw-page{overflow-x:clip}
body.sw-page p,body.sw-page blockquote,body.sw-page figcaption,body.sw-page .desc,body.sw-page .a,body.sw-page li{text-wrap:pretty}
body.sw-page h1,body.sw-page h2,body.sw-page h3,body.sw-page summary,body.sw-page .name{text-wrap:balance}
.sw-foot-grid p{text-wrap:balance;max-width:40ch}
.sw-close p{text-wrap:balance}
/* nothing under 16px for running text */
body.sw-page .step p,body.sw-page .steps p{font-size:1rem;line-height:1.65}
body.sw-page .c-item p,body.sw-page .c-item .c-alt,body.sw-page .contact-grid p{font-size:1rem}
body.sw-page .vid-box + figcaption,body.sw-page .faq-video figcaption{font-size:1rem}
body.sw-page .c-item p[style]{font-size:1rem !important}
body .sw-footer .sw-foot-grid p,body .sw-close p{text-wrap:balance}
body.sw-page .step p{text-wrap:balance}

/* phones: the FAQ page drops the procedure video */
@media (max-width:900px){
  body.sw-page .faq-video{display:none}
  body.sw-page .faq-grid{grid-template-columns:1fr}
}
/* portfolio tiles hold their square before the photo loads, so the
   "show four rows" measurement is right on first paint */
body.sw-page .folio-grid img{aspect-ratio:1/1;width:100%;height:auto;object-fit:cover;display:block}

/* ── motion and hover, site-wide ─────────────────────────────────────── */
.rv-on .rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--rv-d,0ms),transform .9s cubic-bezier(.2,.7,.2,1) var(--rv-d,0ms)}
.rv-on .rv.in{opacity:1;transform:none}
.rv-on .story-media.rv{transform:translateX(-30px)}
.rv-on .story-media.rv.in{transform:none}
/* hero copy arrives in sequence */
@keyframes sw-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  body.core-swan .hero-copy h1 .h1-kw{animation:sw-rise .8s .05s both}
  body.core-swan .hero-copy h1.foil{animation:sw-rise .9s .15s both}
  body.core-swan .hero-copy .lede{animation:sw-rise .9s .35s both}
  body.core-swan .hero-copy .btn{animation:sw-rise .9s .5s both}
  body.core-swan .hero-loc{animation:sw-rise .9s .62s both}
  body.core-swan .hero-script{animation:sw-rise 1.2s .9s both}
  .sw-header{animation:sw-rise .7s both}
}
/* nav underline grows from the center */
.sw-links a:not(.sw-btn){position:relative;border-bottom:0 !important}
.sw-links a:not(.sw-btn)::after{content:"";position:absolute;left:50%;right:50%;bottom:-2px;height:1px;background:#E58AAE;transition:left .3s ease,right .3s ease}
.sw-links a:not(.sw-btn):hover::after,.sw-links a[aria-current="page"]::after{left:0;right:0}
.sw-brand img{transition:transform .4s ease}
.sw-brand:hover img{transform:scale(1.05) rotate(-2deg)}
@media (hover:hover){
  .sw-btn,body.core-swan .btn,body.sw-page .btn{transition:transform .25s ease,box-shadow .25s ease,filter .25s ease,background .25s ease,color .25s ease}
  .sw-btn:hover,body.core-swan .btn:not(.btn-ghost):hover,body.sw-page .btn:not(.btn-ghost):hover{transform:translateY(-3px);box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 16px 30px rgba(212,94,144,.4)}
  /* service cards */
  body.core-swan .svc{transition:transform .4s ease,box-shadow .4s ease}
  body.core-swan .svc:hover{transform:translateY(-6px) !important;box-shadow:0 22px 44px rgba(201,79,131,.14) !important}
  body.core-swan .svc figure img{transition:transform .5s ease}
  body.core-swan .svc .more{transition:letter-spacing .3s ease,color .3s ease}
  body.core-swan .svc:hover .more{letter-spacing:.26em;color:#C94F83}
  body.core-swan .svc-bling{transition:transform .5s ease}
  body.core-swan .svc-bling:hover{transform:translateY(-6px)}
  body.core-swan .svc-bling .tile-photo{transition:transform 1.2s ease}
  body.core-swan .svc-bling:hover .tile-photo{transform:scale(1.07)}
  /* before and after: the hovered half steps forward */
  .ba.ba-stack img{transition:transform .9s ease}
  .ba.ba-stack:hover img{transform:scale(1.04)}
  .ba.ba-stack .ba-tag{transition:background .3s ease,color .3s ease}
  .ba.ba-stack:hover .ba-tag{background:#D45E90;color:#fff}
  /* reviews and answers lift */
  body.core-swan .rev,body.sw-page .rev,.qa-item{transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease}
  body.core-swan .rev:hover,body.sw-page .rev:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(201,79,131,.12)}
  .qa-item:hover{border-top-color:#C94F83}
  .qa-item h3{transition:color .3s ease}
  .qa-item:hover h3{color:#C94F83}
  body.core-swan .strip-item svg{transition:transform .5s ease}
  body.core-swan .strip-item:hover svg{transform:translateY(-4px) scale(1.15)}
  body.core-swan .story-media img{transition:transform 1.4s ease}
  body.core-swan .story-media:hover img{transform:scale(1.05)}
  /* subpages */
  body.sw-page .price-row{transition:background .3s ease,padding .3s ease}
  body.sw-page .price-row:hover{background:linear-gradient(90deg,rgba(248,211,221,.45),transparent);padding-left:12px}
  body.sw-page .price-row:hover .amt{filter:brightness(.85)}
  body.sw-page .faq-list summary{transition:color .25s ease,padding .25s ease}
  body.sw-page .faq-list summary:hover{color:#C94F83;padding-left:8px}
  body.sw-page .step{transition:background .3s ease}
  body.sw-page .step:hover{background:rgba(248,211,221,.35)}
  body.sw-page .folio-grid img{transition:transform .6s ease,filter .4s ease}
  body.sw-page .folio-grid img:hover{transform:scale(1.04);filter:brightness(1.05)}
  body.sw-page .intro-media img{transition:transform 1.2s ease}
  body.sw-page .intro-media:hover img{transform:scale(1.03)}
  .sw-foot-links a{transition:transform .25s ease,color .25s ease}
  .sw-foot-links a:hover{transform:translateX(5px)}
}
/* closing sign: sparkles drift */
@media (prefers-reduced-motion:no-preference){ .sw-close{background-size:100% 100%,200% 200%;animation:sw-sheen 14s ease-in-out infinite alternate} }
@keyframes sw-sheen{from{background-position:0 0,0% 50%}to{background-position:0 0,100% 50%}}

/* fourth services tile carries the pink model portrait */
body.core-swan .svc-bling{overflow:hidden;background:#F3C9D2 !important;justify-content:flex-end !important;padding-bottom:1.6rem}
body.core-swan .svc-bling .tile-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:52% 30%}
body.core-swan .svc-bling::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(236,154,184,0) 45%,rgba(226,120,165,.85) 100%)}
body.core-swan .svc-bling::after{z-index:2}
body.core-swan .svc-bling .script-line{position:relative;z-index:3;font-size:2rem !important;line-height:1.1;text-align:center}
body.core-swan .svc-bling .star{z-index:3}
body.core-swan .svc-bling{display:flex !important;flex-direction:column;align-items:center}
body.core-swan .svc-bling .script-line{margin:auto 0 .4rem !important;position:relative;top:auto;left:auto;transform:none}
body.core-swan .svc-bling .star{display:none}
body.core-swan .svc-bling .tile-photo{object-position:50% 18%}

/* small pink labels, deep enough to pass AA contrast on white and on blush */
body.core-swan .kicker,body.sw-page .kicker,.sw-foot-head,body.core-swan .rev .hearts,body.sw-page .rev .hearts,
body.core-swan .ba-tag,.sw-mbar .m-text,body.core-swan .btn.btn-ghost,body.sw-page .btn.btn-ghost,
body.core-swan .svc .more,body.core-swan .ba-pair figcaption,.swipe-count{color:#A8326A !important}
.sw-mbar .m-text{border-color:#C94F83}
body.core-swan .btn.btn-ghost:hover,body.sw-page .btn.btn-ghost:hover,.ba.ba-stack:hover .ba-tag{color:#fff !important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* before/after cards: the width/height attributes were forcing 1254px tall
   images, so the photo looked zoomed. Height follows the square ratio. */
.ba.ba-stack img{height:auto !important;aspect-ratio:1/1;width:100%}

/* home tile back to satin (no portrait) */
body.core-swan .svc-bling{background:
  radial-gradient(circle at 78% 14%,rgba(255,240,230,.5) 0 46px,rgba(255,240,230,0) 78px),
  radial-gradient(circle at 18% 80%,rgba(255,240,230,.42) 0 58px,rgba(255,240,230,0) 96px),
  linear-gradient(160deg,#FBDCE6 0%,#F2ABC4 38%,#FAD3DF 55%,#EC9AB8 100%) !important;justify-content:center !important;padding-bottom:0}
body.core-swan .svc-bling::before{display:none}
body.core-swan .svc-bling .script-line{margin:0 !important;font-size:2.5rem !important}
body.core-swan .svc-bling .star{display:block}

/* aftercare: bright portrait beside the title */
body.sw-page .ac-intro{max-width:1100px;display:grid;grid-template-columns:1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
body.sw-page .ac-media{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:240px 240px 0 0;
  box-shadow:0 30px 60px rgba(201,79,131,.2);background:#F3C9D2}
body.sw-page .ac-media img{width:100%;height:100%;object-fit:cover;object-position:52% 30%;display:block;
  filter:brightness(1.08) saturate(1.05);transition:transform 1.4s ease}
body.sw-page .ac-media::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  radial-gradient(70% 40% at 50% 0,rgba(255,226,238,.6),transparent 70%),
  linear-gradient(180deg,transparent 70%,rgba(248,190,212,.55) 100%)}
body.sw-page .ac-media::after{content:"";position:absolute;inset:12px;z-index:2;border:1px solid rgba(255,255,255,.85);
  border-radius:228px 228px 0 0;pointer-events:none}
@media (hover:hover){body.sw-page .ac-media:hover img{transform:scale(1.05)}}
@media (max-width:900px){
  body.sw-page .ac-intro{grid-template-columns:1fr;gap:1.6rem}
  body.sw-page .ac-media{aspect-ratio:1/1;border-radius:200px 200px 0 0;max-width:420px;margin:0 auto;width:100%}
  body.sw-page .ac-media::after{border-radius:188px 188px 0 0}
}
/* aftercare portrait, one size down */
@media (min-width:901px){
  body.sw-page .ac-intro{grid-template-columns:1.25fr .75fr}
  body.sw-page .ac-media{max-width:340px;width:100%;justify-self:center;border-radius:170px 170px 0 0}
  body.sw-page .ac-media::after{border-radius:158px 158px 0 0}
}
@media (max-width:900px){ body.sw-page .ac-media{max-width:300px} }

/* ── reviews, dressed up ───────────────────────────────────────────────
   A satin blush band, the score as a centerpiece, and three cards with a
   serif quotation mark; the middle one stands a little taller. */
.rev-band{position:relative;overflow:hidden;background:
  radial-gradient(circle at 8% 18%,rgba(255,240,232,.7) 0 70px,rgba(255,240,232,0) 120px),
  radial-gradient(circle at 93% 78%,rgba(255,240,232,.6) 0 90px,rgba(255,240,232,0) 150px),
  linear-gradient(100deg,#FBE3EA 0%,#FDF0F4 28%,#F8D6E0 55%,#FDEBF0 78%,#F6CFDC 100%) !important}
.rev-band .section-head{text-align:center}
.rev-band .section-head h2::after{margin-inline:auto}
.rev-band .lede{display:none}
.rev-band .rev-score{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin:1.6rem 0 0;
  font:500 .8rem/1.4 'Jost',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#6B3550 !important}
.rev-band .rev-score b:first-child{font-family:'Bodoni Moda',serif;font-style:italic;font-weight:400;font-size:4.2rem;line-height:1;letter-spacing:0;
  font-variation-settings:"opsz" 14;font-optical-sizing:none;
  background:linear-gradient(100deg,#B8407A,#EE9CBD 45%,#B8407A 70%,#E58AAE);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.rev-band .rev-score b:first-child::after{content:"\2665\FE0E \2665\FE0E \2665\FE0E \2665\FE0E \2665\FE0E";display:block;font:400 .95rem/1 'Jost',sans-serif;
  letter-spacing:.35em;margin:.5rem 0 .3rem;-webkit-text-fill-color:#D45E90;color:#D45E90;font-style:normal}
.rev-band .rev-score b:last-of-type{color:#A8326A;font-weight:600}
.rev-band .rev-grid{align-items:stretch;gap:clamp(1.4rem,2.6vw,2.4rem);margin-top:clamp(2.4rem,4vw,3.4rem)}
.rev-band .rev{position:relative;display:flex;flex-direction:column;text-align:center;margin:0;background:#fff !important;
  border:0 !important;border-radius:2px;padding:3.4rem 2.2rem 2.2rem !important;
  box-shadow:0 20px 50px rgba(201,79,131,.12) !important}
.rev-band .rev::before{content:"\201C";position:absolute;left:50%;top:-1.9rem;transform:translateX(-50%);width:3.8rem;height:3.8rem;border-radius:50%;
  display:grid;place-items:center;padding-top:1.35rem;box-sizing:border-box;
  font:400 4rem/1 'Bodoni Moda',serif;color:#fff;
  background:linear-gradient(180deg,#F3A9C4 0%,#E277A3 48%,#D45E90 52%,#E88DB2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 8px 18px rgba(212,94,144,.35)}
.rev-band .rev::after{content:"";position:absolute;inset:10px;border:1px solid #F6D5E1;pointer-events:none}
.rev-band .rev .hearts{display:none}
.rev-band .rev blockquote{margin:0 0 1.6rem;font-size:1.22rem !important;line-height:1.6 !important;color:#3A1F2B}
.rev-band .rev figcaption{margin-top:auto;padding-top:1.3rem;position:relative;display:flex;flex-direction:column;gap:.35rem;align-items:center}
.rev-band .rev figcaption::before{content:"";position:absolute;top:0;left:50%;width:120px;height:7px;transform:translateX(-50%);background:
    radial-gradient(circle,#E58AAE 0 3px,transparent 3.6px) center/9px 7px no-repeat,
    linear-gradient(#E58AAE,#E58AAE) left center/48px 1px no-repeat,
    linear-gradient(#E58AAE,#E58AAE) right center/48px 1px no-repeat}
.rev-band .rev figcaption b{font-family:'Bodoni Moda',serif;font-weight:500;font-size:1.2rem;font-variation-settings:"opsz" 14;font-optical-sizing:none;color:#3A1F2B}
.rev-band .rev figcaption span{font-size:.72rem !important;letter-spacing:.16em;text-transform:uppercase;color:#8A5A70 !important}
.rev-band .rev-more{margin-top:clamp(2.2rem,4vw,3.2rem);text-align:center}
.rev-band .btn.btn-ghost{background:#fff}
@media (min-width:901px){
  .rev-band .rev-grid{padding-top:2rem}
  .rev-band .rev:nth-child(3n+2){transform:translateY(-18px)}
  .rev-band .rev:nth-child(3n+2):hover{transform:translateY(-24px) !important}
}
@media (max-width:700px){
  .rev-band .rev-grid{padding-top:2.4rem !important}
  .rev-band .rev{padding:3rem 1.4rem 1.6rem !important}
  .rev-band .rev-score b:first-child{font-size:3.4rem}
}
/* score on its own tidy lines; a quotation mark that actually shows */
.rev-band .rev-score{display:block;text-align:center}
.rev-band .rev-score b:first-child{display:block;margin-bottom:.2rem}
.rev-band .rev::before{font-family:Georgia,'Times New Roman',serif;font-size:3.4rem;font-weight:400;line-height:1;padding-top:1.25rem;font-variation-settings:normal}
.rev-band{border:0 !important}
