: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;}
.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;}
}

/* Restore the original image-sized homepage hero with full-column video. */
.homeHeroVideo{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
#page-home .heroMedia{
  width:100%;
  min-width:0;
  height:540px;
  max-width:none;
  margin-left:0;
}
#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:minmax(0,1fr) minmax(0,1fr);gap:14px;min-height:0;min-width:0}
.socialThumb{
  min-height:0;min-width:0;
  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}}


/* Carry the experience-card accents and readable dark type into the supporting cards. */
.infoCard{position:relative;overflow:hidden;color:var(--ink);padding:26px 24px 24px}
.infoCard::before,.privateCompare::before,.mobileCompare::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--pink)}
.infoCard:nth-child(3n + 2)::before,.privateCompare::before{background:var(--violet)}
.infoCard:nth-child(3n)::before,.mobileCompare::before{background:var(--orange)}
.infoCard h3{color:var(--ink);font-size:23px;letter-spacing:-.025em;margin:16px 0 8px}
.infoCard .icon{font-size:30px;line-height:1.3}
.phoneCard{color:var(--ink)}
.privateCompare,.mobileCompare{position:relative;overflow:hidden;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:24px;padding:26px 24px 24px;min-height:0;box-shadow:0 10px 30px rgba(23,19,29,.05)}
.privateCompare .compareIcon,.mobileCompare .compareIcon{width:auto;height:auto;display:block;background:none;border:0;border-radius:0;font-size:30px}
.privateCompare .compareTag{background:#f2ebff;color:#5d3b9c}
.mobileCompare .compareTag{background:#fff0e6;color:#864522}
.privateCompare h3,.mobileCompare h3{font-size:26px;margin:18px 0 8px;letter-spacing:-.03em}
.privateCompare .compareIntro,.mobileCompare .compareIntro{min-height:0;margin:0 0 18px;font-size:15px;line-height:1.6}
.privateCompare .compareFacts,.mobileCompare .compareFacts{margin:0 0 24px}
.privateCompare .compareFacts span{background:#faf7ff}
.mobileCompare .compareFacts span{background:#fff9f4}

/* Separate the gallery, social stories, reviews, and footer into distinct spaces. */
.socialSection{background:#eee8fa;border-top:1px solid #e0d6ef;border-bottom:1px solid #e0d6ef;padding:100px 0}
.reviewsSection{background:var(--paper);padding:112px 0 100px}
.reviewsSection .cards{margin-top:38px}
.aboutSection{background:#fff1e6}
.aboutSection .primary{margin-top:12px}
.footer{background:#292035;color:#f8f3ff;border-top:6px solid var(--violet);padding:64px 0 28px}
.foot{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:48px}
.footerBrand p{color:#ded3e8;line-height:1.6}
.footerBrand .footerNote{font-size:14px;max-width:290px}
.footerLinks{display:grid;align-content:start;gap:14px;font-size:14px}
.footerLinks strong{color:#fff;margin-bottom:6px;font-size:16px}
.footerLinks a{color:#ded3e8;justify-self:start}
.footerLinks a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.footerBottom{margin-top:42px;padding-top:24px;border-top:1px solid #51425f;color:#c8b9d6;font-size:12px}
@media(max-width:620px){.socialSection{padding:72px 0}.reviewsSection{padding:80px 0}.foot{grid-template-columns:1fr 1fr;gap:32px 20px}.footerBrand{grid-column:1/-1}.footer{padding-top:46px}.footerBottom{line-height:1.6}}

/* Give the booking summary cards the same playful finish as the experience cards. */
.bookingCards .infoCard{background:linear-gradient(155deg,#ffe7ef,#fff 85%);border-color:#f3cad9;box-shadow:0 12px 28px rgba(0,0,0,.12);padding:26px 22px}
.bookingCards .infoCard:nth-child(2){background:linear-gradient(155deg,#eee7ff,#fff 85%);border-color:#d9cef5}
.bookingCards .infoCard:nth-child(3){background:linear-gradient(155deg,#ffecdd,#fff 85%);border-color:#f2d4bd}
.bookingCards .icon{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:rgba(255,255,255,.85);border:1px solid rgba(23,19,29,.07);box-shadow:0 5px 12px rgba(50,28,55,.05)}
.bookingCards .infoCard h3{margin-top:20px}
.bookingCards .infoCard p{color:#60566b}
.studioHeading h2{margin-top:16px}
.studioHeading .sub{margin:20px 0 0;max-width:680px}

/* Clear checklist bullets and stacked homepage section introductions. */
.checkItem span.checkBubble{display:grid;place-items:center;flex:0 0 22px;width:22px;height:28px;margin:0;border:0;border-radius:0;background:none;color:var(--pink);font-size:30px;line-height:1}
.stackedHeading{display:block}.stackedHeading h2{margin-top:16px}.stackedHeading .sub{margin:20px 0 0;max-width:720px}
.aboutNav{position:relative}.aboutNav summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:7px;padding:12px 0}.aboutNav summary::-webkit-details-marker{display:none}
.aboutDropdown{position:absolute;right:0;top:100%;width:260px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:var(--shadow)}
.aboutDropdown a{display:block;padding:13px 12px;border-radius:10px}.aboutDropdown a:hover{background:#eee8fa}
.occasionsHero{background:#f4edff}.occasionsHero h1{font-size:clamp(48px,5.4vw,74px)}
.occasionsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:34px}
.occasionCard{padding:32px;background:#fff;border:1px solid var(--line);border-radius:28px;border-top:6px solid var(--pink);display:flex;flex-direction:column;align-items:flex-start}
.occasionCard:nth-child(3n+2){border-top-color:var(--violet)}.occasionCard:nth-child(3n){border-top-color:var(--orange)}
.occasionIcon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#f2ebff;color:var(--color-purple);font-size:30px}
.occasionCard h3{font-size:28px;letter-spacing:-.03em;margin:22px 0 8px}.occasionCard p{color:var(--muted);line-height:1.65;margin:8px 0}
.occasionCard .occasionFit{font-size:14px;padding-top:16px;border-top:1px solid var(--line);margin-top:18px}
.occasionLink{font-weight:850;margin-top:auto;padding-top:20px;line-height:1.5;color:var(--color-purple)}
#page-occasions .typeCard{color:var(--ink)}.occasionPlanning{background:#fff1e6}
@media(max-width:900px){.aboutNav summary{padding:13px 16px;min-height:44px}.aboutDropdown{position:static;width:100%;box-shadow:none;background:#f2ebff}.occasionsGrid{gap:16px}}
@media(max-width:620px){.occasionsGrid{grid-template-columns:1fr}.occasionCard{padding:26px}.occasionsHero .heroCtas{gap:20px}}

/* About Us: a clear introduction, three values, and a framed studio photograph. */
.aboutSection{background:linear-gradient(125deg,#fff4e9 0%,#fffaf6 50%,#f0eaff 100%)}
.aboutLayout{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:center}
.aboutCopy h2{font-size:clamp(38px,4.2vw,58px);margin:20px 0;line-height:1.04}.aboutCopy h2 span{color:#7950c9}
.aboutIntro{font-size:18px;line-height:1.7;color:var(--muted);max-width:580px}
.aboutValues{display:grid;gap:14px;margin-top:26px}.aboutValue{display:flex;gap:14px;padding:16px 18px;background:rgba(255,255,255,.8);border:1px solid var(--line);border-radius:20px}
.aboutValue>span{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f2eaff;color:var(--color-purple);font-size:25px}
.aboutValue:nth-child(2)>span{background:#ffe5ef;color:var(--color-pink)}.aboutValue:nth-child(3)>span{background:#ffeddb;color:var(--color-orange)}
.aboutValue h3{font-size:17px;margin:0 0 5px}.aboutValue p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}
.aboutTextLink{font-weight:800;color:var(--color-purple);align-self:center;line-height:1.5}
.aboutVisual{position:relative;min-height:620px;border:10px solid #fff;border-radius:36px;overflow:hidden;box-shadow:var(--shadow)}
.aboutVisual>img{position:absolute;width:100%;height:100%;object-fit:cover}.aboutVisual::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(23,19,29,.85))}
.aboutCaption{position:absolute;bottom:30px;left:26px;right:26px;z-index:1;color:#fff}.aboutCaption .eyebrow{color:var(--ink);font-size:10px}.aboutCaption p{font-size:32px;line-height:1.18;letter-spacing:-.03em;margin:16px 0 0}
#occasions-formats .eyebrow{color:var(--ink)}
@media(max-width:900px){.aboutLayout{grid-template-columns:1fr;gap:32px}.aboutVisual{min-height:460px}}
@media(max-width:620px){.aboutVisual{min-height:390px;border-width:7px}.aboutCaption{left:20px;bottom:24px}.aboutCopy .heroCtas{gap:20px}.aboutIntro{font-size:17px}}

/* Site-wide guided conversation. */
.chatLauncher{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:calc(22px + env(safe-area-inset-bottom));z-index:80;display:flex;align-items:center;gap:10px;border:1px solid #a18adc;border-radius:999px;background:#352045;color:#fff;padding:16px 21px;font-weight:850;box-shadow:0 10px 35px #17131d33;min-height:52px}
.chatLauncher>span{color:#ffb3cf;font-size:22px}.chatLauncher:hover{background:#593577}
.paintChat[hidden]{display:none}.paintChat{position:fixed;right:22px;bottom:calc(88px + env(safe-area-inset-bottom));width:390px;max-width:calc(100vw - 24px);height:650px;max-height:calc(100dvh - 115px);z-index:81;display:flex;flex-direction:column;background:#fffaf6;color:var(--ink);border:1px solid var(--line);border-radius:26px;box-shadow:0 20px 80px #17131d40;overflow:hidden}
.chatHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;background:#352045;color:#fff}.chatHeader strong{font-size:18px}.chatHeader small{display:block;margin-top:5px;color:#e1d3ec;font-size:12px}.chatHeader button{border:0;background:#ffffff18;color:#fff;border-radius:50%;font-size:25px;width:44px;height:44px}
.chatNotice{padding:9px 14px;font-size:11px;background:#fff3c4;color:#574516;text-align:center}
.chatLog{overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:100px;padding:16px;scroll-behavior:smooth}.chatMessage{margin:0 20px 12px 0;padding:13px 15px;background:#fff;border:1px solid var(--line);border-radius:16px 16px 16px 4px;font-size:14px;line-height:1.6;white-space:pre-line}.chatMessage.guest{margin-left:35px;margin-right:0;background:#ede5fb;border-color:#dcd0ef;border-radius:16px 16px 4px 16px}
.chatActions{padding:12px 16px;display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);max-height:48%;overflow-y:auto;flex-shrink:0;overscroll-behavior:contain}.chatActions button{background:#fff;color:#623a86;border:1px solid #d8c7e8;border-radius:12px;padding:11px 12px;font-size:13px;font-weight:750;min-height:44px;text-align:left}.chatActions button:hover{background:#f0e7fa}.chatFooter{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;background:#f0eaf5;font-size:10px;color:#655271}.chatFooter button{border:0;background:none;color:#603983;font-size:12px;min-height:36px;text-decoration:underline}
.chatBooking{display:grid;gap:10px;width:100%}.chatBooking label{font-size:12px;font-weight:800;display:grid;gap:5px}.chatBooking input{width:100%;min-width:0;padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.chatFormNote{font-size:11px;margin:0;color:var(--muted)}.chatBooking button[type=submit]{background:#352045;color:#fff}
@media(max-width:620px){.chatLauncher{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:12px 16px;font-size:13px}.paintChat{right:12px;bottom:calc(78px + env(safe-area-inset-bottom));max-height:calc(100dvh - 92px);border-radius:20px}.chatHeader{padding:12px 16px}.chatActions{max-height:48%}}
@media(prefers-reduced-motion:reduce){.chatLog{scroll-behavior:auto}}

/* Official wordmarks: pink on light navigation, white on the dark footer. */
.brandLogo{display:block;width:190px;height:auto;max-width:100%;object-fit:contain}
.nav .brand{background:transparent;padding:9px 13px;border-radius:14px;flex-shrink:0}
.footer .brandLogo{width:230px}.footerLinks a{overflow-wrap:anywhere}
.chatActions>a{display:block;width:100%;padding:11px 12px;min-height:44px;background:#ede5fb;border:1px solid #d8c7e8;border-radius:12px;color:#623a86;font-size:13px;font-weight:750;overflow-wrap:anywhere}
.chatActions>a:hover{background:#e0d2f1}
@media(max-width:620px){.nav .brandLogo{width:156px}.nav .brand{padding:8px 11px}.footer .brandLogo{width:210px}}

/* Open Classes: distinct booking, inspiration, and FAQ sections. */
#open-booking,#private-booking,#mobile-booking{background:#eee8fa;border-bottom:1px solid #ddd2ef;padding:96px 0}
#open-booking .panel,#private-booking .panel,#mobile-booking .panel{box-shadow:0 14px 36px rgba(62,37,89,.07)}
#open-booking .summary,#private-booking .summary,#mobile-booking .summary{background:#fffaf6;border-top:5px solid var(--violet)}
.openStory,.eventStory{background:#fffaf6;padding:100px 0}
.openStory .storyImage,.eventStory .storyImage{border:8px solid #fff;box-shadow:0 18px 50px rgba(62,37,89,.12)}
.openStory h2,.eventStory h2{max-width:550px}
.openFaq,.eventFaq{background:#fff0e4;border-top:1px solid #f0dccd;padding:94px 0 104px}
.openFaq .faqGrid,.eventFaq .faqGrid{gap:20px;margin-top:34px}
.openFaq .faqCard,.eventFaq .faqCard{border-color:#eaded5;border-top:4px solid var(--orange);padding:26px;box-shadow:0 8px 24px rgba(89,52,29,.04)}
.openFaq .faqCard:nth-child(2n),.eventFaq .faqCard:nth-child(2n){border-top-color:var(--violet)}
@media(max-width:620px){#open-booking,#private-booking,#mobile-booking,.openStory,.eventStory,.openFaq,.eventFaq{padding:66px 0}.openFaq .faqCard,.eventFaq .faqCard{padding:22px}}

.contactSection{background:linear-gradient(135deg,#f2ebff,#fffaf6 65%)}
.contactLayout{display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;margin-top:42px;align-items:start}
.contactDetails h2,.contactForm h2{font-size:32px;line-height:1.1;letter-spacing:-.035em;margin:0 0 24px}
.contactMethod{display:block;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin:14px 0;overflow-wrap:anywhere}
.contactMethod span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.contactMethod strong{font-size:19px;color:#633d88}
.contactHelp{padding:22px;background:#fff0e4;border:1px solid #efddcd;border-radius:20px;margin-top:24px}.contactHelp h3{margin:0 0 10px;font-size:18px}.contactHelp p{margin:0;line-height:1.7;color:var(--muted)}
.contactForm textarea{resize:vertical;min-height:140px}.inquiryDetails{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.inquiryDetails h3{margin:0 0 10px}.inquiryNote{font-size:12px;line-height:1.6}
@media(max-width:900px){.contactLayout{grid-template-columns:1fr;gap:28px}}

.formHoney{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Keep estimates within their booking section, beneath the site navigation. */
body{overflow-x:clip}
.bookingShell{align-items:start}
.bookingShell>.summary{position:sticky;top:116px;max-height:calc(100dvh - 140px);overflow-y:auto;align-self:start}
.paintingOptions{border:0;padding:0;margin:24px 0;min-width:0;display:grid;gap:10px}
.paintingOptions legend{font-size:14px;font-weight:850;margin-bottom:12px;line-height:1.5}
.paintingOption{display:flex;align-items:center;gap:13px;padding:16px;background:#fff;border:1px solid #e2dbea;border-radius:18px;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
.paintingOption:has(input:checked){background:#f2ecff;border-color:var(--violet);box-shadow:0 0 0 1px var(--violet)}
.paintingOption:hover{background:#f8f4ff;border-color:var(--violet)}
.paintingOption:focus-within{outline:3px solid #bdaaff;outline-offset:3px}
.paintingOption input{width:19px;height:19px;flex:0 0 19px;accent-color:var(--violet);margin:0}
.paintingOption strong,.paintingOption small{display:block}.paintingOption strong{font-size:14px;color:var(--ink)}.paintingOption small{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.5}
.field input[type=file]{padding:12px;background:#faf7ff;border:1px dashed #baa3e5;border-radius:18px;font-size:12px;color:var(--muted);cursor:pointer}
.field input[type=file]::file-selector-button{font:inherit;font-weight:800;background:#ede4ff;color:#472379;border:1px solid #d7c4f3;border-radius:999px;padding:12px 18px;margin-right:12px;cursor:pointer;transition:background .15s}
.field input[type=file]:hover::file-selector-button{background:#dfcff9}
.field input[type=file]:focus-visible{outline:3px solid #bdaaff;outline-offset:3px}
@media(max-width:900px){.bookingShell>.summary{position:static;max-height:none;overflow:visible}}

.bookingConsent{display:flex;gap:12px;align-items:flex-start;margin:18px 0;font-size:15px;line-height:1.6}.bookingConsent[hidden]{display:none}.bookingConsent input{width:20px;flex:0 0 20px;margin-top:5px}

/* Quick guide and inline date selection */
.noticeTag{display:inline-flex;margin:4px 0 14px;padding:7px 11px;border-radius:999px;background:#f0e9ff;color:#493371;font-size:13px;font-weight:750;line-height:1.4}
.homeTimes{margin-top:16px;display:grid;gap:10px;text-align:left;color:#17131d;font-size:15px;line-height:1.5}.homeTimes[hidden]{display:none}.homeTimes p{margin:0}.homeTimes a{color:#6242bb;font-weight:750}.homeTimes .slot{text-align:left;width:100%;white-space:normal}.helpCompare .primary{margin-top:22px;width:100%;white-space:normal}.calendarCTA:disabled{opacity:.65;cursor:wait}

/* Clear typography and local studio cues. */
body{font-family:'Open Sans',sans-serif}
p,.sub,.lead,.dark .sub,.footerBrand p{font-family:'Open Sans',sans-serif;color:#000!important}
.dark{background:#eee8f6;color:var(--ink)}
.dark .checkItem span{color:#000}
.footerBrand{background:transparent;padding:0;border-radius:0}
.footerBrand .brandLogo{filter:brightness(0) invert(1)}
.footer .footerBrand p{color:#fff!important}
.aboutCaption{background:rgba(255,250,246,.94);padding:18px;border-radius:20px;color:#000}
.byobBadge,.locationBadge{display:inline-flex;align-items:center;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:700;background:#e6efca;color:#15200b;margin-top:14px}
.locationBadge{background:#eee5f7;color:#23142f}.heroBadges{display:flex;gap:8px;flex-wrap:wrap}
#experience-builder{scroll-margin-top:96px}
.guestPhotoGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}
.guestPhotoGrid figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden}
.guestPhotoGrid img{display:block;width:100%;height:300px;object-fit:cover}
.guestPhotoGrid figcaption{padding:18px;font-size:14px;font-weight:700}
.checkoutReview{border:1px solid var(--line);border-radius:28px;padding:28px;max-width:520px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;background:var(--paper);color:var(--ink)}
.checkoutReview::backdrop{background:#17131dbb}.checkoutReview h2{font-size:30px;letter-spacing:-.03em}.checkoutReview .field{margin-top:24px}.reviewActions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.reviewAmount{font-size:20px;font-weight:800}
@media(max-width:700px){.guestPhotoGrid{grid-template-columns:1fr 1fr}.guestPhotoGrid img{height:230px}}
@media(max-width:440px){.guestPhotoGrid{grid-template-columns:1fr}.guestPhotoGrid img{height:320px}}
.helpCompare{background:linear-gradient(145deg,#e7edd3,#fff);color:var(--ink);border-color:var(--line)}
.helpCompare .compareIntro{color:#000!important}.helpCompare .compareAction{color:var(--ink);border-color:var(--line)}
p.compareIntro,p.notice{color:#000!important}

.calendarNav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:18px;margin-bottom:12px}.calendarNav button{border:1px solid var(--line);border-radius:14px;background:#fff;color:#000;padding:10px 14px;font:inherit;cursor:pointer}.calendarNav .monthLabel{margin:0;font-weight:800;flex:1}.calendarNav button:disabled{opacity:.35;cursor:default}.calendarJump:not([hidden]){display:flex;gap:12px;margin-bottom:16px}.calendarJump label{flex:1;font-size:13px;font-weight:700}.calendarJump select{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:white;font:inherit}.day.outsideMonth{opacity:.25}

.benefitBubbles{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.benefitBubbles .byobBadge{margin:0;padding:10px 16px;font-size:14px}
.faqGrid{grid-template-columns:1fr;max-width:900px;align-items:start}
details.faqCard,.openFaq details.faqCard,.eventFaq details.faqCard{padding:0;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.faqCard summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;font-size:18px;font-weight:700;cursor:pointer;list-style:none}
.faqCard summary::-webkit-details-marker{display:none}.faqCard summary::after{content:'+';font-size:26px;line-height:1;flex-shrink:0;color:var(--violet)}
.faqCard[open] summary::after{content:'−'}.faqCard[open] summary{background:#f7f4fa}.faqCard summary:focus-visible{outline:3px solid var(--violet);outline-offset:-4px}
.faqAnswer{padding:18px 24px 24px}.faqAnswer p{line-height:1.7}.faqCard:hover{border-color:#bcb0cc}
@media(max-width:620px){.faqCard summary{font-size:16px;padding:20px}.faqAnswer{padding:16px 20px 22px}}

/* Colorful, scoped homepage booking steps and included features. */
#how-it-works{background:#fff7ed}#how-it-works .howGrid{gap:22px;margin-top:36px}
#how-it-works .howCard{background:#f0e8ff;border:1px solid #daccf7;border-top:6px solid #7955dd;padding:28px;border-radius:26px}
#how-it-works .howCard:nth-child(2){background:#ffe6d7;border-color:#ffcdb1;border-top-color:#ef8950}
#how-it-works .howCard:nth-child(3){background:#eaf0d6;border-color:#d1dda9;border-top-color:#8b9f44}
#how-it-works .howNum{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#7955dd;color:#fff;font-size:22px;font-weight:800;margin-bottom:22px}
#how-it-works .howCard:nth-child(2) .howNum{background:var(--color-orange)}#how-it-works .howCard:nth-child(3) .howNum{background:var(--color-green)}
#how-it-works .howCard h3{margin-top:0}#how-it-works .stats{gap:16px}#how-it-works .stat{border:0;border-bottom:4px solid #ffc3d7;background:#fffafc}#how-it-works .stat strong{color:var(--color-pink)}#how-it-works .stat span{color:#000}
.includedSection{background:#fce9ef}.includedSection .storySplit{gap:48px;align-items:center}.includedSection .checkList{gap:14px;margin-top:28px}
.includedSection .checkItem{padding:20px;border-radius:20px;background:#fff9eb;border:1px solid #eedcaa;gap:16px;box-shadow:0 5px 16px #67324b08}
.includedSection .checkItem:nth-child(2){background:#eee8ff;border-color:#d7caf4}.includedSection .checkItem:nth-child(3){background:#e8efd7;border-color:#d1dda9}
.includedSection .checkItem span.checkBubble{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;margin:0;border:0;border-radius:14px;background:#f5d789;color:#272014;font-size:24px;line-height:1}
.includedSection .checkItem:nth-child(2) .checkBubble{background:#d3c0f5}.includedSection .checkItem:nth-child(3) .checkBubble{background:#c9dc9e}
.includedSection .checkItem div>span{color:#000;margin-top:5px}.includedSection .storyImage{border:8px solid #fff;border-radius:34px;box-shadow:14px 14px 0 #e8b7cc;overflow:hidden}
@media(max-width:620px){#how-it-works .howCard{padding:24px}.includedSection .checkItem{padding:16px}.includedSection .storySplit{gap:32px}.includedSection .storyImage{box-shadow:7px 7px 0 #e8b7cc}}

/* Clean, evenly sized homepage comparison cards. */
.compareSection .compareGrid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:20px}
.compareSection .compareCard{align-self:stretch;min-height:0;padding:28px 24px 24px;border:1px solid var(--line);border-radius:26px;background:var(--paper);color:var(--ink);box-shadow:0 8px 24px #34223c09}
.compareSection .compareCard::before{display:none}.compareSection .compareTop{justify-content:flex-start}
.compareSection .compareTag,.compareSection .noticeTag{background:#fff;border:1px solid var(--line);color:#4c4552}
.compareSection .compareCard h3{font-size:28px;margin:22px 0 12px}.compareSection .compareIntro{min-height:0;margin:14px 0 20px}
.compareSection .compareFacts{margin:0 0 24px}.compareSection .compareFacts span{background:#fff;border:1px solid var(--line);color:#000}
.compareSection .miniQuestions{margin:0 0 24px;gap:8px}.compareSection .miniQuestions span{background:#fff;border:1px solid var(--line);color:#000;padding:10px 12px}
.compareSection .compareAction,.compareSection #quick-guide-start{margin-top:auto;padding:16px;border:0;border-radius:15px;background:var(--ink);color:#fff;min-height:54px;font-size:13px;font-weight:800;line-height:1.4}
.compareSection #quick-guide-start{width:100%}.compareSection .compareCard:hover{box-shadow:0 14px 32px #34223c14}
@media(max-width:900px){.compareSection .compareGrid{grid-template-columns:1fr}.compareSection .compareCard{min-height:0}}

/* Coordinated color bubbles across the homepage feature sections. */
#experiences .typeCard,#occasion-preview .typeCard,#why-painting-hangout .infoCard,.bookingCards .infoCard{--bubble:var(--tint-pink);--bubble-ink:var(--color-pink);--card-tint:#fff2f7}
#experiences .typeCard:nth-child(2),#occasion-preview .typeCard:nth-child(2),#why-painting-hangout .infoCard:nth-child(2),.bookingCards .infoCard:nth-child(2){--bubble:var(--tint-purple);--bubble-ink:var(--color-purple);--card-tint:#f6f1ff}
#experiences .typeCard:nth-child(3),#occasion-preview .typeCard:nth-child(3),#why-painting-hangout .infoCard:nth-child(3),.bookingCards .infoCard:nth-child(3){--bubble:var(--tint-orange);--bubble-ink:var(--color-orange);--card-tint:#fff5ec}
#experiences .typeCard,#occasion-preview .typeCard,#why-painting-hangout .infoCard{background:linear-gradient(145deg,var(--card-tint),#fff 85%)}
#experiences .price{align-self:flex-start;width:fit-content;max-width:100%;padding:10px 16px;border-radius:18px;background:var(--bubble);color:var(--bubble-ink);font-size:30px}
#experiences .price small{color:var(--bubble-ink)}
#experiences .cardAction,#occasion-preview .cardAction{padding:14px 16px;border-radius:16px;background:var(--bubble);color:var(--bubble-ink);gap:12px}
#experiences .typeCard:hover .cardAction,#occasion-preview .typeCard:hover .cardAction{background:var(--bubble-ink);color:#fff}
.bookingCards .infoCard h3,#why-painting-hangout .infoCard h3{display:table;max-width:100%;padding:7px 14px;border-radius:16px;background:var(--bubble);color:var(--bubble-ink)}
#how-it-works .howNum{box-shadow:0 0 0 7px #fff8}
#how-it-works .stat:nth-child(1){background:var(--tint-pink);border-bottom-color:#ed8eb0}
#how-it-works .stat:nth-child(2){background:var(--tint-purple);border-bottom-color:#b194e8}#how-it-works .stat:nth-child(2) strong{color:var(--color-purple)}
#how-it-works .stat:nth-child(3){background:var(--tint-orange);border-bottom-color:#efab7c}#how-it-works .stat:nth-child(3) strong{color:var(--color-orange)}
#how-it-works .stat:nth-child(4){background:var(--tint-green);border-bottom-color:#adc577}#how-it-works .stat:nth-child(4) strong{color:var(--color-green)}
.includedSection .checkItem{border-left:5px solid #e5b943}.includedSection .checkItem:nth-child(2){border-left-color:#a084db}.includedSection .checkItem:nth-child(3){border-left-color:#9bb958}
.includedSection .checkItem b{color:var(--color-gold)}.includedSection .checkItem:nth-child(2) b{color:var(--color-purple)}.includedSection .checkItem:nth-child(3) b{color:var(--color-green)}
@media(max-width:620px){#experiences .price{font-size:28px;padding:9px 13px}.bookingCards .infoCard h3,#why-painting-hangout .infoCard h3{font-size:22px}}

/* Shared clean card treatment: warm paper outside, selective color inside. */
#experiences .typeCard,#occasion-preview .typeCard,#why-painting-hangout .infoCard,.bookingCards .infoCard,#how-it-works .howCard,.includedSection .checkItem{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 8px 24px #34223c09}
#experiences .accent,#occasion-preview .accent,#why-painting-hangout .infoCard::before,.bookingCards .infoCard::before{display:none}
#experiences .typeCard,#occasion-preview .typeCard,#why-painting-hangout .infoCard,.bookingCards .infoCard{padding:28px 24px 24px}
#experiences .typeCard h3,#occasion-preview .typeCard h3{margin-top:0}
.bookingCards .infoCard h3,#why-painting-hangout .infoCard h3{margin-top:0;margin-bottom:18px}
#experiences .cardAction,#occasion-preview .cardAction{background:var(--ink);color:#fff;margin-top:auto}
#experiences .price{margin-bottom:20px}
#how-it-works .howNum{box-shadow:none;border-radius:15px;background:var(--tint-purple);color:var(--color-purple)}
#how-it-works .howCard:nth-child(2) .howNum{background:var(--tint-orange);color:var(--color-orange)}
#how-it-works .howCard:nth-child(3) .howNum{background:var(--tint-green);color:var(--color-green)}
.includedSection .checkItem div{min-width:0}.includedSection .checkItem b{display:inline-block;padding:7px 12px;border-radius:13px;background:var(--tint-gold);color:var(--color-gold);margin-bottom:8px}
.includedSection .checkItem:nth-child(2) b{background:var(--tint-purple);color:var(--color-purple)}.includedSection .checkItem:nth-child(3) b{background:var(--tint-green);color:var(--color-green)}
.compareSection .privateCompare .compareTag,.compareSection .privateCompare .compareFacts span:nth-child(2){background:var(--tint-purple);border-color:var(--tint-purple);color:var(--color-purple)}
.compareSection .mobileCompare .compareTag,.compareSection .mobileCompare .compareFacts span:nth-child(2){background:var(--tint-orange);border-color:var(--tint-orange);color:var(--color-orange)}
.compareSection .compareCard:nth-child(3) .compareTag{background:var(--tint-green);border-color:var(--tint-green);color:var(--color-green)}
.compareSection .miniQuestions span:nth-child(1){background:var(--tint-orange);border-color:var(--tint-orange)}
.compareSection .miniQuestions span:nth-child(2){background:var(--tint-green);border-color:var(--tint-green)}
.compareSection .miniQuestions span:nth-child(3){background:var(--tint-purple);border-color:var(--tint-purple)}
.aboutValue{grid-template-columns:1fr}

/* Occasion cards pair quiet paper surfaces with expressive color details. */
#occasion-preview .eyebrow{background:var(--tint-pink);border-color:var(--tint-pink);color:var(--color-pink)}
#occasion-preview .typeCard{border-color:var(--bubble);box-shadow:0 10px 26px #34223c08}
#occasion-preview .occasionLabel{display:table;align-self:flex-start;width:fit-content;padding:8px 13px;border-radius:999px;background:var(--bubble);color:var(--bubble-ink);font-size:12px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;margin-bottom:20px}
#occasion-preview .typeCard h3{color:var(--bubble-ink);margin-bottom:12px}
#occasion-preview .typeCard p{margin-bottom:26px}
#occasion-preview .cardAction{background:var(--bubble);color:var(--bubble-ink)}
#occasion-preview .typeCard:hover{border-color:var(--bubble-ink)}

/* Keep all step and included-feature surfaces uniformly warm white. */
#how-it-works .howCard:nth-child(n),.includedSection .checkItem:nth-child(n){background:var(--paper);border:1px solid var(--line)}

/* Shared interior-page design, matching the homepage card system. */
.innerDesign{--page-tint:var(--tint-pink);--page-ink:var(--color-pink)}
#page-private{--page-tint:var(--tint-purple);--page-ink:var(--color-purple)}#page-mobile{--page-tint:var(--tint-orange);--page-ink:var(--color-orange)}
.innerDesign .eyebrow:not([style]),.innerDesign .heroBadges>span{background:var(--page-tint);border-color:var(--page-tint);color:var(--page-ink)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat){--bubble:var(--tint-pink);--bubble-ink:var(--color-pink);background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 8px 24px #34223c09}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(3n+2){--bubble:var(--tint-purple);--bubble-ink:var(--color-purple)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(3n){--bubble:var(--tint-orange);--bubble-ink:var(--color-orange)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard){padding:28px 24px 24px}
.innerDesign .infoCard::before,.innerDesign .typeCard>.accent{display:none}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard) h3{margin-top:0}
.innerDesign .infoCard h3,.innerDesign .howCard h3{display:table;max-width:100%;padding:8px 13px;border-radius:15px;background:var(--bubble);color:var(--bubble-ink);margin-bottom:18px}
.innerDesign .typeCard p{margin-bottom:24px}
.innerDesign a.typeCard{display:flex;flex-direction:column}
.innerDesign a.typeCard .cardAction{margin-top:auto;padding:15px 16px;border-radius:16px;background:var(--ink);color:#fff}
.innerDesign a.typeCard h3,.innerDesign .occasionCard h3{color:var(--bubble-ink)}
.innerDesign .stat strong{display:table;padding:7px 12px;border-radius:14px;background:var(--bubble);color:var(--bubble-ink);margin-bottom:10px}
.innerDesign .reviewsSection .stars{display:table;padding:5px 12px;border-radius:999px;background:var(--bubble);color:var(--bubble-ink);margin-bottom:18px}
.innerDesign .reviewsSection .cardAction{padding-top:16px;border-top:1px solid var(--line);color:var(--bubble-ink)}
.innerDesign .occasionLabel{display:table;align-self:flex-start;padding:8px 13px;border-radius:999px;background:var(--bubble);color:var(--bubble-ink);font-size:12px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;margin-bottom:20px}
.innerDesign .occasionCard .occasionFit{border:0;background:var(--bubble);border-radius:15px;padding:14px 16px;margin:18px 0 24px}
.innerDesign .occasionLink{display:flex;justify-content:space-between;gap:14px;align-items:center;width:100%;background:var(--ink);color:#fff;border-radius:16px;padding:15px 16px;margin-top:auto}
.innerDesign .panel,.innerDesign .contactDetails,.innerDesign .faqCard{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 8px 24px #34223c09}
.innerDesign .summary h3{display:table;background:var(--page-tint);color:var(--page-ink);padding:9px 14px;border-radius:15px}
.innerDesign .faqCard[open] summary{background:var(--page-tint)}
.innerDesign .contactMethod{background:var(--paper);border-color:var(--line)}
.innerDesign .contactMethod>span{display:table;background:var(--page-tint);color:var(--page-ink);padding:6px 12px;border-radius:999px;margin-bottom:10px}
.innerDesign .storyImage,.innerDesign .pageHeroMedia{border-radius:28px;overflow:hidden}
.innerDesign :is(a.typeCard,.occasionLink):focus-visible{outline:3px solid var(--page-ink);outline-offset:4px}
@media(max-width:620px){.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard){padding:24px 20px}.innerDesign .occasionCard h3{font-size:25px}}

/* Studio values use a simple semantic bullet list. */
.aboutValues{display:block;list-style:disc;margin:26px 0 0;padding-left:24px}
.aboutValues .aboutValue{display:list-item;padding:0 0 0 6px;background:none;border:0;border-radius:0;box-shadow:none;margin:0 0 22px}
.aboutValues .aboutValue:last-child{margin-bottom:0}.aboutValue::marker{color:var(--ink);font-size:18px}

/* Uniform calendar-side class card surfaces; preserve colored labels. */
.bookingCards .infoCard:nth-child(n){background:var(--paper);border-color:var(--line)}

/* Color the studio-value headings while keeping body copy black. */
.aboutValues .aboutValue:nth-child(1) h3{color:var(--color-pink)}
.aboutValues .aboutValue:nth-child(2) h3{color:var(--color-purple)}
.aboutValues .aboutValue:nth-child(3) h3{color:var(--color-orange)}

/* Canonical paint palette: use the same foreground and tint for each hue sitewide. */
:root{
  --color-pink:#b83268;--tint-pink:#fce3ed;
  --color-purple:#6341b5;--tint-purple:#ece3fb;
  --color-orange:#a84d1b;--tint-orange:#ffe5d2;
  --color-blue:#2463b5;--tint-blue:#e1edff;
  --color-teal:#087d79;--tint-teal:#dcf3ef;
  --color-green:#527525;--tint-green:#e8f0d5;
  --color-gold:#8c650e;--tint-gold:#fff0bf;
  --color-red:#b53640;--tint-red:#fbe2e5;
  --pink:var(--color-pink);--violet:var(--color-purple);--orange:var(--color-orange);--yellow:var(--tint-gold);--lime:var(--tint-green);
}

#experiences .typeCard:nth-child(1),#occasion-preview .typeCard:nth-child(1),.bookingCards .infoCard:nth-child(1){--bubble:var(--tint-blue);--bubble-ink:var(--color-blue)}
#experiences .typeCard:nth-child(3),#occasion-preview .typeCard:nth-child(3),.bookingCards .infoCard:nth-child(3){--bubble:var(--tint-teal);--bubble-ink:var(--color-teal)}
#why-painting-hangout .infoCard:nth-child(1){--bubble:var(--tint-gold);--bubble-ink:var(--color-gold)}
#why-painting-hangout .infoCard:nth-child(2){--bubble:var(--tint-red);--bubble-ink:var(--color-red)}
#why-painting-hangout .infoCard:nth-child(3){--bubble:var(--tint-blue);--bubble-ink:var(--color-blue)}
#page-open{--page-tint:var(--tint-blue);--page-ink:var(--color-blue)}#page-mobile{--page-tint:var(--tint-teal);--page-ink:var(--color-teal)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(6n+1){--bubble:var(--tint-blue);--bubble-ink:var(--color-blue)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(6n+3){--bubble:var(--tint-teal);--bubble-ink:var(--color-teal)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(6n+4){--bubble:var(--tint-gold);--bubble-ink:var(--color-gold)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(6n+5){--bubble:var(--tint-red);--bubble-ink:var(--color-red)}
.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard,.stat):nth-child(6n){--bubble:var(--tint-green);--bubble-ink:var(--color-green)}
#page-open .paintWord,#experience-builder .paintWord{color:var(--color-blue)}
#page-mobile .paintWord,#why-painting-hangout h2{color:var(--color-teal)}
#how-it-works .howNum{background:var(--tint-blue);color:var(--color-blue)}
#how-it-works .howCard:nth-child(2) .howNum{background:var(--tint-gold);color:var(--color-gold)}
#how-it-works .howCard:nth-child(3) .howNum{background:var(--tint-teal);color:var(--color-teal)}
#how-it-works .stat:nth-child(1){background:var(--tint-blue);border-color:var(--color-blue)}#how-it-works .stat:nth-child(1) strong{color:var(--color-blue)}
#how-it-works .stat:nth-child(3){background:var(--tint-teal);border-color:var(--color-teal)}#how-it-works .stat:nth-child(3) strong{color:var(--color-teal)}
.includedSection .checkItem:nth-child(2) b{background:var(--tint-blue);color:var(--color-blue)}
.includedSection .checkItem:nth-child(3) b{background:var(--tint-teal);color:var(--color-teal)}
.benefitBubbles .byobBadge:nth-child(1){background:var(--tint-green);color:var(--color-green)}
.benefitBubbles .byobBadge:nth-child(2){background:var(--tint-blue);color:var(--color-blue)}
.benefitBubbles .byobBadge:nth-child(3){background:var(--tint-gold);color:var(--color-gold)}
.compareSection .mobileCompare .compareTag,.compareSection .mobileCompare .compareFacts span:nth-child(2){background:var(--tint-teal);border-color:var(--tint-teal);color:var(--color-teal)}
.compareSection .miniQuestions span:nth-child(1){background:var(--tint-teal);border-color:var(--tint-teal)}
.compareSection .miniQuestions span:nth-child(2){background:var(--tint-gold);border-color:var(--tint-gold)}
.aboutValues .aboutValue:nth-child(2) h3{color:var(--color-blue)}
.aboutValues .aboutValue:nth-child(3) h3{color:var(--color-teal)}

/* Studio values match the included-feature cards. */
.aboutValues{display:grid;gap:14px;list-style:none;margin:26px 0 0;padding:0}
.aboutValues .aboutValue{display:block;margin:0;padding:20px;background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 8px 24px #34223c09}
.aboutValues .aboutValue h3{display:table;max-width:100%;padding:7px 12px;border-radius:13px;margin:0 0 14px;background:var(--tint-pink);color:var(--color-pink)}
.aboutValues .aboutValue:nth-child(2) h3{background:var(--tint-blue);color:var(--color-blue)}
.aboutValues .aboutValue:nth-child(3) h3{background:var(--tint-teal);color:var(--color-teal)}
@media(max-width:620px){.aboutValues .aboutValue{padding:16px}}

/* Phone layouts prioritize readable copy, usable controls, and available width. */
@media(max-width:700px){
  .wrap{width:calc(100% - 36px);max-width:100%}
  .navin{height:70px;gap:12px}.nav .brand{padding:0}.nav .brandLogo{width:158px}
  h1{font-size:clamp(36px,10.5vw,54px);line-height:1.04;letter-spacing:-.045em}
  h2{font-size:clamp(29px,8vw,42px);line-height:1.12;letter-spacing:-.035em}
  .lead,.sub,.aboutIntro{font-size:16px;line-height:1.7}
  .hero{padding:32px 0 40px}.section,.socialSection,.reviewsSection{padding:48px 0}
  .heroGrid,.pageHeroGrid,.storySplit,.phoneWrap,.aboutLayout{gap:28px;min-width:0}
  .heroGrid>*,.pageHeroGrid>*,.phoneWrap>*,.bookingShell>*,.storySplit>*,.contactLayout>*{min-width:0}
  .heroCtas{gap:12px;align-items:stretch}.heroCtas>a{width:100%;text-align:center;justify-content:center;min-height:48px}
  .heroMedia,.pageHeroMedia{height:320px}.floating{max-width:calc(100% - 24px);padding:12px;left:12px;right:auto}.float2{right:12px;left:auto}
  .cards,.infoGrid,.howGrid,.bookingCards,.occasionsGrid,.compareSection .compareGrid{grid-template-columns:minmax(0,1fr);gap:18px}
  .typeCard,.infoCard,.howCard,.panel,.innerDesign :is(.typeCard,.infoCard,.howCard,.occasionCard),.compareSection .compareCard{padding:22px 20px;border-radius:22px;min-width:0}
  .typeCard h3,.infoCard h3,.howCard h3,.compareSection .compareCard h3{font-size:23px;line-height:1.3}
  .typeCard p,.infoCard p,.howCard p,.compareIntro,.aboutValue p{font-size:16px;line-height:1.65}
  .phoneShell{padding:0;background:transparent;border-radius:24px;box-shadow:none}
  .phone{padding:0;background:transparent;border-radius:24px}.phone::before{display:none}
  .phoneCard{padding:16px 12px;border-radius:24px}.phoneTitle{font-size:20px;margin-bottom:18px}
  .miniCal{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.day{height:44px;border-radius:10px;font-size:14px;padding:0}
  .tabs{padding:4px;gap:2px}.tab{min-height:44px;padding:10px 4px;font-size:15px}
  .calendarNav{gap:6px;margin-top:20px}.calendarNav button{min-height:44px;padding:9px 12px}.calendarNav .monthLabel{font-size:16px;padding:9px 4px}
  .calendarHint{font-size:13px;line-height:1.5}.calendarCTA{min-height:48px;white-space:normal}
  .bookingShell,.fieldrow,.paymentChoiceGrid{grid-template-columns:minmax(0,1fr);gap:18px}
  .field input,.field select,.field textarea,.calendarJump select{font-size:16px;min-height:48px;min-width:0;max-width:100%}
  .field label,.slotLabel{font-size:14px;line-height:1.5}.field{margin:16px 0}
  .slotGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.slot{min-height:48px;white-space:normal}
  .paintingOption{padding:14px 12px}.paintingOption strong{font-size:16px}.paintingOption small{font-size:14px}
  .stats{gap:12px}.stat{padding:18px 14px;min-width:0}.stat strong{font-size:25px}.stat span{font-size:13px}
  .benefitBubbles{gap:8px}.benefitBubbles .byobBadge{font-size:13px;padding:8px 12px}
  .storyImage{height:320px}.includedSection .storySplit{gap:28px}.aboutVisual{min-height:340px}
  .socialPreviewStack{grid-template-columns:minmax(0,1fr)}.socialPreviewStack .socialThumb{height:260px}
  .foot{grid-template-columns:minmax(0,1fr);gap:30px}.footer{padding-bottom:100px}.footerLinks{gap:10px}.footerLinks a{display:block;padding:7px 0;min-height:40px}
  .contactMethod strong{overflow-wrap:anywhere;font-size:18px}
  .chatLauncher{font-size:12px;padding:11px 15px;min-height:44px;right:12px}
  .faqCard summary{line-height:1.5}.eyebrow{font-size:11px;line-height:1.5;max-width:100%}
}

/* Inset contact content consistently within its outer panel. */
.contactLayout{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.innerDesign .contactDetails{padding:28px;min-width:0}
.contactDetails h2{font-size:clamp(26px,2.6vw,32px);line-height:1.2;margin:0 0 22px;overflow-wrap:break-word}
.contactDetails .contactMethod{width:100%;margin:0 0 14px;padding:18px;min-width:0}
.contactDetails .contactMethod strong{display:block;font-size:clamp(16px,1.5vw,19px);line-height:1.5;overflow-wrap:anywhere;color:var(--color-purple)}
.contactDetails .contactHelp{padding:20px;margin-top:22px}
.contactDetails .contactHelp h3{font-size:18px;line-height:1.4}
.contactDetails .contactHelp p{font-size:15px;line-height:1.7}
.contactDetails>.sub{font-size:14px;line-height:1.6;margin:22px 0 0}
@media(max-width:900px){.contactLayout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.innerDesign .contactDetails{padding:20px}.contactDetails .contactMethod{padding:16px}.contactDetails .contactHelp{padding:16px}.contactDetails h2{font-size:28px}}

.lowSeats{color:var(--color-red);font-weight:850}.slot.selected .lowSeats{background:var(--tint-red);padding:2px 6px;border-radius:7px}.slot:disabled{cursor:not-allowed}

.studioFilms{background:#edf5fb}.filmFeature{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}.filmIntro h2{margin:20px 0}.filmIntro .paintWord{color:var(--color-blue)}.filmIntro .primary{margin:12px 0 24px}.studioFilms figure{margin:0;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--paper)}.studioFilms video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;background:transparent}.studioFilms .filmFeatured{max-width:360px;justify-self:center;width:100%}.studioFilms .filmFeatured video{height:auto;aspect-ratio:9/16}.studioFilms figcaption{padding:16px 18px;font-size:15px;font-weight:750}.filmPhotos{display:grid;grid-template-columns:1fr 1fr;gap:16px}.filmPhotos img{width:100%;height:230px;object-fit:cover;border-radius:20px}.filmGrid{display:grid;grid-template-columns:9fr 9fr 28.37fr;gap:22px;margin-top:36px;align-items:start}.filmGrid figure:last-child video{aspect-ratio:720/406}@media(max-width:700px){.filmFeature,.filmGrid{grid-template-columns:minmax(0,1fr);gap:24px}.filmFeature{gap:28px}.filmPhotos img{height:180px}.studioFilms video{height:auto}.filmGrid figure{width:100%;max-width:420px;justify-self:center}.filmGrid figure:last-child{max-width:none}.filmGrid{margin-top:24px}.filmIntro .primary{width:100%}}

/* Keep the booking helper clear of footer links and device safe areas. */
.chatLauncher{z-index:1000;right:calc(24px + env(safe-area-inset-right,0px));bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.paintChat{z-index:1001}
@media(max-width:700px){
  .footer{padding-bottom:calc(124px + env(safe-area-inset-bottom,0px))}
  .chatLauncher{max-width:calc(100vw - 48px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px))}
  .paintChat{right:calc(24px + env(safe-area-inset-right,0px));bottom:calc(84px + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 48px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));max-height:calc(100dvh - 108px - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px))}
}

.bookingSecurity{margin:20px 0;max-width:100%;min-width:0}.bookingSecurity p{font-size:14px;line-height:1.5;margin:0 0 10px}.bookingSecurity .secondary{margin-top:12px}

.bookingSecurity [hidden]{display:none!important}
