/* Pin’Ture: photo-led editorial direction, preserving the original violet and lilac. */
:root{--purple:#6813a8;--purple-dark:#470870;--fuchsia:#bb37d7;--lavender:#e6c5ed;--ink:#19131d;--muted:#625c65;--line:#ded5e2}
body{background:#fbf9fb;color:var(--ink)}.section,.header-inner{width:min(1280px,calc(100% - 96px))}.site-header{z-index:60}.header-inner{height:105px}.brand{width:178px}.desktop-nav{background:rgba(255,255,255,.88);border:1px solid rgba(73,32,88,.09);box-shadow:0 14px 32px rgba(68,30,72,.06);gap:30px;padding:17px 28px;border-radius:12px}.desktop-nav a{font-size:13px}.header-cta{border-radius:11px;box-shadow:none}.button{border-radius:10px;min-height:59px}.button-outline{background:transparent;border-color:rgba(104,19,168,.28)}.button-outline:hover{background:#fff}.reveal{transition-duration:.5s}

/* Hero: the finished work is immediately visible, with the same headline. */
.v2-hero{padding:145px 0 35px;min-height:815px;position:relative;background:#eee0f2;overflow:hidden;background-image:radial-gradient(ellipse at 0 0,rgba(255,255,255,.74),transparent 55%),linear-gradient(110deg,#f4edf6 0%,#ead1ef 80%,#e4bfeb 100%)}
.v2-hero:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(104,19,168,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(104,19,168,.04) 1px,transparent 1px);background-size:86px 86px;mask-image:linear-gradient(#000,transparent 92%);pointer-events:none}
.v2-hero-shell{position:relative;width:min(1280px,calc(100% - 96px));margin:auto;display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:center;gap:5%;min-height:620px}.v2-hero-copy{text-align:left;z-index:2;max-width:660px}.v2-hero-copy .review-pill{background:rgba(255,255,255,.88);padding-right:18px;box-shadow:none;border:1px solid rgba(104,19,168,.12)}.v2-hero-copy h1{font-size:clamp(54px,5.4vw,86px);line-height:1.035;letter-spacing:-.068em;margin:25px 0 29px;max-width:690px;font-weight:700}.v2-hero-copy h1::first-line{color:var(--purple)}.v2-hero-copy p{font-size:18px;max-width:440px;line-height:1.66;margin:0 0 35px}.v2-hero-copy .hero-actions{justify-content:flex-start;gap:12px}.v2-hero-copy .hero-actions .button{font-size:14px;padding:0 19px}.v2-hero-art{position:relative;height:630px;align-self:end}.v2-hero-main{position:absolute;top:10px;right:0;width:82%;height:91%;overflow:hidden;border-radius:130px 11px 11px 11px;box-shadow:0 37px 65px rgba(62,15,85,.14)}.v2-hero-main img{object-position:center}.v2-hero-float{position:absolute;left:-7%;bottom:-2%;width:39%;height:43%;border:8px solid #f0dcef;overflow:hidden;border-radius:12px 80px 12px 12px;box-shadow:0 24px 45px rgba(48,11,69,.18)}.v2-hero-float img{object-position:center 20%}.v2-art-stamp{position:absolute;top:5%;left:1%;width:72px;height:72px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(104,19,168,.35);color:var(--purple);font-weight:800;font-size:48px;transform:rotate(-14deg);background:rgba(255,255,255,.4)}.v2-hero-bottom{position:relative;z-index:2;width:min(1280px,calc(100% - 96px));margin:45px auto 0;padding-top:23px;border-top:1px solid rgba(104,19,168,.22);display:flex;align-items:center;justify-content:space-between;gap:20px}.v2-hero-bottom span{color:#694477;font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:800}.v2-hero-bottom a{font-weight:800;font-size:14px;color:var(--purple)}.v2-hero-bottom a span{font-size:21px;letter-spacing:0}

/* The actual Alex Plomberie PhotoRing mechanics, adapted to the Pin’Ture photos. */
.ring-section{position:relative;background:#28152f;color:#fff;overflow:hidden;padding:112px 0 88px;background-image:radial-gradient(ellipse at 50% -20%,rgba(161,61,194,.23),transparent 58%)}.ring-intro{width:min(1280px,calc(100% - 96px));margin:0 auto 20px;display:flex;align-items:end;justify-content:space-between;gap:35px}.ring-intro h2{font-size:clamp(42px,4.9vw,68px);max-width:780px;line-height:.99;margin:0;color:white}.ring-intro a{white-space:nowrap;color:#ead1ef;font-size:14px;font-weight:800;border-bottom:1px solid rgba(234,209,239,.6);padding-bottom:7px}.ring-intro a span{font-size:20px}.photo-ring{--ring-w:260px;--ring-h:348px;--ring-r:360px;width:min(1280px,100%);margin:auto;display:flex;flex-direction:column;align-items:center;gap:22px;user-select:none}.ring-stage{position:relative;width:100%;height:calc(var(--ring-h) + 105px);perspective:1450px;perspective-origin:50% 44%;cursor:grab;touch-action:pan-y}.ring-stage:active{cursor:grabbing}.ring-track{position:absolute;left:50%;top:46%;width:var(--ring-w);height:var(--ring-h);margin-left:calc(var(--ring-w)/-2);margin-top:calc(var(--ring-h)/-2);transform-style:preserve-3d;will-change:transform}.ring-card{position:absolute;inset:0;margin:0;overflow:hidden;border-radius:16px;background:#221826;backface-visibility:hidden;box-shadow:0 33px 58px -30px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.12);will-change:opacity,filter}.ring-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.ring-card:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 65%,rgba(24,9,31,.48))}.ring-floor{position:absolute;left:50%;bottom:6%;width:calc(var(--ring-r)*2.35);height:90px;transform:translateX(-50%);background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 68%);filter:blur(6px);pointer-events:none}.ring-controls{display:flex;align-items:center;gap:20px}.ring-controls button{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.33);background:rgba(255,255,255,.04);color:#fff;font-size:22px;transition:background .25s,transform .25s}.ring-controls button:hover{background:var(--purple);transform:translateY(-3px)}.ring-caption{text-align:center;min-width:330px}.ring-caption strong{display:block;font-size:18px;line-height:1.25;font-weight:700}.ring-counter{display:block;margin-top:6px;font-size:11px;letter-spacing:.17em;color:#d7a5e7}.ring-dots{display:flex;gap:7px}.ring-dots button{width:7px;height:7px;padding:0;border:0;border-radius:6px;background:rgba(255,255,255,.28);transition:width .25s,background .25s}.ring-dots button.is-active{width:26px;background:#d68cea}

/* Editorial service rhythm and fewer generic cards. */
.home-services{padding:130px 0 125px}.home-services .section-heading{border-top:1px solid var(--line);padding-top:23px}.home-services .section-heading h2{font-size:clamp(43px,4.6vw,64px);max-width:760px}.home-services .service-grid,.services-page-grid .service-grid{grid-template-columns:1.22fr .94fr .94fr;gap:18px}.home-services .service-photo,.services-page-grid .service-photo{height:460px;border-radius:12px}.home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:510px}.service-index{font-size:11px;border-radius:4px;background:rgba(26,13,30,.65)}.service-card-bottom{padding:16px 1px}.service-card h3{font-size:29px}.circle-arrow{border-color:#cdbed5;color:var(--purple)}.appointment{padding:55px 0 130px;gap:8%}.appointment-copy{max-width:540px}.appointment h2{font-size:clamp(45px,4.8vw,66px)}.appointment-photo{height:530px;border-radius:12px;position:relative}.appointment-photo img{object-position:center}.appointment-photo:after{content:'';position:absolute;inset:0;border:1px solid rgba(35,20,43,.08);pointer-events:none}.feature-section{background:#e8c6ed;padding:130px 0}.feature-title h2{font-size:clamp(44px,5vw,72px)}.feature-content{background:transparent;padding:0;border:0;border-radius:0;box-shadow:none}.feature-content h3{font-size:32px}.feature-content p{color:#3f3045}.feature-badges span{border-radius:7px;background:rgba(255,255,255,.56);padding:17px;color:#382242}.process-section{padding-top:145px;padding-bottom:150px}.process-section .section-heading{align-items:start;gap:10%}.process-section .section-heading h2{font-size:clamp(46px,5vw,69px)}.process-photo{height:590px;border-radius:12px}.process-steps>div{padding:27px 0}.process-steps h3{font-size:30px}.zone-section{padding:120px 0;background:#f2eaf4}.zone-grid{gap:18px}.zone-copy{border-radius:12px;min-height:440px}.zone-image{border-radius:12px;height:440px}.testimonials{padding-top:145px;padding-bottom:140px}.review-card{border-radius:10px;box-shadow:none}.faq-list details{border-radius:9px;background:#fff;box-shadow:none}.quote-section{background:#6813a8}.footer{background:#1f1026}

/* Secondary pages share the new spacing and restrained visual language. */
.simple-hero{background:#ebd9ef;min-height:400px;background-image:radial-gradient(ellipse at 75% 0,rgba(255,255,255,.7),transparent 56%)}.work-hero{background:#fbf9fb}.work-hero h1{font-size:clamp(38px,4.5vw,65px);max-width:1200px}.work-hero+.ring-section{padding-top:95px}.work-gallery{padding-top:105px}.photo-tile{border-radius:10px}.page-hero{height:590px}.page-hero-image:after{background:linear-gradient(180deg,rgba(245,239,246,.15),rgba(21,10,26,.72))}.story{padding:145px 0}.stats-grid div{border-radius:12px}.values-image{border-radius:12px}.services-page-grid{padding:115px 0 140px}.detail-image{border-radius:12px}.contact-page{background:#ede0f1;background-image:radial-gradient(ellipse at 90% 0,rgba(255,255,255,.7),transparent 60%)}.contact-form{border-radius:14px;box-shadow:0 25px 65px rgba(54,18,66,.11)}

@media(max-width:1050px){.v2-hero-shell{gap:2%}.v2-hero-copy h1{font-size:clamp(54px,5.9vw,72px)}.v2-hero-art{height:555px}.desktop-nav{gap:17px;padding:15px 17px}.header-cta{font-size:12px;padding:0 14px}}
@media(max-width:800px){.section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{width:min(100% - 38px,620px)}.header-inner{height:82px}.brand{width:145px}.v2-hero{padding:115px 0 26px;min-height:0}.v2-hero-shell{display:flex;flex-direction:column;gap:45px}.v2-hero-copy{text-align:left;max-width:100%}.v2-hero-copy h1{font-size:clamp(45px,8.6vw,68px);max-width:650px}.v2-hero-copy p{font-size:16px;max-width:520px}.v2-hero-copy .hero-actions{justify-content:flex-start;flex-direction:row;align-items:center}.v2-hero-art{width:100%;height:480px;align-self:stretch}.v2-hero-main{right:0;width:84%;height:95%;border-top-left-radius:85px}.v2-hero-float{left:0;bottom:-1%;width:40%;height:45%;border-width:5px}.v2-hero-bottom{margin-top:50px}.ring-section{padding:88px 0 75px}.ring-intro{display:block;text-align:center;margin-bottom:20px}.ring-intro h2{margin:0 auto 22px}.ring-stage{perspective:1100px;height:calc(var(--ring-h) + 68px)}.ring-caption{min-width:190px}.home-services .service-grid,.services-page-grid .service-grid{grid-template-columns:1fr;gap:22px}.home-services .service-photo,.services-page-grid .service-photo,.home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:430px}.appointment-photo{height:380px}.feature-section{padding:90px 0}.process-section{padding:95px 0}.zone-section{padding:85px 0}.zone-copy,.zone-image{min-height:360px;height:360px}.page-hero{height:470px}.story{padding:90px 0}.services-page-grid{padding:80px 0}.work-hero+.ring-section{padding-top:75px}.work-gallery{padding-top:80px}}
@media(max-width:520px){.v2-hero{padding-top:109px}.v2-hero-copy h1{font-size:clamp(43px,11.2vw,57px);line-height:1.04;margin:25px 0 23px}.v2-hero-copy .review-pill{font-size:11px}.v2-hero-copy .hero-actions{flex-direction:column;align-items:stretch}.v2-hero-copy .hero-actions .button{width:100%;justify-content:space-between}.v2-hero-art{height:390px}.v2-hero-main{height:94%;width:88%;border-top-left-radius:70px}.v2-hero-float{width:43%;height:44%;bottom:-2%}.v2-art-stamp{width:55px;height:55px;font-size:36px}.v2-hero-bottom{margin-top:45px;align-items:flex-start;flex-direction:column;gap:14px}.ring-section{padding:72px 0 64px}.ring-intro h2{font-size:39px}.ring-stage{height:calc(var(--ring-h) + 47px);perspective:750px}.ring-card{border-radius:11px}.ring-controls{gap:11px}.ring-controls button{width:44px;height:44px;font-size:18px}.ring-caption{min-width:180px;max-width:200px}.ring-caption strong{font-size:14px}.ring-dots{gap:5px}.ring-dots button{width:5px;height:5px}.ring-dots button.is-active{width:19px}.home-services{padding:80px 0}.home-services .service-photo,.services-page-grid .service-photo,.home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:350px}.appointment{padding-bottom:90px}.appointment-photo{height:290px}.zone-copy,.zone-image{min-height:320px;height:320px}.review-grid{grid-template-columns:1fr}.footer{padding-left:19px;padding-right:19px}}
@media(prefers-reduced-motion:reduce){.ring-card{transition:none}.v2-hero .reveal{opacity:1;transform:none}}
.v2-art-stamp{display:none}
@media(max-width:520px){.v2-hero-shell{gap:28px}.v2-hero-copy h1{margin:22px 0 18px}.v2-hero-copy p{margin-bottom:24px}.v2-hero-copy .hero-actions .button{min-height:54px}}

/* Final polish: continuous violet transitions and quieter photography treatment. */
main:has(.v2-hero){overflow:hidden;background:#fbf9fb}
.v2-hero{background-image:radial-gradient(ellipse at -7% -10%,rgba(255,255,255,.88),transparent 52%),linear-gradient(118deg,#f7f1f8 0%,#f0def3 52%,#dfb9e8 100%)}
.v2-hero:before{opacity:.48}
.v2-hero-copy h1{text-wrap:balance}
.v2-hero-main{border:1px solid rgba(255,255,255,.55);box-shadow:0 42px 90px rgba(58,21,72,.2)}
.v2-hero-main:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(29,8,38,.03),transparent 55%,rgba(29,8,38,.09))}
.v2-hero-main img,.v2-hero-float img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.v2-hero-art:hover .v2-hero-main img{transform:scale(1.035)}
.v2-hero-art:hover .v2-hero-float img{transform:scale(1.045)}
.v2-hero-float{border-color:#f0e0f3;box-shadow:0 26px 60px rgba(44,15,57,.24)}
.v2-hero-bottom{border-color:rgba(92,32,117,.19)}
.ring-section{background-color:#28152f;background-image:radial-gradient(ellipse at 50% 38%,rgba(134,48,169,.16),transparent 54%),linear-gradient(180deg,#dfb9e8 0%,#623071 105px,#28152f 335px,#28152f 100%)}
.ring-intro h2{text-wrap:balance}
.ring-card{border:1px solid rgba(255,255,255,.08)}
.home-services{position:relative;isolation:isolate;padding-top:190px}
.home-services:before{content:'';position:absolute;z-index:-1;left:50%;top:-1px;width:100vw;height:335px;transform:translateX(-50%);background:linear-gradient(180deg,#28152f 0%,#66516d 15%,#e9dceb 54%,#fbf9fb 100%);pointer-events:none}
.home-services .section-heading{border-color:rgba(104,19,168,.15)}
.home-services .service-photo{box-shadow:0 18px 45px rgba(58,30,70,.08)}
.appointment{position:relative}
.appointment-photo{box-shadow:0 30px 65px rgba(65,32,70,.12)}
.feature-section{background:linear-gradient(158deg,#f8f3f9 0%,#eddaef 28%,#e2bde9 74%,#dfb8e8 100%)}
.feature-content h3{border-bottom:1px solid rgba(85,38,101,.2);padding-bottom:19px;margin-bottom:30px}
.feature-badges span{border:1px solid rgba(111,53,129,.08)}
.process-section{position:relative;isolation:isolate;padding-top:190px}
.process-section:before{content:'';position:absolute;z-index:-1;left:50%;top:-1px;width:100vw;height:330px;transform:translateX(-50%);background:linear-gradient(180deg,#dfb8e8 0%,#f3e8f5 47%,#fbf9fb 100%);pointer-events:none}
.process-photo{box-shadow:0 28px 65px rgba(51,23,58,.1)}
.zone-section{background:linear-gradient(160deg,#f9f5fa 0%,#e9d9ed 48%,#f8f2f9 100%)}
.zone-copy{box-shadow:0 18px 46px rgba(60,28,74,.06)}
.testimonials{background:linear-gradient(180deg,#f8f2f9 0%,#fbf9fb 34%,#fbf9fb 100%)}
.faq-section{padding-top:25px}
.quote-section{background:linear-gradient(156deg,#fbf9fb 0%,#6b3186 22%,#611392 67%,#4a116b 100%);padding-top:165px}
.footer{background:linear-gradient(180deg,#32143d,#1f1026 38%)}
.work-hero{background:linear-gradient(180deg,#fbf9fb 0%,#ead8ef 100%)}
.work-hero+.ring-section{background-image:radial-gradient(ellipse at 50% 38%,rgba(134,48,169,.16),transparent 54%),linear-gradient(180deg,#ead8ef 0%,#623071 105px,#28152f 335px,#28152f 100%)}
@media(max-width:800px){.home-services{padding-top:145px}.home-services:before{height:260px}.process-section{padding-top:135px}.process-section:before{height:240px}.quote-section{padding-top:130px}}
@media(max-width:520px){.v2-hero-main{box-shadow:0 24px 58px rgba(58,21,72,.16)}.ring-section{background-image:radial-gradient(ellipse at 50% 38%,rgba(134,48,169,.16),transparent 54%),linear-gradient(180deg,#dfb9e8 0%,#623071 78px,#28152f 265px,#28152f 100%)}.ring-intro{position:relative;z-index:1}.home-services{padding-top:130px}.home-services:before{height:235px}.process-section{padding-top:115px}.process-section:before{height:205px}.quote-section{padding-top:115px}}


/* ===== Premium refinement — 2026-09-29 ===== */
:root{
  --purple:#6813a8;
  --purple-dark:#470870;
  --purple-soft:#efe3f3;
  --surface:#fcfafc;
  --ink:#1b151d;
  --muted:#665f69;
  --line:rgba(70,42,80,.13);
  --shadow-soft:0 24px 70px rgba(54,25,63,.10);
}
body{background:var(--surface);color:var(--ink)}
h1,h2,h3{letter-spacing:-.045em}
p{color:var(--muted)}
.icon{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-wrap{display:inline-grid!important;place-items:center;width:18px;height:18px;flex:0 0 18px;font-size:0!important}
.icon-star{fill:#efb32e;stroke:#efb32e;stroke-width:1.1}
.button .icon-wrap,.text-link .icon-wrap{margin-left:2px}
.button{border-radius:12px;letter-spacing:-.01em;box-shadow:none}
.button-purple{box-shadow:0 12px 26px rgba(104,19,168,.18)}
.button-purple:hover{box-shadow:0 18px 34px rgba(104,19,168,.22)}
.text-link{display:inline-flex;align-items:center;gap:9px;letter-spacing:.04em}
.text-link .icon-wrap{width:17px;height:17px}

/* Header */
.header-inner{height:102px}
.brand{width:172px}
.desktop-nav{
  gap:3px;
  padding:7px;
  border-radius:999px;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(86,45,101,.10);
  box-shadow:0 10px 32px rgba(57,27,65,.055);
  backdrop-filter:blur(18px) saturate(130%);
}
.desktop-nav a{
  padding:10px 13px;
  border-radius:999px;
  font-size:13px;
  font-weight:700;
  transition:background .22s,color .22s;
}
.desktop-nav a:hover{background:#f4edf6;color:var(--purple)}
.header-cta{min-height:50px;border-radius:999px;padding:0 19px}
.header-cta .icon-wrap{width:16px;height:16px}

/* Hero */
.v2-hero{
  padding:132px 0 46px;
  min-height:790px;
  background:
    radial-gradient(circle at 9% 4%,rgba(255,255,255,.95),transparent 35%),
    radial-gradient(circle at 92% 22%,rgba(201,142,221,.22),transparent 34%),
    linear-gradient(118deg,#f9f5fa 0%,#f0e2f3 54%,#e4c5eb 100%);
}
.v2-hero:before{
  opacity:.28;
  background-size:96px 96px;
  mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.65) 48%,transparent 94%);
}
.v2-hero-shell{min-height:610px;gap:6%}
.v2-hero-copy{max-width:640px}
.v2-hero-copy h1{
  font-size:clamp(54px,5.15vw,82px);
  line-height:1.01;
  letter-spacing:-.058em;
  margin:27px 0 26px;
  max-width:660px;
}
.v2-hero-copy h1::first-line{color:var(--purple)}
.v2-hero-copy p{font-size:17px;line-height:1.7;max-width:465px;margin-bottom:31px}
.review-pill{
  min-height:46px;
  padding:6px 14px 6px 7px;
  gap:10px;
  background:rgba(255,255,255,.77);
  border:1px solid rgba(86,37,102,.10);
  box-shadow:0 11px 30px rgba(57,24,69,.07);
  backdrop-filter:blur(14px);
}
.avatar-stack{display:flex;align-items:center;padding-left:8px}
.avatar-stack img{
  width:31px;
  height:31px;
  border-radius:50%;
  object-fit:cover;
  margin-left:-8px;
  border:2px solid #fff;
  box-shadow:0 2px 7px rgba(25,10,30,.12);
}
.avatar-stack img:first-child{margin-left:0}
.review-stars{display:flex;align-items:center;gap:1px;color:#efb32e}
.review-stars .icon{width:13px;height:13px}
.review-arrow{display:grid;place-items:center;width:17px;height:17px;color:var(--purple);margin-left:1px}
.review-arrow .icon{width:17px;height:17px}
.v2-hero-art{height:610px}
.v2-hero-main{
  top:17px;
  right:0;
  width:82%;
  height:89%;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.68);
  box-shadow:0 34px 80px rgba(56,24,66,.17);
}
.v2-hero-main img{object-position:center}
.v2-hero-float{
  left:-4%;
  bottom:1%;
  width:38%;
  height:39%;
  border:7px solid rgba(247,239,249,.95);
  border-radius:18px;
  box-shadow:0 23px 55px rgba(47,19,57,.19);
}
.v2-hero-bottom{margin-top:32px;padding-top:20px}

/* Gallery ring */
.ring-section{
  padding:105px 0 90px;
  background:
    radial-gradient(ellipse at 50% 16%,rgba(163,74,194,.15),transparent 38%),
    linear-gradient(180deg,#e4c5eb 0,#5b2b69 92px,#28152f 300px,#28152f 100%);
}
.ring-intro{margin-bottom:31px}
.ring-intro h2{letter-spacing:-.05em}
.ring-intro a{display:inline-flex;align-items:center;gap:9px;border-bottom:0;padding-bottom:0}
.ring-intro a:after{content:'';display:block;width:42px;height:1px;background:rgba(234,209,239,.55);transition:width .25s}
.ring-intro a:hover:after{width:58px}
.ring-card{border-radius:14px;box-shadow:0 28px 52px -27px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,255,255,.10)}
.ring-controls button{
  display:grid;
  place-items:center;
  border-color:rgba(255,255,255,.24);
  backdrop-filter:blur(8px);
}
.ring-controls button .icon{width:20px;height:20px}
.ring-controls button:hover{transform:translateY(-2px);background:rgba(255,255,255,.12)}
.ring-caption strong{font-weight:650}

/* Services and content rhythm */
.home-services{padding-top:175px;padding-bottom:120px}
.home-services:before{
  height:285px;
  background:linear-gradient(180deg,#28152f 0%,#75647b 12%,#eadfeb 49%,#fcfafc 100%);
}
.home-services .section-heading{padding-top:26px}
.section-heading{margin-bottom:50px}
.eyebrow{letter-spacing:.20em;font-size:11px}
.home-services .service-grid,.services-page-grid .service-grid{gap:20px}
.home-services .service-photo,.services-page-grid .service-photo{
  border-radius:16px;
  box-shadow:0 17px 45px rgba(53,29,61,.07);
}
.service-card-bottom{padding:18px 2px 12px;border-bottom:1px solid rgba(75,47,83,.10)}
.circle-arrow{
  width:39px;height:39px;
  border-color:rgba(86,55,94,.18);
  background:rgba(255,255,255,.58);
}
.circle-arrow .icon{width:18px;height:18px}
.service-card:hover .circle-arrow{transform:none;background:var(--purple);color:#fff}
.service-index{border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px)}

/* Appointment */
.appointment{padding:62px 0 135px;gap:8.5%}
.appointment-copy p:first-of-type{font-weight:700;color:#382d3b}
.appointment-photo{height:520px;border-radius:18px;box-shadow:var(--shadow-soft)}
.appointment-photo:after{border-color:rgba(51,28,58,.07);border-radius:18px}

/* Why us */
.feature-section{
  padding:125px 0 130px;
  background:
    radial-gradient(circle at 16% 20%,rgba(255,255,255,.82),transparent 27%),
    linear-gradient(145deg,#f7f1f8 0%,#ecd9ef 47%,#ddb6e5 100%);
}
.feature-inner{gap:11%}
.feature-title h2{max-width:610px}
.feature-content{padding-top:10px}
.feature-content h3{font-size:31px;padding-bottom:20px}
.feature-content p{color:#4b404e}
.feature-badges{gap:9px}
.feature-badges span{
  min-height:55px;
  display:flex;
  align-items:center;
  border-radius:10px;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(85,45,96,.08);
  padding:15px 17px;
}

/* Process */
.process-section{padding-top:175px;padding-bottom:140px}
.process-section:before{
  height:290px;
  background:linear-gradient(180deg,#ddb6e5 0%,#efe1f2 47%,#fcfafc 100%);
}
.process-photo{height:570px;border-radius:18px;box-shadow:var(--shadow-soft)}
.process-steps>div{padding:29px 0}
.process-steps span{letter-spacing:.12em;font-size:11px}
.process-steps h3{font-size:29px;margin-top:11px}

/* Zone */
.zone-section{padding:115px 0;background:linear-gradient(155deg,#fbf8fb 0%,#eee3f1 54%,#f7f1f8 100%)}
.zone-grid{gap:20px}
.zone-copy,.zone-image{height:430px;border-radius:16px}
.zone-copy{padding:43px;box-shadow:0 18px 50px rgba(57,29,65,.055);border:1px solid rgba(71,42,80,.07)}
.zone-copy h2{font-size:42px;letter-spacing:-.045em}
.zone-image{box-shadow:0 18px 48px rgba(57,29,65,.07)}

/* Reviews */
.testimonials{padding:135px 0 125px;background:linear-gradient(180deg,#f7f1f8 0%,#fcfafc 33%)}
.review-grid{gap:14px;align-items:stretch}
.review-card{
  min-height:215px;
  padding:20px;
  border-radius:15px;
  border:1px solid rgba(71,42,80,.10);
  background:#fff;
  box-shadow:0 15px 38px rgba(47,27,52,.045);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.review-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px rgba(47,27,52,.075);border-color:rgba(104,19,168,.18)}
.review-card img{height:auto;max-height:190px;object-fit:contain}

/* FAQ */
.faq-section{padding-top:42px;padding-bottom:135px}
.faq-list details{
  margin-bottom:10px;
  border-radius:13px;
  background:#fff;
  border:1px solid rgba(72,43,81,.11);
  box-shadow:none;
}
.faq-list summary{padding:23px 25px;font-size:16px}
.faq-toggle{
  position:relative;
  width:32px!important;
  height:32px!important;
  flex:0 0 32px;
  border:1px solid rgba(78,45,88,.16);
  border-radius:50%;
  transform:none!important;
}
.faq-toggle:before,.faq-toggle:after{
  content:'';
  position:absolute;
  left:50%;top:50%;
  width:12px;height:1.5px;
  background:var(--purple);
  transform:translate(-50%,-50%);
  transition:opacity .2s,transform .2s;
}
.faq-toggle:after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-list details[open] .faq-toggle:after{opacity:0}
.faq-list details[open] .faq-toggle{background:#f5edf7}
.faq-list details p{padding:0 25px 25px}

/* CTA and footer */
.quote-section{
  padding:145px 36px 120px;
  background:
    radial-gradient(circle at 50% 0,rgba(210,147,232,.22),transparent 36%),
    linear-gradient(145deg,#6d268a 0%,#5a0f83 58%,#3f0c5d 100%);
}
.quote-mark{font-size:88px;opacity:.5}
.quote-section h2{letter-spacing:-.05em}
.footer{padding-top:78px;background:linear-gradient(180deg,#2d1337,#1d0f23 42%)}
.footer-top{padding-bottom:72px}
.footer h5{text-transform:uppercase;letter-spacing:.12em;font-size:11px}
.footer-to-top{
  width:42px;height:42px;
  display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
}
.footer-to-top .icon{width:18px;height:18px}
.footer-to-top:hover{background:rgba(255,255,255,.08);color:#fff}

/* Lightbox */
.lightbox button{display:grid;place-items:center;font-size:0;border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(8px)}
.lightbox button .icon{width:21px;height:21px}

/* Secondary surfaces */
.simple-hero,.contact-page{background-image:radial-gradient(circle at 80% 0,rgba(255,255,255,.82),transparent 45%),linear-gradient(135deg,#f7f1f8,#e8d2ed)}
.contact-form{border:1px solid rgba(82,42,94,.08)}
.photo-plus{font-size:0}
.photo-plus .icon{width:18px;height:18px}

/* Mobile */
@media(max-width:1050px){
  .desktop-nav a{padding:9px 9px}
  .v2-hero-shell{gap:3%}
  .v2-hero-art{height:555px}
}
@media(max-width:800px){
  .header-inner{height:82px}
  .menu-toggle{border-radius:50%;box-shadow:0 8px 24px rgba(55,25,62,.07)}
  .mobile-nav{top:74px;border-radius:16px;box-shadow:0 24px 52px rgba(45,17,55,.15)}
  .v2-hero{padding-top:108px}
  .v2-hero-shell{gap:38px}
  .v2-hero-copy h1{font-size:clamp(46px,8.8vw,66px);line-height:1.02}
  .v2-hero-art{height:470px}
  .v2-hero-main{width:86%;height:94%;border-radius:20px}
  .v2-hero-float{width:40%;height:41%;left:0;border-radius:14px;border-width:5px}
  .ring-section{padding-top:82px}
  .home-services{padding-top:138px}
  .appointment{gap:38px}
  .appointment-photo{height:390px}
  .feature-section{padding:90px 0}
  .process-section{padding-top:125px}
  .zone-copy,.zone-image{height:auto;min-height:345px}
  .review-grid{grid-template-columns:1fr 1fr}
  .review-card{min-height:190px}
  .quote-section{padding-top:115px}
}
@media(max-width:520px){
  .review-pill{gap:7px;padding-right:11px;font-size:11px}
  .avatar-stack img{width:27px;height:27px;margin-left:-7px}
  .review-stars .icon{width:11px;height:11px}
  .v2-hero-copy h1{font-size:clamp(42px,11vw,55px);margin-top:22px}
  .v2-hero-copy p{line-height:1.62}
  .v2-hero-art{height:370px}
  .v2-hero-main{width:90%;height:92%;border-radius:16px}
  .v2-hero-float{width:42%;height:40%;border-radius:12px}
  .ring-intro h2{font-size:38px}
  .ring-controls button{width:43px;height:43px}
  .home-services{padding-top:120px}
  .home-services:before{height:220px}
  .appointment-photo{height:285px;border-radius:14px}
  .feature-badges{grid-template-columns:1fr}
  .process-photo{border-radius:14px}
  .zone-copy,.zone-image{border-radius:14px}
  .review-grid{grid-template-columns:1fr}
  .review-card{min-height:165px;padding:15px}
  .faq-list summary{padding:20px 18px}
  .faq-list details p{padding:0 18px 21px}
  .quote-section{padding:100px 19px 90px}
}


/* ===== Premium button motion refinement ===== */
.button{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transform:translateZ(0);
  transition:
    transform .28s cubic-bezier(.2,.8,.2,1),
    box-shadow .28s cubic-bezier(.2,.8,.2,1),
    border-color .28s ease,
    background-color .28s ease,
    color .28s ease;
}
.button::before{
  content:'';
  position:absolute;
  z-index:-1;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
}
.button::after{
  content:'';
  position:absolute;
  top:-45%;
  left:-35%;
  width:28%;
  height:190%;
  pointer-events:none;
  opacity:0;
  transform:rotate(18deg) translateX(-260%);
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.08) 26%,
    rgba(255,255,255,.55) 50%,
    rgba(255,255,255,.08) 74%,
    transparent
  );
  filter:blur(1px);
}
.button:hover{
  transform:translateY(-2px);
}
.button:hover::after{
  opacity:1;
  animation:premium-button-sheen .78s cubic-bezier(.25,.65,.25,1) forwards;
}
.button .icon-wrap{
  transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.button:hover .icon-wrap{
  transform:translate(2px,-2px);
}
.button:active{
  transform:translateY(0) scale(.985);
}

/* Main quote buttons: deeper surface, subtle internal glow */
.button-purple{
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0)) padding-box,
    var(--purple);
  border-color:rgba(255,255,255,.08);
  box-shadow:
    0 12px 28px rgba(104,19,168,.20),
    inset 0 1px 0 rgba(255,255,255,.14);
}
.button-purple::before{
  background:
    radial-gradient(circle at 22% 0%,rgba(255,255,255,.16),transparent 34%);
}
.button-purple:hover{
  background:
    linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0)) padding-box,
    var(--purple-dark);
  box-shadow:
    0 18px 38px rgba(76,14,118,.25),
    inset 0 1px 0 rgba(255,255,255,.18);
}

/* Hero Instagram: quiet glass button, no loud neon/glow */
.v2-hero-copy .button-outline{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(78,42,91,.14);
  color:#261d29;
  box-shadow:
    0 10px 26px rgba(57,28,65,.07),
    inset 0 1px 0 rgba(255,255,255,.82);
  backdrop-filter:blur(14px) saturate(125%);
}
.v2-hero-copy .button-outline::before{
  background:linear-gradient(
    135deg,
    rgba(255,255,255,.22),
    rgba(255,255,255,0) 55%
  );
}
.v2-hero-copy .button-outline::after{
  background:linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.12) 25%,
    rgba(255,255,255,.82) 50%,
    rgba(255,255,255,.12) 75%,
    transparent
  );
}
.v2-hero-copy .button-outline:hover{
  color:var(--purple);
  border-color:rgba(104,19,168,.20);
  background:rgba(255,255,255,.76);
  box-shadow:
    0 16px 34px rgba(60,31,67,.10),
    inset 0 1px 0 rgba(255,255,255,.92);
}

/* Slightly brighter CTA in header, still restrained */
.header-cta{
  box-shadow:
    0 10px 24px rgba(104,19,168,.17),
    inset 0 1px 0 rgba(255,255,255,.13);
}
.header-cta:hover{
  box-shadow:
    0 15px 32px rgba(88,16,135,.23),
    inset 0 1px 0 rgba(255,255,255,.18);
}

/* Periodic soft sheen only on the 2 hero CTAs + header CTA.
   Long cadence keeps it premium instead of "vibecoding". */
.header-cta::after,
.v2-hero-copy .hero-actions .button::after{
  opacity:.82;
  animation:premium-button-idle 7.5s ease-in-out infinite;
}
.v2-hero-copy .hero-actions .button:nth-child(2)::after{
  animation-delay:2.2s;
}
.header-cta::after{
  animation-delay:4.2s;
}

/* Quote CTA: calmer hover-only shine */
.quote-section .button::after{
  opacity:0;
  animation:none;
}
.quote-section .button:hover::after{
  opacity:1;
  animation:premium-button-sheen .8s cubic-bezier(.25,.65,.25,1) forwards;
}

@keyframes premium-button-sheen{
  0%{transform:rotate(18deg) translateX(-260%);opacity:0}
  18%{opacity:.8}
  100%{transform:rotate(18deg) translateX(650%);opacity:0}
}
@keyframes premium-button-idle{
  0%,72%,100%{transform:rotate(18deg) translateX(-280%);opacity:0}
  76%{opacity:.75}
  88%{transform:rotate(18deg) translateX(690%);opacity:0}
}

@media(prefers-reduced-motion:reduce){
  .button,
  .button .icon-wrap{
    transition:none;
  }
  .button::after,
  .header-cta::after,
  .v2-hero-copy .hero-actions .button::after{
    animation:none!important;
    opacity:0!important;
  }
}


/* ===== WOW responsive / full-bleed refinement ===== */
html,body,#app{width:100%;max-width:100%;min-width:0}
html{background:#fcfafc}
body{overflow-x:clip}
main{width:100%;max-width:100%;overflow-x:clip}
.v2-hero,.ring-section,.feature-section,.zone-section,.testimonials,.quote-section,.simple-hero,.contact-page,.footer{
  width:100%;
  max-width:none;
}
.section,.header-inner,.v2-hero-shell,.v2-hero-bottom,.ring-intro{
  box-sizing:border-box;
}

/* Full-width transitions that stay attached to the viewport at every zoom level. */
.home-services,.process-section,.appointment{position:relative;isolation:isolate}
.home-services::before,
.process-section::before,
.appointment::before{
  content:'';
  position:absolute;
  left:50%;
  width:100vw;
  width:100dvw;
  min-width:100%;
  transform:translateX(-50%);
  pointer-events:none;
  z-index:-2;
}
.home-services::before{
  top:-1px;
  height:310px;
  background:
    radial-gradient(ellipse at 18% 0%,rgba(169,92,194,.16),transparent 40%),
    linear-gradient(180deg,#28152f 0%,#66516d 13%,#eaddEC 51%,#fcfafc 100%);
}
.process-section::before{
  top:-1px;
  height:315px;
  background:
    radial-gradient(ellipse at 78% 8%,rgba(158,74,187,.12),transparent 40%),
    linear-gradient(180deg,#deb9e6 0%,#f0e3f2 48%,#fcfafc 100%);
}
.appointment::before{
  top:0;
  bottom:0;
  height:auto;
  background:
    radial-gradient(circle at 78% 35%,rgba(190,129,211,.15),transparent 27%),
    radial-gradient(circle at 12% 72%,rgba(104,19,168,.045),transparent 32%),
    linear-gradient(180deg,#fcfafc 0%,#faf7fb 100%);
  border-top:1px solid rgba(75,42,84,.055);
  border-bottom:1px solid rgba(75,42,84,.055);
}

/* Hero gets a stronger visual signature without changing the photography. */
.v2-hero{isolation:isolate}
.v2-hero::after{
  content:'';
  position:absolute;
  width:44vw;
  height:44vw;
  max-width:720px;
  max-height:720px;
  min-width:420px;
  min-height:420px;
  right:-16vw;
  top:-18vw;
  border-radius:50%;
  border:1px solid rgba(104,19,168,.08);
  box-shadow:
    0 0 0 80px rgba(104,19,168,.018),
    0 0 0 160px rgba(104,19,168,.012);
  pointer-events:none;
  z-index:0;
}
.v2-hero-shell{z-index:1}
.v2-hero-copy{position:relative}
.v2-hero-copy::before{
  content:'';
  position:absolute;
  left:-28px;
  top:88px;
  width:2px;
  height:76px;
  border-radius:2px;
  background:linear-gradient(180deg,transparent,var(--purple),transparent);
  opacity:.42;
}
.v2-hero-art{isolation:isolate}
.v2-hero-art::before{
  content:'';
  position:absolute;
  width:72%;
  aspect-ratio:1;
  right:4%;
  top:10%;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.38) 0 31%,transparent 32%),
    conic-gradient(from 90deg,rgba(104,19,168,.02),rgba(104,19,168,.18),rgba(223,184,232,.05),rgba(104,19,168,.02));
  filter:blur(.2px);
  opacity:.58;
  z-index:0;
  animation:hero-orbit 26s linear infinite;
}
.v2-hero-art::after{
  content:'';
  position:absolute;
  right:4.5%;
  top:8%;
  width:76%;
  height:85%;
  border:1px solid rgba(104,19,168,.14);
  border-radius:30px;
  transform:translate(18px,18px);
  z-index:1;
  pointer-events:none;
}
.v2-hero-main,.v2-hero-float{z-index:2}
.v2-hero-main{
  box-shadow:
    0 44px 100px rgba(55,21,65,.19),
    0 0 0 1px rgba(255,255,255,.32) inset;
}
.v2-hero-float{
  box-shadow:
    0 28px 70px rgba(45,17,55,.24),
    0 0 0 1px rgba(255,255,255,.42) inset;
}
.review-pill{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.review-pill:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 36px rgba(58,24,70,.10);
  border-color:rgba(104,19,168,.16);
}

/* 3D showcase: stronger depth, softer stage, still editorial. */
.ring-section{
  position:relative;
  isolation:isolate;
  padding-top:112px;
  background:
    radial-gradient(ellipse at 50% 24%,rgba(177,87,207,.17),transparent 36%),
    radial-gradient(ellipse at 8% 68%,rgba(193,122,218,.07),transparent 30%),
    linear-gradient(180deg,#e4c5eb 0,#5b2b69 96px,#28152f 308px,#241129 100%);
}
.ring-section::before{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(transparent 8%,#000 34%,#000 82%,transparent);
}
.ring-section::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:64px;
  width:min(900px,84vw);
  height:150px;
  transform:translateX(-50%);
  background:radial-gradient(ellipse,rgba(172,89,201,.12),transparent 67%);
  filter:blur(18px);
  pointer-events:none;
}
.ring-intro,.photo-ring{position:relative;z-index:2}
.ring-stage{perspective-origin:50% 46%}
.ring-card{
  transition:box-shadow .35s ease;
  box-shadow:
    0 38px 72px -34px rgba(0,0,0,.88),
    inset 0 0 0 1px rgba(255,255,255,.10);
}
.ring-card::before{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:1px solid rgba(255,255,255,.08);
  pointer-events:none;
  z-index:2;
}
.ring-controls{
  padding:8px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(12px);
}

/* Services: editorial stagger, less "three equal cards". */
.home-services{padding-top:178px;padding-bottom:145px}
.home-services .section-heading{position:relative}
.home-services .section-heading::after{
  content:'';
  position:absolute;
  right:0;
  top:0;
  width:76px;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--purple));
  opacity:.35;
}
.service-card{
  position:relative;
  transition:transform .42s cubic-bezier(.2,.8,.2,1);
}
.home-services .service-card:nth-child(2){margin-top:48px}
.home-services .service-card:nth-child(3){margin-top:22px}
.service-photo{isolation:isolate}
.service-photo::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 54%,rgba(28,12,33,.22) 100%);
  opacity:.58;
  transition:opacity .35s ease;
}
.service-index{z-index:2}
.service-card:hover{transform:translateY(-7px)}
.service-card:hover .service-photo::after{opacity:.32}
.service-card-bottom{transition:border-color .3s ease}
.service-card:hover .service-card-bottom{border-color:rgba(104,19,168,.24)}

/* Appointment: make the white section feel intentional rather than empty. */
.appointment{padding-top:105px;padding-bottom:145px}
.appointment::after{
  content:'';
  position:absolute;
  right:-14%;
  top:50%;
  width:390px;
  height:390px;
  transform:translateY(-50%);
  border-radius:50%;
  border:1px solid rgba(104,19,168,.07);
  box-shadow:0 0 0 62px rgba(104,19,168,.018);
  pointer-events:none;
  z-index:-1;
}
.appointment-copy{
  position:relative;
  padding-left:26px;
}
.appointment-copy::before{
  content:'';
  position:absolute;
  left:0;
  top:2px;
  width:3px;
  height:54px;
  border-radius:3px;
  background:linear-gradient(180deg,var(--purple),#c990d8);
}
.appointment-photo{
  transform:rotate(.7deg);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease;
}
.appointment-photo:hover{
  transform:rotate(0deg) translateY(-5px);
  box-shadow:0 38px 88px rgba(65,32,70,.16);
}

/* Why choose us: more spatial depth. */
.feature-section{position:relative;overflow:hidden;isolation:isolate}
.feature-section::before{
  content:'';
  position:absolute;
  width:560px;
  height:560px;
  right:-180px;
  top:-230px;
  border-radius:50%;
  border:1px solid rgba(104,19,168,.10);
  box-shadow:
    0 0 0 70px rgba(255,255,255,.10),
    0 0 0 140px rgba(255,255,255,.055);
  pointer-events:none;
}
.feature-section::after{
  content:'';
  position:absolute;
  left:-110px;
  bottom:-180px;
  width:420px;
  height:420px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(104,19,168,.12),transparent 68%);
  filter:blur(4px);
  pointer-events:none;
}
.feature-inner{position:relative;z-index:1}
.feature-title{position:sticky;top:42px}
.feature-badges span{
  position:relative;
  overflow:hidden;
  transition:transform .3s ease,background .3s ease,border-color .3s ease;
}
.feature-badges span::before{
  content:'';
  position:absolute;
  left:0;top:0;bottom:0;
  width:3px;
  background:linear-gradient(180deg,var(--purple),#d9a7e5);
  opacity:.48;
}
.feature-badges span:hover{
  transform:translateY(-3px);
  background:rgba(255,255,255,.78);
  border-color:rgba(104,19,168,.13);
}

/* Process gets a stronger split-layout feel. */
.process-section{padding-top:168px;padding-bottom:155px}
.process-photo{
  position:relative;
  transform:rotate(-.55deg);
  transition:transform .55s cubic-bezier(.2,.8,.2,1);
}
.process-photo:hover{transform:rotate(0deg) translateY(-4px)}
.process-steps>div{
  position:relative;
  padding-left:0;
  transition:padding-left .3s ease,background .3s ease;
}
.process-steps>div::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(180deg,transparent,var(--purple),transparent);
  opacity:0;
  transition:opacity .3s ease;
}
.process-steps>div:hover{padding-left:17px}
.process-steps>div:hover::before{opacity:.45}

/* Zones: stronger cards and alternating visual rhythm. */
.zone-section{position:relative;overflow:hidden}
.zone-section::before{
  content:'';
  position:absolute;
  width:520px;
  height:520px;
  left:-260px;
  top:80px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(104,19,168,.075),transparent 67%);
  pointer-events:none;
}
.zone-grid{position:relative;z-index:1}
.zone-copy,.zone-image{
  transition:transform .38s cubic-bezier(.2,.8,.2,1),box-shadow .38s ease;
}
.zone-copy:hover,.zone-image:hover{transform:translateY(-5px)}
.zone-image:hover{box-shadow:0 28px 62px rgba(57,29,65,.12)}
.zone-copy h2{max-width:470px}
.zone-copy .button{margin-top:auto}

/* Reviews and FAQ feel more designed, not just stacked white blocks. */
.testimonials{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 85% 18%,rgba(190,127,211,.12),transparent 25%),
    linear-gradient(180deg,#f5edf7 0%,#fcfafc 41%,#fcfafc 100%);
}
.testimonials::before{
  content:'';
  position:absolute;
  left:50%;
  top:42px;
  width:min(1120px,82vw);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(104,19,168,.16),transparent);
}
.review-card{position:relative;overflow:hidden}
.review-card::before{
  content:'';
  position:absolute;
  left:0;right:0;top:0;
  height:2px;
  background:linear-gradient(90deg,transparent,rgba(104,19,168,.35),transparent);
  opacity:0;
  transition:opacity .3s ease;
}
.review-card:hover::before{opacity:1}
.faq-list details{
  transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
.faq-list details:hover{
  transform:translateY(-2px);
  border-color:rgba(104,19,168,.16);
}
.faq-list details[open]{
  border-color:rgba(104,19,168,.18);
  box-shadow:0 16px 40px rgba(56,29,63,.055);
}

/* Final CTA gets a cinematic but restrained light field. */
.quote-section{position:relative;overflow:hidden;isolation:isolate}
.quote-section::before{
  content:'';
  position:absolute;
  inset:-35%;
  z-index:-1;
  background:
    radial-gradient(circle at 34% 44%,rgba(233,187,246,.20),transparent 19%),
    radial-gradient(circle at 67% 58%,rgba(255,255,255,.09),transparent 17%);
  animation:quote-light 18s ease-in-out infinite alternate;
}
.quote-section::after{
  content:'';
  position:absolute;
  left:50%;
  bottom:-190px;
  width:720px;
  height:320px;
  transform:translateX(-50%);
  border-radius:50%;
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 0 0 68px rgba(255,255,255,.018);
  pointer-events:none;
}
.quote-inner{position:relative;z-index:1}

/* Reveal feels more polished and gives the page rhythm. */
.reveal{
  filter:blur(5px);
  transform:translateY(26px) scale(.992);
  transition:
    opacity .7s ease,
    transform .85s cubic-bezier(.16,1,.3,1),
    filter .7s ease;
}
.reveal.is-visible{
  filter:blur(0);
  transform:translateY(0) scale(1);
}
.service-grid .reveal:nth-child(2){transition-delay:.07s}
.service-grid .reveal:nth-child(3){transition-delay:.14s}

/* More robust desktop and tablet widths. */
@media(max-width:1380px){
  .section,.header-inner,.v2-hero-shell,.v2-hero-bottom,.ring-intro{
    width:min(1220px,calc(100% - 64px));
  }
}
@media(max-width:1120px){
  .section,.header-inner,.v2-hero-shell,.v2-hero-bottom,.ring-intro{
    width:min(100% - 48px,1040px);
  }
  .desktop-nav{gap:1px}
  .desktop-nav a{padding-inline:10px}
  .header-cta{font-size:11px;padding-inline:14px}
  .v2-hero-copy h1{font-size:clamp(50px,5.7vw,70px)}
  .v2-hero-art{height:530px}
  .home-services .service-photo,.services-page-grid .service-photo{height:420px}
  .home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:470px}
}
@media(max-width:980px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:min(100% - 40px,760px);
  }
  .desktop-nav,.header-cta{display:none}
  .menu-toggle{
    display:flex;
    width:46px;height:46px;
    border:1px solid rgba(112,18,188,.16);
    border-radius:50%;
    background:rgba(255,255,255,.86);
    align-items:center;justify-content:center;
    flex-direction:column;gap:6px;
    z-index:5;
    box-shadow:0 10px 28px rgba(45,18,53,.08);
    backdrop-filter:blur(12px);
  }
  .menu-toggle span{width:19px;height:2px;background:var(--purple);transition:transform .25s}
  .menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .mobile-nav{
    position:absolute;
    display:none;
    top:76px;
    left:20px;right:20px;
    padding:14px;
    border-radius:18px;
    border:1px solid rgba(104,19,168,.10);
    background:rgba(255,255,255,.94);
    box-shadow:0 28px 60px rgba(39,15,48,.16);
    backdrop-filter:blur(18px);
  }
  .mobile-nav.is-open{display:block}
  .mobile-nav a{
    display:block;
    padding:14px 15px;
    border-bottom:1px solid rgba(72,43,80,.08);
    font-size:17px;
    font-weight:700;
  }
  .mobile-nav a:last-child{border:0;color:var(--purple)}
  .v2-hero{padding-top:112px}
  .v2-hero-shell{display:flex;flex-direction:column;gap:42px;min-height:0}
  .v2-hero-copy{max-width:720px;width:100%}
  .v2-hero-copy h1{font-size:clamp(49px,8vw,68px);max-width:700px}
  .v2-hero-copy p{max-width:560px}
  .v2-hero-copy::before{display:none}
  .v2-hero-art{width:100%;height:520px}
  .v2-hero-main{width:84%;height:94%}
  .v2-hero-float{left:2%;width:39%;height:41%}
  .v2-hero-art::after{right:3%;width:80%;height:88%}
  .home-services .service-grid,.services-page-grid .service-grid{grid-template-columns:1fr 1fr;gap:22px}
  .home-services .service-card:first-child,.services-page-grid .service-card:first-child{grid-column:span 2}
  .home-services .service-card:nth-child(2),.home-services .service-card:nth-child(3){margin-top:0}
  .home-services .service-photo,.services-page-grid .service-photo{height:390px}
  .home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:470px}
  .appointment,.feature-inner,.process-layout{grid-template-columns:1fr;gap:48px}
  .appointment-copy{max-width:680px}
  .appointment-photo{height:440px}
  .feature-title{position:relative;top:auto}
  .feature-title h2{max-width:720px}
  .process-photo{height:500px}
  .zone-grid{gap:16px}
}
@media(max-width:700px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:calc(100% - 34px);
  }
  .brand{width:142px}
  .v2-hero{padding-top:100px;padding-bottom:32px}
  .v2-hero::after{min-width:300px;min-height:300px;right:-150px;top:-120px}
  .v2-hero-copy h1{font-size:clamp(42px,12vw,58px);line-height:1.015}
  .v2-hero-copy p{font-size:16px}
  .v2-hero-copy .hero-actions{flex-direction:column;align-items:stretch}
  .v2-hero-copy .hero-actions .button{width:100%;justify-content:space-between}
  .v2-hero-art{height:420px}
  .v2-hero-main{width:88%;height:92%;border-radius:17px}
  .v2-hero-float{width:43%;height:40%;border-radius:12px}
  .v2-hero-art::before{width:82%;right:0}
  .v2-hero-art::after{width:84%;height:85%;border-radius:20px;transform:translate(10px,10px)}
  .ring-section{padding-top:76px;padding-bottom:70px}
  .ring-intro{display:block;text-align:left}
  .ring-intro h2{font-size:clamp(38px,10vw,52px);margin-bottom:16px}
  .ring-intro a{margin-top:0}
  .ring-stage{height:calc(var(--ring-h) + 50px);perspective:900px}
  .ring-controls{gap:10px}
  .ring-caption{min-width:170px;max-width:200px}
  .ring-caption strong{font-size:14px}
  .home-services{padding-top:118px;padding-bottom:105px}
  .home-services::before{height:220px}
  .home-services .service-grid,.services-page-grid .service-grid{grid-template-columns:1fr}
  .home-services .service-card:first-child,.services-page-grid .service-card:first-child{grid-column:auto}
  .home-services .service-photo,.services-page-grid .service-photo,
  .home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:350px}
  .appointment{padding:82px 0 102px}
  .appointment-copy{padding-left:18px}
  .appointment-photo{height:330px;transform:none}
  .appointment::after{width:250px;height:250px;right:-120px}
  .feature-section{padding:85px 0 92px}
  .feature-section::before{width:360px;height:360px;right:-190px;top:-170px}
  .feature-badges{grid-template-columns:1fr}
  .process-section{padding-top:112px;padding-bottom:105px}
  .process-section::before{height:210px}
  .process-photo{height:390px;transform:none}
  .zone-section{padding:82px 0}
  .zone-grid{grid-template-columns:1fr}
  .zone-copy,.zone-image{min-height:320px;height:auto}
  .zone-copy{padding:30px}
  .zone-image{height:320px}
  .zone-image:nth-of-type(3){grid-row:4}
  .testimonials{padding:90px 0 90px}
  .review-grid{grid-template-columns:1fr}
  .faq-section{padding-top:22px;padding-bottom:95px}
  .quote-section{padding:95px 17px 88px}
}
@media(max-width:430px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:calc(100% - 28px);
  }
  .header-inner{height:76px}
  .menu-toggle{width:42px;height:42px}
  .mobile-nav{left:14px;right:14px;top:69px}
  .v2-hero{padding-top:90px}
  .review-pill{max-width:100%;white-space:nowrap}
  .review-stars{display:none}
  .v2-hero-copy h1{font-size:clamp(39px,11.8vw,51px)}
  .v2-hero-art{height:350px}
  .ring-controls{padding:6px 8px}
  .ring-controls button{width:41px;height:41px}
  .ring-caption{min-width:150px;max-width:165px}
  .ring-dots{max-width:86%;flex-wrap:wrap;justify-content:center}
  .home-services .service-photo,.services-page-grid .service-photo,
  .home-services .service-card:first-child .service-photo,.services-page-grid .service-card:first-child .service-photo{height:310px}
  .appointment-photo{height:275px}
  .process-photo{height:330px}
  .zone-image{height:285px}
  .zone-copy{min-height:300px}
  .zone-copy h2{font-size:35px}
  .review-card{min-height:150px}
}

/* Motion stays elegant and accessibility-safe. */
@keyframes hero-orbit{
  to{transform:rotate(360deg)}
}
@keyframes quote-light{
  0%{transform:translate3d(-2%,0,0) scale(1)}
  100%{transform:translate3d(3%,2%,0) scale(1.06)}
}
@media(prefers-reduced-motion:reduce){
  .v2-hero-art::before,.quote-section::before{animation:none!important}
  .reveal{filter:none!important;transform:none!important}
  .service-card,.appointment-photo,.process-photo,.zone-copy,.zone-image{transition:none!important}
}


/* ===== WOW responsive + full-bleed continuity ===== */
html,body{max-width:100%;overflow-x:clip}
body{background:#fcfafc}
main{position:relative;isolation:isolate}

/* Full-bleed sections that stay continuous at browser zoom levels */
.home-services,
.process-section{
  position:relative;
  isolation:isolate;
}
.home-services::before,
.process-section::before{
  left:calc((100vw - 100%)/-2)!important;
  right:calc((100vw - 100%)/-2)!important;
  width:auto!important;
  transform:none!important;
}
@supports (width:100dvw){
  .home-services::before,
  .process-section::before{
    left:calc((100dvw - 100%)/-2)!important;
    right:calc((100dvw - 100%)/-2)!important;
  }
}

/* Hero gets more depth without changing the visual identity */
.v2-hero{
  isolation:isolate;
  overflow:clip;
}
.v2-hero::after{
  content:'';
  position:absolute;
  z-index:0;
  width:clamp(340px,38vw,680px);
  aspect-ratio:1;
  right:-12vw;
  bottom:-22%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(177,90,205,.20) 0%,rgba(177,90,205,.08) 38%,transparent 68%);
  filter:blur(8px);
  pointer-events:none;
}
.v2-hero-shell{z-index:2}
.v2-hero-copy{position:relative}
.v2-hero-copy::after{
  content:'';
  position:absolute;
  width:76px;
  height:4px;
  left:0;
  bottom:-32px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--purple),rgba(104,19,168,.10));
}
.v2-hero-main{
  transform:rotate(-1.1deg);
  transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s ease;
}
.v2-hero-float{
  transform:rotate(2.2deg);
  transition:transform .7s cubic-bezier(.2,.8,.2,1),box-shadow .7s ease;
}
.v2-hero-art:hover .v2-hero-main{transform:rotate(0deg) translateY(-3px)}
.v2-hero-art:hover .v2-hero-float{transform:rotate(0deg) translateY(-2px)}
.v2-hero-main::before,
.v2-hero-float::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);
}
.v2-hero-main,
.v2-hero-float{will-change:transform}

/* Make the 3D showcase feel like a real centerpiece */
.ring-section{
  min-height:760px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.ring-section::before{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 28%,rgba(188,99,214,.08),transparent 28%),
    radial-gradient(circle at 82% 62%,rgba(112,40,138,.12),transparent 31%);
  pointer-events:none;
}
.ring-intro,
.photo-ring{position:relative;z-index:1}
.ring-stage{
  perspective-origin:50% 47%;
}
.ring-card{
  transition:box-shadow .28s ease,border-color .28s ease;
}
.ring-card[aria-hidden="false"]{
  border-color:rgba(255,255,255,.20);
  box-shadow:
    0 42px 75px -32px rgba(0,0,0,.82),
    0 0 0 1px rgba(255,255,255,.05),
    inset 0 0 0 1px rgba(255,255,255,.09);
}
.ring-floor{
  width:min(calc(var(--ring-r)*2.45),90vw);
  opacity:.78;
}
.ring-counter{font-variant-numeric:tabular-nums}

/* Services: stronger editorial layout */
.home-services .section-heading{
  position:relative;
}
.home-services .section-heading::before{
  content:'';
  position:absolute;
  top:-27px;
  left:0;
  width:68px;
  height:2px;
  background:var(--purple);
}
.service-card{position:relative}
.service-card::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,rgba(104,19,168,.38),rgba(104,19,168,0));
  transform:scaleX(.28);
  transform-origin:left;
  transition:transform .42s cubic-bezier(.2,.8,.2,1);
}
.service-card:hover::after{transform:scaleX(1)}
.service-photo{isolation:isolate}
.service-photo::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(22,8,28,.01),transparent 56%,rgba(22,8,28,.10));
}
.service-card:hover .service-photo img{transform:scale(1.035)}
.service-index{
  top:16px;
  left:16px;
  min-width:62px;
  text-align:center;
}

/* Appointment becomes more like a premium editorial spread */
.appointment{
  position:relative;
  align-items:center;
}
.appointment::before{
  content:'';
  position:absolute;
  z-index:-1;
  right:-8%;
  top:9%;
  width:42%;
  height:75%;
  border-radius:48% 52% 43% 57%;
  background:radial-gradient(circle at center,rgba(190,142,204,.13),transparent 70%);
  filter:blur(6px);
}
.appointment-copy h2{text-wrap:balance}
.appointment-photo{overflow:hidden}
.appointment-photo::before{
  content:'';
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 66%,rgba(34,13,39,.13));
}
.appointment-photo img{transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.appointment-photo:hover img{transform:scale(1.025)}

/* Why us: layered glass details, not generic cards */
.feature-section{position:relative;overflow:clip}
.feature-section::before{
  content:'';
  position:absolute;
  width:560px;
  aspect-ratio:1;
  left:-280px;
  bottom:-310px;
  border-radius:50%;
  border:1px solid rgba(104,19,168,.10);
  box-shadow:
    0 0 0 70px rgba(104,19,168,.025),
    0 0 0 140px rgba(104,19,168,.018);
  pointer-events:none;
}
.feature-content{
  position:relative;
  padding:38px!important;
  border-radius:18px!important;
  background:rgba(255,255,255,.30)!important;
  border:1px solid rgba(255,255,255,.55)!important;
  backdrop-filter:blur(16px) saturate(115%);
}
.feature-content::after{
  content:'';
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.feature-badges span{
  position:relative;
  padding-left:43px;
}
.feature-badges span::before{
  content:'';
  position:absolute;
  left:17px;
  top:50%;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--purple);
  box-shadow:0 0 0 5px rgba(104,19,168,.08);
  transform:translateY(-50%);
}

/* Process timeline has more visual hierarchy */
.process-steps{position:relative}
.process-steps::before{
  content:'';
  position:absolute;
  left:4px;
  top:24px;
  bottom:24px;
  width:1px;
  background:linear-gradient(var(--purple),rgba(104,19,168,.08));
  opacity:.35;
}
.process-steps>div{
  position:relative;
  padding-left:38px;
}
.process-steps>div>span{
  position:absolute;
  left:0;
  top:31px;
  width:10px;
  height:10px;
  border-radius:50%;
  font-size:0;
  background:#fff;
  border:2px solid var(--purple);
  box-shadow:0 0 0 6px #fcfafc;
}
.process-steps>div:hover h3{color:var(--purple)}
.process-steps h3{transition:color .25s}

/* Zone section gets more contrast and asymmetry */
.zone-grid{
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
}
.zone-copy{
  position:relative;
  overflow:hidden;
}
.zone-copy::after{
  content:'';
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  right:-110px;
  top:-115px;
  background:radial-gradient(circle,rgba(104,19,168,.10),transparent 68%);
  pointer-events:none;
}
.zone-image img{transition:transform .85s cubic-bezier(.2,.8,.2,1)}
.zone-image:hover img{transform:scale(1.025)}

/* Reviews feel more intentional */
.review-card{
  position:relative;
  overflow:hidden;
}
.review-card::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:3px;
  background:linear-gradient(90deg,var(--purple),rgba(104,19,168,0));
  opacity:.75;
}
.testimonials .section-heading h2{text-wrap:balance}

/* FAQ */
.faq-list details{
  transition:border-color .25s,box-shadow .25s,transform .25s;
}
.faq-list details:hover{
  border-color:rgba(104,19,168,.19);
  transform:translateY(-1px);
}
.faq-list details[open]{
  border-color:rgba(104,19,168,.20);
  box-shadow:0 15px 34px rgba(62,29,70,.06);
}

/* CTA */
.quote-section{
  position:relative;
  overflow:clip;
}
.quote-section::before,
.quote-section::after{
  content:'';
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.quote-section::before{
  width:430px;height:430px;
  left:-210px;top:-230px;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 0 0 85px rgba(255,255,255,.025),0 0 0 170px rgba(255,255,255,.015);
}
.quote-section::after{
  width:280px;height:280px;
  right:-130px;bottom:-170px;
  background:radial-gradient(circle,rgba(222,167,240,.14),transparent 68%);
}
.quote-inner{position:relative;z-index:1}

/* Robust wide-screen / zoom behavior */
@media(min-width:1440px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{width:min(1360px,calc(100% - 128px))}
  .v2-hero-shell{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .v2-hero-art{height:650px}
  .home-services .service-photo{height:500px}
  .home-services .service-card:first-child .service-photo{height:550px}
  .ring-section{min-height:820px}
}
@media(min-width:1800px){
  .v2-hero{min-height:860px}
  .v2-hero-shell{min-height:680px}
  .v2-hero-copy h1{font-size:88px}
  .v2-hero-art{height:690px}
  .ring-section{min-height:860px}
}

/* Tablet */
@media(max-width:1100px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:min(100% - 64px,980px);
  }
  .header-cta{display:none}
  .desktop-nav{margin-left:auto}
  .v2-hero-shell{
    grid-template-columns:minmax(0,1fr) minmax(0,.92fr);
    gap:3%;
  }
  .v2-hero-art{height:520px}
  .v2-hero-main{width:90%}
  .home-services .service-grid,.services-page-grid .service-grid{
    grid-template-columns:1.1fr 1fr 1fr;
  }
  .zone-copy{padding:36px}
}

/* Mobile and narrow zoom */
@media(max-width:800px){
  html,body{overflow-x:hidden}
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:min(100% - 36px,620px);
  }
  .desktop-nav{display:none}
  .header-cta{display:none}
  .v2-hero{
    padding-top:105px;
    background:
      radial-gradient(circle at 85% 18%,rgba(201,142,221,.18),transparent 36%),
      linear-gradient(180deg,#faf6fb 0%,#f0e2f3 62%,#e4c5eb 100%);
  }
  .v2-hero::after{
    right:-48%;
    bottom:-13%;
    width:520px;
  }
  .v2-hero-shell{display:flex;flex-direction:column;gap:34px}
  .v2-hero-copy::after{bottom:-24px;width:54px}
  .v2-hero-art{width:100%;height:450px}
  .v2-hero-main{right:0;width:88%;height:93%;transform:rotate(-.7deg)}
  .v2-hero-float{width:41%;height:39%;left:0;bottom:0}
  .ring-section{
    min-height:auto;
    padding:80px 0 70px;
    background:
      radial-gradient(circle at 50% 0,rgba(171,91,199,.18),transparent 32%),
      linear-gradient(180deg,#e4c5eb 0,#573064 82px,#28152f 245px,#28152f 100%);
  }
  .ring-intro{text-align:left}
  .ring-intro h2{margin-left:0}
  .photo-ring{width:100%}
  .ring-stage{width:100vw;max-width:100vw}
  .home-services::before,
  .process-section::before{
    left:calc((100vw - 100%)/-2)!important;
    right:calc((100vw - 100%)/-2)!important;
  }
  .feature-content{padding:28px!important}
  .zone-grid{grid-template-columns:1fr}
  .review-grid{grid-template-columns:1fr 1fr}
  .quote-section{padding-inline:18px}
}

/* Small mobile */
@media(max-width:520px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{
    width:calc(100% - 28px);
  }
  .brand{width:138px}
  .v2-hero{padding-top:98px}
  .v2-hero-copy h1{
    font-size:clamp(40px,11.2vw,54px);
    line-height:1.01;
    letter-spacing:-.055em;
  }
  .v2-hero-copy p{font-size:15.5px}
  .review-pill{
    max-width:100%;
    flex-wrap:nowrap;
  }
  .review-pill>span:nth-last-child(2){white-space:nowrap}
  .v2-hero-art{height:350px}
  .v2-hero-main{width:91%;height:91%;border-radius:14px}
  .v2-hero-float{width:43%;height:38%;border-radius:10px}
  .ring-section{padding-top:68px}
  .ring-intro{margin-bottom:10px}
  .ring-stage{min-height:390px}
  .ring-caption{min-width:170px}
  .ring-controls{gap:9px}
  .home-services{padding-top:112px}
  .home-services::before{height:205px}
  .service-card-bottom{padding-top:14px}
  .service-card h3{font-size:25px}
  .appointment{padding-top:48px}
  .feature-section{padding:76px 0}
  .feature-content{padding:22px!important}
  .feature-badges span{padding-left:41px}
  .process-section{padding-top:105px}
  .process-section::before{height:190px}
  .process-steps>div{padding-left:34px}
  .zone-section{padding:72px 0}
  .zone-copy{padding:28px;min-height:330px}
  .zone-copy h2{font-size:35px}
  .review-grid{grid-template-columns:1fr}
  .testimonials{padding:92px 0}
  .faq-section{padding-bottom:95px}
}

/* Very narrow phones */
@media(max-width:380px){
  .section,.header-inner,.ring-intro,.v2-hero-shell,.v2-hero-bottom{width:calc(100% - 22px)}
  .v2-hero-copy h1{font-size:39px}
  .review-stars{display:none}
  .v2-hero-art{height:315px}
  .v2-hero-float{width:45%;height:36%}
  .ring-stage{min-height:360px}
  .ring-controls button{width:40px;height:40px}
  .ring-caption{min-width:145px;max-width:160px}
  .ring-caption strong{font-size:13px}
}


/* Full-bleed testimonial atmosphere — no visible edges when zooming */
.testimonials{
  position:relative;
  isolation:isolate;
  background:transparent!important;
}
.testimonials::before{
  content:'';
  position:absolute;
  z-index:-1;
  top:0;
  bottom:0;
  left:calc((100vw - 100%)/-2);
  right:calc((100vw - 100%)/-2);
  background:
    radial-gradient(circle at 86% 16%,rgba(177,110,198,.09),transparent 28%),
    linear-gradient(180deg,#f7f1f8 0%,#fcfafc 38%,#fcfafc 100%);
  pointer-events:none;
}
@supports (width:100dvw){
  .testimonials::before{
    left:calc((100dvw - 100%)/-2);
    right:calc((100dvw - 100%)/-2);
  }
}

/* Header transforms into a compact premium glass bar while scrolling */
.site-header{
  transition:
    background .3s ease,
    box-shadow .3s ease,
    backdrop-filter .3s ease,
    transform .3s ease;
}
.site-header.is-scrolled{
  position:fixed;
  background:rgba(252,249,252,.83);
  border-bottom:1px solid rgba(82,43,94,.08);
  box-shadow:0 12px 38px rgba(47,22,55,.07);
  backdrop-filter:blur(18px) saturate(135%);
}
.site-header.is-scrolled .header-inner{height:76px}
.site-header.is-scrolled .brand{width:145px}
.site-header.is-scrolled .desktop-nav{
  background:rgba(255,255,255,.55);
  box-shadow:none;
}
.site-header.is-scrolled .header-cta{min-height:46px}
.header-inner,
.brand,
.desktop-nav,
.header-cta{
  transition:
    height .3s ease,
    width .3s ease,
    background .3s ease,
    box-shadow .3s ease,
    min-height .3s ease;
}

/* A restrained motion system across photography */
.service-photo,
.appointment-photo,
.process-photo,
.zone-image,
.review-card{
  transform:translateZ(0);
}
.service-card:hover .service-photo,
.appointment-photo:hover,
.zone-image:hover{
  box-shadow:0 28px 65px rgba(54,25,64,.12);
}
.process-photo{
  position:relative;
  overflow:hidden;
}
.process-photo::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 68%,rgba(35,15,40,.08));
}

/* Heading accents make sections feel authored rather than templated */
.feature-title,
.process-section .section-heading>div,
.testimonials .section-heading>div,
.faq-heading{
  position:relative;
}
.feature-title::before,
.process-section .section-heading>div::before,
.testimonials .section-heading>div::before{
  content:'';
  display:block;
  width:38px;
  height:2px;
  margin-bottom:22px;
  background:var(--purple);
  opacity:.9;
}
.faq-heading::before{
  content:'';
  display:block;
  width:42px;
  height:2px;
  margin:0 auto 24px;
  background:var(--purple);
}

/* Protect visuals at browser zoom levels where layout crosses breakpoints */
@media(min-width:801px) and (max-width:1250px){
  .header-inner{gap:16px}
  .brand{width:150px}
  .desktop-nav a{font-size:12px}
  .v2-hero-copy h1{font-size:clamp(49px,5.7vw,70px)}
  .v2-hero-copy p{font-size:16px}
  .home-services .service-photo,
  .services-page-grid .service-photo{height:410px}
  .home-services .service-card:first-child .service-photo,
  .services-page-grid .service-card:first-child .service-photo{height:455px}
  .appointment-photo{height:470px}
  .process-photo{height:520px}
}
@media(max-width:800px){
  .site-header.is-scrolled .header-inner{height:70px}
  .site-header.is-scrolled .brand{width:132px}
  .testimonials::before{
    left:calc((100vw - 100%)/-2);
    right:calc((100vw - 100%)/-2);
  }
}


/* Final section continuity */
.quote-section{
  padding-top:175px;
  background:
    radial-gradient(circle at 50% 18%,rgba(218,160,238,.16),transparent 34%),
    linear-gradient(
      180deg,
      #fcfafc 0,
      #eee0f1 34px,
      #8c65a0 92px,
      #64217f 175px,
      #551079 48%,
      #3f0c5d 100%
    );
}
@media(max-width:800px){
  .quote-section{
    padding-top:145px;
    background:
      radial-gradient(circle at 50% 18%,rgba(218,160,238,.14),transparent 33%),
      linear-gradient(180deg,#fcfafc 0,#eaddEE 24px,#855c99 70px,#63207e 135px,#4c0e6e 100%);
  }
}
@media(max-width:520px){
  .quote-section{padding-top:125px}
}


/* ===== HOME RECOMPOSITION — image-native, aligned, premium ===== */
.home-page{background:#fcfafc}
.home-page figure{margin:0}
.home-page .section{
  width:min(1280px,calc(100% - 96px));
}

/* HERO — real 3:4 photo composition, no arbitrary cropping */
.home-page .v2-hero{
  min-height:860px;
  padding:138px 0 78px;
  background:
    radial-gradient(circle at 10% 12%,rgba(255,255,255,.98),transparent 31%),
    radial-gradient(circle at 86% 24%,rgba(187,108,211,.18),transparent 29%),
    linear-gradient(120deg,#faf7fb 0%,#f0e3f3 55%,#e1c0e8 100%);
}
.home-page .v2-hero-shell{
  width:min(1280px,calc(100% - 96px));
  min-height:640px;
  grid-template-columns:minmax(0,.88fr) minmax(520px,1.12fr);
  gap:7%;
  align-items:center;
}
.home-page .v2-hero-copy{
  max-width:620px;
  padding-bottom:18px;
}
.home-page .v2-hero-copy h1{
  max-width:650px;
  font-size:clamp(58px,5.25vw,84px);
  line-height:.99;
  letter-spacing:-.06em;
  margin:29px 0 28px;
}
.home-page .v2-hero-copy p{
  max-width:475px;
  font-size:17px;
  line-height:1.72;
}
.home-page .v2-hero-art{
  position:relative;
  height:650px;
  width:100%;
  align-self:center;
}
.home-page .v2-hero-art::before{
  content:'';
  position:absolute;
  width:72%;
  aspect-ratio:1;
  right:5%;
  top:8%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(145,74,165,.14),rgba(145,74,165,.035) 58%,transparent 72%);
  filter:blur(3px);
  pointer-events:none;
}
.home-page .v2-hero-main,
.home-page .v2-hero-float,
.home-page .v2-hero-detail{
  position:absolute;
  overflow:hidden;
  aspect-ratio:3/4;
  height:auto;
  border:1px solid rgba(255,255,255,.72);
  background:#e8e0e9;
  box-shadow:0 30px 72px rgba(45,20,52,.16);
  transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease;
}
.home-page .v2-hero-main{
  width:55%;
  right:15%;
  top:0;
  border-radius:24px;
  transform:rotate(-1deg);
  z-index:2;
}
.home-page .v2-hero-float{
  width:29%;
  left:0;
  bottom:3%;
  border:6px solid #f4ebf6;
  border-radius:18px;
  transform:rotate(2deg);
  z-index:3;
}
.home-page .v2-hero-detail{
  width:25%;
  right:0;
  bottom:2%;
  border:5px solid #f2e5f4;
  border-radius:16px;
  transform:rotate(1.2deg);
  z-index:3;
}
.home-page .v2-hero-main img,
.home-page .v2-hero-float img,
.home-page .v2-hero-detail img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.home-page .v2-hero-art:hover .v2-hero-main{transform:rotate(-.2deg) translateY(-4px)}
.home-page .v2-hero-art:hover .v2-hero-float{transform:rotate(.5deg) translate(-2px,-3px)}
.home-page .v2-hero-art:hover .v2-hero-detail{transform:rotate(.2deg) translate(2px,-2px)}

/* 3D section */
.home-page .ring-section{
  min-height:800px;
  padding:108px 0 92px;
}
.home-page .ring-intro{
  width:min(1280px,calc(100% - 96px));
}
.home-page .photo-ring{width:min(1400px,100%)}

/* SERVICES — perfectly aligned image ratios */
.home-page .home-services{
  padding-top:172px;
  padding-bottom:145px;
}
.home-page .home-services .section-heading{
  margin-bottom:52px;
}
.home-page .home-services .service-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
.home-page .home-services .service-photo,
.home-page .home-services .service-card:first-child .service-photo{
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  border-radius:18px;
  overflow:hidden;
}
.home-page .home-services .service-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.home-page .home-services .service-card-bottom{
  min-height:74px;
  padding:18px 2px 13px;
  align-items:center;
}
.home-page .home-services .service-card h3{font-size:28px}

/* APPOINTMENT — landscape image uses its actual format */
.appointment-band{
  position:relative;
  padding:36px 0 44px;
  background:
    linear-gradient(180deg,#fcfafc 0%,#f7f1f8 100%);
}
.home-page .appointment{
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:8%;
  padding:86px 0 112px;
  align-items:center;
}
.home-page .appointment-copy{
  max-width:500px;
}
.home-page .appointment-copy h2{
  font-size:clamp(46px,4.5vw,64px);
  text-wrap:balance;
}
.home-page .appointment-photo{
  width:100%;
  height:auto;
  aspect-ratio:1014/828;
  border-radius:20px;
  overflow:hidden;
  background:#eee8ef;
  box-shadow:0 34px 75px rgba(55,28,61,.11);
}
.home-page .appointment-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* WHY US — editorial photo pair */
.home-page .feature-section{
  padding:138px 0 142px;
  background:
    radial-gradient(circle at 4% 8%,rgba(255,255,255,.74),transparent 25%),
    linear-gradient(145deg,#f5edf7 0%,#ead5ee 55%,#ddb6e5 100%);
}
.home-page .feature-inner.feature-editorial{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  gap:10%;
  align-items:center;
}
.feature-visual{
  position:relative;
  min-height:650px;
}
.feature-shot{
  position:absolute;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#e7dce9;
  box-shadow:0 30px 72px rgba(57,26,63,.15);
}
.feature-shot img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.feature-shot-main{
  width:62%;
  left:0;
  top:0;
  border-radius:20px;
}
.feature-shot-secondary{
  width:43%;
  right:0;
  bottom:0;
  border:7px solid rgba(248,242,249,.94);
  border-radius:16px;
}
.home-page .feature-content{
  padding:0!important;
  background:transparent!important;
  border:0!important;
  backdrop-filter:none!important;
  max-width:590px;
}
.home-page .feature-content::after{display:none}
.home-page .feature-content h2{
  font-size:clamp(45px,4.7vw,66px);
  line-height:1.03;
  margin-bottom:42px;
  text-wrap:balance;
}
.home-page .feature-content h3{
  font-size:28px;
  padding:0 0 18px;
  margin:0 0 24px;
}
.home-page .feature-content p{max-width:550px}
.home-page .feature-badges{
  margin-top:30px;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.home-page .feature-badges span{
  min-height:64px;
  border-radius:12px;
  background:rgba(255,255,255,.64);
}

/* PROCESS — correct 2048x1257 image ratio */
.home-page .process-section{
  padding-top:175px;
  padding-bottom:160px;
}
.home-page .process-section .section-heading{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  gap:10%;
  align-items:start;
}
.home-page .process-section .section-heading>p{
  max-width:560px;
  justify-self:end;
}
.home-page .process-layout{
  grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);
  gap:7%;
  align-items:center;
}
.home-page .process-photo{
  width:100%;
  height:auto;
  aspect-ratio:2048/1257;
  border-radius:20px;
  overflow:hidden;
  background:#f2edf2;
  box-shadow:0 30px 70px rgba(52,28,57,.10);
}
.home-page .process-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.home-page .process-steps>div{
  min-height:132px;
  padding-top:30px;
  padding-bottom:30px;
}

/* ZONE — two intentional rows, no mismatched image crops */
.home-page .zone-section{
  padding:132px 0 142px;
  background:
    radial-gradient(circle at 88% 14%,rgba(177,111,198,.10),transparent 25%),
    linear-gradient(155deg,#f8f4f9 0%,#eee3f1 56%,#f8f4f9 100%);
}
.zone-stack{
  display:flex;
  flex-direction:column;
  gap:28px;
}
.zone-row{
  display:grid;
  align-items:center;
  gap:24px;
}
.zone-row-landscape{
  grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr);
}
.zone-row-portrait{
  grid-template-columns:minmax(280px,.62fr) minmax(0,1.38fr);
}
.home-page .zone-copy{
  width:100%;
  height:100%;
  min-height:0;
  padding:52px;
  border-radius:18px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(74,46,82,.08);
  box-shadow:0 22px 56px rgba(57,30,65,.06);
}
.home-page .zone-copy .eyebrow{margin-bottom:16px}
.home-page .zone-copy h2{
  font-size:clamp(40px,3.6vw,53px);
  max-width:520px;
  margin-bottom:24px;
}
.home-page .zone-copy .button{margin-top:auto}
.home-page .zone-image{
  width:100%;
  height:auto;
  min-height:0;
  overflow:hidden;
  background:#e9e2ea;
  border-radius:18px;
  box-shadow:0 26px 62px rgba(55,28,61,.09);
}
.home-page .zone-image-landscape{aspect-ratio:888/570}
.home-page .zone-image-portrait{
  aspect-ratio:9/16;
  width:min(100%,420px);
  justify-self:center;
}
.home-page .zone-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* REVIEWS — readable and aligned */
.home-page .testimonials{
  padding-top:142px;
  padding-bottom:130px;
}
.home-page .review-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.home-page .review-card{
  min-height:235px;
  padding:22px;
  border-radius:16px;
}
.home-page .review-card img{
  width:100%;
  height:auto;
  max-height:205px;
  object-fit:contain;
}

/* FAQ */
.home-page .faq-section{
  padding-top:45px;
  padding-bottom:135px;
}
.home-page .faq-list{max-width:900px}

/* RESPONSIVE */
@media(max-width:1150px){
  .home-page .section,
  .home-page .v2-hero-shell,
  .home-page .ring-intro{
    width:min(100% - 64px,980px);
  }
  .home-page .v2-hero-shell{
    grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr);
    gap:4%;
  }
  .home-page .v2-hero-art{height:580px}
  .feature-visual{min-height:560px}
  .home-page .feature-inner.feature-editorial{gap:7%}
  .home-page .zone-copy{padding:40px}
}
@media(max-width:900px){
  .home-page .section,
  .home-page .v2-hero-shell,
  .home-page .ring-intro{
    width:min(100% - 40px,720px);
  }
  .home-page .v2-hero{min-height:0;padding-top:112px}
  .home-page .v2-hero-shell{
    display:flex;
    flex-direction:column;
    gap:55px;
  }
  .home-page .v2-hero-copy{
    max-width:650px;
    align-self:flex-start;
  }
  .home-page .v2-hero-art{
    height:570px;
    max-width:650px;
    align-self:center;
  }
  .home-page .home-services .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .home-page .home-services .service-card:last-child{
    grid-column:1/-1;
    width:calc(50% - 11px);
    justify-self:center;
  }
  .home-page .appointment{
    grid-template-columns:1fr;
    gap:50px;
  }
  .home-page .appointment-copy{max-width:620px}
  .home-page .feature-inner.feature-editorial{
    grid-template-columns:1fr;
    gap:60px;
  }
  .feature-visual{
    min-height:620px;
    max-width:620px;
    width:100%;
    margin:auto;
  }
  .home-page .feature-content{max-width:650px}
  .home-page .process-section .section-heading{
    grid-template-columns:1fr;
    gap:30px;
  }
  .home-page .process-section .section-heading>p{justify-self:start}
  .home-page .process-layout{
    grid-template-columns:1fr;
    gap:45px;
  }
  .zone-row-landscape,
  .zone-row-portrait{
    grid-template-columns:1fr;
  }
  .zone-row-portrait .zone-image-portrait{
    max-width:420px;
    justify-self:start;
  }
}
@media(max-width:620px){
  .home-page .section,
  .home-page .v2-hero-shell,
  .home-page .ring-intro{
    width:calc(100% - 28px);
  }
  .home-page .v2-hero{
    padding-top:100px;
    padding-bottom:56px;
  }
  .home-page .v2-hero-copy h1{
    font-size:clamp(41px,11.3vw,54px);
    line-height:1;
  }
  .home-page .v2-hero-copy p{font-size:15.5px}
  .home-page .v2-hero-art{
    height:430px;
    width:100%;
  }
  .home-page .v2-hero-main{
    width:59%;
    right:13%;
  }
  .home-page .v2-hero-float{
    width:31%;
    border-width:4px;
  }
  .home-page .v2-hero-detail{
    width:27%;
    border-width:4px;
  }
  .home-page .ring-section{padding-top:72px}
  .home-page .home-services{padding-top:112px;padding-bottom:100px}
  .home-page .home-services .service-grid{
    grid-template-columns:1fr;
  }
  .home-page .home-services .service-card:last-child{
    grid-column:auto;
    width:100%;
  }
  .home-page .home-services .service-photo,
  .home-page .home-services .service-card:first-child .service-photo{
    max-width:460px;
    margin:auto;
  }
  .home-page .appointment{
    padding:62px 0 82px;
  }
  .home-page .appointment-photo{border-radius:14px}
  .home-page .feature-section{padding:92px 0 105px}
  .feature-visual{
    min-height:500px;
  }
  .feature-shot-main{width:65%}
  .feature-shot-secondary{width:46%;border-width:5px}
  .home-page .feature-content h2{font-size:42px;margin-bottom:32px}
  .home-page .feature-badges{grid-template-columns:1fr}
  .home-page .process-section{padding-top:110px;padding-bottom:110px}
  .home-page .process-photo{border-radius:14px}
  .home-page .zone-section{padding:86px 0 96px}
  .zone-stack{gap:18px}
  .home-page .zone-copy{padding:29px;border-radius:14px}
  .home-page .zone-image{border-radius:14px}
  .zone-row-portrait .zone-image-portrait{
    width:min(78%,360px);
  }
  .home-page .review-grid{grid-template-columns:1fr}
  .home-page .testimonials{padding-top:100px;padding-bottom:95px}
}
@media(max-width:400px){
  .home-page .v2-hero-art{height:365px}
  .home-page .v2-hero-detail{display:none}
  .home-page .v2-hero-main{width:66%;right:4%}
  .home-page .v2-hero-float{width:36%}
  .feature-visual{min-height:430px}
  .home-page .feature-content h2{font-size:38px}
}
