:root{
  --ink:#17131d;--muted:#716a78;--paper:#fffaf6;--white:#fff;--pink:#ff5f91;
  --orange:#ff8a4c;--violet:#7c5cff;--lime:#c6ef57;--yellow:#ffdb69;--line:#e9e1e8;
  --shadow:0 24px 70px rgba(50,28,55,.12);--r:24px
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}
.wrap{width:min(1180px,calc(100% - 36px));margin:auto}
.nav{position:sticky;top:0;z-index:50;background:rgba(255,250,246,.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.navin{height:76px;display:flex;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.04em;white-space:nowrap}
.mark{width:40px;height:40px;border-radius:14px;background:conic-gradient(from 220deg,var(--pink),var(--orange),var(--lime),var(--violet),var(--pink));position:relative;box-shadow:0 10px 28px rgba(124,92,255,.25)}
.mark:after{content:"";position:absolute;inset:10px;border-radius:50%;background:white}
.navlinks{margin-left:auto;display:flex;gap:18px;align-items:center;font-weight:750}.navlinks a:hover,.navlinks a.active{color:var(--violet)}
.menuToggle{display:none;margin-left:auto;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:14px;background:var(--ink);color:white;font-weight:800}
.previewNotice{text-align:center;padding:10px 16px;background:#fff3c4;color:#574516;font-size:13px;line-height:1.5}
.bookingError{margin:14px 0;padding:14px;border:1px solid #e6a4a4;border-radius:14px;background:#fff1f1;color:#8a2020;line-height:1.5}
.bookingError:empty{display:none}
:focus-visible{outline:3px solid var(--violet)!important;outline-offset:3px}
.pill,.primary,.secondary{border:0;border-radius:999px;font-weight:850}.pill,.primary{background:var(--ink);color:#fff}.pill{padding:13px 18px}.primary{padding:16px 23px;display:inline-flex;align-items:center;justify-content:center}.secondary{padding:16px 23px;background:#fff;border:1px solid var(--line)}
.hero{padding:58px 0 42px}.heroGrid,.pageHeroGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(198,239,87,.22)}
h1{font-size:clamp(52px,6.3vw,88px);line-height:.93;letter-spacing:-.065em;margin:18px 0 20px}h2{font-size:clamp(38px,4.6vw,62px);line-height:1;letter-spacing:-.055em;margin:0}
.lead,.sub{color:var(--muted);line-height:1.65}.lead{font-size:19px;max-width:720px}.sub{max-width:720px}.paintWord{color:var(--pink)}
.heroCtas{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.socialproof{margin-top:22px;font-size:13px;color:var(--muted)}.stars{color:#f4b942;margin-right:8px}
.heroMedia,.pageHeroMedia{height:540px;border-radius:38px;overflow:hidden;position:relative;background:linear-gradient(135deg,#ffdfe9,#fff1be 48%,#ddd2ff);box-shadow:var(--shadow)}
.heroMedia img,.pageHeroMedia img{width:100%;height:100%;object-fit:cover;display:block}.heroMedia:after,.pageHeroMedia:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,13,25,.32),transparent 55%)}
.floating{position:absolute;z-index:2;background:rgba(255,255,255,.94);border-radius:20px;padding:14px 16px;box-shadow:0 18px 45px rgba(0,0,0,.15)}.float1{left:18px;bottom:18px}.float2{right:18px;top:18px}
.floating b{display:block}.floating small{display:block;color:var(--muted);margin-top:3px}.fi{font-size:23px}
.section{padding:86px 0}.dark{background:#17131d;color:#fff}.dark .sub{color:#cbc4cf}
.quickHead{display:grid;grid-template-columns:1fr .8fr;gap:42px;align-items:end}.cards,.infoGrid,.howGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
.typeCard,.infoCard,.howCard{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px}.typeCard{position:relative;overflow:hidden;cursor:pointer}.typeCard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.typeCard h3,.infoCard h3,.howCard h3{margin:16px 0 8px;font-size:23px}.typeCard p,.infoCard p,.howCard p{margin:0;color:var(--muted);line-height:1.6}.price{font-size:27px;font-weight:900;margin-top:18px}.price small{font-size:12px;color:var(--muted)}
.cardAction{display:flex;justify-content:space-between;margin-top:20px;font-weight:850}.icon{font-size:30px}.accent{position:absolute;top:0;left:0;right:0;height:6px}.a1{background:var(--pink)}.a2{background:var(--violet)}.a3{background:var(--orange)}
.phoneWrap{display:grid;grid-template-columns:.86fr 1.14fr;gap:52px;align-items:center}.phoneShell{background:#16131d;border-radius:72px;padding:18px;box-shadow:var(--shadow)}.phone{background:#f7f5fa;border-radius:55px;padding:58px 26px 28px;position:relative}.phone:before{content:"";position:absolute;top:0;left:31%;right:31%;height:46px;background:#302a36;border-radius:0 0 28px 28px}
.phoneCard{background:#fff;border:1px solid #e5dfe8;border-radius:28px;padding:22px}.phoneTitle{font-weight:900;font-size:20px;margin-bottom:12px}.tabs{display:flex;background:#f0ebf2;border-radius:18px;padding:6px}.tab{flex:1;border:0;background:transparent;padding:12px 8px;border-radius:14px;font-weight:850}.tab.active{background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.monthLabel{font-size:12px;font-weight:850;margin:18px 0 8px}.miniCal{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day{height:46px;border:0;border-radius:14px;background:#f5f1f5;display:flex;align-items:center;justify-content:center}.day.head{background:transparent;font-weight:750}.day.available{background:#17131d;color:#fff}.day.selected{background:var(--yellow)!important;color:var(--ink)!important}.day:disabled{opacity:.35}.calendarHint{font-size:11px;color:var(--muted);margin-top:9px;min-height:16px}
.calendarCTA{width:100%;margin-top:18px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:32px}.stat{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;color:var(--ink)}.stat strong{display:block;font-size:27px}.stat span{font-size:12px;color:var(--muted)}
.storySplit{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}.storyImage{height:500px;border-radius:32px;overflow:hidden;box-shadow:var(--shadow)}.storyImage img{width:100%;height:100%;object-fit:cover}
.checkList{display:grid;gap:13px;margin-top:24px}.checkItem{display:flex;gap:12px}.checkBubble{flex:0 0 34px;height:34px;border-radius:11px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;font-weight:900}.checkItem b{display:block}.checkItem span{display:block;color:var(--muted);font-size:14px;line-height:1.5;margin-top:3px}
.photoStrip{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:14px;margin-top:30px}.photoStrip img{width:100%;height:300px;object-fit:cover;border-radius:24px}
.faqGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}.faqCard{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px}.faqCard h3{font-size:19px;margin:0 0 8px}.faqCard p{margin:0;color:var(--muted);line-height:1.6}
.bookingShell{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:28px}.panel{background:#fff;border:1px solid var(--line);border-radius:30px;padding:26px}.summary{background:#faf7fb}.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{margin:11px 0}.field label,.slotLabel{display:block;font-size:12px;font-weight:850;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;outline:none}
.slotGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:10px 0 16px}.slot{padding:12px 8px;border:1px solid var(--line);border-radius:14px;background:#fff;font-weight:800}.slot.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.slot:disabled{opacity:.35;text-decoration:line-through}
.sumrow{display:flex;justify-content:space-between;gap:14px;padding:10px 0;color:var(--muted);font-size:14px}.sumrow strong{color:var(--ink)}.sumrow.total{border-top:1px solid var(--line);margin-top:5px;padding-top:15px;font-size:18px;font-weight:900;color:var(--ink)}
.notice{margin-top:14px;padding:15px;border-radius:17px;background:#fff8d7;color:#6e5a04;font-size:12px;line-height:1.55}.success{display:none;margin-top:14px;padding:18px;border-radius:18px;background:#effae8;border:1px solid #d7edca;color:#2d6b1e}.success.show{display:block}
.paymentChoiceGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.paymentChoice,.tipBtn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:12px;font-weight:800}.paymentChoice.active,.tipBtn.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.tipGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.tipBtn{font-size:12px;padding:10px 5px}.customTip{display:none}.customTip.show{display:block}
.footer{padding:42px 0 55px;border-top:1px solid var(--line);color:#655e6d}.foot{display:flex;justify-content:space-between;gap:30px}
@media(max-width:900px){.heroGrid,.pageHeroGrid,.quickHead,.phoneWrap,.storySplit,.bookingShell{grid-template-columns:1fr}.cards,.infoGrid,.howGrid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.navlinks a{display:none}.photoStrip{grid-template-columns:1fr 1fr}.photoStrip img:first-child{grid-column:1/-1}}
@media(max-width:620px){.wrap{width:min(100% - 24px,1180px)}.navin{height:68px}.hero{padding-top:34px}h1{font-size:50px}.heroMedia,.pageHeroMedia{height:420px}.section{padding:62px 0}.fieldrow,.faqGrid,.photoStrip{grid-template-columns:1fr}.photoStrip img:first-child{grid-column:auto}.stats{grid-template-columns:1fr 1fr}.tipGrid{grid-template-columns:repeat(3,1fr)}.paymentChoiceGrid{grid-template-columns:1fr}}


/* Single-file page routing */
.appPage{display:none}
.appPage.active{display:block}
.appPage{min-height:60vh}
.navlinks a.active{color:var(--violet)}
.routeAnchor{scroll-margin-top:90px}
body{overflow-x:hidden}
@media(max-width:900px){
  .navlinks a.routeNav{display:none}
}

:root{--muted:#5f5768;}
body{color:#17131d;}
.sub,.lead,.faqCard p,.typeCard p,.infoCard p,.howCard p,.notice,.sumrow,.floating small{color:var(--muted)!important;}
.dark .sub{color:#ddd7e3!important;}
.secondary{color:var(--ink)!important;display:inline-flex;align-items:center;justify-content:center;}
.dark .secondary{color:var(--ink)!important;}
.slot,.tipBtn,.paymentChoice,.tab,.day,.field input,.field select,.field textarea{color:var(--ink)!important;}
.slot.selected,.tipBtn.active,.paymentChoice.active,.pill,.primary,.day.available,.day.selected{color:#fff!important;}
.day.selected{color:var(--ink)!important;}
.field input,.field select,.field textarea{background:#fff;}
.typeCard,.infoCard,.howCard,.faqCard,.panel,.stat,.phoneCard{box-shadow:0 10px 30px rgba(23,19,29,.05);}
.heroMedia,.pageHeroMedia,.storyImage,.photoStrip img{background:#eee7ec;}
.storyImage img,.photoStrip img,.heroMedia img,.pageHeroMedia img{display:block;filter:saturate(1.02) contrast(1.02);}
.quickHead .sub{font-size:18px;}
.checkItem span{color:#bbb2c0;}
.dark .checkItem span{color:#cfc6d4;}
#page-home .photoStrip img{height:340px;}
#page-open .photoStrip img,#page-private .photoStrip img,#page-mobile .photoStrip img{height:280px;}
/* Better spacing and slightly more polish */
.section{padding:90px 0;}
@media(max-width:900px){
  .section{padding:64px 0;}
  #page-home .photoStrip img,#page-open .photoStrip img,#page-private .photoStrip img,#page-mobile .photoStrip img{height:260px;}
}

/* Smaller, more editorial homepage hero video */
.homeHeroVideo{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
#page-home .heroMedia{
  height:470px;
  max-width:500px;
  margin-left:auto;
}
#page-home .heroMedia:after{
  pointer-events:none;
}

/* Comparison cards */
.compareSection{overflow:hidden}
.compareHead{margin-bottom:8px}
.compareGrid{
  display:grid;
  grid-template-columns:1fr 1fr .82fr;
  gap:18px;
  margin-top:30px;
  align-items:stretch;
}
.compareCard{
  border-radius:28px;
  padding:26px;
  min-height:320px;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.08);
  transition:transform .2s ease,box-shadow .2s ease;
}
.compareCard:hover{transform:translateY(-4px);box-shadow:0 26px 65px rgba(0,0,0,.18)}
.privateCompare{
  background:linear-gradient(145deg,#f2ebff,#ffffff);
  color:var(--ink);
}
.mobileCompare{
  background:linear-gradient(145deg,#fff0e6,#ffffff);
  color:var(--ink);
}
.helpCompare{
  background:linear-gradient(145deg,#27212e,#211b27);
  color:#fff;
  border-color:#3b3342;
}
.compareTop{display:flex;justify-content:space-between;align-items:center;gap:12px}
.compareIcon{
  width:48px;height:48px;border-radius:16px;background:rgba(255,255,255,.8);
  display:grid;place-items:center;font-size:24px;border:1px solid rgba(23,19,29,.07)
}
.helpCompare .compareIcon{background:#342d3b;border-color:#493f51}
.compareTag{
  padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.75);
  font-size:11px;font-weight:850;letter-spacing:.06em;text-transform:uppercase
}
.helpCompare .compareTag{background:#332c39;color:#eee}
.compareCard h3{font-size:30px;letter-spacing:-.045em;margin:24px 0 9px;color:inherit!important}
.compareIntro{font-size:15px;line-height:1.6;color:#655c6d!important;min-height:72px}
.helpCompare .compareIntro{color:#cec5d3!important}
.compareFacts{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 22px}
.compareFacts span{
  padding:9px 11px;background:rgba(255,255,255,.76);border:1px solid rgba(23,19,29,.06);
  border-radius:12px;font-size:12px;color:#5d5464
}
.compareFacts b{color:var(--ink)}
.miniQuestions{display:grid;gap:8px;margin:8px 0 20px}
.miniQuestions span{
  padding:10px 12px;border-radius:12px;background:#312a38;color:#ddd4e1;font-size:12px;
  border:1px solid #403747
}
.compareAction{
  margin-top:auto;padding-top:18px;border-top:1px solid rgba(23,19,29,.08);
  display:flex;justify-content:space-between;gap:14px;align-items:center;font-weight:850;font-size:13px
}
.helpCompare .compareAction{border-top-color:#403747;color:#fff}

/* Social */
.socialSection{
  background:linear-gradient(180deg,#fffaf6,#fff2f6);
}
.socialLayout{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:56px;
  align-items:center;
}
.socialButtons{display:grid;gap:12px;margin-top:28px;max-width:500px}
.socialButton{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  padding:16px 18px;
  border-radius:20px;
  color:#fff;
  box-shadow:0 15px 35px rgba(32,20,39,.12);
  transition:transform .2s ease;
}
.socialButton:hover{transform:translateY(-3px)}
.instagramButton{background:linear-gradient(120deg,#6d3df1,#d52a8c 55%,#f3a43b)}
.tiktokButton{background:#17131d}
.socialGlyph{font-size:30px;font-weight:900;width:38px;text-align:center}
.socialButton b{display:block;font-size:18px}
.socialButton small{display:block;opacity:.78;margin-top:2px}
.socialArrow{font-size:21px}
.socialPreview{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:14px;
  height:510px;
}
.socialPreviewStack{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.socialThumb{
  border-radius:26px;
  overflow:hidden;
  background:#eee7ec;
  box-shadow:0 22px 55px rgba(50,28,55,.12);
  position:relative;
}
.socialThumb img{width:100%;height:100%;object-fit:cover;display:block}
.socialThumb:after{
  content:"@paintinghangout";
  position:absolute;left:14px;bottom:14px;
  background:rgba(23,19,29,.78);color:#fff;
  padding:8px 11px;border-radius:999px;
  font-size:11px;font-weight:800;
  backdrop-filter:blur(10px)
}

@media(max-width:900px){
  #page-home .heroMedia{height:420px;max-width:none;margin-left:0}
  .compareGrid{grid-template-columns:1fr 1fr}
  .helpCompare{grid-column:1/-1;min-height:240px}
  .socialLayout{grid-template-columns:1fr}
  .socialPreview{height:470px}
}
@media(max-width:650px){
  #page-home .heroMedia{height:390px}
  .compareGrid{grid-template-columns:1fr}
  .helpCompare{grid-column:auto}
  .compareCard{min-height:280px}
  .socialPreview{grid-template-columns:1fr;height:auto}
  .socialThumb,.socialThumbTall{height:300px}
  .socialPreviewStack{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .socialPreviewStack .socialThumb{height:210px}
}

/* Accessible disclosure navigation for phones and tablets. */
@media(max-width:900px){
  .navin{position:relative;gap:12px}
  .menuToggle{display:block}
  .navlinks{display:none;position:absolute;left:0;right:0;top:100%;margin:0;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:0 0 20px 20px;box-shadow:var(--shadow);max-height:calc(100dvh - 90px);overflow-y:auto;align-items:stretch;gap:4px;flex-direction:column}
  .navlinks.is-open{display:flex}
  .navlinks a,.navlinks a.routeNav{display:block;padding:13px 16px;min-height:44px}
  .navlinks a.pill{margin-top:6px;text-align:center}
  .phone{padding-left:14px;padding-right:14px}
  .phoneCard{padding:14px}
  .miniCal{gap:4px}
  .day{min-width:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
