/* Phone layout (up to 700px). Loaded last on every page.
   Not a shrunk desktop: decoration goes, the booking action is always in
   reach, long card stacks become swipe rows, and sections tighten up. */

.sw-mbar{display:none}

@media (max-width:700px){

/* ── always-there booking bar ─────────────────────────────────────── */
.sw-mbar{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:70;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);border-top:1px solid #F0B7CD}
.sw-mbar a{display:flex;align-items:center;justify-content:center;height:50px;border-radius:2px;text-decoration:none;
  font:600 .8rem/1 'Jost',sans-serif;letter-spacing:.18em;text-transform:uppercase}
.sw-mbar .m-text{color:#D9548F !important;border:1px solid #E58AAE;background:#fff}
.sw-mbar .m-book{color:#fff !important;background:linear-gradient(180deg,#F3A9C4 0%,#E277A3 48%,#D45E90 52%,#E88DB2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65)}
body{padding-bottom:calc(72px + env(safe-area-inset-bottom)) !important}

/* ── header: menu, logo, nothing else ─────────────────────────────── */
.sw-nav{height:64px;padding:0 18px;grid-template-columns:1fr auto 1fr}
.sw-brand img{height:40px}
.sw-links.right{display:none !important}
.sw-toggle{font-size:.78rem;padding:14px 0}
.sw-drawer a{padding:1.15rem 20px;font-size:.95rem}

/* ── shared rhythm ────────────────────────────────────────────────── */
body.core-swan section,body.sw-page section{padding-block:3.2rem}
body.core-swan .wrap,body.sw-page .wrap,body.sw-page .wrap-mid{padding-inline:20px}
body.core-swan .section-head,body.sw-page .section-head{margin-bottom:1.8rem}
body.core-swan .section-head h2,body.core-swan .story h2{font-size:1.85rem;line-height:1.18}
body.core-swan .section-head h2::after,body.sw-page .section-head h1::after,body.sw-page .section-head h2::after,
body.sw-page .page-intro h1::after{margin-top:.9rem}
body.core-swan .kicker,body.sw-page .kicker{font-size:.72rem;letter-spacing:.22em}
/* decoration that only adds scroll */
body.core-swan .star,body.core-swan .brush,body.core-swan .diamond,body.core-swan .hero-bokeh,
body.core-swan .svc-bling{display:none !important}
body.core-swan #svc,body.core-swan .results,body.core-swan #rev,body.core-swan .qa{background:#FFF9FA}
body.sw-page{background:#FFF9FA}

/* ── home: hero ───────────────────────────────────────────────────── */
body.core-swan .hero-full{padding:0 !important}
body.core-swan .hero-full .hero-copy{padding:1.5rem 0 2rem}
body.core-swan .hero-copy h1 .h1-kw{font-size:.7rem;letter-spacing:.2em;margin-bottom:.6rem}
body.core-swan .hero-copy h1.foil{font-size:3.1rem;line-height:1}
body.core-swan .hero-copy .lede{font-size:1.02rem;line-height:1.6;margin:1rem 0 1.4rem}
body.core-swan .hero-copy .btn{display:block;text-align:center;padding:1.2rem 1rem}
body.core-swan .hero-loc{margin-top:1.1rem;text-align:center}

/* trust strip: one tidy 2x2, no icons */
body.core-swan .strip{padding:0 !important}
body.core-swan .strip-grid{grid-template-columns:1fr 1fr;gap:0;padding:0}
body.core-swan .strip-item{padding:1rem .4rem;gap:0;border-top:1px solid rgba(255,255,255,.35)}
body.core-swan .strip-item:nth-child(-n+2){border-top:0}
body.core-swan .strip-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.35)}
body.core-swan .strip-item svg,body.core-swan .strip-item::before{display:none !important}
body.core-swan .strip-item span{font-size:.68rem;letter-spacing:.16em;line-height:1.5}

/* services: compact rows, thumbnail left */
body.core-swan .svc-grid{grid-template-columns:1fr !important;gap:0}
body.core-swan .svc{display:grid !important;grid-template-columns:108px minmax(0,1fr);gap:16px;align-items:center;
  border-top:1px solid #F3CFDD !important;padding:16px 0;background:transparent}
body.core-swan .svc:first-child{border-top-color:#E58AAE !important}
body.core-swan .svc figure{aspect-ratio:1/1 !important;width:108px}
body.core-swan .svc figure img{object-position:42% 50%}
body.core-swan .svc-body{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:baseline;text-align:left;padding:0}
body.core-swan .svc h3{font-size:1.12rem;line-height:1.25;margin:0;grid-column:1}
body.core-swan .svc h3 br{display:none}
body.core-swan .svc .price{font-size:1.3rem;margin:0;grid-column:2;grid-row:1}
body.core-swan .svc p{grid-column:1/-1;font-size:.95rem;line-height:1.5;margin:.45rem 0 .5rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
body.core-swan .svc .more{grid-column:1/-1;justify-self:start;margin:0;font-size:.7rem}

/* about: short, photo first at a calmer ratio */
body.core-swan .story-grid{gap:1.6rem}
body.core-swan .story-media{aspect-ratio:4/3 !important;outline-offset:6px;margin:6px}
body.core-swan .story-media img{object-position:50% 30%}
body.core-swan .story p{font-size:1.02rem;line-height:1.65}
body.core-swan .story .btn{display:block;text-align:center}

/* swipe rows: before and after, reviews */
body.core-swan .ba-grid.ba-fade,body.core-swan .rev-grid,body.sw-page .rev-grid{display:flex !important;gap:14px;overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-inline:-20px;padding:0 20px 14px;scrollbar-width:none;
  -webkit-mask-image:none;mask-image:none}
body.core-swan .ba-grid.ba-fade::-webkit-scrollbar,body.core-swan .rev-grid::-webkit-scrollbar,body.sw-page .rev-grid::-webkit-scrollbar{display:none}
body.core-swan .ba-grid.ba-fade .ba{display:block !important;flex:0 0 78%;scroll-snap-align:center}
body.core-swan .rev-grid .rev,body.sw-page .rev-grid .rev{flex:0 0 82%;scroll-snap-align:center;padding:1.4rem 0 0}
body.core-swan .rev blockquote,body.sw-page .rev blockquote{font-size:1.08rem;line-height:1.5}
body.core-swan .ba-grid.ba-fade + .results-cta{margin-top:1.2rem}
body.core-swan .results-cta .btn,body.core-swan .qa .results-cta .btn{display:block;text-align:center}
.swipe-hint{display:block;text-align:center;font:500 .68rem/1 'Jost',sans-serif;letter-spacing:.2em;text-transform:uppercase;
  color:#B9829A;margin-top:.2rem}

/* Q&A */
body.core-swan .qa-grid{gap:0}
body.core-swan .qa-item{padding:1.2rem 0}
body.core-swan .qa-item h3{font-size:1.15rem;margin-bottom:.5rem}
body.core-swan .qa-item p{font-size:1rem;line-height:1.6}

/* closing band and footer */
body.core-swan .cta.cta-sign,.sw-close{padding:3rem 20px !important;margin-top:0}
body.core-swan .cta.cta-sign .sign,.sw-close h2{font-size:2.3rem !important;line-height:1.2}
body.core-swan .cta.cta-sign p,.sw-close p{font-size:1rem;margin:1rem auto 1.4rem}
body.core-swan .cta.cta-sign .btn,.sw-close a{display:none}     /* the bar below already offers it */
.sw-footer{padding-top:2.2rem;font-size:1rem}
.sw-foot-grid{grid-template-columns:1fr 1fr !important;gap:1.6rem 1rem}
.sw-foot-grid > div:first-child{grid-column:1/-1}
.sw-foot-grid img{height:48px;margin-bottom:.8rem}
.sw-foot-grid p{max-width:none}
.sw-foot-links a{padding:.5rem 0}
.sw-foot-base{margin-top:1.6rem;padding:1rem 0;flex-direction:column;gap:.3rem;font-size:.82rem}

/* ── subpages ─────────────────────────────────────────────────────── */
body.sw-page main > section:first-child{padding-top:2rem}
body.sw-page h1{font-size:2rem !important;line-height:1.15;white-space:normal !important}
body.sw-page .lede{font-size:1.02rem;line-height:1.6}
body.sw-page .section-head.center .lede br{display:none}
/* pricing: the list is the point, the portrait is not */
body.sw-page .intro-media{display:none}
body.sw-page .page-intro{padding-bottom:1rem}
body.sw-page .price-group{margin-top:1.6rem}
body.sw-page .price-row{padding:1rem 0;gap:12px}
body.sw-page .price-row .name{font-size:1.12rem;line-height:1.3}
body.sw-page .price-row .amt{font-size:1.3rem}
body.sw-page .price-row .desc{font-size:.97rem;line-height:1.5}
body.sw-page .notice{padding:1rem 1.1rem;font-size:.97rem;line-height:1.55}
body.sw-page .btn{display:block;text-align:center}
/* portfolio */
body.sw-page .folio-grid{grid-template-columns:1fr 1fr;gap:8px}
body.sw-page .folio-actions{display:grid;gap:10px}
body.sw-page .folio-actions .btn{margin:0}
/* faq */
body.sw-page .faq-list summary{font-size:1.08rem;padding:1.05rem 0;line-height:1.35}
body.sw-page .faq-list .a{font-size:1rem;line-height:1.6}
/* aftercare */
body.sw-page .step{padding:1.1rem 0;gap:14px}
body.sw-page .step h3{font-size:1.12rem}
/* contact: big tap targets */
body.sw-page .contact-grid{gap:2rem}
body.sw-page .c-item{padding:1rem 0}
body.sw-page .hours{font-size:1rem}

/* second pass */
body.core-swan .hero-copy .btn{display:none}                  /* the bar carries it */
body.core-swan .hero-loc{text-align:left;margin-top:.2rem}
body.core-swan .rev figcaption span,body.sw-page .rev figcaption span{letter-spacing:.1em;font-size:.72rem}

/* third pass ─ hero order: name, clip, then the sentence */
body.core-swan .hero-full{display:flex !important;flex-direction:column}
body.core-swan .hero-full > .wrap,body.core-swan .hero-full .hero-copy{display:contents}
body.core-swan .hero-full h1.foil{order:1;margin:0;padding:1.3rem 20px 1.1rem}
body.core-swan .hero-clip{order:2;position:relative;line-height:0;flex:none;width:100%;aspect-ratio:832/464;height:auto;overflow:hidden}
body.core-swan .hero-clip .hero-video{position:absolute !important;inset:0;width:100% !important;height:100% !important;aspect-ratio:auto;object-fit:cover;display:block}
body.core-swan .hero-clip .hero-rest{position:absolute !important;inset:0;width:100%;height:100%}
body.core-swan .hero-full .lede{order:3;margin:0;padding:1.3rem 20px 0}
body.core-swan .hero-full .hero-loc{order:4;margin:0;padding:1rem 20px 1.8rem;text-align:left}
body.core-swan .hero-full .btn,body.core-swan .hero-shade,body.core-swan .hero-script{display:none !important}

/* swipe rows that say so */
body.core-swan .ba-grid.ba-fade .ba,body.core-swan .rev-grid .rev,body.sw-page .rev-grid .rev{
  flex-basis:84%;scroll-snap-align:start;opacity:.38;transition:opacity .3s ease}
body.core-swan .ba-grid.ba-fade,body.core-swan .rev-grid,body.sw-page .rev-grid{scroll-padding-left:20px}
body.core-swan .ba-grid.ba-fade .ba.is-current,body.core-swan .rev-grid .rev.is-current,body.sw-page .rev-grid .rev.is-current{opacity:1}
body.core-swan .rev-grid .rev,body.sw-page .rev-grid .rev{background:#fff;border:1px solid #F3CFDD !important;border-top:1px solid #E58AAE !important;
  padding:1.3rem 1.2rem 1.2rem !important;box-shadow:0 8px 22px rgba(201,79,131,.07)}
.swipe-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:.4rem}
.swipe-dots{display:flex;gap:2px}
.swipe-dots button{width:22px;height:28px;padding:0;border:0;background:none;position:relative}
.swipe-dots button::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px;border-radius:50%;
  background:#F0B7CD;transition:all .25s ease}
.swipe-dots button.on::after{width:18px;margin-left:-9px;border-radius:4px;background:#D45E90}
.swipe-count{font:500 .72rem/1 'Jost',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#9C5F7A;white-space:pre}
.swipe-hint{display:none}

/* fourth pass ─ header: logo left, menu right */
.sw-nav{grid-template-columns:auto 1fr !important;gap:0}
.sw-brand{order:1;justify-self:start}
.sw-toggle{order:2;justify-self:end;display:flex;align-items:center;gap:.6rem}
.sw-toggle::after{content:"";width:22px;height:9px;border-top:1.5px solid #3A1F2B;border-bottom:1.5px solid #3A1F2B}
.sw-links{display:none !important}

/* hero, phone edition: a tall bright portrait, the name resting on a soft fade */
body.core-swan .hero-full{background:#FFF9FA !important;overflow:hidden}
body.core-swan .hero-clip{order:1;aspect-ratio:1/1.02;background:#FBE3EC}
body.core-swan .hero-clip .hero-video{object-position:50% 50%;filter:brightness(1.07) saturate(1.06)}
body.core-swan .hero-clip::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:
  radial-gradient(90% 40% at 50% 0,rgba(255,214,232,.75),transparent 70%),
  radial-gradient(60% 50% at 0 40%,rgba(255,226,238,.55),transparent 70%),
  radial-gradient(60% 50% at 100% 35%,rgba(255,226,238,.55),transparent 70%),
  linear-gradient(180deg,transparent 70%,rgba(255,249,250,.7) 88%,#FFF9FA 99%)}
body.core-swan .hero-full .hero-bokeh{display:none !important;position:absolute;left:0;right:0;top:0;aspect-ratio:4/5;z-index:3;pointer-events:none}
body.core-swan .hero-full .hero-bokeh i{--d:90px !important;opacity:calc(var(--o)*.9);
  background:radial-gradient(circle,rgba(255,255,255,.8) 0 60%,rgba(255,255,255,.95) 66%,transparent 72%)}
body.core-swan .hero-full > .star{display:block !important;z-index:4;--s:46px !important}
body.core-swan .hero-full > .star:nth-of-type(1){left:6% !important;top:6% !important}
body.core-swan .hero-full > .star:nth-of-type(2){left:86% !important;top:12% !important}
body.core-swan .hero-full > .star:nth-of-type(3){left:10% !important;top:34% !important}
body.core-swan .hero-full h1.foil{order:2;position:relative;z-index:5;margin:-2.6rem 0 0;padding:0 20px;text-align:center;
  font-size:4rem !important;line-height:.96;animation:none}
body.core-swan .hero-full h1.foil .h1-kw{font-size:.7rem;letter-spacing:.3em;margin-bottom:.7rem;color:#D9548F;-webkit-text-fill-color:#D9548F}
body.core-swan .hero-full h1.foil .l2{font-size:.56em;margin-top:.1em}
body.core-swan .hero-full .lede{order:3;text-align:center;padding:1.3rem 28px 0;font-size:1.05rem;line-height:1.65;text-wrap:balance}
body.core-swan .hero-full .hero-loc{order:4;text-align:center;padding:1.1rem 20px 2rem}
body.core-swan .hero-full .hero-loc::before{content:"";display:block;width:120px;height:7px;margin:0 auto 1.1rem;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}
@media (prefers-reduced-motion:no-preference){
  body.core-swan .hero-clip .hero-video{animation:m-breathe 9s ease-in-out infinite alternate}
  body.core-swan .hero-full h1.foil{animation:sw-rise 1.1s .25s both}
}
@keyframes m-breathe{from{transform:scale(1)}to{transform:scale(1.05)}}

/* fifth pass */
/* hero: step back from her face */
body.core-swan .hero-clip{aspect-ratio:3/2 !important}
body.core-swan .hero-clip .hero-video{object-position:50% 45%;animation:none !important}
body.core-swan .hero-clip::before{background:
  radial-gradient(90% 40% at 50% 0,rgba(255,214,232,.6),transparent 70%),
  linear-gradient(180deg,transparent 78%,rgba(255,249,250,.75) 92%,#FFF9FA 100%) !important}
body.core-swan .hero-full h1.foil{margin-top:-.6rem !important;font-size:3.6rem !important}
body.core-swan .hero-full > .star:nth-of-type(3){top:22% !important}

/* swipe rows move sideways only, one card per flick */
body.core-swan .ba-grid.ba-fade,body.core-swan .rev-grid,body.sw-page .rev-grid{overflow-y:hidden !important;
  overscroll-behavior-x:contain;touch-action:pan-x pan-y;padding-bottom:26px !important;align-items:stretch}
body.core-swan .ba-grid.ba-fade .ba,body.core-swan .rev-grid .rev,body.sw-page .rev-grid .rev{scroll-snap-stop:always;
  transform:none !important;transition:opacity .3s ease !important}
.rev-band .rev-grid{padding-top:2.6rem !important}

/* aftercare portrait: a small round medallion instead of a cut-off arch */
body.sw-page .ac-intro{text-align:center}
body.sw-page .ac-intro .section-head h1::after{margin-inline:auto}
body.sw-page .ac-media{order:-1;width:168px !important;max-width:168px !important;aspect-ratio:1/1 !important;border-radius:50% !important;
  margin:1.4rem auto .4rem !important;box-shadow:0 0 0 6px #fff,0 0 0 7px #F0B7CD,0 18px 36px rgba(201,79,131,.22) !important}
body.sw-page .ac-media::after{display:none}
body.sw-page .ac-media::before{background:radial-gradient(80% 50% at 50% 0,rgba(255,226,238,.5),transparent 70%) !important}
body.sw-page .ac-media img{object-position:50% 28% !important}

/* sixth pass ─ hero skin was reading red under the pink veil: less saturation,
   a touch more white light, and the veil itself turns from pink to white */
body.core-swan .hero-clip .hero-video{filter:brightness(1.05) saturate(.91) !important}
body.core-swan .hero-clip::before{background:
  radial-gradient(90% 38% at 50% 0,rgba(255,255,255,.45),transparent 70%),
  linear-gradient(180deg,transparent 78%,rgba(255,250,251,.75) 92%,#FFFAFB 100%) !important}
body.core-swan .hero-clip::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:rgba(255,255,255,.07)}
body.core-swan .hero-clip{background:#fff !important}

/* seventh pass */
body.core-swan .svc p{font-size:1rem !important}

/* neighbours stay fully legible; the dots and counter carry the position */
body.core-swan .ba-grid.ba-fade .ba,body.core-swan .rev-grid .rev,body.sw-page .rev-grid .rev{opacity:1 !important}
}
@media (min-width:701px){.swipe-nav{display:none}}
