*{box-sizing:border-box}
/* clip, not hidden: hidden makes html/body scroll containers and breaks position:sticky */
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:#FFFDF8;color:#141039;font-family:'DM Sans',system-ui,sans-serif;overflow-x:clip}
img{max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Bowlby One SC','DM Sans',sans-serif;letter-spacing:-.02em;margin:0}
.wrap{max-width:1240px;margin:0 auto;padding:0 28px}
.pad{padding-top:76px;padding-bottom:90px}
.pad2{padding-top:72px;padding-bottom:0}
.kick{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#7144EF;margin:0 0 12px}
.kick.grey{color:rgba(20,16,57,.45)}
.body{font-size:17px;line-height:1.62;color:rgba(20,16,57,.7);margin:0 0 16px;text-wrap:pretty}
.slot{border:2px dashed rgba(20,16,57,.25);border-radius:18px;display:grid;place-items:center;text-align:center;padding:20px;background:repeating-linear-gradient(135deg,rgba(20,16,57,.04) 0 10px,transparent 10px 20px);font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:rgba(20,16,57,.55)}
.tbc{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(20,16,57,.55);line-height:1.6;border:2px dashed rgba(20,16,57,.28);border-radius:10px;padding:11px 13px;background:repeating-linear-gradient(135deg,rgba(20,16,57,.04) 0 9px,transparent 9px 18px);margin:0}

/* header */
.bar{position:sticky;top:0;z-index:60;background:#FFFDF8;border-bottom:1px solid rgba(20,16,57,.12)}
.bar-in{max-width:1340px;margin:0 auto;padding:12px 28px;display:flex;align-items:center;gap:20px}
.logo img{height:42px;width:auto;display:block}
.yrs{display:flex;align-items:center;gap:7px;background:#D7FF43;border-radius:999px;padding:6px 13px;font-family:'Bowlby One SC',sans-serif;font-size:11.5px;white-space:nowrap;box-shadow:2px 2px 0 #141039}
.yrs .st{color:#4E2DA9}
.desknav{display:flex;align-items:center;gap:4px;margin-left:auto;font-size:14px;font-weight:600}
.desknav a{padding:9px 14px;border-radius:999px;color:rgba(20,16,57,.7)}
.desknav a:hover{background:rgba(20,16,57,.07)}
.desknav a.on{background:rgba(20,16,57,.1);color:#141039}
.btn-book{background:#4E2DA9;color:#fff;padding:11px 18px;border-radius:999px;font-family:'Bowlby One SC',sans-serif;font-size:12px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.btn-book:hover{background:#7144EF}
.burg,.burg-cb{display:none}
.drawer{display:none}

/* hero */
.hero{position:relative;overflow:hidden;color:#FFFDF8;background:radial-gradient(circle at 77% 42%,#9F74FA 0,transparent 24%),radial-gradient(circle at 4% 30%,#8B60FA 0,transparent 32%),linear-gradient(120deg,#532FB5 0%,#7144EF 55%,#7E50ED 100%)}
.hero-in{max-width:1240px;margin:0 auto;padding:38px 28px 52px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);align-items:center;gap:26px clamp(40px,7vw,100px)}
.eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:rgba(255,255,255,.84);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.dash{width:28px;height:2px;background:#D7FF43;display:block}
.lime-kick{margin:0 0 14px;color:#D7FF43;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.hero h1{max-width:690px;font-size:clamp(42px,5.3vw,80px);line-height:1.04;
  text-transform:uppercase;letter-spacing:.055em;
  text-shadow:
    -1.5px -1.5px 0 #141039, 1.5px -1.5px 0 #141039, -1.5px 1.5px 0 #141039, 1.5px 1.5px 0 #141039,
    4px 6px 0 #141039}
/* uppercase promotes Bowlby's small caps to full caps (~16% wider), so the
   rotator needs a smaller size and tighter tracking to clear the hero photo */
.hero h1 em{display:block;font-style:normal;color:#FF5ADF;font-size:.72em;margin-top:8px;letter-spacing:.005em;
  text-shadow:
    -1.5px -1.5px 0 #141039, 1.5px -1.5px 0 #141039, -1.5px 1.5px 0 #141039, 1.5px 1.5px 0 #141039,
    4px 6px 0 #141039}
.lede{max-width:530px;margin:22px 0 0;color:rgba(255,255,255,.88);font-size:17px;line-height:1.58;text-wrap:pretty}
.lede.dark{color:rgba(20,16,57,.65);font-size:18px;max-width:34em;margin:0 0 40px}
.hero-btns{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:28px}
.btn-lime{display:inline-flex;align-items:center;min-height:53px;padding:0 30px;border-radius:999px;background:#D7FF43;color:#141039;font-family:'Bowlby One SC',sans-serif;font-size:15px;box-shadow:5px 5px 0 #141039;transition:.15s}
.btn-lime:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 #141039}
.btn-outline{display:inline-flex;align-items:center;min-height:53px;padding:0 26px;border-radius:999px;border:2px solid rgba(255,255,255,.45);font-size:15px;font-weight:700}
.btn-outline:hover{background:rgba(255,255,255,.14)}
.btn-acc{display:inline-flex;align-items:center;min-height:53px;padding:0 32px;border-radius:999px;font-family:'Bowlby One SC',sans-serif;font-size:15px;letter-spacing:.05em;text-transform:uppercase}
.btn-purple{display:inline-flex;align-items:center;justify-content:center;min-height:53px;padding:0 28px;border-radius:999px;background:#4E2DA9;color:#fff;font-family:'Bowlby One SC',sans-serif;font-size:14px;letter-spacing:.05em;text-transform:uppercase}
.btn-purple:hover{background:#7144EF}
.btn-purple.full{display:flex;width:100%;margin-top:4px}
.btn-ghost{display:inline-flex;align-items:center;min-height:53px;padding:0 30px;border:1px solid rgba(20,16,57,.28);border-radius:999px;font-size:15px;font-weight:600}
.btn-ghost:hover{background:rgba(20,16,57,.05)}
.scotty{display:flex;align-items:center;gap:12px;margin-top:34px;padding-top:26px;border-top:1px solid rgba(255,255,255,.18)}
.scotty strong{display:block;font-family:'Bowlby One SC',sans-serif;font-size:16px;font-weight:400;margin-bottom:4px}
.scotty span{font-size:14px;line-height:1.45;color:rgba(255,255,255,.78)}
.hero-img{position:relative;padding:14px 0 18px 64px}
.hero-photo{position:relative;display:block}
.scotty-left{grid-column:1/-1;margin:10px auto 0;padding-top:26px;border-top:1px solid rgba(255,255,255,.18);max-width:min(920px,100%)}
.scotty-left strong{display:block;font-family:'Bowlby One SC',sans-serif;font-size:22px;font-weight:400;margin-bottom:14px}
.scotty-left p{margin:0;font-size:18px;line-height:1.55;color:rgba(255,255,255,.86);text-wrap:pretty}
.scotty-left p b{font-weight:800;color:#fff}
.hero-img img{position:relative;width:100%;height:auto;aspect-ratio:900/1040;object-fit:cover;object-position:top center;border-radius:26px;display:block;transform:rotate(-1.5deg);box-shadow:10px 12px 0 #141039}
.badge-18{position:absolute;top:12px;right:-4px;background:#D7FF43;color:#141039;font-family:'Bowlby One SC',sans-serif;font-size:15px;line-height:1.15;text-align:center;padding:14px 16px;border-radius:999px;transform:rotate(9deg);box-shadow:4px 4px 0 #141039}
.badge-me{position:absolute;bottom:6px;left:-10px;background:#FFFDF8;color:#141039;font-family:'Bowlby One SC',sans-serif;font-size:14px;padding:12px 18px;border-radius:999px;transform:rotate(-5deg);box-shadow:4px 4px 0 #141039}

/* marquee */
.marquee{background:#D7FF43;border-bottom:3px solid #141039;overflow:hidden;padding:15px 0}
.mq-track{display:flex;width:max-content;animation:mq 28s linear infinite}
.mq{display:flex;gap:30px;padding-right:30px;font-family:'Bowlby One SC',sans-serif;font-size:14px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.mq-track{animation:none}}

/* sections */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;margin:84px 0 38px}
.sec-head h2{font-size:clamp(32px,3.6vw,52px);line-height:1.02}
.sub{font-size:16px;line-height:1.55;color:rgba(20,16,57,.65);max-width:26em;margin:0}
h1.big{font-size:clamp(34px,4.4vw,60px);line-height:1;margin:0 0 16px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.card{background:#fff;border:2px solid #141039;border-radius:18px;overflow:hidden;display:block;
  box-shadow:4px 4px 0 #141039;transition:transform .16s,box-shadow .16s}
.card:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 #141039}
.card.static:hover{transform:none;box-shadow:4px 4px 0 #141039}
.card-bar{display:block;height:8px;border-bottom:2px solid #141039}
.card>img{width:100%;height:176px;object-fit:cover;display:block}
.card .slot{margin:14px;height:176px}
.card-b{display:block;padding:20px 22px 24px}
.card-b h3{font-size:19px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.025em;line-height:1.15}
.card-b p{font-size:14.5px;line-height:1.5;color:rgba(20,16,57,.65);margin:0 0 14px;text-wrap:pretty}
.card-f{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.card-f em{font-style:normal;color:rgba(20,16,57,.45)}
.rows{display:grid;gap:16px}
.row{background:#fff;border:1px solid rgba(20,16,57,.12);border-radius:24px;overflow:hidden;display:grid;grid-template-columns:240px 1fr auto;gap:28px;align-items:center;padding-right:32px}
.row:hover{border-color:#141039}
.row>img{width:240px;height:150px;object-fit:cover;display:block}
.row .slot{margin:16px;height:118px}
.row h2{font-size:25px;margin:0 0 7px}
.row p{font-size:15.5px;line-height:1.5;color:rgba(20,16,57,.65);margin:0;max-width:44em}
.row-meta{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(20,16,57,.45)}
.row-meta i{width:26px;height:7px;border-radius:999px}
.row>b{font-family:'Bowlby One SC',sans-serif;font-size:13px;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}

/* decor panel */
.decor-panel{background:#fff;border:1px solid rgba(20,16,57,.12);border-radius:32px;padding:48px;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:84px}
.decor-panel h2{font-size:clamp(28px,3.2vw,42px);line-height:1.03;margin:0 0 18px}
.two-col-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;margin-bottom:30px;font-size:15px;color:rgba(20,16,57,.75)}
.decor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.decor-grid img{width:100%;object-fit:cover;border-radius:18px;display:block}
.decor-grid .d0,.decor-grid .d1{height:210px}
.decor-grid .d2,.decor-grid .d3{height:158px}
.decor-grid .d1,.decor-grid .d3{margin-top:24px}
.hero-decor img{border-radius:20px}

/* reviews */
.reviews{background:#FFFDF8;color:#141039;padding:82px 28px;position:relative;overflow:hidden;border-top:1px solid rgba(20,16,57,.1);border-bottom:1px solid rgba(20,16,57,.1)}
.rev-in{position:relative;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:.72fr 1.28fr;gap:48px;align-items:center}
.rev-badges{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.g-pill{display:inline-flex;align-items:center;gap:9px;background:#fff;color:#141039;border-radius:999px;padding:9px 16px;font-size:13px;font-weight:800;box-shadow:4px 4px 0 #141039}
.g-pill b{font-family:'Bowlby One SC',sans-serif;font-size:15px;color:#4285F4}
.reviews h2{font-size:clamp(42px,6.4vw,86px);line-height:.98;letter-spacing:-.02em;margin:0 0 14px;color:#141039;text-shadow:none}
.reviews p{font-size:18px;line-height:1.55;color:rgba(20,16,57,.68);margin:0 0 24px}
.btn-white{display:inline-flex;align-items:center;gap:9px;min-height:52px;padding:0 26px;border-radius:999px;background:#fff;color:#141039;font-family:'Bowlby One SC',sans-serif;font-size:14px;box-shadow:5px 5px 0 #141039}
.btn-white b{color:#4285F4;font-size:16px}
.rev-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rev-slot{min-height:158px;border:2px dashed rgba(255,255,255,.42);border-radius:20px;display:grid;place-items:center;text-align:center;padding:20px;background:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 10px,transparent 10px 20px);font-family:ui-monospace,Menlo,monospace;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.78)}

/* service page */
.svc-hero{position:relative;color:#fff;padding:74px 28px 84px;overflow:hidden}
.glow{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(100px);opacity:.38;top:-200px;right:-140px}
.svc-hero-in{position:relative;max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.pill{display:inline-block;border-radius:999px;padding:7px 16px;font-family:'Bowlby One SC',sans-serif;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:22px}
.svc-hero h1{font-size:clamp(38px,4.8vw,66px);line-height:.96;margin:0 0 20px;text-wrap:balance}
.svc-hero>.svc-hero-in p{font-size:19px;line-height:1.55;color:rgba(255,255,255,.8);max-width:31em;margin:0 0 30px;text-wrap:pretty}
.facts{display:flex;flex-wrap:wrap;gap:30px;margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18)}
.facts b{display:block;font-family:'Bowlby One SC',sans-serif;font-size:19px;font-weight:400}
.facts span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.svc-hero-img img{width:100%;height:390px;object-fit:cover;border-radius:26px;display:block}
.svc-hero-img .slot{border-color:rgba(255,255,255,.3);color:rgba(255,255,255,.6);background:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 11px,transparent 11px 22px)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start}
.split h2{font-size:clamp(28px,3.2vw,40px);line-height:1.04;margin:0 0 26px}
.incl{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.incl li{display:grid;grid-template-columns:20px 1fr;gap:14px;align-items:start}
.dot{width:20px;height:20px;border-radius:50%;margin-top:3px}
.incl b{display:block;font-size:16.5px;margin-bottom:3px}
.incl p{font-size:15px;line-height:1.5;color:rgba(20,16,57,.65);margin:0;text-wrap:pretty}
.rate-card{background:#fff;border:1px solid rgba(20,16,57,.12);border-radius:26px;padding:34px}
.rate{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:baseline;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(20,16,57,.1)}
.rate b{font-size:16px}
.rate span{display:block;font-size:14px;color:rgba(20,16,57,.6);margin-top:2px}
.rate em{font-family:'Bowlby One SC',sans-serif;font-style:normal;font-size:22px;white-space:nowrap}
.rate-card .tbc{margin:8px 0 20px}
.rate-note{font-size:13px;color:rgba(20,16,57,.55);line-height:1.5;margin:10px 0 18px}
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin-top:20px}
.gal img{width:100%;height:200px;object-fit:cover;border-radius:18px;display:block}
.tintbox{border-top:1px solid rgba(20,16,57,.1);border-bottom:1px solid rgba(20,16,57,.1);padding:72px 28px;margin-top:72px}
.narrow{max-width:900px;margin:0 auto}
.narrow h2{font-size:clamp(26px,3vw,38px);line-height:1.05;margin:0 0 28px}
.faq{background:#fff;border:1px solid rgba(20,16,57,.12);border-radius:18px;padding:22px 26px;margin-bottom:12px}
.faq b{display:block;font-size:16.5px;margin-bottom:6px}
.faq p{font-size:15.5px;line-height:1.55;color:rgba(20,16,57,.68);margin:0;text-wrap:pretty}
h2.sm{font-size:clamp(24px,2.6vw,34px);line-height:1.05;margin:0 0 24px}
.rel{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.rel>div,.rel a{background:#fff;border:1px solid rgba(20,16,57,.12);border-radius:20px;padding:22px;display:grid;gap:10px;align-content:start}
.rel a:hover{border-color:#141039}
.pipbar{width:34px;height:8px;border-radius:999px}
.rel b{font-family:'Bowlby One SC',sans-serif;font-size:18px;font-weight:400}
.rel p{font-size:14.5px;line-height:1.5;color:rgba(20,16,57,.65);margin:0}
.wrap.pad2:last-of-type{padding-bottom:20px}

/* about / contact */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.about>img{width:100%;height:440px;object-fit:cover;border-radius:28px;display:block}
.about h1{font-size:clamp(30px,3.6vw,50px);line-height:1.02;margin:0 0 20px;text-wrap:balance}
.stats{display:flex;flex-wrap:wrap;gap:22px 44px;margin-top:34px}
.stats>div{flex:0 0 auto}
.stats b{display:block;font-family:'Bowlby One SC',sans-serif;font-size:clamp(20px,1.9vw,30px);font-weight:400;line-height:1.1;white-space:nowrap;margin-bottom:6px}
.stats span{font-size:13px;color:rgba(20,16,57,.6);line-height:1.4}
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:start}
.contact h1{font-size:clamp(34px,4.4vw,58px);line-height:1;margin:0 0 18px}
.info{display:grid;gap:22px;max-width:34em;margin-top:40px}
.info>div{border-top:1px solid rgba(20,16,57,.14);padding-top:18px}
.info .body{font-size:16.5px;line-height:1.55;margin:0 0 8px}
.towns{font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.7);margin:18px 0 0}
.towns.dark{color:rgba(20,16,57,.62);margin:0}
.jump{background:#4E2DA9;color:#fff;border-radius:28px;padding:36px;display:grid;gap:10px;align-content:start}
.jump a{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:14px;background:rgba(255,253,248,.08);font-size:15.5px;font-weight:600}
.jump a:hover{background:rgba(255,253,248,.16)}
.jump i{width:22px;height:7px;border-radius:999px;flex-shrink:0}

/* cta + footer */
.cta{background:#7144EF;color:#fff;text-align:center;padding:76px 28px;margin-top:72px}
.cta h2{font-size:clamp(30px,3.6vw,46px);line-height:1.04;margin:0 0 14px;text-shadow:3px 4px 0 #4E2DA9}
.cta>p{font-size:17px;line-height:1.55;color:rgba(255,255,255,.85);max-width:34em;margin:0 auto}
.cta-row{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:28px}
.cta .btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.cta .btn-ghost:hover{background:rgba(255,255,255,.14)}
.foot{background:#4E2DA9;color:rgba(255,253,248,.55);padding:34px 28px}
.foot-in{max-width:1240px;margin:0 auto}
.foot-tel{display:block;font-family:'Bowlby One SC',sans-serif;font-size:17px;color:#D7FF43;margin-bottom:18px}
.foot-row{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:space-between;font-size:13.5px}
.foot-links{display:flex;gap:18px;flex-wrap:wrap}
.foot-links a:hover{color:#FFFDF8}

/* responsive */
@media (max-width:980px){
 .svc-hero-in,.split,.about,.contact,.decor-panel,.rev-in{grid-template-columns:1fr;gap:38px}
 .row{grid-template-columns:1fr;gap:0;padding-right:0}
 .row>img{width:100%;height:190px}
 .row>div{padding:20px 22px}
 .row>b{padding:0 22px 22px}
 .about>img{height:320px}
 .desknav,.yrs{display:none}
 .burg{display:flex;margin-left:auto;cursor:pointer;width:46px;height:46px;border-radius:14px;border:1px solid rgba(20,16,57,.16);align-items:center;justify-content:center;flex-direction:column;gap:5px;flex-shrink:0}
 .burg span{width:20px;height:2px;background:#141039;display:block}
 .drawer{display:grid;position:fixed;top:0;right:0;bottom:0;width:min(340px,88vw);background:#FFFDF8;padding:80px 20px 22px;overflow-y:auto;box-shadow:-20px 0 60px rgba(20,16,57,.3);align-content:start;gap:4px;transform:translateX(14px);opacity:0;visibility:hidden;pointer-events:none;transition:transform .24s ease,opacity .24s ease;z-index:95}
 .burg-cb:checked~.drawer{transform:none;opacity:1;visibility:visible;pointer-events:auto}
 .drawer a{display:flex;align-items:center;gap:11px;padding:13px 12px;border-radius:14px;font-size:16px;font-weight:700;min-height:48px}
 .drawer a:hover{background:rgba(20,16,57,.05)}
 .drawer i{width:10px;height:10px;border-radius:50%;flex-shrink:0}
 .drawer .dh{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:rgba(20,16,57,.45);padding:6px 10px 4px;margin:0}
 .drawer .more{color:#7144EF;font-size:15px}
 .drawer hr{border:0;border-top:1px solid rgba(20,16,57,.12);margin:10px 0;width:100%}
 .drawer-book{justify-content:center;margin-top:12px;background:#4E2DA9;color:#fff;font-family:'Bowlby One SC',sans-serif;font-size:14px;letter-spacing:.05em;text-transform:uppercase;min-height:52px}
 .decor-panel{padding:32px}
 .hero-img{padding:20px 6px 24px 24px}
 .hero-img img{height:400px}
}
@media (max-width:560px){
 .wrap,.svc-hero,.cta,.tintbox,.reviews{padding-left:18px;padding-right:18px}
 .bar-in{padding:12px 18px;gap:12px}
 .two-col-list,.rev-grid,.decor-grid{grid-template-columns:1fr}
 .stats{gap:20px 32px}
 .decor-grid .d1,.decor-grid .d3{margin-top:0}
 .rate-card{padding:24px}
}
.rev-grid-wrap{min-height:200px}
.widget-ph{border:2px dashed rgba(20,16,57,.25);border-radius:20px;min-height:200px;display:grid;place-items:center;text-align:center;padding:24px;background:repeating-linear-gradient(135deg,rgba(20,16,57,.04) 0 10px,transparent 10px 20px);font-family:ui-monospace,Menlo,monospace;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:rgba(20,16,57,.55)}
.widget-ph.tall{min-height:320px}
.reviews .btn-white{background:#4E2DA9;color:#FFFDF8;box-shadow:5px 5px 0 #141039}
.reviews .btn-white b{color:#fff}

/* review slideshow */
.rev-slider{position:relative;max-width:900px;margin:0 auto;padding:0 8px}
.rev-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;gap:0;
  -ms-overflow-style:none;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rq{flex:0 0 100%;scroll-snap-align:center;margin:0;padding:40px 44px 34px;box-sizing:border-box;
  background:#fff;border-radius:24px;box-shadow:6px 6px 0 #141039;border:2px solid #141039;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;min-height:250px;justify-content:center}
.rq-stars{font-size:24px;letter-spacing:4px;color:#FFB100;line-height:1}
.rq blockquote{margin:0;font-size:clamp(18px,2.1vw,25px);line-height:1.45;color:#141039;font-weight:600;text-wrap:pretty;max-width:34ch}
.rq figcaption{display:flex;flex-direction:column;gap:3px;font-size:14px;color:rgba(20,16,57,.62)}
.rq figcaption b{font-family:'Bowlby One SC',sans-serif;font-size:15px;color:#4E2DA9;letter-spacing:.01em}
.rev-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:999px;
  border:2px solid #141039;background:#FFFDF8;color:#141039;font-size:26px;line-height:1;cursor:pointer;
  display:grid;place-items:center;box-shadow:3px 3px 0 #141039;transition:transform .12s;padding:0 0 3px}
.rev-arrow:hover{transform:translateY(-50%) scale(1.07)}
.rev-arrow:active{box-shadow:1px 1px 0 #141039}
.rev-prev{left:-14px}
.rev-next{right:-14px}
.rev-dots{display:flex;justify-content:center;gap:10px;margin-top:22px}
.rev-dots button{width:11px;height:11px;padding:0;border-radius:999px;border:2px solid #141039;
  background:transparent;cursor:pointer;transition:background .15s,transform .15s}
.rev-dots button[aria-selected="true"]{background:#4E2DA9;transform:scale(1.25)}
@media (max-width:640px){
 .rq{padding:32px 24px 28px;min-height:230px}
 .rev-prev{left:-4px}
 .rev-next{right:-4px}
 .rev-arrow{width:40px;height:40px;font-size:22px}
}
.ig .sec-head{margin-top:0}



.seal{width:clamp(112px,14vw,168px);height:auto;display:block}
.seal-white{background:transparent;border-radius:50%;padding:0}
.rev-badges{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:22px}

.hero-logo{width:270px;max-width:100%;height:auto;display:block;margin:0 0 18px}
@media (max-width:560px){.hero-logo{width:212px}}

.svc-hero-img .snow-vid{width:100%;max-width:392px;aspect-ratio:5/7;object-fit:cover;object-position:center 78%;border-radius:26px;display:block}
@media (max-width:980px){.snow-vid{max-width:340px;margin:0 auto}}

.rev-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(18px,4vw,54px);max-width:1100px;margin:0 auto 40px;padding:0 8px}
.rev-head-mid{text-align:center}
.rev-head-mid h2{margin:0 0 10px;color:#FFFDF8;
  /* back to Bowlby, all caps, wider tracking so the counters stay open */
  text-transform:uppercase;letter-spacing:.03em;
  text-shadow:
    -1.5px -1.5px 0 #141039, 1.5px -1.5px 0 #141039, -1.5px 1.5px 0 #141039, 1.5px 1.5px 0 #141039,
    4px 6px 0 #141039}
.rev-head-mid p{margin:0 0 20px}
.rev-body{max-width:1100px;margin:0 auto}
@media (max-width:760px){
  .rev-head{grid-template-columns:1fr 1fr;justify-items:center;gap:20px}
  .rev-head-mid{grid-column:1/-1;order:-1}
}

.drawer-home{font-weight:700}

.hero-bg{position:relative;isolation:isolate}
.hero-bg-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;filter:saturate(.9)}
.hero-bg-tint{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-bg .glow{z-index:2}
.hero-bg .svc-hero-in{position:relative;z-index:3}

.svc-mq{border-bottom:3px solid rgba(20,16,57,.28)}
.svc-mq .mq{font-size:13.5px}

.svc-logo{width:250px;max-width:100%;height:auto;display:block;margin:0 0 18px}
.svc-logo.wide{width:340px}
.svc-logo.plaque{width:352px;margin-top:16px;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 2px rgba(255,255,255,.22)}
.svc-logo.bub{width:196px}
.svc-logo.strigo{width:300px;margin-top:16px}
.svc-logo.badge{width:196px;border-radius:22px;box-shadow:0 8px 26px rgba(0,0,0,.35)}
@media (max-width:560px){.svc-logo{width:200px}.svc-logo.wide,.svc-logo.plaque{width:266px}.svc-logo.bub,.svc-logo.badge{width:160px}}

.sunburst{position:absolute;top:50%;left:50%;width:210vw;aspect-ratio:1;transform:translate(-50%,-50%);z-index:0;pointer-events:none;
  background:repeating-conic-gradient(from 0deg at 50% 50%,#7A44E0 0deg 4.5deg,#5C2AB8 4.5deg 9deg)}

.svc-hero-img img.hero-tall{width:100%;max-width:520px;height:auto;object-fit:contain;border-radius:26px;display:block;margin:0 auto}
@media (max-width:980px){.svc-hero-img img.hero-tall{max-width:400px}}

.roaster{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,60px);align-items:center;max-width:1040px;margin:0 auto}
.roaster-logo{background:#FFFDF8;border-radius:24px;padding:34px 30px;display:grid;place-items:center;box-shadow:0 6px 20px rgba(43,26,17,.1)}
.roaster-logo img{width:100%;max-width:270px;height:auto;display:block}
.roaster-pts{list-style:none;padding:0;margin:18px 0 26px;display:flex;flex-direction:column;gap:9px}
.roaster-pts li{display:flex;align-items:center;gap:11px;font-size:15.5px;color:rgba(43,26,17,.78)}
.roaster-pts .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
@media (max-width:860px){.roaster{grid-template-columns:1fr}}

.rotator{position:relative;display:block;min-height:1.05em}
.rotator span{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;animation:rotword 21s linear infinite}
.rotator span:first-child{position:relative}
@keyframes rotword{
  0%{opacity:0;transform:translateY(12px)}
  2%{opacity:1;transform:translateY(0)}
  8.0%{opacity:1;transform:translateY(0)}
  10.0%{opacity:0;transform:translateY(-10px)}
  100%{opacity:0;transform:translateY(-10px)}
}
@media (prefers-reduced-motion:reduce){.rotator span{animation:none;opacity:0}.rotator span:first-child{opacity:1}}

.bar-in .logo{flex-shrink:0;line-height:0;display:block}
.bar-in .logo img{height:42px;width:auto;display:block}
@media (max-width:560px){.bar-in .logo img{height:34px}}

.hero-brand{width:214px;height:auto;display:block;margin:0 0 22px;filter:drop-shadow(0 6px 16px rgba(20,16,57,.35))}
@media (max-width:560px){.hero-brand{width:170px}}

.story{padding-top:0}
.story-in{display:grid;grid-template-columns:1.35fr .65fr;gap:52px;align-items:start;border-top:1px solid rgba(20,16,57,.14);padding-top:52px}
.story h2{font-size:clamp(26px,3vw,38px);line-height:1.05;margin:0 0 22px}
.story-side{background:#F3F0FF;border:1px solid rgba(113,68,239,.22);border-radius:24px;padding:30px 28px}
.story-side h3{font-family:'Bowlby One SC',sans-serif;font-size:20px;margin:0 0 12px}
.story-side p{font-size:15.5px;line-height:1.6;color:rgba(20,16,57,.7);margin:0 0 22px;text-wrap:pretty}
@media (max-width:980px){.story-in{grid-template-columns:1fr;gap:34px}}

.story-side .btn-ghost{margin-top:2px}

.maparea{padding-top:16px}
.maparea .sec-head{margin-top:0;margin-bottom:20px}
.mapwrap{border-radius:26px;overflow:hidden;border:1px solid rgba(20,16,57,.14);box-shadow:6px 8px 0 rgba(20,16,57,.1);background:#EDEAE2}
.mapwrap iframe{display:block;width:100%;height:340px;border:0}
@media (max-width:560px){.mapwrap iframe{height:260px}}
.map-note{margin:0;padding:9px 16px;font-size:13px;background:#FFFDF8;border-top:1px solid rgba(20,16,57,.12)}
.map-note a{color:#4E2DA9;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.map-note a:hover{color:#7144EF}
/* button rows that carry the stacked phone note align on their top edge */
.hero-btns:has(> span),.cta-row:has(> span){align-items:flex-start}

.venues{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 44px}
.venues span{background:#F3ECFF;border:1px solid rgba(168,27,126,.26);color:#A81B7E;border-radius:999px;padding:9px 17px;font-size:14.5px;font-weight:600}

.venues span em{font-style:normal;opacity:.65;font-size:13px;margin-left:4px}

@media (max-width:980px){
 .burg-cb:checked~.burg::after{content:"";position:fixed;inset:0;background:rgba(20,16,57,.45);z-index:90}
}

@media (max-width:560px){.rotator span{white-space:normal}.rotator{min-height:2.1em}}


.scotty.under{margin:26px 0 0;padding:0;border:0;max-width:420px}
.scotty.under strong{display:block}

.card-logo{display:grid;place-items:center;height:176px;padding:26px}
.card-logo img{max-width:82%;max-height:104px;width:auto;height:auto;object-fit:contain;display:block}

.hero-logo-panel{display:block}
.hero-logo-panel img{width:100%;max-width:none;height:auto;display:block}

.row-logo{display:grid;place-items:center;padding:18px;height:100%;overflow:hidden;background:#F4F2EC}
.row-logo img{width:100%;height:100%;max-height:none;object-fit:contain;display:block}

@media (max-width:980px){.row-logo{height:190px}.row .slot{height:190px}}

/* hero stays two-column until genuinely narrow */
@media (max-width:760px){
 .hero-in{grid-template-columns:1fr;gap:24px;padding:22px 20px 40px}
 .hero-brand-row{margin-bottom:2px}
 .hero-img{padding:10px 12px 14px 0;max-width:320px;margin:0 auto}
 .hero-img img{height:auto;aspect-ratio:900/1040;object-fit:cover;object-position:center}
 .hero-in>div:nth-child(2){text-align:center}
 .hero-in .eyebrow{justify-content:center}
 .hero-in .rotator span{left:0;right:0;text-align:center}
 .hero-in .lede{margin-left:auto;margin-right:auto}
 .hero-in .hero-btns{justify-content:center}
 .scotty-left{max-width:none;margin-top:4px;padding-top:22px}

}
@media (max-width:560px){
 .sparkles{width:min(300px,84%)}
 .sparkles i{width:17px;height:17px;margin:-8.5px 0 0 -8.5px}
 .hero-brand-row .hero-brand{width:min(300px,84%)}
 .brand-tag{font-size:min(15px,3.9vw);letter-spacing:.1em}
 .tag-star{margin:0 .35em}
 .hero-img{max-width:280px}
 .scotty-left strong{font-size:19px}
 .scotty-left p{font-size:16px}
}
@media (max-width:980px) and (min-width:761px){
 .hero-in{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:22px 36px;padding:32px 24px 44px}
 .hero-img{padding:18px 6px 22px 24px}
}

.hero-brand-row{grid-column:1/-1;text-align:center;margin-bottom:0;position:relative}

/* gentle glitter around the logo — four-point sparkles, slow stagger, never loud */
.sparkles{position:absolute;left:50%;top:-5%;transform:translateX(-50%);
  width:min(390px,66%);aspect-ratio:544/366;pointer-events:none;z-index:0}
/* glimmer: crossed light-rays that flare open and close, overlapping so there
   is always a little movement — shorter cycle, softer peak than the old pop */
.sparkles i{position:absolute;left:var(--x);top:var(--y);width:22px;height:22px;margin:-11px 0 0 -11px;
  opacity:0;
  background:
    radial-gradient(circle,rgba(255,255,255,.98) 0 6%,rgba(255,255,255,.35) 12%,transparent 30%),
    linear-gradient(0deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%),
    linear-gradient(90deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%),
    linear-gradient(45deg,transparent 46%,rgba(255,255,255,.45) 50%,transparent 54%),
    linear-gradient(-45deg,transparent 46%,rgba(255,255,255,.45) 50%,transparent 54%);
  -webkit-mask:radial-gradient(circle,#000 0 14%,rgba(0,0,0,.55) 32%,transparent 50%);
  mask:radial-gradient(circle,#000 0 14%,rgba(0,0,0,.55) 32%,transparent 50%);
  filter:drop-shadow(0 0 4px rgba(255,255,255,.85));
  animation:glimmer 3.2s ease-in-out infinite;animation-delay:var(--d)}
@keyframes glimmer{
  0%,100%{opacity:0;transform:scale(calc(var(--s) * .2)) rotate(-18deg)}
  38%{opacity:.9;transform:scale(var(--s)) rotate(0deg)}
  52%{opacity:.5;transform:scale(calc(var(--s) * .78)) rotate(8deg)}
  70%{opacity:0;transform:scale(calc(var(--s) * .2)) rotate(16deg)}
}
@media (prefers-reduced-motion:reduce){.sparkles i{animation:none;opacity:.3}}
.hero-brand-row .hero-brand{display:block;margin:0 auto;width:min(390px,66%);height:auto;position:relative;z-index:1}
.brand-tag{position:relative;display:inline-block;white-space:nowrap;max-width:100%;
 margin:2px 0 0;font-family:'Bowlby One SC',sans-serif;font-size:clamp(18px,2.2vw,28px);font-weight:400;
 letter-spacing:.18em;text-transform:uppercase;
 color:#fff;
 background:linear-gradient(100deg,#FFFFFF 0%,#F6D7FF 12%,#CFE9FF 24%,#FFFFFF 36%,#FFE9F7 48%,#D9F5FF 60%,#FFFFFF 72%,#EBD9FF 86%,#FFFFFF 100%);
 background-size:300% 100%;
 -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
 animation:tagholo 6s linear infinite;
 filter:drop-shadow(0 2px 1px rgba(20,16,57,.5)) drop-shadow(0 0 12px rgba(255,255,255,.55))}
@keyframes tagholo{0%{background-position:0 0}100%{background-position:300% 0}}
.tag-star{display:inline-block;font-family:'DM Sans',Georgia,'Times New Roman',serif;font-size:.9em;line-height:1;vertical-align:.02em;margin:0 .5em;-webkit-text-fill-color:#F2F4FA;color:#F2F4FA;filter:drop-shadow(0 0 6px rgba(255,255,255,.8));}
@media (prefers-reduced-motion:reduce){.brand-tag{animation:none}}
@media (max-width:760px){.hero-brand-row .hero-brand{width:min(340px,80%)}.sparkles{width:min(340px,80%)}.brand-tag{letter-spacing:.1em}}
.scotty-left{text-align:center;margin-left:auto;margin-right:auto}

.hero-in .dash{display:none}
.hero-in .eyebrow{gap:0}

.scotty-left{display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,38px)}
.scotty-copy{flex:0 1 34em;min-width:0}
.shot{flex:0 0 auto;width:clamp(104px,12vw,152px);height:auto;aspect-ratio:1;border-radius:50%;display:block;
 object-fit:cover;border:3px solid rgba(255,255,255,.9);box-shadow:0 10px 26px rgba(20,16,57,.4)}
@media (max-width:760px){
 .scotty-left{flex-wrap:wrap;gap:16px}
 .scotty-copy{order:3;flex:1 1 100%}
 .shot{width:104px}
}


/* ============ services: numbered index (1c desktop / 2b phone) ============ */
.ix-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:start;margin-top:34px}
.ix-list{display:flex;flex-direction:column;border-top:2px solid #141039}
.ix-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;
  padding:11px 10px 11px 4px;text-decoration:none;border-bottom:1.5px solid rgba(20,16,57,.14);
  transition:background .12s}
.ix-row:hover,.ix-row:focus-visible{background:rgba(78,45,169,.06)}
.ix-num{font-family:'Bowlby One SC',sans-serif;font-size:14px;letter-spacing:.02em}
.ix-thumb{display:none}
.ix-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.ix-name{font-family:'Bowlby One SC',sans-serif;font-size:20px;line-height:1.1;color:#141039;
  text-transform:uppercase;letter-spacing:.03em}
.ix-desc{font-size:13.5px;line-height:1.45;color:rgba(20,16,57,.6);text-wrap:pretty}
.ix-ages-m{display:none}
.ix-end{display:flex;align-items:center;gap:12px;flex:none}
.ix-ages{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(20,16,57,.45)}
.ix-arrow{font-family:'Bowlby One SC',sans-serif;font-size:15px}
/* centred sticky so the photo stays on screen while hovering the lower rows */
.ix-panel{position:sticky;top:max(20px,calc(50vh - 46vh / 2 - 40px));display:flex;flex-direction:column;gap:12px}
.ix-panel-img{aspect-ratio:1;max-height:46vh;border-radius:18px;overflow:hidden;border:2px solid #141039;
  box-shadow:5px 5px 0 #141039;position:relative}
.ix-panel-img img{width:100%;height:100%;object-fit:cover;display:block}
.ix-panel-img img.ix-contain{object-fit:contain;padding:16%;box-sizing:border-box}
.ix-panel-img.is-slot::after{content:'Photo coming soon';position:absolute;inset:0;display:grid;
  place-items:center;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(20,16,57,.4)}
.ix-panel-cap{display:flex;align-items:center;gap:9px;margin:0;padding:0 4px;
  font-family:'Bowlby One SC',sans-serif;font-size:14px;color:#141039;text-transform:uppercase;letter-spacing:.03em}
.ix-panel-cap i{width:10px;height:10px;border-radius:999px;flex:none;display:block}

/* phone: 2b — all ten names fit, tap a row to open its photo, tap again to go */
@media (max-width:760px){
 .ix-wrap{grid-template-columns:1fr;gap:0;margin-top:26px}
 .ix-panel{display:none}
 .ix-row{grid-template-columns:26px minmax(0,1fr) auto;gap:11px;padding:14px 2px;min-height:56px;row-gap:0}
 .ix-num{font-size:12.5px}
 .ix-name{font-size:16px;letter-spacing:.025em}
 .ix-desc{display:none}
 .ix-ages-m{display:block;font-size:11px;font-weight:700;letter-spacing:.09em;
   text-transform:uppercase;color:rgba(20,16,57,.45)}
 .ix-end .ix-ages{display:none}
 .ix-arrow{font-size:17px;display:inline-block;transition:transform .16s}
 .ix-row.is-open .ix-arrow{transform:rotate(90deg)}
 .ix-row.is-open .ix-num{grid-row:1;grid-column:1}
 .ix-row.is-open .ix-txt{grid-row:1;grid-column:2}
 .ix-row.is-open .ix-end{grid-row:1;grid-column:3}
 .ix-row.is-open .ix-desc{display:block;font-size:14px;line-height:1.5;color:rgba(20,16,57,.7);margin-top:5px}
 .ix-row.is-open .ix-thumb{grid-row:2;grid-column:1/-1;display:block;aspect-ratio:16/10;
   margin:11px 0 4px;border-radius:14px;overflow:hidden;border:2px solid #141039}
 .ix-row.is-open .ix-thumb img{width:100%;height:100%;object-fit:cover;display:block}
 .ix-row.is-open .ix-thumb img.ix-contain{object-fit:contain;padding:9%;box-sizing:border-box}
 .ix-thumb-slot{display:grid;place-items:center;font-size:11px;font-weight:700;letter-spacing:.08em;
   text-transform:uppercase;color:rgba(20,16,57,.42);line-height:1.4;text-align:center}
 .ix-row.is-open::after{content:'Tap again to open \2192';grid-row:3;grid-column:1/-1;
   font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
   color:#4E2DA9;padding:2px 0 10px}
}

/* ============ home: service mosaic (big four, small six) ============ */
.mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.mo-tile{position:relative;display:flex;flex-direction:column;text-decoration:none;overflow:hidden;
  aspect-ratio:1;border:2px solid #141039;border-radius:16px;background:#241C4F;
  transition:transform .16s,box-shadow .16s}
.mo-tile:hover{transform:translateY(-3px);box-shadow:0 8px 0 -2px #141039}
.mo-big{grid-column:span 2}
.mo-media{position:absolute;inset:0;display:block}
.mo-media img{width:100%;height:100%;object-fit:cover;display:block}
.mo-media img.mo-logo{object-fit:contain;padding:16%;box-sizing:border-box;background:#FFFDF8}
.mo-slot{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:14px;
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.07) 0 11px,transparent 11px 22px);
  font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,253,248,.5)}
.mo-tile::after{content:'';position:absolute;inset:0;z-index:0;
  background:linear-gradient(to top,rgba(10,7,26,.95) 0%,rgba(10,7,26,.62) 34%,rgba(10,7,26,.08) 70%)}
.mo-body{position:relative;z-index:1;margin-top:auto;padding:14px 15px 15px;display:flex;flex-direction:column;gap:5px}
.mo-ages{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,253,248,.85)}
.mo-ages i{width:8px;height:8px;border-radius:999px;flex:none;display:block}
.mo-body h3{font-size:15px;line-height:1.12;margin:0;color:#FFFDF8;text-transform:uppercase;letter-spacing:.025em;
  text-shadow:0 2px 6px rgba(10,7,26,.55)}
.mo-big .mo-body h3{font-size:21px}
.mo-body p{font-size:13px;line-height:1.45;margin:2px 0 0;color:rgba(255,253,248,.88);text-wrap:pretty;
  text-shadow:0 1px 4px rgba(10,7,26,.5)}
@media (max-width:900px){
 .mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}
 .mo-big{grid-column:span 2;aspect-ratio:16/10}
 .mo-body h3{font-size:15px}
 .mo-big .mo-body h3{font-size:20px}
}
@media (max-width:560px){
 .mosaic{gap:11px}
 .mo-big{aspect-ratio:4/3}
 .mo-body p{display:none}
}
/* coffee cart package ladder */
.pkgs{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:20px;margin-top:26px}
.pkg{background:#fff;border:2px solid #141039;border-radius:20px;box-shadow:4px 4px 0 #141039;padding:26px 24px 28px;display:flex;flex-direction:column;gap:14px;position:relative}
.pkg.pop{box-shadow:4px 4px 0 #8A5216;border-color:#8A5216}
.pkg-tag{position:absolute;top:-13px;left:24px;background:#8A5216;color:#FFFDF8;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.pkg h3{font-family:'Bowlby One SC',sans-serif;font-weight:400;font-size:19px;line-height:1.15;margin:0;text-transform:uppercase;letter-spacing:.02em}
.pkg-price{font-family:'Bowlby One SC',sans-serif;font-size:32px;line-height:1;color:#8A5216}
.pkg-price span{font-family:inherit;font-size:13px;font-weight:700;color:rgba(20,16,57,.5);letter-spacing:.04em;margin-left:6px}
.pkg-meta{font-size:14px;font-weight:700;color:rgba(20,16,57,.7);margin:0;padding-bottom:12px;border-bottom:1px solid rgba(20,16,57,.12)}
.pkg-note{font-size:13.5px;line-height:1.5;color:rgba(20,16,57,.6);margin:0}
.pkg ul{list-style:none;padding:0;margin:0;display:grid;gap:7px;font-size:14.5px;line-height:1.45}
.pkg ul li{display:grid;grid-template-columns:14px 1fr;gap:9px;align-items:start;color:rgba(20,16,57,.78)}
.pkg ul li::before{content:"";width:7px;height:7px;border-radius:50%;background:#C98A3E;margin-top:7px}
.addons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 40px;margin-top:22px}
.addon{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:baseline;padding:11px 0;border-bottom:1px solid rgba(20,16,57,.1);font-size:15.5px}
.addon em{font-style:normal;font-weight:700;white-space:nowrap}

.ix-slot-mini{display:flex;align-items:center;justify-content:center;width:100%;height:100%;
 font:600 12px/1 'DM Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:rgba(20,16,57,.45)}

/* desktop services dropdown */
.dd{position:relative;display:flex;align-items:center}
.dd-btn{display:flex;align-items:center;gap:6px}
.dd-caret{transition:transform .16s ease}
.dd:hover .dd-caret,.dd:focus-within .dd-caret{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 10px);left:-8px;z-index:60;display:grid;gap:2px;min-width:236px;padding:10px;background:#FFFDF8;border:1px solid rgba(20,16,57,.12);border-radius:18px;box-shadow:6px 10px 0 rgba(20,16,57,.1);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}
.dd-menu a{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:11px;font-size:14.5px;font-weight:600;color:#141039;white-space:nowrap}
.dd-menu a:hover{background:rgba(20,16,57,.07)}
.dd-menu i{width:20px;height:6px;border-radius:999px;flex-shrink:0}
.dd-all{margin-top:4px;padding-top:11px !important;border-top:1px solid rgba(20,16,57,.12);color:#4E2DA9 !important}
@media (max-width:980px){.dd-menu{display:none}}

/* service hero headlines get the same outlined treatment as the home hero */
.svc-hero h1{letter-spacing:.035em;text-shadow:
  -2.6px -2.6px 0 var(--hl,#FF5ADF), 2.6px -2.6px 0 var(--hl,#FF5ADF), -2.6px 2.6px 0 var(--hl,#FF5ADF), 2.6px 2.6px 0 var(--hl,#FF5ADF),
  0 -2.6px 0 var(--hl,#FF5ADF), 0 2.6px 0 var(--hl,#FF5ADF), -2.6px 0 0 var(--hl,#FF5ADF), 2.6px 0 0 var(--hl,#FF5ADF),
  -1.3px -2.6px 0 var(--hl,#FF5ADF), 1.3px -2.6px 0 var(--hl,#FF5ADF), -1.3px 2.6px 0 var(--hl,#FF5ADF), 1.3px 2.6px 0 var(--hl,#FF5ADF),
  -2.6px -1.3px 0 var(--hl,#FF5ADF), 2.6px -1.3px 0 var(--hl,#FF5ADF), -2.6px 1.3px 0 var(--hl,#FF5ADF), 2.6px 1.3px 0 var(--hl,#FF5ADF),
  4px 5px 0 rgba(20,16,57,.5)}
@media (max-width:560px){.svc-hero h1{text-shadow:
  -1.9px -1.9px 0 var(--hl,#FF5ADF), 1.9px -1.9px 0 var(--hl,#FF5ADF), -1.9px 1.9px 0 var(--hl,#FF5ADF), 1.9px 1.9px 0 var(--hl,#FF5ADF),
  0 -1.9px 0 var(--hl,#FF5ADF), 0 1.9px 0 var(--hl,#FF5ADF), -1.9px 0 0 var(--hl,#FF5ADF), 1.9px 0 0 var(--hl,#FF5ADF),
  3px 4px 0 rgba(20,16,57,.5)}}

/* "Pick your party" gets the outlined hero treatment on the cream page */
h1.big{color:#FFFDF8;letter-spacing:.035em;text-shadow:
  -2.6px -2.6px 0 var(--hl,#FF5ADF), 2.6px -2.6px 0 var(--hl,#FF5ADF), -2.6px 2.6px 0 var(--hl,#FF5ADF), 2.6px 2.6px 0 var(--hl,#FF5ADF),
  0 -2.6px 0 var(--hl,#FF5ADF), 0 2.6px 0 var(--hl,#FF5ADF), -2.6px 0 0 var(--hl,#FF5ADF), 2.6px 0 0 var(--hl,#FF5ADF),
  -1.3px -2.6px 0 var(--hl,#FF5ADF), 1.3px -2.6px 0 var(--hl,#FF5ADF), -1.3px 2.6px 0 var(--hl,#FF5ADF), 1.3px 2.6px 0 var(--hl,#FF5ADF),
  -2.6px -1.3px 0 var(--hl,#FF5ADF), 2.6px -1.3px 0 var(--hl,#FF5ADF), -2.6px 1.3px 0 var(--hl,#FF5ADF), 2.6px 1.3px 0 var(--hl,#FF5ADF),
  4px 5px 0 rgba(20,16,57,.5)}
