/* Shared brand typography, original supplied artwork and clearer controls. */
@import url('/visual-integrity.css');
body{font-family:var(--font-system);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body:not(.wedding-site){--stock:#fafbfc;--stock-2:#f0f2f6;--ink:#21233a;--ink-70:#50576a;--ink-40:#626a7b;--rule:#dfe3eb}.mono{font-family:var(--font-system);letter-spacing:.035em}.shell{width:min(1280px,calc(100% - 64px))}.brand-lockup{display:block!important;object-fit:contain!important;object-position:left center;width:246px!important;height:auto!important;max-height:78px;flex-shrink:0;filter:none!important}.head-in{height:104px;gap:22px}.head .brand{flex-shrink:0}.head{box-shadow:0 3px 18px #21233a06}.nav a,.hnav a{font-family:var(--font-system);font-size:14px;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:10px 11px}.nav a[href='#/quote']{border-radius:8px;background:var(--ink);color:var(--stock);padding-inline:17px}.shop-shortcuts{font-size:14px;min-height:58px}.shop-shortcuts a,.shop-shortcuts summary{min-height:44px;display:inline-flex;align-items:center}.global-search-box input{font-size:16px;min-height:48px}.ventura-site h1{font-size:clamp(42px,4.7vw,66px);line-height:1.09;letter-spacing:-.045em;font-weight:650}.ventura-site h2{line-height:1.2;letter-spacing:-.035em}.hero{padding:58px 0 72px}.hero-grid{gap:56px;align-items:center}.hero .lede{font-size:18px;line-height:1.75;max-width:47ch}.eyebrow,.eyebrow.mono{font-size:13px;letter-spacing:.1em;font-weight:600}.hero .specline{font-size:12px;letter-spacing:0;line-height:1.75;gap:8px 20px}.btn,.add,.order-primary,.order-secondary{font-size:15px;font-weight:600;min-height:48px;border-radius:8px}.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--vv-focus);outline-offset:4px}.sec-head p,.split p{font-size:17px;line-height:1.8}.card-body h3,.collection-image strong{font-size:18px;line-height:1.4}.card-body .desc{font-size:15px;line-height:1.7}.card-body>.mono,.moq{font-size:13px!important;letter-spacing:0;line-height:1.65}.card-body .now{font-size:22px}.qv-trigger{font-size:13px;min-height:40px}.catcard{padding:17px;gap:13px}.catcard b{font-size:16px}.catcard span span,.fam-h,.fam-h em{font-size:13px}.fam-h em{letter-spacing:0}.collection-image{border-color:#e0e4eb;border-radius:13px}.collection-image>span{padding:20px;gap:9px}.collection-image small,.collection-image em,.collection-count,.collection-bottom{font-size:14px}.collection-heading p{font-size:16px}.collection-heading h2{font-size:34px}.collection-detail h2{font-weight:650}.steps article p,.svc p{font-size:15px;line-height:1.75}.foot{background:var(--vv-navy);color:#f6f7fa}.foot .brand-lockup,.order-footer .brand-lockup{background:#fff;border-radius:8px;padding:12px 15px;box-sizing:content-box;width:230px!important}.foot p,.foot li,.foot a,.foot h4{font-size:14px;line-height:1.8}.foot .blurb{font-size:15px}.foot-bot{font-size:13px;opacity:1;color:#c5ccda}.foot .brand{margin-bottom:24px}.division-logo{width:105px}.division-copy>.mono{font-size:12px}.division-copy p{font-size:16px}.division-card{border-radius:16px}.wedding-site .brand-lockup{width:252px!important}.wedding-site{--char:#241f1a;--muted:#6b6154;--gold-deep:#826127}.wedding-site h1{font-family:var(--font-system);font-size:clamp(40px,4.6vw,64px);font-weight:500;line-height:1.14;letter-spacing:-.025em}.wedding-site h2{font-size:clamp(29px,3vw,42px);line-height:1.2;letter-spacing:-.02em}.wedding-site .hero .lede{font-size:18px}.wedding-site .hero-grid{gap:56px}.wedding-site .tile h3,.pfbody h4{font-size:20px;line-height:1.35}.wedding-site .tile p,.pfbody p{font-size:15px;line-height:1.7}.pfbody .tags,.pfbody .catlink,.pf-pill{font-size:13px}.pf-pill{padding:11px 16px;min-height:44px}.pfbody .pf-qv{font-size:14px;min-height:44px}.wedding-site label,.wedding-site select,.wedding-site input{font-size:16px}.wedding-site .tile,.wedding-site .pf-card{border-radius:13px;overflow:hidden}.wedding-site .crumb{font-size:14px}.ordering-page .order-header{padding-block:20px}.order-header nav a{font-size:15px}.checkout-card label{font-size:15px}.checkout-card{box-shadow:0 5px 25px #21233a04}.field-hint,.checkout-summary p{font-size:14px}html[data-theme=ink] .head .brand-lockup{background:#fff;padding:9px 12px;border-radius:8px;box-sizing:content-box}html[data-theme=ink] body.ventura-site{--stock:#191c2c;--stock-2:#23283c;--surface:#252b40;--ink:#f5f6fb;--ink-70:#d5dae6;--ink-40:#bfc7d8;--rule:#40485d}html[data-theme=ink] .collection-image{border-color:#41495f}
@media(max-width:1150px){.head-in{height:90px;gap:14px}.brand-lockup{width:210px!important}.wedding-site .brand-lockup{width:220px!important}.nav a,.hnav a{font-size:13px;padding:10px 8px}.head-act{gap:8px}.hero-grid,.wedding-site .hero-grid{gap:35px}}
@media(max-width:1000px){.ventura-site .nav{display:none}.ventura-site .nav[data-open='1']{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;padding:18px 5vw;background:var(--stock);border-bottom:1px solid var(--rule);box-shadow:0 12px 20px #0001}.ventura-site .burger{display:inline-flex;align-items:center;justify-content:center}.ventura-site .nav a{font-size:16px}.head-act{margin-left:auto}.wedding-site .hnav{display:none}.wedding-site .hnav[data-open='1']{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fcfcfc;padding:18px 5vw;box-shadow:0 12px 20px #0001}.wedding-menu{display:inline-flex;margin-left:auto}.hnav a{font-size:16px}.hero .lede{font-size:17px}}
@media(max-width:760px){.shell{width:calc(100% - 36px)}.head-in{height:82px;gap:10px}.brand-lockup{width:190px!important;max-height:62px}.wedding-site .brand-lockup{width:222px!important}.head-act{gap:6px}.basketbtn .lbl{display:none}.iconbtn,.basketbtn{min-width:40px;height:44px}.hero{padding:34px 0 42px}.hero-grid,.wedding-site .hero-grid{gap:28px}.ventura-site h1{font-size:clamp(37px,8vw,54px);letter-spacing:-.04em;max-width:16ch}.wedding-site h1{font-size:clamp(38px,8.5vw,54px);max-width:17ch}.hero .lede{font-size:17px;line-height:1.75}.hero .specline{font-size:12px}.sec-head p{font-size:16px}.card-body{padding:16px}.card-body h3,.collection-image strong{font-size:16px}.card-body .desc{font-size:14px;display:block}.card-body>.mono,.moq{font-size:12px!important}.card-body .now{font-size:18px}.collection-image>span{padding:14px}.collection-image small,.collection-image em{font-size:13px}.collection-heading h2{font-size:28px}.catcard{padding:13px}.catcard b{font-size:15px}.wedding-site .tile h3,.pfbody h4{font-size:18px}.wedding-site .tile p,.pfbody p{font-size:14px}.wedding-site .crumb{font-size:13px}.division-copy{padding:28px}.division-logo{width:86px}.order-header{flex-wrap:wrap}.order-header nav{gap:24px}.order-logo img.brand-lockup{width:220px!important}.foot .brand-lockup{width:225px!important}}
@media(max-width:390px){.head .ventura-lockup{width:160px!important}.head .wedding-lockup{width:205px!important}.head-act{gap:3px}.head .iconbtn,.head .basketbtn{min-width:36px;padding-inline:8px}.collection-grid{gap:10px}.collection-image>span{padding:11px}.collection-image strong{font-size:15px}}

/* Matching stacked artwork from the supplied logo layouts. */
.catcard .ic.category-photo{padding:0;overflow:hidden;background:#eef0f4!important}.catcard .ic.category-photo img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.04);transition:transform .2s ease}.catcard:hover .ic.category-photo img{transform:scale(1.1)}

/* Larger, client-friendly category previews */
.ventura-site .fam-h span,.ventura-site .fam-h em{font-family:var(--font-system)}.ventura-site .fam-h span{font-weight:800;letter-spacing:.07em}.ventura-site .fam-h em{font-weight:600;letter-spacing:.01em}.ventura-site .catgrid{grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px}.ventura-site .catcard{display:grid;grid-template-columns:78px minmax(0,1fr);gap:14px;min-height:94px;padding:8px;border-radius:13px;border-color:var(--rule);background:var(--surface);box-shadow:0 8px 22px #21233a08;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.ventura-site .catcard:hover{transform:translateY(-3px);border-color:var(--vv-pink);box-shadow:0 12px 28px #21233a14}.ventura-site .catcard .ic{width:78px;height:78px;border-radius:9px}.ventura-site .catcard .ic.category-photo{padding:4px;background:#f3f5f8!important}.ventura-site .catcard .ic.category-photo img{object-fit:contain;object-position:center;transform:none;transition:none}.ventura-site .catcard:hover .ic.category-photo img{transform:none}.ventura-site .catcard>span:last-child{align-self:center;min-width:0}.ventura-site .catcard b{display:block;font-family:var(--font-system);font-size:16px;font-weight:800;line-height:1.16;letter-spacing:-.015em;color:var(--vv-navy)}.ventura-site .catcard>span:last-child>span{display:block;margin-top:6px;font-family:var(--font-system);font-size:13px;font-weight:600;line-height:1.35;letter-spacing:.01em;color:#626a7b}.hero-carousel-actions{position:absolute;z-index:3;top:16px;right:16px;display:flex;gap:7px}.hero-carousel-toggle{width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:var(--vv-navy);font:700 15px/1 var(--font-system);box-shadow:0 4px 16px #12162e33;cursor:pointer}.hero-carousel-toggle:focus-visible{outline:3px solid var(--vv-accent-bright);outline-offset:2px}@media(max-width:760px){.ventura-site .catgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ventura-site .catcard{grid-template-columns:1fr;gap:8px;min-height:0;padding:8px}.ventura-site .catcard .ic{width:100%;height:96px}.ventura-site .catcard b{font-size:15px}.ventura-site .catcard>span:last-child>span{font-size:12px;margin-top:4px}.hero-carousel-actions{top:11px;right:11px}.hero-carousel-toggle{width:35px;height:35px}}

/* Clean hero controls and larger category previews */
.ventura-site .catgrid{grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:16px}.ventura-site .catcard{grid-template-columns:104px minmax(0,1fr);gap:17px;min-height:120px;padding:8px 10px 8px 8px;border-radius:15px}.ventura-site .catcard .ic{width:104px;height:104px;border-radius:11px}.ventura-site .catcard .ic.category-photo{padding:6px}.ventura-site .catcard b{font-size:17px;line-height:1.2}.ventura-site .catcard>span:last-child>span{font-size:14px;margin-top:7px}.hero-carousel-actions{top:18px;right:18px;gap:8px}.hero-carousel-toggle{width:42px;height:42px}@media(max-width:760px){.ventura-site .catgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ventura-site .catcard{grid-template-columns:1fr;gap:10px;padding:9px;min-height:0}.ventura-site .catcard .ic{width:100%;height:124px;border-radius:10px}.ventura-site .catcard b{font-size:16px}.ventura-site .catcard>span:last-child>span{font-size:13px}.hero-carousel-actions{top:12px;right:12px}.hero-carousel-toggle{width:38px;height:38px}}

/* Simple dotted navigation for the full hero carousel */
.hero-carousel-actions{left:50%;right:auto;transform:translateX(-50%);top:16px;padding:5px;background:rgba(255,255,255,.9);border-radius:999px;box-shadow:0 5px 20px #21233a18}.hero-carousel-actions .hero-carousel-toggle{background:#fff;box-shadow:0 3px 10px #21233a18}.hero-carousel-dots{position:absolute;z-index:3;bottom:104px;left:50%;display:flex;align-items:center;gap:7px;transform:translateX(-50%);padding:7px 10px;background:rgba(255,255,255,.88);border-radius:999px;box-shadow:0 4px 16px #21233a12}.hero-carousel-dots button{width:7px;height:7px;flex:0 0 7px;padding:0;border:0;border-radius:999px;background:#aeb1bb;cursor:pointer;transition:width .2s ease,background .2s ease}.hero-carousel-dots button[aria-selected=true]{width:22px;background:var(--vv-navy)}.hero-carousel-dots button:focus-visible{outline:3px solid var(--vv-accent);outline-offset:3px}@media(max-width:760px){.hero-carousel-actions{top:11px}.hero-carousel-dots{bottom:96px;gap:6px;padding:6px 8px}.hero-carousel-dots button{width:6px;height:6px;flex-basis:6px}.hero-carousel-dots button[aria-selected=true]{width:18px}}

/* Large visual category tiles and a matching category header after selection. */
#homeCats .catgrid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px}#homeCats .catcard{display:grid;grid-template-columns:1fr;gap:13px;min-height:0;padding:10px;border-radius:16px}#homeCats .catcard .ic{width:100%;height:190px;border-radius:11px}#homeCats .catcard .ic.category-photo{padding:7px}#homeCats .catcard>span:last-child{align-self:start;padding:0 5px 5px}#homeCats .catcard b{font-size:19px;line-height:1.2}#homeCats .catcard>span:last-child>span{font-size:14px;margin-top:5px}.category-open-hero{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:28px;margin:4px 0 34px;padding:16px;background:#f3f5f8;border:1px solid #dfe3eb;border-radius:16px}.category-open-hero>img{display:block;width:220px;height:220px;object-fit:contain;background:#fff;border-radius:11px}.category-open-hero span{font-size:12px;font-weight:800;letter-spacing:.09em;color:#626a7b}.category-open-hero h2{margin:7px 0 8px;font-size:clamp(30px,4vw,46px);line-height:1.08}.category-open-hero p{max-width:62ch;margin:0;font-size:16px;line-height:1.7;color:#50576a}@media(max-width:760px){#homeCats .catgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#homeCats .catcard{gap:9px;padding:8px}#homeCats .catcard .ic{height:142px}#homeCats .catcard b{font-size:16px}#homeCats .catcard>span:last-child>span{font-size:13px}.category-open-hero{grid-template-columns:1fr;gap:15px;padding:13px;margin-bottom:26px}.category-open-hero>img{width:100%;height:min(70vw,310px)}.category-open-hero h2{font-size:32px}.category-open-hero p{font-size:15px}}
.foot .footer-brand{display:flex;align-items:center;justify-content:center;width:184px;height:170px;max-width:100%;padding:8px;margin:0 0 22px;background:#fff;border:1px solid #ffffff22;border-radius:11px;box-sizing:border-box;overflow:hidden}
.foot .footer-brand img.brand-lockup,.wedding-site .foot .footer-brand img.brand-lockup{display:block!important;width:168px!important;height:154px!important;max-width:100%!important;max-height:154px!important;object-fit:contain!important;object-position:center!important;padding:0!important;border:0;border-radius:0;background:transparent;box-sizing:border-box;filter:none!important}
.foot .blurb,.wedding-site .foot .blurb{color:#dce0eb;opacity:1;font-size:15px;line-height:1.8;margin:0;max-width:38ch}
.foot h4,.wedding-site .foot h4{color:#dce0eb;opacity:1;font-size:13px;letter-spacing:.08em}
.foot-grid{align-items:start}
@media(max-width:760px){.foot{padding-top:40px}.foot .footer-brand{width:176px;height:164px;padding:7px;margin-bottom:20px}.foot .footer-brand img.brand-lockup,.wedding-site .foot .footer-brand img.brand-lockup{width:162px!important;height:150px!important;max-height:150px!important}.foot-grid{gap:32px}}

/* Consistent real-photo product cards: match the square collection-card framing. */
.ventura-site .card{display:flex;flex-direction:column;height:100%;background:var(--surface);border:1px solid var(--rule);border-radius:16px;box-shadow:0 10px 28px rgba(33,35,58,.07);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.ventura-site .card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(33,35,58,.13)}
.ventura-site .card-art{display:grid;place-items:center;aspect-ratio:1;padding:0!important;background:linear-gradient(145deg,#f8f9fb,#eff1f5)!important;overflow:hidden}
.ventura-site .card-art .product-photo{box-sizing:border-box;width:100%;height:100%;max-width:none!important;max-height:none!important;padding:0;object-fit:cover!important;object-position:center!important;background:transparent!important;transform:scale(1);transition:transform .24s ease}
.ventura-site .card:hover .card-art .product-photo{transform:scale(1.025)}
.ventura-site .qv-trigger{position:absolute!important;inset:12px 12px auto auto!important;width:auto!important;max-width:calc(100% - 24px);min-height:38px!important;display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;opacity:1!important;transform:none!important;z-index:3;border:1px solid #d9dee8!important;border-radius:999px!important;background:rgba(255,255,255,.96)!important;color:var(--vv-navy)!important;padding:8px 13px!important;box-shadow:0 4px 12px rgba(33,35,58,.1)}
.ventura-site .qv-trigger:hover{background:var(--vv-navy)!important;color:#fff!important;border-color:var(--vv-navy)!important}
.ventura-site .card-body{display:flex;flex:1;flex-direction:column}
.ventura-site .card-body .online-card-button{margin-top:auto}
@media(max-width:760px){.ventura-site .card-art .product-photo{padding:0}.ventura-site .qv-trigger{inset:9px 9px auto auto!important;font-size:12px!important;min-height:36px!important;padding:7px 11px!important}}

/* v26 — an aligned, editorial storefront system shared by every public page. */
:root{--vv-navy:#21233a;--vv-whatsapp:#15803d;--vv-whatsapp-deep:#11632f;--vv-accent:#7a1f3d;--vv-accent-bright:#a8395c;--vv-accent-gold:#c9a45c;--vv-on-inverse:#fff;--vv-on-inverse-muted:rgba(255,255,255,.74);--vv-inverse-hover:rgba(255,255,255,.07);--vv-inverse-active:rgba(255,255,255,.12);--vv-ease-out:cubic-bezier(.23,1,.32,1);--vv-inverse-deep:#11131d;--vv-pink:#5c1a2e;--vv-ink:#242a3d;--vv-muted:#657087;--vv-line:#e1e6ef;--vv-stage:#f7f8fb;--vv-shadow:0 16px 40px rgba(30,38,60,.08);
/* Semantic tokens — one name per role, so a future colour change is a single
   edit here rather than a hunt through component files. Values reuse the
   existing brand colours wherever one already does that job (never a new
   raw hex competing with it); --vv-warning is the one genuinely new colour,
   reserved for a future validation/warning state — nothing currently uses it. */
--vv-focus:var(--vv-pink);--vv-error:#ae1746;--vv-success:var(--vv-whatsapp);--vv-warning:#b45309;
--vv-radius-sm:8px;--vv-radius-md:12px;--vv-radius-lg:18px;--vv-radius-pill:999px;
}
html{scroll-padding-top:116px}
body.ventura-site,body.ordering-page{letter-spacing:-.008em}
.ventura-site .shell{width:min(1240px,calc(100% - 56px))}
.ventura-site .sec{padding-block:clamp(64px,7vw,104px)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.sec-head>div{max-width:740px}
.sec-head p{margin:14px 0 0;font-size:17px;line-height:1.75}
.ventura-site .sec-head{max-width:740px;margin-bottom:32px}
.ventura-site .sec-head h2{font-size:clamp(32px,3.4vw,46px);font-weight:680}
.ventura-site .sec-head p{max-width:62ch;color:var(--ink-70);font-size:17px;line-height:1.75}
.wedding-site .sec-head p{max-width:62ch;color:var(--char-70)}
.ventura-site .card,.ventura-site .collection-image{border-color:#e0e5ee;box-shadow:0 10px 30px rgba(33,35,58,.06)}
.ventura-site .card:hover,.ventura-site .collection-image:hover{box-shadow:var(--vv-shadow)}
.ventura-site .card-art,.ventura-site .collection-cover,.ventura-site .collection-image>img{background:linear-gradient(145deg,#fafbfd,#f0f2f6)}
.ventura-site .collection-cover>img,.ventura-site .collection-image>img{object-fit:cover;object-position:center}
.ventura-site .collection-image>span{padding:20px;gap:7px}
.ventura-site .collection-image strong{font-size:18px;letter-spacing:-.02em}
.ventura-site .collection-image small,.ventura-site .collection-image em{font-size:13px;line-height:1.5}
.ventura-site .collection-detail>.collection-gallery{background:linear-gradient(145deg,#fbfcfe,#f0f2f6)}
.ventura-site .collection-stage>img,.ventura-site .collection-thumbs img{object-fit:contain}
.ventura-site .category-open-hero{border-color:#e0e5ee;background:linear-gradient(118deg,#f7f8fb,#fff);box-shadow:0 10px 28px rgba(33,35,58,.045)}
.ventura-site .category-open-hero>img{border:1px solid #e8ebf1}


/* Wedding Cards UG is intentionally softer and more editorial without changing its logo. */
.wedding-site{background:var(--cream);color:#242a28}
.wedding-site .shell{width:min(1180px,calc(100% - 56px))}
.wedding-site .head{border-bottom:1px solid #dbdbdb;box-shadow:0 8px 26px rgba(49,39,24,.035)}
.wedding-site .head-in{height:92px;gap:22px}
.wedding-site .hnav{gap:3px}
.wedding-site .hnav a{border-radius:999px;padding:10px 13px;color:#5e5a51;white-space:nowrap}
.wedding-site .hnav a:hover{background:#e8e8e8;color:#2e2a24}
.wedding-site h1{font-family:var(--font-system);font-weight:520;letter-spacing:-.035em}
.wedding-site h2{font-family:var(--font-system);font-weight:590;letter-spacing:-.027em}
.wedding-site .hero{padding-block:clamp(56px,7vw,98px)}
.wedding-site .hero h1{max-width:15ch}
.wedding-site .hero .lede{max-width:52ch;color:#625c52;font-size:18px;line-height:1.8}
.wedding-site .previewcard{border:1px solid #d8d8d8;border-radius:22px;box-shadow:0 24px 58px rgba(51,40,21,.18)}
.wedding-site .tile,.wedding-site .pf-card{border:1px solid #dbdbdb;border-radius:16px;box-shadow:0 9px 26px rgba(53,42,26,.055);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.wedding-site .tile:hover,.wedding-site .pf-card:hover{transform:translateY(-4px);border-color:#c9a460;box-shadow:0 18px 36px rgba(53,42,26,.12)}
.wedding-site .tile .art.photo img,.wedding-site .pf-card .artbtn .art img{object-fit:cover;object-position:center}
.wedding-site .tile .tbody{padding:21px 22px 22px}
.wedding-site .tile h3,.wedding-site .pfbody h4{letter-spacing:-.018em}
.wedding-site .pf-card .pfbody{padding:18px 18px 19px}
.wedding-site .pf-qv{border-radius:999px;transition:background .2s,color .2s}
.wedding-site .pf-pill{border-radius:999px}
.wedding-site .calcform{border:1px solid #d8d8d8;border-radius:16px;box-shadow:0 10px 30px rgba(53,42,26,.05)}
.wedding-site .summary{border-radius:16px;box-shadow:0 16px 38px rgba(36,31,26,.15)}
.wedding-site .notebox,.wedding-site .tcard,.wedding-site .related a{border-radius:13px;border-color:#d8d8d8}
.wedding-site .foot{background:var(--char)}

/* Online ordering: a short, clear quote journey with strong mobile layout. */
.ordering-page{min-height:100dvh;background:radial-gradient(circle at 86% 2%,#f6eef4 0,transparent 26rem),linear-gradient(180deg,#fff 0,#f7f8fb 72%,#fff 100%);color:var(--vv-ink)}
.ordering-page .shell{width:min(1180px,calc(100% - 56px));margin-inline:auto}




.order-header{min-height:94px;padding-block:17px!important;border-bottom:1px solid #e3e7ee}
.order-logo{min-width:0}
.order-logo img.brand-lockup{width:214px!important;max-height:58px;object-position:left center}
.order-header nav{align-items:center;gap:6px!important}
.order-header nav a{position:relative;min-height:44px;padding:10px 13px!important;border-radius:999px;color:#515a70;font-size:14px!important;font-weight:650;white-space:nowrap;transition:background .2s ease,color .2s ease}
.order-header nav a:hover{background:#eef1f6;color:var(--vv-ink)}
.order-header nav a[aria-current=page]{background:var(--vv-ink);color:#fff;box-shadow:0 5px 14px rgba(33,35,58,.12)}
.order-main{padding:40px 0 76px!important}
.back-shop{display:inline-flex;align-items:center;min-height:38px;padding:7px 12px;border:1px solid #e1e5ed;border-radius:999px;background:#fff;color:#4c566c;text-decoration:none;font-size:13px;font-weight:650;box-shadow:0 3px 10px rgba(33,35,58,.035);transition:transform .2s ease,border-color .2s ease}
.back-shop:hover{border-color:#b6becd;transform:translateX(-2px)}
.order-heading{max-width:770px;margin:27px 0 22px!important}
.order-heading>span{display:inline-flex;align-items:center;gap:8px;color:#7a3c66;font-size:11px;font-weight:800;letter-spacing:.13em}
.order-heading>span:before{content:"";width:24px;height:2px;background:var(--vv-pink)}
.order-heading h1{margin:11px 0 13px!important;color:var(--vv-navy);font-size:clamp(43px,5.1vw,64px)!important;font-weight:680;letter-spacing:-.055em;line-height:1.02}
.order-heading p{max-width:63ch;color:#626d83;font-size:17px;line-height:1.7}
.order-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 18px;padding:0;border:1px solid #e1e5ed;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(33,35,58,.045);list-style:none}
.order-progress li{display:flex;align-items:center;gap:11px;min-width:0;padding:16px 18px;border-left:1px solid #e8ebf0;color:#687187}
.order-progress li:first-child{border-left:0}
.order-progress li.is-active{background:linear-gradient(120deg,#faf0f6,#fff)}
.order-progress span{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:50%;background:#eef0f5;color:#687187;font-size:11px;font-weight:800;letter-spacing:.04em}
.order-progress .is-active span{background:var(--vv-pink);color:#fff;box-shadow:0 4px 12px rgba(92,26,46,.25)}
.order-progress b{display:block;overflow:hidden;text-overflow:ellipsis;color:#30384d;font-size:14px;line-height:1.2}
.order-progress small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;color:var(--vv-muted);font-size:12px;line-height:1.3;white-space:nowrap}
.order-price-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0 0 30px;padding:16px 18px;border:1px solid #ead5e2;border-radius:14px;background:#fffafb;box-shadow:0 7px 20px rgba(75,35,63,.035)}
.order-price-note svg{width:25px;height:25px;color:var(--vv-pink)}
.order-price-note strong{display:block;color:#37334b;font-size:15px;line-height:1.35}
.order-price-note p{margin:2px 0 0;color:#70758a;font-size:13px;line-height:1.55}
.order-price-note a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 13px;border-radius:999px;background:#fff;color:var(--vv-ink)!important;border:1px solid #dbdfe8;text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap;transition:background .2s ease,color .2s ease}
.order-price-note a:hover{background:var(--vv-ink);color:#fff!important}
.checkout-layout{grid-template-columns:minmax(0,1.45fr) minmax(308px,.7fr);gap:30px!important}
#siteOrderForm{min-width:0}
.checkout-card{margin-bottom:16px!important;padding:30px 31px!important;border:1px solid #e0e5ed!important;border-radius:18px!important;background:#fff;box-shadow:0 10px 30px rgba(33,35,58,.05)!important}
.checkout-card h2{display:flex;align-items:center;gap:11px;margin:0 0 22px!important;color:#2b3349;font-size:21px!important;font-weight:720!important;letter-spacing:-.025em}
.checkout-card h2:after{content:"";height:1px;flex:1;background:#e8ebf1}
.checkout-card label{margin:18px 0 7px!important;color:#3b4358;font-size:14px!important;font-weight:700!important}
.checkout-card label span{font-weight:500!important}
.checkout-card input:not([type=radio]),.checkout-card textarea{min-height:52px!important;border:1px solid #d7dde7!important;border-radius:10px!important;padding:13px 14px!important;color:var(--vv-ink)!important;background:#fff!important;box-shadow:inset 0 1px 1px rgba(33,35,58,.015);transition:border-color .2s ease,box-shadow .2s ease}
.checkout-card textarea{min-height:132px!important;line-height:1.55}
.checkout-card input:not([type=radio]):focus,.checkout-card textarea:focus{border-color:var(--vv-pink)!important;outline:0!important;box-shadow:0 0 0 4px rgba(189,22,114,.11)!important}
.checkout-fields{gap:0 16px!important}
.field-hint{margin:8px 0 0!important;color:#778094!important;font-size:13px!important}
.checkout-item{border-bottom-color:#e6eaf0!important;padding:13px 0 18px!important}
.checkout-item strong{color:#30394e}
.checkout-item button{border-radius:8px;background:#f7f8fb!important;color:#505a70!important;font-size:22px!important}
.fulfilment-options{display:grid;gap:10px}
.fulfilment-options label{margin:0!important;padding:16px!important;border:1px solid #dfe4ec!important;border-radius:12px!important;background:#fff;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.fulfilment-options label:hover{border-color:#bac3d1;transform:translateY(-1px)}
.fulfilment-options label:has(input:checked){border-color:#a75182!important;background:#fff4f9!important;box-shadow:0 0 0 3px rgba(122,31,61,.06)}
.fulfilment-options input{accent-color:var(--vv-pink)!important}
.fulfilment-options b{color:#30384d!important;font-size:15px}
.fulfilment-options small{color:var(--vv-muted)!important;font-size:13px!important}
.map-inline{margin-top:9px;padding:9px 0!important;color:#48536b!important;font-size:13px!important;font-weight:700}
.map-inline:hover{color:var(--vv-pink)!important}
#siteOrderForm>.order-primary{display:flex;width:100%;min-height:54px;margin-top:4px;border-radius:12px!important;gap:10px;background:linear-gradient(120deg,var(--vv-pink),var(--vv-accent))!important;border-color:var(--vv-pink)!important;box-shadow:0 10px 22px rgba(122,31,61,.19);font-size:15px!important;transition:transform .2s ease,box-shadow .2s ease}
#siteOrderForm>.order-primary:hover{transform:translateY(-2px);box-shadow:0 14px 27px rgba(122,31,61,.25)}
.checkout-summary{top:20px!important;padding:29px!important;border:1px solid #343e5d;border-radius:18px!important;background:radial-gradient(circle at 94% 4%,#485276 0,transparent 33%),linear-gradient(155deg,#22293f,#171d30)!important;box-shadow:0 18px 42px rgba(20,25,43,.2)}
.checkout-summary>span{color:#cbd3e8!important;font-size:11px!important;font-weight:750;letter-spacing:.14em}
.checkout-summary h2{margin:16px 0 22px!important;color:#fff;font-size:30px!important;font-weight:520!important;letter-spacing:-.045em;line-height:1.12}
.checkout-summary ol{margin:0;padding:0!important;counter-reset:quote-process;gap:0!important;list-style:none}
.checkout-summary li{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:12px 0;color:#ecf0f8;font-size:14px!important;line-height:1.5}
.checkout-summary li:before{counter-increment:quote-process;content:"0" counter(quote-process);display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ffffff14;color:#d8e0f3;font-size:10px;font-weight:800}
.checkout-summary p{margin-top:14px!important;padding-top:16px!important;color:#bcc6da!important;font-size:13px!important;line-height:1.6}
.checkout-summary>a{display:inline-flex;align-items:center;min-height:38px;margin-top:15px!important;color:#fff!important;font-weight:700;text-underline-offset:4px}
.order-signin{margin:25px 0 0;color:#70798c;font-size:13px;line-height:1.7}
.order-signin a{color:#3d465b;font-weight:700;text-underline-offset:3px}
.order-footer{margin-top:0;padding:31px 0 42px!important;border-top:1px solid #e1e5ed!important;color:#5c6679;font-size:13px!important}
.order-footer a{color:#354057!important;font-weight:650;text-underline-offset:4px}
.order-footer strong{color:var(--vv-ink);font-size:14px}
.order-footer p{margin:6px 0 0!important;color:#778095!important;font-size:13px}
.checkout-review{border:1px solid #dfe4ed!important;border-radius:18px!important;padding:28px!important;box-shadow:0 26px 70px rgba(18,24,43,.25)}
.checkout-review h2{color:var(--vv-ink);font-weight:700;letter-spacing:-.035em}
.checkout-review pre{border:1px solid #e5e8ef;background:#f7f8fb!important;border-radius:12px!important}
.checkout-review-actions .order-primary{background:var(--vv-pink)!important;border-color:var(--vv-pink)!important}
.order-error{font-weight:650}

/* Saved-order view. */
.orders-main .order-heading{margin-bottom:20px!important}
.orders-status-note{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin:0 0 24px;padding:14px 17px;border:1px solid var(--vv-line);border-radius:14px;background:var(--vv-stage);color:var(--vv-ink)}
.orders-status-note>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--vv-line);color:var(--vv-ink);font-size:14px}
.orders-status-note p{margin:0;color:var(--vv-muted);font-size:13px}
.orders-status-note a{color:var(--vv-ink);font-size:13px;font-weight:750;text-underline-offset:4px;white-space:nowrap}
.inbox-toolbar{margin-bottom:18px!important;padding:13px 15px;border:1px solid #e0e5ed;border-radius:15px;background:#fff;box-shadow:0 6px 18px rgba(33,35,58,.04)}
.inbox-toolbar label{color:#596378;font-size:13px;font-weight:700}
.inbox-toolbar select,.status-control select{min-height:44px;border-color:#d6dce7!important;border-radius:9px!important;font-size:14px!important}
.inbox-toolbar .order-secondary{min-height:44px;border-radius:9px!important}
.inbox-toolbar .order-primary{margin-left:auto;border-radius:9px!important}
.inbox-order{padding:26px!important;border:1px solid #e0e5ed!important;border-radius:16px!important;box-shadow:0 8px 24px rgba(33,35,58,.045)}
.inbox-order h2{color:#2c3449;font-size:21px!important;font-weight:720;letter-spacing:-.025em}
.order-status{background:var(--vv-stage)!important;color:var(--vv-ink)!important;font-weight:750}
.inbox-order summary{font-weight:720;color:#434d63}
.status-control{border-top-color:#e6e9ef!important}

/* Customer magic-link portal (public/order/access/) and admin quote form (public/orders/orders.js). */
.pay-actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.pay-actions .order-primary,.pay-actions .order-secondary{width:100%}
.payment-summary-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px;color:#e4e6ed}
.payment-summary-row:last-child{border-bottom:0}
.payment-summary-row b{color:#fff}
.payment-history-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid #e6e9ef}
.payment-history-item:last-child{border-bottom:0}
.payment-history-item b{display:block;font-size:14px;color:var(--vv-ink)}
.payment-history-item p{margin:3px 0 0;font-size:12px;color:var(--vv-muted)}
.quote-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;border-top:1px solid #e6e9ef;padding-top:20px;margin-top:20px}
.quote-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700;color:#3b4358}
.quote-form input{min-height:44px;border:1px solid #d6dce7;border-radius:9px;padding:9px 11px;font-size:14px;width:150px}
.quote-link-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding:12px 14px;border:1px solid var(--vv-line);border-radius:10px;background:var(--vv-stage)}
.quote-link-box code{overflow-wrap:anywhere;font-size:12px;color:var(--vv-ink)}
.quote-summary{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0 0;padding:0;list-style:none;font-size:13px;color:#596378}
.quote-summary b{color:var(--vv-ink)}
@media(max-width:560px){.quote-form{flex-direction:column;align-items:stretch}.quote-form input{width:100%}}
.find-us-card h2{display:flex;gap:10px;align-items:center}.find-us-card h2 svg{flex:none}
.pay-trust{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}.pay-trust p{display:flex;align-items:center;gap:8px;margin:0;color:#c7cbd4;font-size:12px;line-height:1.5}.pay-trust svg{flex:none;color:#9aa0ac}.pay-trust-badges{display:flex;gap:6px}.pay-trust-badges .payment-badge{min-height:26px;padding:4px 6px}
.stats>div{transition:transform .2s var(--vv-ease-out),box-shadow .2s var(--vv-ease-out);position:relative}.stats>div:hover{transform:translateY(-4px);box-shadow:var(--vv-shadow);z-index:1}.stat-icon{display:grid;place-items:center;width:36px;height:36px;margin-bottom:14px;border-radius:10px;background:var(--vv-stage);color:var(--vv-accent)}.stat-icon svg{width:19px;height:19px}
#authLoading{padding:6px 0}
.account-provider[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
/* Signed-in account: welcome, one circular avatar, quick actions, roadmap. */
.account-signin-card[data-auth=signed-in] .account-card-heading{display:none}
.account-profile-hero{display:flex;align-items:center;gap:18px;padding:20px;border:1px solid #e6e9f0;border-radius:18px;background:linear-gradient(135deg,#fbf7f9,#f4f6fa)}
.account-profile-avatar{position:relative;display:grid;place-items:center;flex:0 0 72px;width:72px;height:72px;overflow:hidden;border-radius:50%;background:var(--vv-navy);color:#fff;font-size:28px;font-weight:650;box-shadow:0 0 0 1px rgba(33,35,58,.12),0 8px 20px rgba(33,35,58,.14)}
.account-profile-avatar>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit}
.account-profile-avatar>[hidden]{display:none}
.account-profile-identity{min-width:0}
.account-profile-identity b{display:block;margin-top:8px;color:var(--vv-ink);font-size:21px;font-weight:700;letter-spacing:-.02em;line-height:1.2;overflow-wrap:anywhere}
.account-profile-identity small{display:block;margin-top:3px;color:var(--vv-muted);font-size:14px;overflow-wrap:anywhere}
.account-profile-identity small:empty{display:none}
.account-status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:999px;background:#e8f5ec;color:#11632f;font-size:11px;font-weight:700;letter-spacing:.03em}
.account-status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#15803d}
.account-section-title{margin:26px 0 12px;color:#7b3d68;font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.account-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.account-quick{display:flex;align-items:center;gap:13px;min-height:68px;padding:12px 14px;border:1px solid #e0e5ed;border-radius:14px;background:#fff;color:var(--vv-ink)!important;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.account-quick:hover{transform:translateY(-1px);border-color:#b9c2d1;box-shadow:0 8px 20px rgba(33,35,58,.08)}
.account-quick:focus-visible{outline:3px solid #8b2844;outline-offset:2px}
.account-quick b{display:block;font-size:15px;font-weight:650;line-height:1.25}
.account-quick small{display:block;margin-top:2px;color:var(--vv-muted);font-size:12.5px;line-height:1.35}
.account-quick-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#f4ebf1;color:var(--vv-accent)}
.account-quick-icon svg{width:21px;height:21px}
.account-soon{display:grid;gap:0;margin:0;padding:0;list-style:none;border:1px solid #e6e9f0;border-radius:14px;overflow:hidden}
.account-soon li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fff}
.account-soon li+li{border-top:1px solid #edf0f4}
.account-soon b{display:block;color:var(--vv-ink);font-size:14px;font-weight:650}
.account-soon small{display:block;margin-top:2px;color:var(--vv-muted);font-size:13px;line-height:1.45}
.account-soon em{flex:none;padding:4px 10px;border-radius:999px;background:#f1f3f7;color:#5b6479;font-size:11px;font-style:normal;font-weight:700;letter-spacing:.02em}
.account-signed-in-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid #edf0f4}
.account-signed-in-foot p{margin:0;color:var(--vv-muted);font-size:13px}
.account-signout{min-height:44px;padding:0 20px;color:#862740!important;border-color:#e9c9d1!important;background:#fff3f5!important}
.account-signout:hover{background:#fbe4ea!important}
.account-signout:disabled{opacity:.6;cursor:wait}
@media(max-width:560px){.account-quick-grid{grid-template-columns:1fr}.account-profile-hero{padding:16px;gap:14px}.account-profile-avatar{flex-basis:64px;width:64px;height:64px}.account-soon li{align-items:flex-start;flex-direction:column;gap:8px}.account-signed-in-foot{flex-direction:column;align-items:stretch}.account-signout{width:100%}}
.account-back-link{margin-bottom:14px}

@media(max-width:1000px){
 .order-progress li{padding:14px 12px;gap:9px}
 .order-progress span{flex-basis:28px;width:28px;height:28px}
 .order-progress b{font-size:13px}
 .order-progress small{font-size:11px}
 .checkout-layout{grid-template-columns:minmax(0,1.25fr) minmax(286px,.75fr)!important;gap:22px!important}
 .checkout-card{padding:25px!important}
 .checkout-summary{padding:24px!important}
 .wedding-site .head-in{height:86px;gap:13px}
 .wedding-site .hnav a{padding:9px 8px;font-size:13px}
}
@media(max-width:760px){
 html{scroll-padding-top:90px}
 .ventura-site .shell,.wedding-site .shell,.ordering-page .shell{width:calc(100% - 36px)}
 .ventura-site .sec{padding-block:54px}
 .ventura-site .collection-image>span{padding:15px}
 .ventura-site .collection-image strong{font-size:16px}
 .wedding-site .head-in{height:78px;gap:9px}
 .wedding-site .hero{padding-block:38px 54px}
 .wedding-site .hero h1{max-width:16ch}
 .wedding-site .previewcard{border-radius:16px}
 .wedding-site .tile .tbody{padding:17px}
 .ordering-page .shell{width:calc(100% - 32px)}
 
 .order-header{min-height:0;padding-block:13px!important;gap:12px!important}
 .order-logo img.brand-lockup{width:194px!important;max-height:52px}
 .order-header nav{width:100%;justify-content:space-between;padding-top:10px!important;border-top:1px solid #e7eaf0}
 .order-header nav a{flex:1;justify-content:center;padding:9px 6px!important;font-size:12px!important}
 .order-main{padding:28px 0 52px!important}
 .back-shop{min-height:36px;font-size:12px}
 .order-heading{margin:22px 0 18px!important}
 .order-heading h1{font-size:clamp(39px,11vw,51px)!important}
 .order-heading p{font-size:16px}
 .order-progress{grid-template-columns:1fr 1fr;border-radius:14px;margin-bottom:14px}
 .order-progress li{min-height:64px;padding:11px 12px;border-left:1px solid #e8ebf0;border-top:1px solid #e8ebf0}
 .order-progress li:nth-child(odd){border-left:0}
 .order-progress li:nth-child(-n+2){border-top:0}
 .order-progress small{white-space:normal}
 .order-price-note{grid-template-columns:auto minmax(0,1fr);gap:11px;margin-bottom:21px;padding:14px}
 .order-price-note a{grid-column:1/-1;width:100%}
 .checkout-layout{grid-template-columns:1fr!important;gap:17px!important}
 .checkout-card{padding:21px!important;border-radius:15px!important;margin-bottom:12px!important}
 .checkout-card h2{margin-bottom:18px!important;font-size:19px!important}
 .checkout-card input:not([type=radio]){min-height:50px!important}
 .checkout-card textarea{min-height:118px!important}
 .checkout-summary{position:static!important;order:-1;padding:22px!important;border-radius:15px!important}
 .checkout-summary h2{font-size:27px!important}
 .checkout-summary li{padding:9px 0}
 #siteOrderForm>.order-primary{min-height:52px}
 .order-footer{padding:27px 0 36px!important}
 .orders-status-note{grid-template-columns:auto minmax(0,1fr);gap:10px}
 .orders-status-note a{grid-column:1/-1;margin-left:38px}
 .inbox-toolbar{align-items:stretch;padding:11px}
 .inbox-toolbar label{display:grid;gap:5px;width:100%}
 .inbox-toolbar select{width:100%}
 .inbox-toolbar .order-secondary,.inbox-toolbar .order-primary{flex:1;margin:0!important}
 .inbox-order{padding:20px!important}
}
@media(max-width:430px){
 
 .order-logo img.brand-lockup{width:174px!important}
 .order-header nav{gap:3px!important}
 .order-header nav a{font-size:11px!important}
 .order-progress span{display:none}
 .order-progress li{padding:11px 10px}
 .checkout-fields{grid-template-columns:1fr!important}
 .inbox-toolbar{display:grid;grid-template-columns:1fr 1fr}
 .inbox-toolbar label{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.ordering-page *, .wedding-site *, .ventura-site *{transition:none!important}}

/* Ventura-owned account, customer profile and approved-payment preference. */
.payment-preference-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.payment-preference-heading h2{margin-bottom:7px!important}.payment-preference-heading p{margin:0;color:#6b7487;font-size:14px;line-height:1.6}.payment-safe-note{display:inline-flex;align-items:center;min-height:31px;padding:5px 10px;border:1px solid var(--vv-line);border-radius:999px;background:var(--vv-stage);color:var(--vv-ink);font-size:12px;font-weight:750;white-space:nowrap}.payment-methods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:20px 0 0;padding:0;border:0}.payment-method{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center;gap:11px;min-height:82px;margin:0!important;padding:12px!important;border:1px solid #dfe5ed!important;border-radius:12px!important;background:#fff;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.payment-method:hover{border-color:#b9c3d1!important;transform:translateY(-1px)}.payment-method:has(input:checked){border-color:var(--vv-pink)!important;background:linear-gradient(120deg,#fff7fb,#fff)!important;box-shadow:0 0 0 3px rgba(92,26,46,.08)}.payment-method input{position:absolute;opacity:0;pointer-events:none}.payment-method b{display:block;color:var(--vv-ink);font-size:14px}.payment-method small{display:block;margin-top:3px;color:var(--vv-muted);font-size:12px;line-height:1.35}.payment-logo{display:grid;place-items:center;width:46px;height:40px;border-radius:8px;background:#1a3985;color:#fff;font-size:11px;font-weight:900;letter-spacing:.04em;line-height:1}.payment-logo-card{background:#fff;border:1px solid #e3e6ec}.payment-logo-card svg{display:block}.payment-preference-help{margin:14px 0 0;color:#6c7485;font-size:13px;line-height:1.6}.team-access{margin:0 0 18px;border:1px solid #e0e5ed;border-radius:14px;background:#fff;box-shadow:0 6px 18px rgba(33,35,58,.035)}.team-access summary{padding:14px 17px;cursor:pointer;color:#475166;font-size:14px;font-weight:750;list-style:none}.team-access summary::-webkit-details-marker{display:none}.team-access summary:after{content:'+';float:right;color:var(--vv-pink);font-size:20px;line-height:.7}.team-access[open] summary:after{content:'–'}.team-access form{display:grid;gap:8px;padding:0 17px 16px}.team-access label{color:#4f596e;font-size:13px;font-weight:700}.team-access form>div{display:flex;gap:10px}.team-access input{min-width:0;flex:1;min-height:44px;border:1px solid #d7dde7;border-radius:9px;padding:10px 12px}.team-access p{max-width:70ch;margin:0;color:#737d90;font-size:12px;line-height:1.55}

.account-main{padding-bottom:88px!important}.account-heading{max-width:810px}.account-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(315px,.82fr);gap:24px;align-items:stretch}.account-card,.account-payment-card{border:1px solid #e0e5ed;border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(33,35,58,.06)}.account-signin-card{padding:clamp(24px,4vw,42px)}.account-card-heading{display:flex;align-items:center;gap:14px}.account-card-heading>div>span,.account-profile-card>div>span,.account-payment-card>span{display:block;color:#7b3d68;font-size:11px;font-weight:800;letter-spacing:.13em}.account-card-heading h2,.account-profile-card h2{margin:5px 0 0;color:var(--vv-ink);font-size:clamp(26px,3vw,36px);font-weight:720;letter-spacing:-.04em;line-height:1.1}.account-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,#c90069,#e83488);color:#fff}.account-icon svg{width:25px;height:25px}.account-intro{max-width:61ch;margin:22px 0;color:#697387;font-size:15px;line-height:1.7}.account-providers{display:grid;gap:10px}.account-provider{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;width:100%;min-height:68px;padding:10px 14px;border:1px solid #dce2eb;border-radius:13px;background:#fff;color:#2d354b;text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.account-provider:hover{border-color:#acb7c8;transform:translateY(-1px);box-shadow:0 7px 18px rgba(33,35,58,.07)}.account-provider b{display:block;font-size:15px;line-height:1.2}.account-provider small{display:block;margin-top:4px;color:var(--vv-muted);font-size:12px;line-height:1.2}.account-provider>i{font-style:normal;color:#8e96a5;font-size:20px}.provider-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#f1f3f7;color:var(--vv-ink);font-size:18px;font-weight:850}.provider-email{background:#f4ebf1;color:#b70f61}.provider-email svg{width:20px;height:20px}.provider-google{background:conic-gradient(from 225deg,#4285f4 0 25%,#34a853 0 48%,#fbbc05 0 73%,#ea4335 0);color:#fff;text-shadow:0 1px 2px #0004}.provider-apple{position:relative;background:var(--vv-navy);color:#fff;font-size:0}.provider-apple:before{content:'●';font-size:22px;line-height:1}.provider-apple:after{content:'';position:absolute;top:7px;right:10px;width:7px;height:4px;border-radius:100% 0 100% 0;background:#fff;transform:rotate(-35deg)}.account-security-note{display:flex;gap:9px;align-items:flex-start;margin:22px 0 0;padding:14px;border-top:1px solid #edf0f4;color:#677185;font-size:13px;line-height:1.6}.account-security-note svg{flex:0 0 20px;width:20px;height:20px;color:var(--vv-pink)}.account-payment-card{display:flex;flex-direction:column;padding:clamp(24px,3.3vw,35px);background:radial-gradient(circle at 94% 3%,#4b5273 0,transparent 31%),linear-gradient(145deg,#242c44,#171d31);color:#fff;box-shadow:0 20px 46px rgba(25,31,51,.2)}.account-payment-card>span{color:#d7deef}.account-payment-card h2{margin:12px 0 12px;color:#fff;font-size:clamp(27px,3vw,38px);font-weight:540;letter-spacing:-.045em;line-height:1.12}.account-payment-card>p{margin:0;color:#c5cedf;font-size:14px;line-height:1.7}.account-payment-options{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.payment-badge{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border-radius:8px;background:#fff;border:1px solid #e3e6ec;color:#1d347b;font-size:11px;font-weight:900;letter-spacing:.03em}.payment-badge svg{display:block}.account-payment-steps{display:grid;gap:0;margin:0;padding:0;list-style:none}.account-payment-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:11px 0;color:#eef1f7;font-size:14px;line-height:1.5}.account-payment-steps span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#ffffff18;color:#dce4f5;font-size:10px;font-weight:800}.account-payment-foot{margin-top:auto!important;padding-top:18px;border-top:1px solid #ffffff24;color:#bec8dc!important;font-size:12px!important}.account-profile-card{display:grid;grid-template-columns:minmax(0,.84fr) minmax(0,1.2fr);gap:28px;align-items:start;margin-top:24px;padding:clamp(24px,3.3vw,36px)}.account-profile-card>div>p{max-width:40ch;margin:15px 0 0;color:#6c7587;font-size:14px;line-height:1.7}.account-profile-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.account-profile-form label{display:grid;gap:6px;color:#424b60;font-size:13px;font-weight:700}.account-profile-form label:nth-child(3){grid-column:1/-1}.account-profile-form input{min-width:0;min-height:48px;border:1px solid #d7dde7;border-radius:10px;padding:11px 12px;font-size:16px}.account-profile-form input:focus{outline:0;border-color:var(--vv-pink);box-shadow:0 0 0 4px rgba(189,22,114,.1)}.account-profile-form .order-primary{justify-self:start;margin-top:4px;border-radius:10px}.account-profile-form p{align-self:center;margin:4px 0 0;color:var(--vv-muted);font-size:13px;font-weight:650}.account-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:10px;margin-top:-18px}.account-actions .order-secondary{min-height:42px;border-radius:10px}.account-dialog{position:relative;width:min(570px,calc(100vw - 32px));padding:32px!important}.account-dialog>span{display:block;color:#7d4169;font-size:11px;font-weight:800;letter-spacing:.12em}.account-dialog h2{margin:10px 0 11px!important;font-size:28px!important}.account-dialog p{max-width:48ch;color:#667084;font-size:15px;line-height:1.7}.account-dialog .order-primary{margin-top:8px;border-radius:10px}.account-dialog-close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:38px;height:38px;border:1px solid #dce1e9;border-radius:50%;background:#fff;color:#2d354b;font-size:24px;line-height:1;cursor:pointer}
@media(max-width:860px){.account-layout{grid-template-columns:1fr}.account-profile-card{grid-template-columns:1fr}.account-actions{grid-column:auto;margin-top:0}.account-profile-form{max-width:680px}.account-payment-card{min-height:0}}
@media(max-width:560px){.payment-preference-heading{display:grid}.payment-methods{grid-template-columns:1fr}.payment-method{min-height:76px}.team-access form>div{display:grid}.account-signin-card,.account-payment-card,.account-profile-card{border-radius:16px}.account-provider{min-height:65px;padding:10px}.account-profile-form{grid-template-columns:1fr}.account-profile-form label:nth-child(3){grid-column:auto}.account-profile-form .order-primary{width:100%}.account-actions{display:grid}.account-actions a{width:100%}.account-dialog{padding:26px!important}.account-payment-options{margin:20px 0}.payment-safe-note{justify-self:start}}

/* Visually hidden inputs inside .field: .field input{width:100%} outranks .sr and made the quote form scroll sideways on phones */
.field input.sr{width:1px;height:1px;padding:0;border:0;margin:-1px}
/* refinements.css collapses the Ventura nav at 1300px; it fits inline down to 1151px, so laptops (1152–1300) keep the full nav */
@media (min-width:1151px) and (max-width:1300px){.ventura-site .nav{display:flex;position:static;flex-direction:row;align-items:center;padding:0;max-height:none;overflow:visible;background:none;border:0}.ventura-site .nav a{font-size:13px;padding:10px 8px;white-space:nowrap}.ventura-site .nav a[href*='wedding']{display:none}.ventura-site .burger{display:none}}
/* Contrast: WhatsApp green #1FA855 gave white text 3.1:1; the darker shade passes 4.5:1 */
.btn-wa,.wa{background:var(--vv-whatsapp)}.btn-wa:hover,.wa:hover{background:var(--vv-whatsapp-deep)}.wa{position:fixed;z-index:70;color:#fff;padding:14px 20px;text-decoration:none;font-weight:600;display:flex;align-items:center;gap:10px;animation:waIn .55s .5s cubic-bezier(.2,.8,.2,1) both}@keyframes waIn{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.wa{animation:none}}
/* The calculator's currency note was brown on the dark summary card (2.4:1) */
.wedding-site .summary .fxnote{color:rgba(255,255,255,.72);opacity:1}
/* Footer social icons up from 36px to a 44px touch target */
.social a,.brandrow .soc{width:44px;height:44px}
/* Touch screens fire :hover on tap, which left tapped cards stuck lifted/zoomed; keep hover motion for mouse users only */
@media (hover:none){.catcard:hover,.card:hover,.card:hover .card-art svg,.catcard:hover .ic.category-photo img,.ventura-site .catcard:hover,.ventura-site .card:hover,.ventura-site .card:hover .card-art .product-photo,.wedding-site .tile:hover,.wedding-site .pf-card:hover,.tile:hover,.fulfilment-options label:hover,.payment-method:hover,.account-provider:hover{transform:none}}

/* ================= Header system =================
   One navigation system on every page: .masthead (brand switcher + announcement, dark),
   .head (logo, main nav, actions, sticky) and, on the Ventura homepage, .subnav (shop shortcuts + search).
   Replaces the old .brand-switch / .regbar / .goldbar / .market-ticker / .order-brandbar strips. */
.masthead{position:relative;background:var(--vv-navy);color:var(--vv-on-inverse);font-family:var(--font-system)}
/* Replaced the three-colour CMYK registration stripe (Sept 2026) with a single solid accent line, matching the wedding-page treatment below */
.masthead::after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--vv-accent)}
.masthead[data-brand=wedding]::after{background:var(--vv-accent-gold)}
.masthead-in{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:44px;padding-bottom:2px}
.brand-switcher{display:flex;align-items:center;gap:2px;margin-left:-12px}
.brand-switcher a{display:inline-flex;align-items:center;gap:9px;min-height:32px;padding:0 12px;border-radius:999px;color:var(--vv-on-inverse-muted);font-size:13px;font-weight:500;line-height:1;letter-spacing:.005em;text-decoration:none;white-space:nowrap;transition:background-color .2s ease,color .2s ease}
.brand-switcher a:hover{color:var(--vv-on-inverse);background:var(--vv-inverse-hover)}
.brand-switcher a[aria-current=page]{color:var(--vv-on-inverse);background:var(--vv-inverse-active);font-weight:600}
.brand-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--vv-accent);opacity:.6;transition:opacity .2s ease}
.brand-switcher a[href^="/wedding"] .brand-dot{background:var(--vv-accent-gold)}
.brand-switcher a[aria-current=page] .brand-dot,.brand-switcher a:hover .brand-dot{opacity:1}
.masthead-info{display:flex;align-items:center;gap:22px;min-width:0}
.masthead-note{margin:0;min-width:0;overflow:hidden;color:var(--vv-on-inverse-muted);font-size:12.5px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis;transition:opacity .2s ease}
.masthead-note.is-swapping{opacity:0}
.masthead-cta{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:32px;color:var(--vv-on-inverse);font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.masthead-cta:hover{text-decoration:underline;text-underline-offset:4px}
.masthead-arrow{transition:transform .2s var(--vv-ease-out)}
.masthead-cta:hover .masthead-arrow{transform:translate(2px,-2px)}
.masthead a:focus-visible{outline:2px solid var(--vv-on-inverse);outline-offset:2px}
.masthead-info .masthead-note+.masthead-cta{padding-left:22px;border-left:1px solid rgba(255,255,255,.16)}
@media (max-width:1050px){.masthead-note{display:none}.masthead-info .masthead-note+.masthead-cta{padding-left:0;border-left:0}}
/* Phones: the masthead becomes a full-width two-way brand switch; pricing lives in the header and dock */
@media (max-width:760px){.masthead-in{min-height:46px;padding-block:4px 6px}.masthead-info{display:none}.brand-switcher{flex:1;margin:0;gap:4px}.brand-switcher a{flex:1;justify-content:center;min-height:36px;padding:0 8px;font-size:13px}}
@media (max-width:340px){.brand-switcher a{font-size:12px;gap:7px;padding:0 4px}}

/* Main header: one rhythm, one primary action. The basket is a secondary, outlined control. */
.ventura-site .head .head-in{height:80px;min-height:0;gap:22px}
.ventura-site .head .basketbtn{background:transparent;color:var(--ink);border:1px solid var(--rule);box-shadow:none;transition:border-color .2s ease,background-color .2s ease}
.ventura-site .head .basketbtn:hover{border-color:var(--ink)}
.wedding-site .head .head-in{height:84px}
@media (max-width:1150px){.ventura-site .head .head-in{height:76px}.wedding-site .head .head-in{height:78px}}
@media (max-width:760px){.ventura-site .head .head-in,.wedding-site .head .head-in{height:64px;gap:8px}}

/* Subnav: shopping shortcuts and search share one row instead of two stacked bands */
.ventura-site .subnav{background:var(--stock);border-bottom:1px solid var(--rule)}
.subnav-in{display:flex;align-items:center;gap:28px;min-height:60px}
.subnav .shop-shortcuts{flex:1;min-width:0;min-height:0;gap:26px;border-radius:0;font-size:14px}
.subnav .shop-shortcuts>a{color:var(--ink-70)}
.subnav .shop-shortcuts>a:hover{color:var(--ink)}
.subnav .global-search-box{flex:0 1 340px;max-width:340px;padding:4px 4px 4px 14px;border-radius:10px}
.subnav .global-search-box input{min-height:36px;font-size:14px}
.subnav .global-search-box .btn{min-height:36px;padding:0 14px;font-size:13px;background:var(--ink);color:var(--stock)}
@media (max-width:1150px){.subnav-in{flex-wrap:wrap;gap:0 24px;padding-bottom:12px}.subnav .shop-shortcuts{flex-basis:100%;min-height:52px}.subnav .global-search-box{flex:1 1 100%;max-width:none}}
@media (max-width:760px){.subnav-in{padding-bottom:10px}.subnav .shop-shortcuts{min-height:48px;flex-wrap:nowrap}.subnav .shop-shortcuts>a:not(:last-child){display:none}.subnav .global-search-box input{font-size:16px;min-height:40px}}
@media (prefers-reduced-motion:reduce){.masthead *,.subnav *{transition:none!important}}
/* visual-integrity.css forces the wedding menu button visible at every width; it is only needed once .hnav collapses (≤1000px) */
@media (min-width:1001px){.wedding-site .head .wedding-menu{display:none!important}}
/* Invitation calculator: a plain 1fr column can't shrink below its widest field, so it overflowed 320px phones */
@media (max-width:760px){.wedding-site .calc{grid-template-columns:minmax(0,1fr)}.wedding-site .calc>*{min-width:0}}
/* Dark theme: the header surface is already navy, so the masthead steps one level deeper to keep the two layers distinct */
html[data-theme=ink] .masthead{background:var(--vv-inverse-deep)}
/* ===== Image frames: every photo fills its frame on phone, iPad and desktop ===== */
/* Wedding category pages: .split had no grid there, so the portrait hero photo sat letterboxed in a 1180×660 band.
   Text and photo now sit side by side; the photo fills a portrait 4:5 frame. */
.wedding-site .split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.wedding-site .split>div>img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:center;background:none}
@media (max-width:1000px){.wedding-site .split{gap:36px}}
@media (max-width:760px){.wedding-site .split{grid-template-columns:minmax(0,1fr);gap:28px}}
/* Portrait invitation photos on phones: square frames instead of wide ones, so less of the card is cropped away */
@media (max-width:760px){.division-photo{aspect-ratio:1/1;max-height:none}.wedding-site .previewcard{aspect-ratio:1/1;max-height:none}}
/* About/Contact on 320px phones: the column couldn't shrink below the stats row or the unbroken email address */
@media (max-width:430px){.ventura-site .split{grid-template-columns:minmax(0,1fr)}.ventura-site .split>*{min-width:0}.ventura-site .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ventura-site .stats>*{min-width:0;overflow-wrap:anywhere}}

/* ================= Cross-page view transitions ================= */
/* Same-origin navigations crossfade instead of hard-cutting; Baseline-2026/Chromium-stable, ignored
   elsewhere as a no-op (pure progressive enhancement — nothing to feature-detect or fall back from). */
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ================= Header brand switch: a real sliding toggle ================= */
/* The active link becomes a raised "thumb" inside a groove track. Both masthead-ventura.html and
   masthead-wedding.html give their active link the same view-transition-name, so navigating between
   the two brands morphs the thumb from one position/size to the other — the switch visibly slides
   from "Ventura Visuals" to "Wedding Cards UG" (or back), not just a hard swap. */
.brand-switcher{background:rgba(0,0,0,.22);border-radius:999px;padding:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.25)}
.brand-switcher a[aria-current=page]{box-shadow:0 1px 3px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.05);view-transition-name:brand-thumb}
@media (prefers-reduced-motion:reduce){.brand-switcher a[aria-current=page]{view-transition-name:none}}

/* ================= Live background ================= */
/* Keyframes shared by both brands (defined once here so wedding pages have them without loading
   storefront-upgrade.css). Ventura's trigger lives in storefront-upgrade.css beside its existing
   .hero::before/::after blobs; the wedding hero gets matching blobs below, since wedding pages don't
   load storefront-upgrade.css. Transform-only, so it's cheap; frozen sitewide by the existing
   prefers-reduced-motion block above (*::before,*::after{animation:none!important}). */
@keyframes heroDrift1{from{transform:translate(0,0) scale(1)}to{transform:translate(-26px,18px) scale(1.08)}}
@keyframes heroDrift2{from{transform:translate(0,0) scale(1)}to{transform:translate(22px,-16px) scale(1.1)}}
.wedding-site .hero{position:relative;overflow:hidden}
.wedding-site .hero::before,.wedding-site .hero::after{content:"";position:absolute;pointer-events:none;border-radius:50%;filter:blur(8px);z-index:0}
.wedding-site .hero::before{width:420px;height:420px;right:-190px;top:-180px;background:radial-gradient(circle,rgba(201,164,92,.28) 0%,rgba(201,164,92,0) 70%);animation:heroDrift1 28s ease-in-out infinite alternate}
.wedding-site .hero::after{width:340px;height:340px;left:-190px;bottom:-200px;background:radial-gradient(circle,rgba(35,44,40,.16) 0%,rgba(35,44,40,0) 70%);animation:heroDrift2 34s ease-in-out infinite alternate}
.wedding-site .hero>*{position:relative;z-index:1}

/* Wedding hero carousel (whc) — mirrors the Ventura homepage hero-carousel conventions
   (data-src lazy promotion, dot+keyboard nav, pause on hover/focus, reduced motion via the
   sitewide .wedding-site * transition:none block above) in Wedding Cards UG's own gold/char tokens. */
.whc{margin:0}
.whc-frame{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 24px 48px rgba(36,31,26,.16)}
.whc-stage{position:relative;isolation:isolate;aspect-ratio:320/440}
.whc-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;opacity:0;transition:opacity .5s ease}
.whc-slide.is-active{opacity:1;position:relative}
.whc-card{display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px;background:var(--card);border-top:1px solid var(--rule)}
.whc-copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}
.whc-copy{display:grid;gap:4px;min-width:0}
.whc-kicker{display:block;color:var(--gold-deep);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.whc-card b{display:block;min-height:43px;font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.25;color:var(--char)}
.whc-meta{display:block;color:var(--char-70);font-size:12px}
.whc-pricing{display:block;padding-top:2px}
.whc-pricing strong{font-family:var(--serif);font-weight:700;font-size:19px;color:var(--char)}
.whc-copy-row>a{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--gold-deep);text-decoration:none;white-space:nowrap}
.whc-copy-row>a:hover{text-decoration:underline}
.whc-controls{display:flex;align-items:center;gap:12px}
.whc-toggle{flex:none;width:36px;height:36px;border:1px solid var(--rule);border-radius:999px;display:grid;place-items:center;background:var(--card);color:var(--char);cursor:pointer;box-shadow:0 6px 16px rgba(36,31,26,.08)}
.whc-toggle svg{width:15px;height:15px}
.whc-toggle:hover{background:var(--gold);border-color:var(--gold);color:#fff}
.whc-dots{display:flex;align-items:center;gap:6px;padding:6px 8px;background:var(--card);border:1px solid var(--rule);border-radius:999px;box-shadow:0 6px 16px rgba(36,31,26,.08)}
.whc-dots button{position:relative;flex:0 0 auto;width:7px;height:7px;padding:0;border:0;border-radius:999px;background:rgba(36,31,26,.3);cursor:pointer;transition:width .25s ease,background .25s ease}
.whc-dots button[aria-selected=true]{width:18px;background:var(--gold-deep)}
.whc-dots button:focus-visible,.whc-toggle:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}

/* ================= Textured pages ================= */
/* A near-invisible film-grain layer over every page (inline SVG feTurbulence, no HTTP request).
   3.5% opacity blended with "overlay" so it reads as paper grain rather than a visible pattern, and
   adapts to whatever's underneath instead of a fixed tint. Off when it would fight legibility.
   position:absolute (not fixed) so it scrolls with the page and paints once — position:fixed combined
   with mix-blend-mode forces a repaint on every scroll frame in several engines (Safari/iOS notably). */
body{position:relative}
body::before{content:"";position:absolute;inset:0;z-index:1000;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (forced-colors:active),(prefers-contrast:more),print{body::before{display:none}}

/* ================= Customer account navigation ================= */
/* One shared, progressive-enhancement control replaces any normal /account/
   header link. It is moved beside the primary header controls so Sign in is
   never hidden inside a collapsed menu. The first fonts deliberately prefer
   Apple system UI type on iPhone, iPad and Mac, with reliable fallbacks. */
:root{--vv-ui-font:var(--font-system)}
body{font-family:var(--vv-ui-font)}
.masthead,.head,.order-header,.account-nav{font-family:var(--vv-ui-font)}
.account-nav{position:relative;z-index:1300;display:inline-flex;align-items:center;flex:0 0 auto;isolation:isolate}
/* Guest: one outlined person icon, with "Sign in" beside it only where there is room. */
.account-nav .account-nav-trigger{box-sizing:border-box;display:inline-flex!important;align-items:center;justify-content:center;gap:8px;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0!important;border:1px solid rgba(33,35,58,.22);border-color:color-mix(in srgb,currentColor 25%,transparent);border-radius:999px;background:rgba(255,255,255,.92);background:color-mix(in srgb,currentColor 4%,white);box-shadow:0 1px 0 rgba(255,255,255,.85) inset,0 4px 14px rgba(24,30,49,.08);color:inherit!important;font:600 13px/1 var(--vv-ui-font)!important;letter-spacing:-.01em;text-decoration:none!important;white-space:nowrap;cursor:pointer;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.account-nav .account-nav-trigger:hover{background:color-mix(in srgb,currentColor 9%,white);border-color:color-mix(in srgb,currentColor 42%,transparent);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 7px 18px rgba(24,30,49,.13)}
.account-nav .account-nav-trigger:active{transform:translateY(1px)}
.account-nav-icon{display:block;width:20px;height:20px;flex:0 0 auto;background:none;padding:0}
.account-nav-label{display:none}
.account-nav-avatar{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit;box-shadow:none}
/* Signed in: the customer's photo IS the control. One circle, no frame, no
   second icon; the image fills it edge to edge. */
.account-nav[data-has-avatar="true"] .account-nav-trigger {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 !important;
  overflow: hidden;
  border-radius: 50%;
}
.account-nav[data-has-avatar="true"] .account-nav-avatar {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
  box-shadow: none;
}
.account-nav[data-account-state=signed-in] .account-nav-trigger{width:44px;height:44px;min-width:44px;min-height:44px;gap:0;padding:0!important;overflow:hidden;border:0;border-radius:50%;background:#e9ecf2;color:#30394f!important;box-shadow:0 0 0 1px rgba(33,35,58,.14),0 3px 10px rgba(24,30,49,.12)}
.account-nav[data-account-state=signed-in] .account-nav-trigger:hover{background:#e9ecf2;box-shadow:0 0 0 1px rgba(33,35,58,.28),0 6px 16px rgba(24,30,49,.18)}
.account-nav[data-avatar-kind=initial] .account-nav-trigger{background:#21233a;color:#fff!important}
.wedding-site .account-nav[data-avatar-kind=initial] .account-nav-trigger{background:#826127}
.account-nav-initial{font:700 17px/1 var(--vv-ui-font);text-transform:uppercase}
.head .head-act>.account-nav--ventura{order:-1}
.wedding-site .head-in>.account-nav--wedding{margin-left:auto}
.ordering-page .order-header>.account-nav--order{order:3}
.ordering-page .order-header>nav{order:2;margin-left:auto}
.wedding-site .account-nav[data-account-state=signed-out] .account-nav-trigger{border-color:rgba(130,97,39,.42);background:rgba(255,253,247,.96);color:#59401b!important}
.wedding-site .account-nav[data-account-state=signed-out] .account-nav-trigger:hover{background:#fff8e9;border-color:rgba(130,97,39,.64)}
.ordering-page .account-nav[data-account-state=signed-out] .account-nav-trigger{color:#30394f!important;border-color:#d8dde7;background:#fff}
.ordering-page .account-nav[data-account-state=signed-out] .account-nav-trigger:hover{background:#f0f2f7;border-color:#bcc5d5}
/* Keep the customer control visible while each brand header reaches the top of the page. */
.wedding-site .head{position:sticky;top:0;z-index:1101;background:rgba(252,252,252,.94);backdrop-filter:blur(16px)}
.ordering-page .order-header{position:sticky;top:0;z-index:1101;background:rgba(247,247,243,.96);backdrop-filter:blur(16px)}
/* Desktop guest: icon + "Sign in". Phones and small tablets keep the icon only. */
@media(min-width:761px){.account-nav[data-account-state=signed-out] .account-nav-trigger{width:auto;padding:0 16px 0 13px!important}.account-nav[data-account-state=signed-out] .account-nav-label{display:inline}}
@media(max-width:760px){.ordering-page .order-header>.account-nav--order{order:1;margin-left:auto}.ordering-page .order-header>nav{order:2;margin-left:0}.ventura-site .head #theme{display:none}}
/* Very compact phones: 40px circle. */
@media(max-width:390px){.account-nav .account-nav-trigger,.account-nav[data-account-state=signed-in] .account-nav-trigger,.account-nav[data-has-avatar="true"] .account-nav-trigger{width:40px;height:40px;min-width:40px;min-height:40px}.account-nav-icon{width:19px;height:19px}.account-nav-initial{font-size:16px}}
.account-nav .account-nav-trigger:focus-visible{outline:3px solid #8b2844;outline-offset:3px}
.account-nav .account-nav-panel{position:absolute;z-index:1200;top:calc(100% + 12px);right:0;width:min(310px,calc(100vw - 24px));box-sizing:border-box;padding:8px;border:1px solid #e2e4eb;border-radius:18px;background:#fff;color:#21233a;box-shadow:0 16px 48px #18203126;overflow-y:auto;text-align:left;white-space:normal;font:400 14px/1.45 var(--font-system)}
.account-nav .account-nav-panel[hidden]{display:none!important}
.account-nav-identity{display:flex;align-items:center;gap:12px;padding:14px 10px 18px;border-bottom:1px solid #eceef2}
.account-nav-identity>div{min-width:0}
.account-nav-name{display:block;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.account-nav-email{display:block;margin-top:3px;font-size:13px;color:#62697b;overflow-wrap:anywhere}
.account-nav-profile-photo{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;overflow:hidden;border-radius:50%;background:#21233a;color:#fff;font-size:18px;font-weight:600}
.account-nav-profile-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.account-nav .account-nav-panel .account-nav-links{position:static;display:grid;gap:2px;margin:6px 0;padding:0;background:transparent;border:0;box-shadow:none;width:100%}
.account-nav .account-nav-links>a,.account-nav .account-nav-signout{display:flex;align-items:center;box-sizing:border-box;width:100%;min-height:44px;padding:11px 12px;margin:0;border:0;border-radius:10px;background:transparent;color:#21233a;font:500 14px/1.4 var(--font-system);letter-spacing:0;text-decoration:none;text-align:left;cursor:pointer}
.account-nav .account-nav-links>a:hover{background:#f3f4f7;color:#21233a}
.account-nav .account-nav-signout{color:#862740;background:#fff3f5}
.account-nav .account-nav-signout:hover{background:#fbe4ea}
.account-nav .account-nav-signout:disabled{opacity:.6;cursor:wait}
.account-nav-panel :is(a,button):focus-visible{outline:2px solid #8b2844;outline-offset:-2px}
.account-nav-error{margin:10px 12px 6px;font-size:13px;color:#862740}
.wedding-site .account-nav-trigger:focus-visible{outline-color:#826127}

/* ================= Native system typography =================
   One restrained system across Ventura, Wedding Cards UG and the shopping flow.
   The browser selects San Francisco on Apple hardware without shipping a font file. */
html,body,button,input,select,textarea{font-family:var(--font-system)}
button,input,select,textarea{font:inherit}
body{font-size:16px;line-height:1.6;letter-spacing:0}
:where(h1,h2,h3,h4){font-family:inherit;font-style:normal;text-wrap:balance}
:where(h1){font-weight:700;letter-spacing:-.025em;line-height:1.12}
:where(h2){font-weight:650;letter-spacing:-.02em;line-height:1.18}
:where(h3){font-weight:600;letter-spacing:-.015em;line-height:1.25}
:where(h4){font-weight:600;letter-spacing:-.01em;line-height:1.3}
:where(p,li,dd,td,blockquote){line-height:1.6}
:where(button,.btn,.add,.order-primary,.order-secondary,.nav a,.hnav a,.account-nav-trigger){font-weight:600;letter-spacing:-.01em}
:where(label,.eyebrow,.mono,.fam-h,.card-body>.mono,.moq,.pfbody .tags,.pfbody .pf-unit){font-weight:500}
.ventura-site h1{font-size:clamp(2.6rem,4.7vw,4.15rem);font-weight:700;letter-spacing:-.03em;line-height:1.08}
.ventura-site h2{font-size:clamp(1.95rem,3vw,2.75rem);font-weight:650;letter-spacing:-.025em;line-height:1.15}
.wedding-site h1{font-size:clamp(2.5rem,4.6vw,4rem);font-weight:650;letter-spacing:-.03em;line-height:1.1}
.wedding-site h2{font-size:clamp(1.9rem,3vw,2.6rem);font-weight:650;letter-spacing:-.022em;line-height:1.18}
.order-heading h1,.social-intro h1{font-weight:700;letter-spacing:-.03em;line-height:1.08}
.order-heading h1{font-size:clamp(2.35rem,5vw,3.75rem)}
.checkout-card h2,.checkout-summary h2,.social-request h2,.collection-detail h2{font-weight:650;letter-spacing:-.02em}
.hero .lede,.order-heading p,.checkout-summary ol,.social-intro>div>p{line-height:1.65}
.price,.now,.pdprice,.whc-pricing strong,.order-reference,.inbox-reference{font-variant-numeric:tabular-nums}
@media(max-width:760px){body{line-height:1.58}.ventura-site h1{font-size:clamp(2.35rem,9.2vw,3.35rem);line-height:1.1}.wedding-site h1{font-size:clamp(2.3rem,9vw,3.2rem)}.order-heading h1{font-size:clamp(2.25rem,10vw,3rem)}.hero .lede,.order-heading p{font-size:1rem;line-height:1.62}.nav a,.hnav a,.order-header nav a{font-size:14px}.checkout-card label{font-size:14px}}
