@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;0,9..40,900;1,9..40,400;1,9..40,700&family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700;1,900&display=swap');
:root{--primary:#2c2c2c;--primary-dark:#1a1a1a;--accent:#7c8e7e;--accent-dark:#5a6b5c;--cream:#ece9e2;--ink:#2c2c2c;--white:#ffffff;--muted:#6B7A8D;--bg:#ece9e2;--radius:24px;--shadow:0 20px 60px rgba(26,31,54,.08);--shadow-hover:0 30px 80px rgba(26,31,54,.14);--container:1200px;--cloud:#F0F4FA}
*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;padding:0;font-family:"DM Sans",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.container{max-width:var(--container);margin:0 auto;padding:0 24px}
/* Landmarks + responsive images.
   height:auto above is load-bearing: every <img> now carries real width/height
   attributes (CLS), and without height:auto max-width:100% would squash the
   width while the attribute pinned the height.
   picture{display:contents} keeps the <img> itself the grid/flex item, so
   .showcase-grid img, .thumbs img, .au-shots img etc. lay out identically
   whether or not a WebP sibling exists. source{display:none} is required with
   it: under display:contents the <source> ALSO becomes a grid/flex item and
   silently steals a track (it took the 64px thumbnail column in the checkout
   order summary). Hiding it costs nothing — picture source selection is done
   by the HTML resource algorithm, not by CSS display.
   .site-header{display:contents} adds the banner landmark WITHOUT creating a
   box — .nav keeps position:sticky against the body, so the header is a pure
   semantic wrapper with zero visual change. */
main{display:block}picture{display:contents}picture>source{display:none}.site-header{display:contents}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes softPulse{0%,100%{opacity:.6}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}

/* Nav */
.nav{position:sticky;top:0;background:rgba(255,255,255,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);z-index:50;border-bottom:1px solid rgba(0,0,0,.06)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:var(--container);margin:0 auto;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:22px;letter-spacing:3px;flex-shrink:0;color:var(--ink)}
.nav-links{display:flex;gap:28px;font-weight:600;font-size:14px;color:var(--muted);letter-spacing:.3px}.nav-links a{white-space:nowrap;transition:color .2s}.nav-links a:hover{color:var(--primary)}
.nav-cta{background:var(--ink);color:var(--white);padding:12px 26px;border-radius:999px;font-weight:700;font-size:14px;transition:all .2s;box-shadow:0 4px 20px rgba(26,31,54,.18);white-space:nowrap;flex-shrink:0;letter-spacing:.5px}.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 30px rgba(26,31,54,.28);background:var(--primary-dark)}
.nav-cart{position:relative;background:none;border:none;cursor:pointer;color:var(--ink);padding:8px}.nav-cart .badge{position:absolute;top:0;right:0;background:var(--primary);color:#fff;font-size:10px;font-weight:800;min-width:18px;height:18px;border-radius:999px;display:grid;place-items:center;opacity:0;transition:opacity .2s}.nav-cart .badge.has-items{opacity:1}

/* Announce */
.announce{background:var(--ink);color:var(--white);text-align:center;padding:10px 16px;font-size:12px;letter-spacing:1px;font-weight:600}.announce b{color:var(--accent)}

/* Hero */
.hero{padding:80px 0 60px;background:linear-gradient(180deg,var(--cloud) 0%,var(--cream) 60%,var(--cloud) 100%);position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;top:-120px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(0,0,0,.04),transparent 70%);border-radius:50%;animation:softPulse 6s ease-in-out infinite}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(0,0,0,.04);color:var(--primary-dark);font-weight:800;padding:8px 18px;border-radius:999px;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;margin-bottom:20px;border:1px solid rgba(0,0,0,.06)}
.h1{font-size:clamp(40px,5.5vw,72px);line-height:1.0;font-weight:900;letter-spacing:-2px;margin:0 0 22px}.h1 .accent{color:var(--primary);font-style:italic;font-family:"Playfair Display",Georgia,serif;font-weight:900}
.lede{font-size:17px;color:var(--muted);line-height:1.7;max-width:540px;margin:0 0 32px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;padding:18px 34px;border-radius:999px;font-weight:800;font-size:15px;transition:all .25s cubic-bezier(.4,0,.2,1);cursor:pointer;border:none;letter-spacing:.3px}
.btn-primary{background:var(--ink);color:var(--white);box-shadow:0 12px 40px rgba(26,31,54,.22)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(26,31,54,.32)}
.btn-ghost{background:var(--white);color:var(--ink);border:2px solid rgba(26,31,54,.1)}.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}
.hero-media .card{background:var(--white);border-radius:28px;overflow:hidden;box-shadow:0 30px 80px rgba(26,31,54,.1);transition:transform .4s cubic-bezier(.4,0,.2,1)}.hero-media .card:hover{transform:translateY(-6px)}.hero-media .card img{transition:transform .6s}.hero-media .card:hover img{transform:scale(1.03)}
.trust-row{display:flex;align-items:center;gap:18px;margin-top:28px;font-size:14px;color:var(--muted)}.stars{color:var(--accent-dark);letter-spacing:2px;font-size:17px}

/* Features */
.features{padding:90px 0;background:var(--white)}
.section-title{font-size:clamp(30px,3.8vw,52px);font-weight:900;letter-spacing:-1.5px;margin:0 0 14px;line-height:1.08}.section-title em{font-style:italic;font-family:"Playfair Display",Georgia,serif;color:var(--primary)}
.section-sub{color:var(--muted);max-width:640px;margin:0 0 48px;font-size:16px;line-height:1.7}
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.feat{background:var(--cloud);border:1px solid rgba(0,0,0,.04);border-radius:22px;padding:32px 26px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}
.feat::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent-dark));opacity:0;transition:opacity .3s}.feat:hover{transform:translateY(-8px);box-shadow:var(--shadow-hover)}.feat:hover::before{opacity:1}
.feat .icon{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:var(--white);display:grid;place-items:center;font-size:24px;font-weight:900;margin-bottom:20px;box-shadow:0 8px 28px rgba(0,0,0,.15)}
.feat h3{margin:0 0 10px;font-size:17px;font-weight:800;color:var(--ink)}.feat p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}

/* Stats strip */
.strip{background:linear-gradient(135deg,var(--ink) 0%,#2A3352 50%,var(--primary-dark) 100%);color:var(--white);padding:80px 0;position:relative;overflow:hidden}
.strip-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;position:relative;z-index:1}
.stat .num{font-size:52px;font-weight:900;color:var(--white);letter-spacing:-2px;line-height:1;font-family:"Playfair Display",Georgia,serif;font-style:italic}.stat .lab{margin-top:10px;font-size:11px;opacity:.8;letter-spacing:2px;text-transform:uppercase;font-weight:700;color:var(--accent)}

/* Showcase */
.showcase{padding:90px 0;background:var(--cream)}
.showcase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}.showcase-grid img{border-radius:20px;aspect-ratio:1/1;object-fit:cover;transition:all .3s;box-shadow:0 8px 30px rgba(26,31,54,.06)}.showcase-grid img:hover{transform:translateY(-4px);box-shadow:var(--shadow)}

/* Bundles section */
.bundles-section{padding:90px 0;background:var(--white);border-top:1px solid rgba(0,0,0,.04)}
.bundles-section .wrap{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.bundles-section .eyebrow{background:var(--ink);color:var(--accent);border-color:transparent}
.bundles-section .section-title{margin-top:14px;font-size:clamp(26px,3vw,40px);line-height:1.08}
.bundles-section .section-sub{font-size:15px}
.bundles-section .picker{background:var(--cloud);padding:28px;border-radius:24px;border:1px solid rgba(0,0,0,.04)}
.bundles-section .picker .bundle-card{background:#fff}
.bundles-section .bundle-cta{margin-top:10px;width:100%;padding:18px;background:var(--ink);color:#fff;border-radius:14px;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .2s;box-shadow:0 8px 30px rgba(26,31,54,.2);text-decoration:none;border:none;cursor:pointer}
.bundles-section .bundle-cta:hover{transform:translateY(-2px);background:var(--primary-dark)}
.bundles-section .picker .afterpay{margin-top:14px;justify-content:center}

/* FAQ */
.faq{padding:90px 0;background:var(--white)}.faq details{background:var(--cloud);border:1px solid rgba(0,0,0,.04);border-radius:18px;padding:24px 28px;margin-bottom:14px;transition:all .2s}.faq details:hover{border-color:rgba(0,0,0,.08)}.faq summary{cursor:pointer;font-weight:800;font-size:16px;outline:none;list-style:none;color:var(--ink)}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";float:right;color:var(--primary);font-size:24px;font-weight:400}.faq details[open] summary::after{content:"\2013"}.faq p{margin:14px 0 0;color:var(--muted);line-height:1.7}

/* Footer */
footer{background:var(--ink);color:#94a3b8;padding:64px 0 30px}.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}.foot-grid h4{color:var(--white);margin:0 0 16px;font-size:12px;letter-spacing:2px;text-transform:uppercase;font-weight:800}.foot-grid a{display:block;padding:6px 0;font-size:14px;color:#94a3b8;transition:color .15s}.foot-grid a:hover{color:var(--accent)}.foot-bot{border-top:1px solid #2A3352;margin-top:44px;padding-top:22px;font-size:13px;opacity:.7;display:flex;justify-content:space-between}

/* Afterpay */
.afterpay{display:flex;align-items:center;gap:10px;margin:-6px 0 18px;color:#475569;font-size:14px}.afterpay-badge{display:inline-flex;align-items:center;gap:6px;background:#b2fce4;color:#000;font-weight:900;font-size:12px;padding:5px 10px;border-radius:6px;letter-spacing:.3px}.afterpay-badge::before{content:"";width:10px;height:10px;background:#000;border-radius:50%;box-shadow:6px 0 0 #000}

/* Bundle cards */
.bundles{margin:22px 0 24px}.bundles-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.bundles-head .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.bundles-head .free-ship{font-size:12px;color:var(--primary);font-weight:700;display:inline-flex;align-items:center;gap:6px}.bundles-head .free-ship::before{content:"\2713";background:var(--primary);color:#fff;width:16px;height:16px;border-radius:50%;display:inline-grid;place-items:center;font-size:11px}
.bundle-card{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:16px;padding:20px 22px;border:1.5px solid rgba(0,0,0,.09);border-radius:16px;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s,transform .2s;margin-bottom:12px}
.bundle-card:hover{border-color:rgba(0,0,0,.2);box-shadow:0 6px 18px -8px rgba(0,0,0,.12);transform:translateY(-1px)}.bundle-card.active{border-color:var(--primary);border-width:2px;padding:19px 21px;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent),0 10px 28px -12px rgba(0,0,0,.18);background:#fff}
.bundle-card .radio{width:24px;height:24px;border:2px solid rgba(0,0,0,.15);border-radius:50%;position:relative;flex-shrink:0}.bundle-card.active .radio{border-color:var(--primary)}.bundle-card.active .radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--primary)}
.bundle-card .info .title{font-weight:800;font-size:16px;color:var(--ink);margin-bottom:3px}.bundle-card .info .sub{font-size:12px;color:var(--muted)}.bundle-card .info .perk{display:inline-block;margin-top:8px;font-size:11px;color:var(--ink);background:var(--accent);padding:6px 12px;border-radius:12px;font-weight:800;letter-spacing:.3px}
.bundle-card .pricing{text-align:right;display:grid;gap:3px;justify-items:end}.bundle-card .pricing .now{font-size:23px;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.bundle-card.active .pricing .now{color:var(--primary)}.bundle-card .pricing .was{font-size:13px;color:var(--muted);text-decoration:line-through;font-variant-numeric:tabular-nums}.bundle-card .pricing .save{font-size:11px;font-weight:800;letter-spacing:.02em;color:#0E9257;background:rgba(14,146,87,.09);padding:3px 8px;border-radius:99px;white-space:nowrap}.bundle-card .info .per{font-size:12.5px;color:var(--muted);margin-top:5px;font-variant-numeric:tabular-nums}@media(max-width:520px){.bundle-card{grid-template-columns:24px minmax(0,1fr);row-gap:12px;padding:18px}.bundle-card .pricing{grid-column:1/-1;justify-items:start;text-align:left;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.bundle-card .badge{right:auto;left:18px}}
.bundles{padding-top:12px}.bundle-card{z-index:1}.bundle-card.active{z-index:2}.bundle-card .badge{position:absolute;top:-9px;right:16px;padding:4px 11px;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;line-height:1.5;white-space:nowrap;z-index:3}.bundle-card .badge.popular{background:var(--ink);color:#fff;box-shadow:0 3px 10px -2px rgba(0,0,0,.3)}.bundle-card.active .badge.popular{background:var(--primary);color:#fff}.bundle-card .badge.best{background:#fff;color:var(--ink);border:1.5px solid var(--ink)}

/* Cart drawer */
.cart-overlay{position:fixed;inset:0;background:rgba(26,31,54,.5);backdrop-filter:blur(4px);z-index:9990;opacity:0;visibility:hidden;transition:all .3s}.cart-overlay.open{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:92vw;background:var(--white);z-index:9991;transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;box-shadow:-16px 0 60px rgba(26,31,54,.15)}.cart-drawer.open{transform:translateX(0)}
.cart-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px 18px;border-bottom:1px solid rgba(0,0,0,.06)}.cart-head h3{margin:0;font-size:20px;font-weight:900;color:var(--ink)}.cart-head .count{background:var(--primary);color:#fff;font-size:12px;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:8px}.cart-head .close-cart{width:36px;height:36px;border-radius:50%;border:0;background:var(--cloud);color:var(--ink);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:background .15s}.cart-head .close-cart:hover{background:rgba(0,0,0,.06)}
.free-ship-bar{padding:14px 24px;background:var(--cloud);border-bottom:1px solid rgba(0,0,0,.04)}.free-ship-bar .text{font-size:13px;color:var(--muted);margin-bottom:8px;text-align:center}.free-ship-bar .text b{color:var(--primary)}.free-ship-bar .bar{height:6px;background:rgba(0,0,0,.06);border-radius:999px;overflow:hidden}.free-ship-bar .bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent-dark));border-radius:999px;transition:width .4s ease}
.cart-items{flex:1;overflow-y:auto;padding:16px 24px}
.cart-item{display:grid;grid-template-columns:72px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid rgba(0,0,0,.04);position:relative}.cart-item:last-child{border-bottom:none}.cart-item .thumb{width:72px;height:72px;border-radius:14px;overflow:hidden;background:var(--cloud);border:1px solid rgba(0,0,0,.04)}.cart-item .thumb img{width:100%;height:100%;object-fit:cover}.cart-item .item-info{display:flex;flex-direction:column;gap:4px}.cart-item .item-name{font-weight:800;font-size:14px;color:var(--ink);line-height:1.3}.cart-item .item-variant{font-size:12px;color:var(--muted)}.cart-item .item-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.cart-item .item-qty{display:inline-flex;align-items:center;border:2px solid rgba(0,0,0,.06);border-radius:10px;overflow:hidden}.cart-item .item-qty button{background:transparent;border:0;padding:6px 10px;font-size:14px;cursor:pointer;color:var(--ink);font-weight:700}.cart-item .item-qty button:hover{background:var(--cloud)}.cart-item .item-qty span{padding:0 10px;font-size:14px;font-weight:800;color:var(--ink)}.cart-item .item-price{font-weight:800;font-size:16px;color:var(--primary)}.cart-item .remove{position:absolute;top:12px;right:0;background:none;border:0;color:#9a8ba6;font-size:16px;cursor:pointer;padding:4px}.cart-item .remove:hover{color:var(--primary)}
.cart-empty{text-align:center;padding:48px 20px;color:var(--muted)}.cart-empty .icon{font-size:48px;margin-bottom:12px}.cart-empty p{font-size:15px;line-height:1.6}.cart-empty a{color:var(--primary);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.cart-footer{padding:20px 24px;border-top:1px solid rgba(0,0,0,.04)}.cart-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.cart-subtotal .label{font-size:15px;color:var(--muted);font-weight:600}.cart-subtotal .amount{font-size:22px;font-weight:900;color:var(--ink)}.cart-afterpay{font-size:12px;color:var(--muted);margin-bottom:16px;text-align:right}.cart-afterpay b{color:var(--ink)}
.cart-checkout{width:100%;padding:18px;background:linear-gradient(135deg,var(--ink),var(--primary-dark));color:#fff;border:0;border-radius:14px;font-weight:800;font-size:16px;cursor:pointer;box-shadow:0 10px 36px rgba(26,31,54,.25);transition:all .2s;letter-spacing:.3px}.cart-checkout:hover{transform:translateY(-2px);box-shadow:0 14px 44px rgba(26,31,54,.35)}.cart-trust{display:flex;gap:14px;justify-content:center;margin-top:14px;font-size:11px;color:var(--muted)}

/* PDP */
.pdp{padding:40px 0 80px;background:var(--cream)}.pdp-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start}
.gallery{position:sticky;top:80px;display:grid;grid-template-columns:80px 1fr;gap:14px}.thumbs{display:flex;flex-direction:column;gap:8px}.thumbs img{width:80px;height:80px;border-radius:12px;object-fit:cover;cursor:pointer;border:2px solid transparent;transition:all .15s;opacity:.7}.thumbs img.active{border-color:var(--primary);opacity:1;box-shadow:0 4px 12px rgba(0,0,0,.1)}.thumbs img:hover{opacity:1}.main-img img{border-radius:22px;box-shadow:0 20px 60px rgba(26,31,54,.08)}
.pdp h1{font-size:clamp(24px,3vw,34px);font-weight:900;letter-spacing:-0.8px;margin:0 0 12px;line-height:1.15}
.rating{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin-bottom:18px}.rating.above-title{margin-bottom:8px}
.price{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.price .now{font-size:36px;font-weight:900;color:var(--ink);letter-spacing:-1px}.price .was{font-size:20px;color:#9a8ba6;text-decoration:line-through}.price .save{background:var(--ink);color:var(--accent);font-weight:800;padding:5px 12px;border-radius:999px;font-size:12px;letter-spacing:.5px}
.variants{margin:24px 0}.variants .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px;font-weight:700;display:flex;align-items:center;gap:8px}
.step-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;font-weight:800;letter-spacing:0;flex-shrink:0}
.bundles-head .label{display:flex;align-items:center;gap:8px}.swatches{display:flex;gap:10px}.swatch{padding:11px 20px;border:2px solid rgba(0,0,0,.06);border-radius:14px;cursor:pointer;font-size:14px;font-weight:700;transition:all .15s;background:var(--white);color:var(--ink)}.swatch:hover{border-color:rgba(0,0,0,.12)}.swatch.active{border-color:var(--primary);background:var(--cloud);color:var(--primary)}
.qty-row{display:flex;gap:12px;align-items:center;margin:20px 0 28px}
.buy{width:100%;padding:22px;background:linear-gradient(135deg,var(--ink),var(--primary-dark));color:var(--white);border:0;border-radius:16px;font-weight:800;font-size:17px;cursor:pointer;box-shadow:0 12px 40px rgba(26,31,54,.25);transition:all .2s;letter-spacing:.3px}.buy:hover{transform:translateY(-2px);box-shadow:0 16px 50px rgba(26,31,54,.35)}
.pdp-trust{display:flex;gap:14px;margin-top:16px;color:var(--muted);font-size:13px}.pdp-trust span{display:inline-flex;align-items:center;gap:6px}
.pdp-feats{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.pdp-feats div{background:var(--cloud);border:1px solid rgba(0,0,0,.04);border-radius:14px;padding:16px 18px;font-size:14px;color:var(--ink)}.pdp-feats b{color:var(--primary)}

/* Reviews */
.reviews-section{padding:80px 0;background:var(--white);border-top:1px solid rgba(0,0,0,.04)}
.reviews-head{display:grid;grid-template-columns:auto 1fr auto;gap:32px;align-items:center;margin-bottom:32px;padding-bottom:28px;border-bottom:1px solid rgba(0,0,0,.04)}
.reviews-score{text-align:center}.reviews-score .big{font-size:52px;font-weight:900;color:var(--ink);line-height:1;font-family:"Playfair Display",serif}.reviews-score .stars{color:var(--accent-dark);font-size:20px;margin:6px 0;letter-spacing:3px}.reviews-score .count{font-size:13px;color:var(--muted)}
.reviews-bars{display:flex;flex-direction:column;gap:6px}.bar-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:700}.bar-row .bar{flex:1;height:8px;background:rgba(0,0,0,.04);border-radius:999px;overflow:hidden}.bar-row .bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-dark),var(--accent));border-radius:999px;transition:width .4s}
.btn-write{background:var(--ink);color:#fff;border:0;padding:14px 28px;border-radius:14px;font-weight:800;font-size:14px;cursor:pointer;transition:all .2s;letter-spacing:.3px}.btn-write:hover{transform:translateY(-1px);background:var(--primary-dark)}
.reviews-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.review-card{background:var(--cloud);border:1px solid rgba(0,0,0,.02);border-radius:18px;padding:24px;transition:all .2s}.review-card:hover{box-shadow:0 8px 30px rgba(26,31,54,.06)}
.review-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent-dark));color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0}.meta .name{font-weight:800;font-size:14px}.meta .date{font-size:11px;color:var(--muted)}.meta .verified{font-size:11px;color:var(--primary);font-weight:700}.review-stars{color:var(--accent-dark);font-size:14px;letter-spacing:2px;margin-bottom:8px}.review-title{font-weight:800;font-size:15px;margin-bottom:6px}.review-body{font-size:14px;color:var(--muted);line-height:1.6}
.reviews-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:24px}.reviews-pager button{background:var(--cloud);border:1px solid rgba(0,0,0,.06);color:var(--ink);padding:10px 20px;border-radius:12px;font-weight:700;font-size:13px;cursor:pointer;transition:all .15s}.reviews-pager button:hover:not(:disabled){background:var(--primary);color:#fff}.reviews-pager button:disabled{opacity:.4;cursor:default}.reviews-pager .page-info{font-size:13px;color:var(--muted)}
.share-card{display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;background:var(--cloud);border:1px solid rgba(0,0,0,.04);border-radius:20px;padding:28px;margin-top:32px}.share-icon{font-size:32px}.share-copy h4{margin:0 0 6px;font-size:16px;font-weight:800}.share-copy p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}

/* Review modal */
.review-modal{position:fixed;inset:0;background:rgba(26,31,54,.7);z-index:10000;display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px)}.review-modal.open{display:flex}
.form-card{background:var(--white);border-radius:24px;padding:36px;width:480px;max-width:95vw;max-height:90vh;overflow-y:auto;position:relative;box-shadow:0 30px 80px rgba(26,31,54,.2)}.form-card .close{position:absolute;top:16px;right:16px;background:var(--cloud);border:0;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;color:var(--ink);display:grid;place-items:center}.form-card h3{font-size:22px;font-weight:900;margin:0 0 6px}.form-sub{color:var(--muted);font-size:14px;margin:0 0 24px}.form-card label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:16px}.form-card input,.form-card textarea,.form-card select{width:100%;padding:12px 14px;border:2px solid rgba(0,0,0,.06);border-radius:12px;font-size:14px;font-family:inherit;margin-top:6px;outline:none;transition:border-color .15s}.form-card input:focus,.form-card textarea:focus{border-color:var(--primary)}.form-card textarea{min-height:100px;resize:vertical}
.star-picker{display:flex;gap:6px;margin-top:8px}.star-picker .star{font-size:28px;cursor:pointer;color:#d1d5db;transition:color .1s}.star-picker .star.filled{color:var(--accent-dark)}
.consent-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px}.consent-row input[type="checkbox"]{margin-top:3px;accent-color:var(--primary)}
.submit-btn{width:100%;padding:16px;background:var(--ink);color:#fff;border:0;border-radius:14px;font-weight:800;font-size:16px;cursor:pointer;transition:all .2s}.submit-btn:hover{background:var(--primary-dark)}
.form-status{text-align:center;margin-top:12px;font-size:14px;font-weight:700;min-height:20px}.form-status.success{color:#10b981}.form-status.error{color:#ef4444}

/* Legal pages */
.legal-hero{padding:64px 0 40px;background:linear-gradient(180deg,var(--cloud) 0%,var(--cream) 100%)}.legal-hero h1{font-size:clamp(28px,4vw,48px);font-weight:900;letter-spacing:-1px;margin:0}.legal-hero h1 em{font-style:italic;font-family:"Playfair Display",Georgia,serif;color:var(--primary)}.legal-hero .updated{color:var(--muted);font-size:13px;margin-top:8px}
.legal-body{max-width:780px;padding:48px 24px 80px}.legal-body h2{font-size:22px;font-weight:800;margin:36px 0 12px;color:var(--ink)}.legal-body p,.legal-body li{color:var(--muted);font-size:15px;line-height:1.7}.legal-body ul,.legal-body ol{padding-left:24px}.legal-body a{color:var(--primary);font-weight:600}
.legal-disclaimer{background:var(--cloud);border:1px solid rgba(0,0,0,.04);border-radius:14px;padding:18px 22px;margin-bottom:32px;font-size:13px;color:var(--muted);line-height:1.6}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;padding:48px 0 80px}.contact-info h2{font-size:24px;font-weight:900;margin:0 0 12px}.contact-info p{color:var(--muted);line-height:1.6;margin:0 0 28px}.contact-info .row{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.contact-info .icon{width:40px;height:40px;border-radius:12px;background:var(--cloud);display:grid;place-items:center;font-size:18px;flex-shrink:0}.contact-info .label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:700;margin-bottom:2px}.contact-info .value{font-size:14px;color:var(--ink)}.contact-info .value a{color:var(--primary);font-weight:600}
.contact-form{background:var(--white);border:1px solid rgba(0,0,0,.04);border-radius:24px;padding:36px;box-shadow:var(--shadow)}.contact-form h3{font-size:20px;font-weight:900;margin:0 0 6px}.contact-form .sub{color:var(--muted);font-size:14px;margin:0 0 24px}.contact-form label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:16px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:12px 14px;border:2px solid rgba(0,0,0,.06);border-radius:12px;font-size:14px;font-family:inherit;margin-top:6px;outline:none;transition:border-color .15s}.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{border-color:var(--primary)}.contact-form textarea{min-height:100px;resize:vertical}.contact-form .submit{width:100%;padding:16px;background:var(--ink);color:#fff;border:0;border-radius:14px;font-weight:800;font-size:16px;cursor:pointer;transition:all .2s;margin-top:8px}.contact-form .submit:hover{background:var(--primary-dark)}.contact-form .status{text-align:center;margin-top:12px;font-size:14px;font-weight:700}.contact-form .status.success{color:#10b981}.contact-form .status.error{color:#ef4444}

/* Checkout */
.checkout-header{background:var(--white);border-bottom:1px solid rgba(0,0,0,.06);padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.checkout-header .brand{font-weight:900;font-size:20px;letter-spacing:3px;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:8px}.checkout-header .secure{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.checkout-wrap{max-width:1100px;margin:0 auto;padding:40px 24px 80px;display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:start}.checkout-form h2{font-size:28px;font-weight:900;margin-bottom:6px;letter-spacing:-0.5px}.checkout-form .sub{color:var(--muted);font-size:14px;margin-bottom:28px}
.section-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:12px;margin-top:28px}.section-label:first-of-type{margin-top:0}
.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px}.field input,.field select{width:100%;padding:14px 16px;border:2px solid rgba(0,0,0,.06);border-radius:12px;font-size:15px;font-family:inherit;color:var(--ink);background:var(--white);transition:border-color .15s;outline:none}.field input:focus,.field select:focus{border-color:var(--primary)}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
#payment-element{padding:16px;border:2px solid rgba(0,0,0,.06);border-radius:14px;background:var(--white);min-height:120px;transition:border-color .15s}#payment-element:focus-within{border-color:var(--primary)}
.pay-btn{width:100%;margin-top:24px;padding:20px;background:linear-gradient(135deg,var(--ink),var(--primary-dark));color:var(--white);border:0;border-radius:14px;font-weight:900;font-size:18px;cursor:pointer;box-shadow:0 12px 36px rgba(26,31,54,.3);transition:all .2s;display:flex;align-items:center;justify-content:center;gap:10px}.pay-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 44px rgba(26,31,54,.4)}.pay-btn:disabled{opacity:.6;cursor:wait}.pay-btn .spinner{display:none;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.pay-btn.loading .spinner{display:block}.pay-btn.loading .text{display:none}
.error-msg{color:#d4003c;font-size:13px;margin-top:12px;font-weight:600;min-height:20px}.trust-badges{display:flex;gap:16px;justify-content:center;margin-top:16px;font-size:11px;color:var(--muted)}
.order-summary{background:var(--white);border:1px solid rgba(0,0,0,.04);border-radius:22px;padding:32px;position:sticky;top:24px;box-shadow:var(--shadow)}.order-summary h3{font-size:18px;font-weight:900;margin-bottom:20px}
.summary-item{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding-bottom:20px;border-bottom:1px solid rgba(0,0,0,.04);margin-bottom:20px}.summary-item img{width:64px;height:64px;border-radius:12px;object-fit:cover;background:var(--cloud);border:1px solid rgba(0,0,0,.04)}.summary-item .name{font-weight:800;font-size:14px}.summary-item .variant{font-size:12px;color:var(--muted)}.summary-item .price{font-weight:900;font-size:16px;color:var(--primary)}
.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;color:var(--muted)}.summary-row.total{font-size:20px;font-weight:900;color:var(--ink);padding-top:16px;margin-top:8px;border-top:2px solid rgba(0,0,0,.04)}.summary-row .free{color:var(--primary);font-weight:700}
.afterpay-note,.secure-note{text-align:center;margin-top:14px;font-size:12px;color:var(--muted)}.afterpay-note b,.secure-note b{color:var(--ink)}
.guarantees{margin-top:24px;padding-top:20px;border-top:1px solid rgba(0,0,0,.04)}.guarantee{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px;color:var(--muted)}.guarantee .icon{width:32px;height:32px;border-radius:10px;background:var(--cloud);display:grid;place-items:center;font-size:16px;flex-shrink:0}

/* Thank you */
.ty-hero{padding:100px 0 80px;background:linear-gradient(180deg,var(--cloud) 0%,var(--cream) 100%);text-align:center;position:relative;overflow:hidden}.ty-check{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:inline-grid;place-items:center;font-size:36px;margin-bottom:24px;box-shadow:0 14px 40px rgba(0,0,0,.2);position:relative;z-index:1}.ty-hero h1{font-size:clamp(32px,5vw,56px);font-weight:900;letter-spacing:-1.5px;margin:0 0 14px;position:relative;z-index:1}.ty-hero h1 em{font-style:italic;font-family:"Playfair Display",Georgia,serif;color:var(--primary)}.ty-hero p{color:var(--muted);font-size:18px;max-width:560px;margin:0 auto 32px;line-height:1.6;position:relative;z-index:1}
.ty-details{max-width:620px;margin:0 auto;padding:56px 24px 80px}.ty-card{background:var(--white);border:1px solid rgba(0,0,0,.04);border-radius:22px;padding:32px;margin-bottom:24px;box-shadow:var(--shadow)}.ty-card h3{margin:0 0 16px;font-size:18px;font-weight:900;color:var(--ink)}.ty-card p{margin:0 0 10px;color:var(--muted);font-size:15px;line-height:1.6}.ty-card .sky{color:var(--primary);font-weight:800}
.ty-cta{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;padding:16px 28px;border-radius:999px;font-weight:800;font-size:16px;text-decoration:none;box-shadow:0 10px 30px rgba(26,31,54,.2);transition:all .2s}.ty-cta:hover{transform:translateY(-2px)}

/* Responsive */
@media(max-width:1040px){.nav-links{gap:22px;font-size:13px}.bundles-section .wrap{grid-template-columns:1fr;gap:36px;justify-items:center}}
@media(max-width:900px){.nav-links a:not(:first-child){display:none}.reviews-list{grid-template-columns:1fr}.reviews-head{grid-template-columns:1fr;text-align:center;justify-items:center}}
@media(max-width:860px){.hero-grid,.pdp-grid,.foot-grid,.bundles-section .wrap,.contact-grid,.checkout-wrap{grid-template-columns:minmax(0,1fr)}.hero-grid>*,.pdp-grid>*,.bundles-section .wrap>*,.contact-grid>*,.checkout-wrap>*{min-width:0}.feat-grid,.strip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery{grid-template-columns:minmax(0,1fr);position:static}.gallery>*,.main-img,.main-img img{min-width:0;max-width:100%}.thumbs{flex-direction:row;overflow-x:auto}.thumbs img{width:64px;height:64px;flex-shrink:0}.showcase-grid{grid-template-columns:1fr 1fr}.nav-links{display:none}.nav-inner{padding:14px 18px}.brand{font-size:20px}.nav-cta{padding:9px 18px;font-size:13px}.order-summary{order:-1;position:static}}

/* LADDER. Shape system, documented so it stays consistent:
   every surface, button, ribbon and rung is a rectangle (radius 0). The only
   curves on the page are the savings disc (a circle by definition) and the
   selection radio (2px, so it still reads as a control). One accent for the
   whole page: var(--primary), inherited from the store's palette. */
.t-ladder{
  --ld-ink:var(--ink);
  --ld-paper:#ffffff;
  --ld-band:var(--cream);
  --ld-accent:var(--primary);
  --ld-line:rgba(0,0,0,.13);
  --ld-line-soft:rgba(0,0,0,.07);
  --ld-muted:#5C646E;
  --ld-on-ink:rgba(255,255,255,.74);
  --ld-sans:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  background:var(--ld-paper);color:var(--ld-ink);
  font-family:var(--ld-sans);font-size:16.5px;line-height:1.55;-webkit-font-smoothing:antialiased;
}
.t-ladder *{box-sizing:border-box}
.t-ladder img{display:block;max-width:100%;height:auto}
.t-ladder p{margin:0}
.t-ladder h1,.t-ladder h2,.t-ladder h3{margin:0;font-family:var(--ld-sans);font-weight:900;text-transform:uppercase;line-height:1.04;letter-spacing:0}
/* Capped at 46px, not 56: product names here are "BRAND Product Type", and at
   56px a three-word name took three lines in the hero panel. */
.t-ladder h1{font-size:clamp(31px,3.6vw,46px)}
.t-ladder h2{font-size:clamp(25px,3.2vw,40px)}
.t-ladder h3{font-size:16px;font-weight:800;letter-spacing:.02em;line-height:1.25}
.ld-wrap{width:100%;max-width:1160px;margin:0 auto;padding:0 clamp(20px,5vw,44px)}
.ld-skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ld-ink);color:#fff;padding:12px 18px;font-weight:800;font-size:14px}
.ld-skip:focus{left:0}
.t-ladder a:focus-visible,.t-ladder summary:focus-visible,.t-ladder .bundle-card:focus-visible{outline:3px solid var(--ld-accent);outline-offset:3px}

/* Buttons. Rectangular, uppercase, one accent, contrast-checked on both the
   paper and the ink panel. */
.t-ladder .ld-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border-radius:0;background:var(--ld-accent);color:#fff;border:2px solid var(--ld-accent);font-weight:800;font-size:14.5px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;text-decoration:none;transition:background .16s ease,border-color .16s ease,transform .12s ease}
.t-ladder .ld-btn:hover{background:var(--primary-dark);border-color:var(--primary-dark)}
.t-ladder .ld-btn:active{transform:translateY(1px)}
.t-ladder .ld-btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.t-ladder .ld-btn.ghost:hover{background:transparent;border-color:#fff}

/* Rating mark. Real geometry, clipped to the real score. */
.ld-rating{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.01em}
.ld-stars{flex:none}
.ld-star-off{fill:currentColor;opacity:.24}
.ld-star-on{fill:var(--ld-accent)}
.ld-rating.center{justify-content:center;color:var(--ld-muted)}

/* 1. HERO. Two panels, hard seam, image bleeds off the left page edge. */
.ld-hero{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);background:var(--ld-ink)}
.ld-hero-shot{position:relative;min-width:0;background:var(--ld-band)}
.ld-hero-shot img{width:100%;height:100%;aspect-ratio:4/3;max-height:min(78vh,660px);object-fit:cover}
.ld-disc{position:absolute;top:clamp(18px,4vw,42px);right:clamp(-38px,-2vw,-18px);width:clamp(84px,9vw,116px);height:clamp(84px,9vw,116px);border-radius:50%;background:var(--ld-accent);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:900;font-size:clamp(20px,2.3vw,29px);line-height:1;letter-spacing:-.02em;z-index:2}
.ld-disc b{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}
.ld-hero-panel{display:flex;align-items:center;min-width:0;padding:clamp(38px,5vw,72px) clamp(22px,4vw,56px)}
.ld-hero-copy{max-width:34rem;color:#fff}
.ld-hero-copy .ld-rating{color:#fff;margin-bottom:18px}
.ld-hero-copy h1{color:#fff;margin-bottom:16px}
.ld-lede{font-size:clamp(15.5px,1.4vw,18px);line-height:1.6;color:var(--ld-on-ink);max-width:40ch}
.ld-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}

/* 2. FACT RIBBON. Hairline strip, centered, no cards and no dots. */
.ld-ribbon{background:var(--ld-band);border-bottom:1px solid var(--ld-line)}
.ld-ribbon ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(18px,4vw,52px)}
.ld-ribbon li{display:flex;align-items:center;gap:8px;padding:15px 0;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ld-ink)}
.ld-tick{flex:none;color:var(--ld-accent)}

/* 3. ZIGZAG. Two rows only, alternating side. */
.ld-pair{padding:clamp(52px,7vh,92px) 0}
.ld-pair h2{margin-bottom:clamp(28px,4vh,48px);max-width:26ch}
.ld-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;padding:clamp(18px,3vh,34px) 0}
.ld-row.flip .ld-row-copy{order:-1}
.ld-row figure{margin:0;min-width:0;background:var(--ld-band)}
.ld-row figure img{width:100%;aspect-ratio:1;object-fit:cover}
.ld-row-copy{min-width:0}
.ld-row-copy h3{font-size:clamp(19px,2.2vw,26px);font-weight:900;letter-spacing:0;margin-bottom:12px}
.ld-row-copy p{color:var(--ld-muted);font-size:15.5px;line-height:1.7;max-width:52ch}

/* 4. INK BAND. Plain text columns on the hero's panel color. */
.ld-band{background:var(--ld-ink);color:#fff;padding:clamp(52px,7vh,88px) 0}
.ld-band h2{color:#fff;margin-bottom:clamp(24px,4vh,40px)}
/* Column count follows the item count so the grid never ships a blank cell. */
.ld-band-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,56px)}
.ld-band-grid[data-n="1"]{grid-template-columns:minmax(0,1fr)}
.ld-band-grid[data-n="2"],.ld-band-grid[data-n="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.ld-band-grid>div{min-width:0;padding:22px 0;border-top:1px solid rgba(255,255,255,.18)}
.ld-band-grid h3{color:#fff;margin-bottom:8px}
.ld-band-grid p{color:var(--ld-on-ink);font-size:14.5px;line-height:1.65}

/* 5. THE LADDER. A rail with rungs hanging off it. The recommended rung sits
   proud of the others on both edges and carries an ink ribbon, which is the
   contrast color to the brand accent bordering the card. */
.ld-pick{background:var(--ld-band);border-top:1px solid var(--ld-line);border-bottom:1px solid var(--ld-line);padding:clamp(52px,7vh,92px) 0}
.ld-pick-in{max-width:720px;text-align:center}
.ld-pick h2{margin:14px 0 0}
.ld-benefit{margin-top:14px;font-size:clamp(16px,1.7vw,19px);font-weight:700;color:var(--ld-accent)}
.ld-desc{margin-top:14px;font-size:15.5px;line-height:1.7;color:var(--ld-muted)}
.ld-chips{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ld-chips li{border:1px solid var(--ld-line);background:var(--ld-paper);padding:8px 14px;font-size:12.5px;font-weight:700;letter-spacing:.03em;color:var(--ld-ink)}
.t-ladder .ld-picker{margin-top:clamp(28px,4vh,44px);text-align:left;background:var(--ld-paper);border:1px solid var(--ld-line);padding:clamp(20px,3vw,30px)}
.ld-step{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ld-ink);margin:0 0 16px}
.ld-step+.ld-step,.ld-ladder+.ld-step{margin-top:26px}
.ld-step span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--ld-ink);color:#fff;font-size:12px;font-weight:900;letter-spacing:0;flex:none}
.ld-ladder{position:relative;padding-left:34px}
.ld-ladder::before{content:"";position:absolute;left:9px;top:10px;bottom:22px;width:2px;background:var(--ld-line)}
.t-ladder .ld-ladder .bundles-head{display:none}
.t-ladder .ld-ladder .bundle-card{border-radius:0;border:1.5px solid var(--ld-line);margin-bottom:14px;padding:20px 22px;transition:border-color .16s ease,box-shadow .16s ease}
.t-ladder .ld-ladder .bundle-card::before{content:"";position:absolute;left:-25px;top:50%;width:25px;height:2px;background:var(--ld-line)}
.t-ladder .ld-ladder .bundle-card:hover{transform:none;border-color:var(--ld-ink);box-shadow:none}
.t-ladder .ld-ladder .bundle-card.active{border-color:var(--ld-accent);border-width:2.5px;padding:19px 21px;box-shadow:none}
.t-ladder .ld-ladder .bundle-card .radio{border-radius:2px;border-width:2px}
.t-ladder .ld-ladder .bundle-card.active .radio::after{border-radius:0;inset:3px}
.t-ladder .ld-ladder .bundle-card .info .title{font-weight:900;text-transform:uppercase;letter-spacing:.01em;font-size:15px}
.t-ladder .ld-ladder .bundle-card .info .per{font-weight:700;color:var(--ld-ink)}
.t-ladder .ld-ladder .bundle-card .info .perk{border-radius:0}
.t-ladder .ld-ladder .bundle-card .pricing .save{border-radius:0}
.t-ladder .ld-ladder .bundle-card .badge{border-radius:0;top:-11px;right:auto;left:-2px;padding:5px 12px;font-size:9.5px;box-shadow:none}
.t-ladder .ld-ladder .bundle-card .badge.popular,
.t-ladder .ld-ladder .bundle-card.active .badge.popular{background:var(--ld-ink);color:#fff}
.t-ladder .ld-ladder .bundle-card .badge.best{background:var(--ld-paper);color:var(--ld-ink);border:1.5px solid var(--ld-ink)}
/* The recommended rung. Proud of the rail on the left and of the card column
   on the right, so the eye lands on it before it reads a single number. */
.t-ladder .ld-ladder .bundle-card:has(.badge.popular){margin-left:-14px;margin-right:-16px;border-color:var(--ld-accent);border-width:2.5px;padding:23px 24px}
.t-ladder .ld-ladder .bundle-card:has(.badge.popular) .info .title{font-size:17px}
.t-ladder .ld-ladder .bundle-card:has(.badge.popular) .pricing .now{font-size:26px}
.t-ladder .ld-picker .ld-cta{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;border-radius:0;background:var(--ld-accent);color:#fff;font-weight:800;font-size:15px;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer;box-shadow:none;transition:background .16s ease,transform .12s ease}
.t-ladder .ld-picker .ld-cta:hover{background:var(--primary-dark);transform:none}
.t-ladder .ld-picker .ld-cta:active{transform:translateY(1px)}
.ld-reassure{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px}
.ld-reassure li{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.03em;color:var(--ld-muted)}
.t-ladder .ld-picker .afterpay{margin:16px 0 0;justify-content:center;font-size:13px}

/* 6. REVIEWS. Hairline columns, three lines each, no cards. */
.ld-quotes{padding:clamp(52px,7vh,88px) 0}
.ld-quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,52px)}
.ld-quote-grid blockquote{margin:0;min-width:0;padding:24px 0;border-top:2px solid var(--ld-ink)}
.ld-quote-grid p{font-size:15.5px;line-height:1.6;color:var(--ld-ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ld-quote-grid cite{display:block;margin-top:14px;font-style:normal;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ld-muted)}

/* 7. ANSWERS then close. */
.ld-end{padding:clamp(46px,6vh,80px) 0 clamp(56px,8vh,96px);border-top:1px solid var(--ld-line)}
.ld-end h2{margin-bottom:26px}
.ld-faq details{border-bottom:1px solid var(--ld-line-soft)}
.ld-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 0;font-weight:800;font-size:16px}
.ld-faq summary::-webkit-details-marker{display:none}
.ld-faq summary::after{content:"+";font-weight:600;font-size:20px;color:var(--ld-accent);flex:none;line-height:1}
.ld-faq details[open] summary::after{content:"\2212"}
.ld-faq details p{padding:0 44px 20px 0;font-size:15px;line-height:1.7;color:var(--ld-muted)}
.ld-close{margin-top:40px;text-align:center}

/* Mobile. Every multi-column layout above declares its own collapse here. */
@media(max-width:900px){
  .ld-hero{grid-template-columns:minmax(0,1fr)}
  .ld-hero-shot img{aspect-ratio:4/3;max-height:none}
  .ld-disc{right:clamp(16px,5vw,26px);top:auto;bottom:-38px}
  .ld-hero-panel{padding-top:56px}
  .ld-row,.ld-row.flip{grid-template-columns:minmax(0,1fr);gap:20px}
  .ld-row.flip .ld-row-copy{order:0}
  .ld-band-grid,.ld-quote-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .t-ladder .ld-ladder .bundle-card:has(.badge.popular){margin-left:0;margin-right:0}
}
@media(max-width:600px){
  .ld-ribbon ul{gap:6px 18px}
  .ld-ribbon li{padding:11px 0;font-size:11.5px}
  .ld-band-grid,.ld-quote-grid{grid-template-columns:minmax(0,1fr)}
  .ld-ladder{padding-left:26px}
  .ld-ladder::before{left:7px}
  .t-ladder .ld-ladder .bundle-card::before{left:-19px;width:19px}
  .ld-actions .ld-btn{width:100%}
  .ld-chips{justify-content:flex-start}
  .ld-pick-in{text-align:left}
  .ld-rating.center{justify-content:flex-start}
}

/* Light-locked, deliberately. Dark mode is NOT shipped: navHTML / footerHTML /
   cartDrawerHTML are shared across every theme and hard-coded to the light
   palette, so prefers-color-scheme:dark rendered a light nav on a dark page.
   To enable it, port the shared chrome to variables first. */

@media (prefers-reduced-motion: reduce){
  .t-ladder *{transition:none!important;animation:none!important}
}
