@import url("/assets/fonts/fonts.css");
:root{
--purple:#8764AB; --purple-deep:#521098; --purple-dark:#5f4580; --ink:#3B3B3B; --ink-2:#202020; --muted:#6a6a6a;
--paper:#fff; --paper-2:#f6f3fa; --line:#e6e0ee;
--font:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
--fs-body:1.2rem; --wrap:1360px; --gutter:clamp(1rem,4vw,3rem); --radius:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:var(--fs-body);line-height:1.6;color:var(--ink);background:var(--paper)}
img,svg,video,iframe{max-width:100%;height:auto}
img{display:block}
a{color:var(--purple-dark);text-underline-offset:.15em}
a:hover{color:var(--purple-deep)}
h1,h2,h3,h4,h5,h6,.h{font-family:var(--font);color:var(--ink);line-height:1.2;margin:0 0 .6em;font-weight:600;overflow-wrap:anywhere}
h1,.h1{font-size:clamp(2rem,4.5vw,3rem)}
h2{font-size:clamp(1.6rem,3.2vw,3rem)}
h3{font-size:clamp(1.3rem,2.4vw,1.8rem)}
h4{font-size:1.25rem} h5{font-size:1.4rem;font-weight:300;color:var(--ink-2)}
.h[style*="--fs"]{font-size:min(var(--fs),9vw)}
.h[style*="--c"]{color:var(--c)}
h1.h a{color:inherit;text-decoration:none} h1.h a:hover{text-decoration:underline}
p{margin:0 0 1em}
.al-center{text-align:center} .al-right{text-align:right} .al-left{text-align:left}
figure.al-center{margin-inline:auto} figure.al-right{margin-left:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--purple-deep);color:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:1rem}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding:clamp(2rem,4vw,3.5rem) 0;background:var(--bg,transparent);background-image:var(--bgi,none);background-size:cover;background-position:var(--bgp,center)}
.sec[style*="--pad"]{padding:var(--pad);padding-inline:0}
main>.sec:first-child:not(.hero){padding-top:clamp(1.5rem,3vw,2.5rem)}
main>.sec:first-child:not(.hero):not(:last-child){padding-bottom:0}
main>.sec:first-child:not(.hero)+.sec:not(.g-reviews){padding-top:1rem}
.sec.full>.wrap{max-width:none;padding-inline:0}
.row{display:flex;flex-wrap:wrap;align-items:flex-start;margin-inline:-1rem}
.sec.row{margin-inline:0}
.sec.row{display:block}
.sec.row>.wrap{display:flex;flex-wrap:wrap;align-items:flex-start;padding-inline:calc(var(--gutter) - 1rem)}
.row.inner{margin-bottom:1rem}
.row.ai-center,.sec.ai-center>.wrap>.row{align-items:center}
.col{--pad:initial;--bg:initial;--bgi:initial;--bgp:initial;--minh:initial}
.col{flex:0 0 var(--w,100%);max-width:var(--w,100%);min-width:0;padding:var(--pad,0.5rem 1rem);background:var(--bg,transparent);background-image:var(--bgi,none);background-size:cover;background-position:var(--bgp,center);min-height:var(--minh,auto)}
.col.jc-center{display:flex;flex-direction:column;justify-content:center}
.col.jc-flex-end{display:flex;flex-direction:column;justify-content:flex-end}
.col.row{flex-direction:row;flex-wrap:wrap}
.spacer{height:min(var(--h,2rem),12vw)}
hr.divider{border:0;border-top:2px solid var(--line);margin:1.5rem 0}
.hide_desktop{display:none}
@media (max-width:1024px){.hide_tablet{display:none}.hide_desktop{display:block}}
@media (max-width:767px){
.row{display:block;margin-inline:0}.col{max-width:none;padding:var(--pad-m,1rem 0)}
.sec.row>.wrap{display:block;padding-inline:var(--gutter)}
.fig img{width:auto}
.row.m-reverse{display:flex;flex-direction:column-reverse}
.hide_mobile{display:none}.hide_tablet{display:block}
.sec[style*="--pad"]{padding:1.5rem 0}
}
.prose{max-width:75ch}
.al-center.prose{margin-inline:auto}
.prose[style*="--fs"]{font-size:max(1rem,min(var(--fs),1.2rem))}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin:.3em 0}
.prose img{margin:1em 0;border-radius:var(--radius)}
.prose table{border-collapse:collapse;width:100%}
.prose td,.prose th{border:1px solid var(--line);padding:.5em .75em;text-align:left;vertical-align:top}
.prose blockquote{border-left:4px solid var(--purple);margin:1em 0;padding:.25em 1em;color:var(--muted)}
.prose a,.prose p{overflow-wrap:anywhere}
.fig{--w:initial;margin:0 0 1.5rem;max-width:100%}
.fig img{border-radius:var(--radius);width:var(--w,auto);max-width:100%}
.fig.al-center{margin-inline:auto}
figcaption{font-size:.9rem;color:var(--muted);margin-top:.5em}
.btn{display:inline-block;background:var(--purple);color:#fff;border:2px solid var(--purple);border-radius:999px;padding:.85em 2em;font-weight:500;text-decoration:none;line-height:1.2;cursor:pointer;font-family:inherit;font-size:1rem;transition:background .2s,color .2s}
.btn:hover,.btn:focus-visible{background:transparent;color:var(--purple-dark)}
.btn-wrap{margin:1rem 0}
.btn-book{background:var(--purple-deep);border-color:var(--purple-deep)}
.btn-book:hover{background:#fff;color:var(--purple-deep)}
.site-head{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.head-in{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding-block:.6rem}
.brand img{width:min(380px,60vw);height:auto}
.head-actions{margin-left:auto;display:flex;align-items:center;gap:1rem}
.phone{font-weight:600;text-decoration:none;color:var(--ink);white-space:nowrap}
.phone .ico::before{content:"\260E";margin-right:.35em;color:var(--purple)}
.nav-toggle{display:none;background:var(--purple);color:#fff;border:0;border-radius:8px;padding:.6em 1em;font:inherit;font-size:1rem}
.nav{flex-basis:100%}
.nav>ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 .25rem;align-items:center}
.nav li{position:relative}
.nav .has-sub{display:flex;align-items:center}
.nav a{display:block;padding:.6em .7em;text-decoration:none;color:var(--ink);font-size:1.05rem;border-radius:8px}
.nav a:hover,.nav a:focus-visible,.nav .has-sub:hover>a{color:var(--purple-dark);background:var(--paper-2)}
.nav .cart{margin-left:auto}
.sub-toggle{background:none;border:0;padding:.4em .3em;cursor:pointer;color:var(--ink)}
.sub-toggle::after{content:"";display:inline-block;width:.5em;height:.5em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-bottom:.2em}
.sub-toggle[aria-expanded="true"]::after{transform:rotate(225deg);margin-bottom:-.2em}
.sub{list-style:none;margin:0;padding:.4rem;position:absolute;left:0;top:100%;min-width:19rem;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(60,30,90,.15);display:none;z-index:60}
.sub a{font-size:1rem;padding:.55em .8em}
.has-sub:hover>.sub,.has-sub:focus-within>.sub:not(.closed),.sub.open{display:block}
@media (max-width:1180px){
.nav-toggle{display:inline-block}
.nav{display:none}
.nav.open{display:block}
.nav.open{max-height:calc(100vh - 8.5rem);max-height:calc(100dvh - 8.5rem);overflow-y:auto;overscroll-behavior:contain}
.nav>ul{flex-direction:column;align-items:stretch;padding:.5rem 0}
.nav .cart{margin-left:0}
.sub{position:static;display:none;box-shadow:none;border:0;padding-left:1rem}
.has-sub:hover>.sub:not(.open),.has-sub:focus-within>.sub:not(.open){display:none}
.sub.open{display:block}
.sub-toggle{min-width:44px;min-height:44px}
.has-sub{display:flex;flex-wrap:wrap;align-items:center}
.has-sub>a{flex:1}
.has-sub>.sub{flex-basis:100%}
.brand img{width:min(300px,62vw)}
.head-actions .phone{display:none}
}
@media (max-width:520px){.btn-book{padding:.7em 1.1em;font-size:.9rem}}
.inl{display:inline-block;vertical-align:middle;width:var(--ew,auto);max-width:100%;margin-right:.75rem}
.inl .fig,.inl .btn-wrap{margin-bottom:.5rem}
.inl .fig img{width:100%}
@media (max-width:1024px){.inl{width:var(--ew-t,var(--ew,auto))}}
@media (max-width:767px){.inl{width:var(--ew-m,var(--ew-t,var(--ew,auto)))}}
.inl-auto{flex:1 1 300px;max-width:100%}
.inl-auto .btn-wrap{display:flex}
.inl-auto .btn{display:block;width:100%;text-align:center;white-space:normal}
.btn-pair{display:flex;justify-content:space-between;align-items:center;gap:1.5rem}
.btn-pair>.inl{flex:0 1 auto;width:auto;margin-right:0}
@media (max-width:767px){.btn-pair{flex-direction:column;align-items:stretch;gap:.5rem}.btn-pair>.inl{width:100%}}
.iconlist{list-style:none;padding:0;margin:0 0 1.5rem}
.iconlist li{display:flex;gap:.6em;align-items:flex-start;margin:.5em 0}
.iconlist svg,.iconlist .ico{width:1.4em;height:1.4em;flex:none;color:var(--purple);margin-top:.15em}
.accordion details{border:1px solid var(--line);border-radius:10px;margin:0 0 .75rem;background:#fff}
.accordion summary{cursor:pointer;padding:.9em 1.1em;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary::after{content:"+";color:var(--purple);font-size:1.4em;line-height:1}
.accordion details[open] summary::after{content:"\2212"}
.accordion details>.prose{padding:0 1.1em 1em;max-width:none}
.imgbox{display:flex;gap:1.5rem;align-items:flex-start;margin:0 0 2rem}
.imgbox img{width:min(220px,40%);border-radius:var(--radius);flex:none}
.imgbox.pos-top{flex-direction:column}.imgbox.pos-top img{width:100%}
.imgbox-body h3{margin-bottom:.4em}
.testimonials{display:grid;gap:1.5rem}
.testimonial{margin:0 0 1.5rem;background:var(--paper-2);border-radius:var(--radius);padding:1.5rem 1.75rem;border-left:5px solid var(--purple)}
.testimonial .quote{font-size:1.05rem}
.testimonial footer{display:flex;align-items:center;gap:.75rem;margin-top:1rem;font-weight:600}
.testimonial .avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}
.testimonial cite{font-style:normal}
.testimonial .job{font-weight:400;color:var(--muted)}
.cta-card{position:relative;display:block;border-radius:var(--radius);overflow:hidden;min-height:260px;color:#fff;text-decoration:none;margin:0 0 1.5rem;isolation:isolate}
.cta-card .cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;transition:transform .4s}
.cta-card:hover .cta-bg{transform:scale(1.04)}
.cta-card .cta-body{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(0,0,0,.72))}
.cta-card h3,.cta-card h2,.cta-card h4{color:#fff;margin:0}
.video{position:relative;aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;margin:0 0 1.5rem}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-face{display:block;position:absolute;inset:0}
.video-face img{width:100%;height:100%;object-fit:cover;opacity:.9}
.play{position:absolute;left:50%;top:50%;width:76px;height:54px;transform:translate(-50%,-50%);background:var(--purple-deep);border-radius:14px}
.play::after{content:"";position:absolute;left:31px;top:15px;border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent}
.video-face:hover .play{background:#ff0000}
.fb-feed iframe,.map iframe{width:100%;border:0;border-radius:var(--radius)}
.map iframe{min-height:400px}
.fb-feed iframe{height:650px}
.share{color:var(--muted);font-size:.95rem}
.share a{margin-left:.5em}
.anchor{display:block;position:relative;top:-90px;visibility:hidden}
.form{display:grid;gap:1rem;max-width:56rem}
.form label{display:block}
.form label span,.form legend{display:block;font-weight:600;margin-bottom:.3em}
.form input:not([type=radio]):not([type=checkbox]),.form textarea,.form select{width:100%;font:inherit;padding:.7em .9em;border:1px solid #cfc6db;border-radius:8px;background:#fff;color:var(--ink)}
.form input:focus,.form textarea:focus,.form select:focus{outline:3px solid rgba(140,107,175,.45);border-color:var(--purple)}
.form fieldset{border:1px solid var(--line);border-radius:10px;padding:.75em 1em;margin:0}
.form .opt{display:block;font-weight:400;margin:.3em 0}
.form .hp{position:absolute;left:-9999px;opacity:0;height:0}
.form-status{min-height:1.5em;font-weight:600;color:var(--purple-deep)}
.form-status.error{color:#b3261e}
@media (min-width:720px){.form .w-50{width:calc(50% - .5rem);display:inline-block;vertical-align:top}.form .w-33{width:calc(33.33% - .7rem);display:inline-block}}
.site-foot{background:var(--purple-dark);color:#f3edf9;margin-top:3rem}
.site-foot a{color:#fff}
.foot-grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));padding-block:3rem 2rem}
.foot-about img{background:#fff;border-radius:10px;padding:.5rem;width:min(300px,100%);margin-bottom:1rem}
.site-foot h2{color:#fff;font-size:1.15rem;margin:0 0 .6em}
.foot-nav ul{list-style:none;padding:0;margin:0}
.foot-nav li{margin:.35em 0}
.foot-nav a{text-decoration:none}
.foot-nav a:hover{text-decoration:underline}
.foot-awards img{width:160px;background:#fff;border-radius:10px;padding:.5rem}
.follow svg{vertical-align:middle;margin-left:.3em}
.foot-base{border-top:1px solid rgba(255,255,255,.2);padding-block:1rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;font-size:.9rem}
.foot-base p{margin:0}
.foot-base a{margin-right:1em}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
.hero{padding:0;background:#fff}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:2rem;min-height:min(80vh,720px)}
.hero-copy{padding:3rem 0}
.hero-copy h1{font-size:clamp(2rem,4vw,3.2rem);font-weight:700;color:var(--ink-2)}
.hero .lede{font-size:1.15rem;max-width:34rem;color:var(--ink)}
.hero-pic img{width:100%;height:100%;object-fit:cover;border-radius:0 0 0 220px;max-height:720px}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;min-height:0}.hero-copy{padding:1.5rem 0 .5rem;order:2}.hero-pic{order:1;margin-inline:calc(-1 * var(--gutter))}.hero-pic img{border-radius:0;max-height:52vh}}
.colour-sec{background:var(--paper-2)}
.colour-grid{display:grid;grid-template-columns:3fr 2fr;gap:2.5rem;align-items:center}
.colour-box{background:#fff;border-radius:var(--radius);padding:1.25rem;box-shadow:0 10px 30px rgba(60,30,90,.08)}
.colour-sample{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1.5rem;font-size:1.15rem;line-height:1.65;transition:background .25s;min-height:9rem}
.colour-sample p{margin:0}
.swatches{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.swatch{width:2.4rem;height:2.4rem;border-radius:50%;border:2px solid rgba(0,0,0,.15);cursor:pointer;padding:0;background:var(--sw);box-shadow:inset 0 0 0 2px #fff}
.swatch[aria-pressed=true]{outline:3px solid var(--purple);outline-offset:2px}
.colour-copy h2{margin-bottom:.4em}
@media (max-width:900px){.colour-grid{grid-template-columns:1fr}}
.signs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin:1.5rem 0 2rem}
.signs-grid .cta-card{min-height:220px;margin:0}
.signs-grid h3{font-size:1.15rem}
@media (max-width:900px){.signs-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.signs-grid{grid-template-columns:1fr}}
.btn-line{background:transparent;color:var(--purple-dark)}
.btn-line:hover{background:var(--purple);color:#fff}
.or{margin:0 .75rem;color:var(--muted)}
.steps-card{background:var(--purple-deep);color:#f6f0ff;border-radius:var(--radius);padding:clamp(1.5rem,4vw,3rem)}
.steps-card h2,.steps-card h3{color:#fff}
.steps-card .lede{max-width:40rem;color:#e9dcf7}
.steps-list{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.steps-list .num{display:block;color:#c9aee4;font-weight:600;margin-bottom:.4em;letter-spacing:.05em}
.steps-list p{margin:0;color:#e9dcf7}
@media (max-width:760px){.steps-list{grid-template-columns:1fr}}
.costs-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.costs-box{background:var(--paper-2);border-left:6px solid var(--purple);border-radius:var(--radius);padding:2rem;max-width:44rem}
.costs-box h2{margin-bottom:.4em}
.costs-box .btn-wrap{margin-bottom:0}
.fb-col h3{margin-bottom:.6em}
.fb-face{position:relative;display:block;max-width:500px;aspect-ratio:3/2;border-radius:var(--radius);overflow:hidden;background:var(--paper-2);color:#fff;text-decoration:none;isolation:isolate}
.fb-face img{width:100%;height:100%;object-fit:cover}
.fb-face::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(40,12,70,.55));z-index:0}
.fb-open{position:absolute;left:1.25rem;bottom:1.25rem;z-index:1;display:inline-flex;align-items:center;gap:.6em;max-width:calc(100% - 2.5rem);background:var(--purple-deep);color:#fff;border:2px solid var(--purple-deep);border-radius:999px;padding:.75em 1.5em;font-size:1rem;font-weight:500;line-height:1.2;transition:background .2s,color .2s}
.fb-face:hover .fb-open,.fb-face:focus-visible .fb-open{background:#fff;color:var(--purple-deep)}
.fb-face:focus-visible{outline:3px solid var(--purple-deep);outline-offset:3px}
@media (max-width:420px){.fb-open{left:.9rem;bottom:.9rem;max-width:calc(100% - 1.8rem);padding:.7em 1.1em;font-size:.95rem}}
@media (max-width:900px){.costs-grid{grid-template-columns:1fr}}
.testimonials.cols-2{grid-template-columns:1fr 1fr;margin:1.5rem 0}
@media (max-width:760px){.testimonials.cols-2{grid-template-columns:1fr}}
.links-grid{display:grid;grid-template-columns:1fr;gap:3rem;align-items:start}
.partner-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.5rem}
.partner-links li{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;padding:1rem;background:#fff;min-height:150px}
.partner-links img{width:auto;max-height:110px;object-fit:contain}
.price-line{font-weight:600;font-size:1.25rem;color:var(--purple-deep);margin:.5rem 0 1rem}
.crumbs{margin:0 0 1rem;color:var(--muted)}.crumbs a{color:var(--purple-dark)}
.cart-badge:not(:empty){display:inline-block;min-width:1.4em;padding:.1em .4em;margin-left:.3em;border-radius:999px;background:var(--purple);color:#fff;font-size:.75em;text-align:center;vertical-align:top}
.shop-note{color:var(--muted);font-size:.95em;margin-top:1.5rem}
.shop-list{columns:2;column-gap:2rem;padding-left:1.2em}.shop-list li{break-inside:avoid;margin-bottom:.5em}
.fp-products{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1.5rem}
.fp-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.fp-card-image,.fp-product-image{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;border-radius:calc(var(--radius) - 4px);background:#faf8fc}
.shop-product .fp-product-image{aspect-ratio:1;margin-bottom:1rem}
.fp-card-name{font-weight:600;line-height:1.3}.fp-card-name a{color:inherit;text-decoration:none}
.fp-card-price,.fp-product-price{font-weight:600;font-size:1.1em}.fp-price-was{text-decoration:line-through;color:var(--muted);margin-right:.4em;font-weight:400}.fp-price-from{font-weight:400;color:var(--muted)}
.fp-variant,.cart-speed-option select{font:inherit;padding:.55em 2.2em .55em .8em;border:1px solid var(--line);border-radius:8px;min-height:44px;width:100%;background:#fff}
.fp-qty{display:flex;align-items:center;gap:.6rem;font-weight:500}.fp-qty-input{font:inherit;padding:.55em .8em;border:1px solid var(--line);border-radius:8px;min-height:44px;width:5.5em;background:#fff}
.fp-buy{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:#fff;border:2px solid var(--purple);border-radius:999px;padding:.6em 1.5em;font:inherit;font-weight:500;text-decoration:none;min-height:44px;cursor:pointer;transition:background .2s,color .2s}
.fp-buy:hover,.fp-buy:focus-visible{background:transparent;color:var(--purple-dark)}
.fp-buy[disabled]{background:#ece7f2;border-color:#ece7f2;color:var(--muted);cursor:default}
.fp-buy-line{margin:auto 0 0;display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.fp-card .fp-buy{width:100%}
.fp-card-name{flex-grow:1}
@supports (grid-template-rows:subgrid){
.fp-card{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:.6rem;align-content:start}
.fp-card-name{flex-grow:0}
.fp-card-image{grid-row:1}.fp-card-name{grid-row:2}.fp-card-price{grid-row:3}.fp-card .fp-variant{grid-row:4}.fp-card .fp-qty{grid-row:5}.fp-card .fp-buy-line,.fp-card .fp-soldout{grid-row:6}
}
.fp-soldout,.fp-stock,.fp-products-note{color:var(--muted)}
.shop-cart{max-width:46rem;margin:0 auto}
.cart-empty{text-align:center;color:var(--muted);padding:2rem 0}
.cart-row{display:grid;grid-template-columns:1fr auto 5.5em 2.25rem;gap:.5rem 1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line)}
.cart-name{line-height:1.35}.cart-variant{color:var(--muted);font-size:.9em;white-space:nowrap}
.cart-line-total{text-align:right;font-weight:600;white-space:nowrap}
.cart-qty{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.cart-qty button{font:inherit;font-size:1.1em;width:2.4rem;min-height:2.6rem;border:0;background:#fff;color:var(--purple-dark);cursor:pointer;padding:0}
.cart-qty button:hover,.cart-qty button:focus-visible{background:#f3eff8;outline:none}
.cart-qty b{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;font-weight:600;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.cart-remove{width:2.25rem;height:2.25rem;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:1.3em;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.cart-remove:hover,.cart-remove:focus-visible{background:#f3eff8;color:var(--purple-dark)}
.cart-discount,.cart-discount-hint{margin:1rem 0 0;color:var(--purple-dark);font-size:.95em}
.cart-shipping{margin:1.25rem 0 0}
.shop-cart fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:.4rem .8rem .6rem;margin:1.25rem 0 0}
.shop-cart legend{font-weight:600;padding:0 .4em}
.cart-speed-row{margin:.3rem 0 0}
.shop-cart .cart-speed-option{display:flex;align-items:center;gap:.7rem;padding:.55rem .4rem;margin:0;font-weight:400;cursor:pointer;border-radius:8px}
.shop-cart .cart-speed-option:hover{background:#faf8fc}
.cart-speed-option input[type="radio"]{width:1.25rem;height:1.25rem;margin:0;accent-color:var(--purple);flex:none}
.cart-speed-price{margin-left:auto;font-weight:600;white-space:nowrap}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:1.15em;margin:1.25rem 0 0;padding-top:1rem;border-top:2px solid var(--line)}
.cart-total b{font-size:1.25em}.cart-gst{color:var(--muted);font-size:.8em;font-weight:400}
.cart-checkout{margin-top:1.5rem;background:#faf8fc;border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.25rem 1.5rem}
.shop-cart label{display:block;margin:0 0 1rem;font-weight:500}
.cart-checkout label:not(.cart-speed-option){display:grid;gap:.35rem}
.shop-cart input[type="email"],.shop-cart input[type="text"],.shop-cart input[type="tel"],.shop-cart input:not([type]){font:inherit;padding:.6em .8em;border:1px solid var(--line);border-radius:8px;min-height:44px;width:100%;max-width:26rem;display:block;background:#fff}
.cart-pay{display:inline-flex;align-items:center;justify-content:center;background:var(--purple-deep);color:#fff;border:2px solid var(--purple-deep);border-radius:999px;padding:.85em 2.2em;font:inherit;font-weight:500;cursor:pointer;min-height:48px;margin-top:.25rem;transition:background .2s,color .2s}
.cart-pay:hover,.cart-pay:focus-visible{background:#fff;color:var(--purple-deep)}
.cart-pay[disabled]{opacity:.6;cursor:wait}
.cart-note:not([hidden]),.cart-notice{margin:.75rem 0 0;color:var(--purple-dark)}
.shop-cart .btn-line{margin-top:.5rem}
@media (max-width:640px){
.shop-list{columns:1}
.cart-row{grid-template-columns:auto 1fr 2.25rem;row-gap:.6rem}
.cart-name{grid-column:1/-1}
.cart-line-total{text-align:left}
.cart-pay{width:100%}
.shop-cart input[type="email"],.shop-cart input[type="text"],.shop-cart input[type="tel"]{max-width:none}
.cart-total{flex-wrap:wrap}.cart-total .cart-gst{flex-basis:100%;text-align:right}
}
.st-form .opt{display:inline-flex;align-items:center;gap:.5em;min-height:44px;margin:0 1.75em 0 0;cursor:pointer}
.st-form .opt input{width:1.25em;height:1.25em;margin:0;accent-color:var(--purple)}
.st-results{scroll-margin-top:11rem}
.st-results .prose,.st-callback{max-width:56rem}
.st-results [data-st-heading]:focus{outline:none}
.st-box{background:var(--paper-2);border-left:6px solid var(--purple);border-radius:var(--radius);padding:clamp(1.25rem,4vw,2rem);max-width:56rem;margin:1.5rem 0}
.st-box h3{margin-bottom:.4em}
.st-box .btn-wrap{margin-bottom:0}
.st-or{font-weight:600;color:var(--muted);letter-spacing:.08em;margin:1.5rem 0}
.st-callback h3{margin-bottom:.8em}
.g-reviews{background:var(--paper-2)}
.g-reviews h2{margin-bottom:.4em}
.g-agg{display:flex;justify-content:center;align-items:center;gap:.6rem;flex-wrap:wrap;margin:0 0 1.75rem;font-weight:600;color:var(--ink-2)}
.g-agg[hidden],.g-grid[hidden]{display:none}
.g-stars{color:#b7791f;letter-spacing:.08em;margin:0}
.g-agg .g-stars{font-size:1.4rem}
.g-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:0 0 1.5rem}
@media (max-width:1024px){.g-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.g-grid{grid-template-columns:1fr}.g-card:nth-child(n+4){display:none}}
.g-card{background:#fff;border-radius:var(--radius);border-left:5px solid var(--purple);padding:1.25rem 1.4rem;box-shadow:0 6px 20px rgba(60,30,90,.06);display:flex;flex-direction:column;gap:.6rem;min-width:0}
.g-card-head{display:flex;align-items:center;gap:.75rem}
.g-initial{flex:none;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-weight:600;font-size:1.1rem}
.g-meta{min-width:0}
.g-name{margin:0;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.g-date{margin:0;font-size:.9rem;color:var(--muted)}
.g-text{font-size:1.02rem;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;line-clamp:7;overflow:hidden}
.g-card.is-open .g-text{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
.g-more{align-self:flex-start;background:none;border:0;padding:.35rem 0;min-height:44px;color:var(--purple-dark);font:inherit;font-size:.95rem;font-weight:600;text-decoration:underline;text-underline-offset:.15em;cursor:pointer}
.g-more[hidden]{display:none}
.g-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.75rem 1rem;margin:0}
.btn-ghost{background:#fff;color:var(--purple-dark)}
.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--purple);color:#fff}