:root{--paper:#fcf9f7;--ink:#4a4e62;--muted:#686a74;--line:#e9e0db;--blue:#9c6a5d;--accent:#a97b6f;--sky:#9c6a5d;--sage:#f3eae5;--serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);min-width:1080px}h1,h2,h3,p{margin-top:0}h1,h2{font:normal 56px/1.06 var(--serif);letter-spacing:-1.2px;margin-bottom:20px}h3{font-weight:500}em{font-weight:400}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}button:disabled{opacity:.4;cursor:default}a,button,input,summary{outline-offset:5px}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #686a74}button,a{touch-action:manipulation}img{display:block;max-width:100%}[hidden]{display:none!important}.eyebrow{font-size:10px;line-height:1.5;font-weight:600;letter-spacing:1.65px;text-transform:uppercase}.announcement{height:35px;background:#4a4e62;color:#ffffff;display:flex;justify-content:center;align-items:center;gap:35px;font-size:11px;letter-spacing:.3px}.announcement a{border-bottom:1px solid #ffffff70}header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}.wordmark{font:48px/.8 var(--serif);letter-spacing:-2px;display:inline-flex;flex-direction:column;align-items:center;gap:12px}.wordmark span{font:9px var(--sans);letter-spacing:4px;padding-left:4px}header nav{display:flex;gap:30px;font-size:13px}header nav a{padding:13px 0}header nav a:hover,header nav a[aria-current]{box-shadow:0 1px var(--ink)}.bag-button{font-size:13px;display:flex;align-items:center;gap:12px}.bag-button span{width:25px;height:25px;border:1px solid #b3afaf;border-radius:50%;display:grid;place-items:center;font-size:11px}.btn{background:var(--blue);color:white;display:flex;justify-content:space-between;align-items:center;gap:28px;min-height:49px;padding:13px 21px;font-size:13px;transition:background .2s}.btn:hover{background:#85584c}.btn.secondary{background:transparent;color:var(--ink);border:1px solid #aaa6a7}.btn span{font-size:19px;line-height:1}.text-link{font-size:13px;display:inline-flex;justify-content:space-between;gap:24px;border-bottom:1px solid #aaa6a7;padding:9px 0}.section{padding:65px 5%}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px;gap:35px}.section-heading h2{font-size:46px;margin:0}.section-heading p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:3px}.section-heading .eyebrow{margin-bottom:12px}.hero{display:grid;grid-template-columns:56% 44%;height:570px}.hero-art{background:linear-gradient(125deg,#e1d9d6,#f2eae7);position:relative;overflow:hidden}.hero-stage{position:absolute;bottom:-36px;left:-10%;width:125%;height:200px;background:#d6cfcc;transform:rotate(-5deg)}.hero-p{position:absolute;object-fit:contain;width:35%;height:75%;bottom:50px;filter:drop-shadow(3px 12px 10px #50546626)}.hero-p.h1{left:0;width:27%;bottom:10px;transform:rotate(-6deg)}.hero-p.h2{left:20%;width:38%}.hero-p.h3{left:45%;width:36%;bottom:55px}.hero-p.h4{left:74%;width:27%;bottom:0;transform:rotate(6deg)}.visual-note{position:absolute;bottom:18px;left:24px;font-size:8px;letter-spacing:1.1px;background:#fcf9f7c7;color:#565969;padding:5px 8px}.hero-copy{background:#f3ece9;padding:65px 9% 30px}.hero-copy h1{font-size:62px;line-height:1.02;margin:25px 0}.hero-copy>p:not(.eyebrow){font-size:15px;color:#656772;line-height:1.8}.hero-actions{max-width:285px;margin-top:28px}.hero-actions .text-link{width:100%;margin-top:10px}.hero-foot{font-size:9px;letter-spacing:1.5px;margin-top:35px;display:flex;gap:19px}.intro-strip{display:flex;align-items:center;justify-content:space-between;padding:20px 5%;border-bottom:1px solid var(--line);font-size:12px}.intro-strip>span:first-child{font-size:9px;letter-spacing:1.4px}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.product-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));gap:35px}.product-photo{height:300px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.tone-0{background:#ede5e2}.tone-1{background:#f4ece9}.tone-2{background:#e8e0dd}.tone-3{background:#e8e1de}.product-photo>.eyebrow{position:absolute;top:17px;left:17px;font-size:8px;letter-spacing:1.1px;z-index:1}.product-photo img{width:78%;height:78%;object-fit:contain;transition:transform .4s;margin-top:12px}.product-photo:hover img{transform:translateY(-6px)}.circle-arrow{position:absolute;bottom:14px;right:14px;background:#fcf9f7bb;width:29px;height:29px;border-radius:50%;display:grid;place-items:center}.card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:14px}.card-meta .eyebrow{font-size:9px}.product-card h3{font-size:16px;line-height:1.4;min-height:45px;margin:7px 0}.product-card>p{font-size:12px;color:var(--muted);margin-bottom:18px;min-height:38px}.card-bottom{border-top:1px solid var(--line);padding-top:13px;display:flex;justify-content:space-between;gap:8px;font-size:10px}.card-bottom>span{color:var(--muted)}.card-bottom a{font-weight:500}.guide{background:#f6eeeb}.segmented{display:inline-flex;border-bottom:1px solid #b7b2b2;margin-top:18px}.segmented button{padding:10px 25px;font-size:13px}.segmented button[aria-selected=true]{background:var(--blue);color:#ffffff}.comparison{border-top:1px solid #b2aeae}.compare-head,.compare-row{display:grid;grid-template-columns:24% 38% 38%;align-items:center}.compare-head{padding:23px 0}.compare-head>span{font-size:10px;letter-spacing:1.4px}.compare-head h3{font:30px var(--serif);margin:5px 0}.compare-head .eyebrow{font-size:9px}.compare-row{border-top:1px solid #d4cecb;padding:18px 0;font-size:13px}.compare-row>strong{font-weight:500}.compare-row>span{color:#686974;padding-right:25px}.compare-actions a{text-decoration:underline;text-underline-offset:5px;font-size:12px}.moments-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.moment{position:relative;height:340px;overflow:hidden;background:#e9e0db}.moment>img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}.moment:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#494d65a6)}.moment>div{position:absolute;bottom:22px;left:22px;right:22px;color:#ffffff;z-index:1}.moment>div>span{font-size:9px;letter-spacing:.7px}.moment h3{font:29px var(--serif);margin:8px 0}.moment .visual-note{top:14px;bottom:auto;left:14px;font-size:7px}.pairings{background:#f0e8e5;padding-top:34px;padding-bottom:35px;scroll-margin-top:98px}.pairings .section-heading{margin-bottom:20px}.pairings .section-heading h2{font-size:40px}.pairings .section-heading p{font-size:12px}.pair-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.pair-card{background:var(--paper);display:grid;grid-template-columns:34% 66%;border:1px solid #ded7d4}.pair-art{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;align-content:center;padding:35px 10px 10px;gap:0}.pair-art>.eyebrow{position:absolute;top:13px;left:12px;font-size:8px}.save-badge{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#fcf9f7c9;font-size:9px;padding:5px 9px;letter-spacing:.7px}.pair-art img{width:72%;height:125px;object-fit:contain}.pair-art img:last-child{margin-top:-12px}.plus{font:20px var(--serif);width:100%;text-align:center;line-height:1}.pair-copy{padding:23px 22px}.pair-copy h3{font:30px/1.08 var(--serif);margin-bottom:10px}.pair-copy>p{font-size:12px;color:var(--muted);min-height:40px;margin-bottom:11px}.pair-names{display:flex;gap:6px;font-size:10px;flex-wrap:wrap}.pair-names a{border-bottom:1px solid #bbb6b6}.pair-copy details{font-size:11px;margin-top:12px}.pair-copy details p{font-size:12px;color:var(--muted);margin:10px 0}.price-line{border-top:1px solid var(--line);margin-top:14px;padding:13px 0;display:flex;align-items:end;justify-content:space-between}.price-line small{display:block;font-size:8px;letter-spacing:1.2px}.price-line strong{font-size:23px;font-weight:500}.price-line del{font-size:13px;color:var(--muted);margin-left:6px}.price-line>span{font-size:10px;color:#2e7d52;padding-bottom:4px}.pair-copy .btn{width:100%;min-height:42px;padding-block:9px;font-size:12px}.included{display:block;font-size:9px;text-align:center;color:var(--muted);margin-top:8px}.approach-strip{padding:50px 5%;display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:40px;border-bottom:1px solid var(--line)}.approach-strip h2{font-size:35px}.approach-strip article{border-left:1px solid var(--line);padding-left:24px}.approach-strip article>span{font-size:10px;color:var(--muted)}.approach-strip h3{font:23px var(--serif);margin:14px 0}.approach-strip article p{font-size:12px;color:var(--muted);line-height:1.8}.faq,.product-faq{display:grid;grid-template-columns:44% 56%;gap:0}.faq h2,.product-faq h2{font-size:44px}.faq details,.product-faq details{border-top:1px solid var(--line);padding:18px 0}.faq details:last-child,.product-faq details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px}summary:after{content:'+';font-size:18px;font-weight:400}details[open]>summary:after{content:'−'}summary::-webkit-details-marker{display:none}details p{font-size:13px;color:var(--muted);line-height:1.8;margin:15px 15px 0 0}.catalog-intro{padding:35px 5% 30px;background:#f1e9e6}.catalog-intro h1{font-size:53px;margin:12px 0 15px}.catalog-intro>p:last-child{font-size:14px;color:var(--muted);margin-bottom:0}.catalog-intro .eyebrow{margin-bottom:0}.catalog-intro .breadcrumb{font-size:11px;display:block;margin-bottom:25px;color:var(--muted)}.catalog{padding-top:25px;padding-bottom:55px}.catalog-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px;font-size:12px}.filters{display:flex;gap:12px}.filters button{border:1px solid #c5bfbe;padding:7px 20px;font-size:11px;border-radius:2px}.filters button.selected{background:var(--blue);color:white;border-color:var(--blue)}.category-products{padding-top:35px;padding-bottom:50px}.two .product-photo{height:350px}.two .product-photo img{width:70%;height:85%}.two .product-card h3{font-size:21px;min-height:0}.two .product-card>p{min-height:0;font-size:14px}.two .card-bottom{font-size:12px}.category-compare{background:#f6eeeb}.category-cta{padding:55px 5%;display:flex;align-items:center;justify-content:space-between}.category-cta h2{font-size:41px}.category-cta p:not(.eyebrow){font-size:14px;color:var(--muted)}.category-cta .btn{min-width:250px}.pdp-breadcrumb{padding:23px 5%;display:flex;gap:12px;font-size:10px;color:var(--muted)}.pdp{display:grid;grid-template-columns:53% 47%;padding:0 5% 55px;gap:0}.gallery{padding-right:55px;position:sticky;top:120px;align-self:start}.gallery-main{height:580px;display:flex;align-items:center;justify-content:center;position:relative}.gallery-main>img{width:88%;height:86%;object-fit:contain}.gallery-main>.eyebrow{position:absolute;top:24px;left:24px;font-size:9px}.gallery-main>button{position:absolute;bottom:18px;right:20px;width:35px;height:35px;border-radius:50%;background:#ffffffa8;font-size:23px}.gallery-note{position:absolute;bottom:25px;left:24px;font-size:10px}.gallery-caption{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.6px;margin-top:16px;color:var(--muted)}.purchase{padding:6px 0 0 10px}.purchase>.eyebrow{margin-bottom:10px}.purchase h1{font-size:45px;line-height:1.05;max-width:480px;margin-bottom:14px}.pdp-purpose{font-size:15px;color:#6c6d75;margin-bottom:18px}.pdp-price{display:flex;align-items:center;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.pdp-price strong{font-size:25px;font-weight:500}.pdp-price span{font-size:12px;color:var(--muted)}.pdp-description{font-size:13px;color:#686a74;line-height:1.8;margin:19px 0}.product-points{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.product-points span{font-size:10px;border:1px solid #d0cac8;padding:6px 9px}.buy-controls{display:flex;gap:12px}.quantity{display:flex;align-items:center;justify-content:space-around;border:1px solid #b6b1b1;width:106px}.quantity button{width:32px;height:46px;font-size:18px}.quantity output{font-size:13px}.buy-controls>.btn{flex:1}.preview-note{font-size:9px;color:var(--muted);margin:10px 0 16px}.purchase-help{display:flex;justify-content:space-between;font-size:11px;border-bottom:1px solid var(--line);padding-bottom:18px}.purchase-help button{padding:0;font-size:11px}.mini-pair{display:flex;gap:17px;align-items:center;background:#eae3e0;margin:20px 0;padding:16px}.mini-pair>img{width:90px;height:110px;object-fit:contain}.mini-pair .eyebrow{font-size:8px;letter-spacing:1px}.mini-pair h3{font-size:14px;margin:5px 0}.mini-pair p{font-size:12px;color:var(--muted);margin-bottom:6px}.mini-pair del{margin-left:5px}.mini-pair button{font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:0}.inline-detail{border-top:1px solid var(--line);padding:15px 0;font-size:13px}.inline-detail ul{font-size:12px;color:var(--muted);padding-left:20px}.inline-detail p{font-size:11px}.pdp-nav{display:flex;gap:35px;padding:15px 5%;border-block:1px solid var(--line);position:sticky;top:98px;z-index:10;background:var(--paper);font-size:12px;align-items:center}.pdp-nav button{margin-left:auto;background:var(--blue);color:white;padding:10px 22px;font-size:11px}.how-to{display:grid;grid-template-columns:1fr 1fr;gap:100px}.how-to h2{font-size:54px}.how-to>div>p:not(.eyebrow){font-size:14px;max-width:450px;color:var(--muted)}.steps article{display:flex;gap:25px;border-top:1px solid var(--line);padding:23px 0}.steps article>span{font-size:12px;color:var(--muted)}.steps h3{font:29px var(--serif);margin-bottom:8px}.steps p{font-size:13px;color:var(--muted);margin:0}.product-faq>div>p{font-size:13px;color:var(--muted)}.about-intro{padding:75px 10%;background:#ece4e1}.about-intro h1{font-size:76px}.about-intro>p:last-child{max-width:550px;font-size:17px;color:var(--muted)}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-copy p{color:var(--muted)}.about-copy .btn{max-width:280px;margin-top:30px}footer{background:#f3eae5;padding:50px 5% 20px}.footer-top{display:grid;grid-template-columns:1.15fr .7fr .8fr 1.4fr;gap:45px}.footer-top>div:first-child p{font:23px/1.3 var(--serif);margin-top:23px}.footer-top h4{font-size:9px;letter-spacing:1.5px;margin:0 0 18px}.footer-top>div:not(:first-child):not(.newsletter)>a,.footer-top>div:not(:first-child):not(.newsletter)>button{display:block;font-size:12px;padding:0;margin-bottom:9px}.newsletter h3{font:30px var(--serif);margin:0 0 12px}.newsletter p{font-size:12px;color:var(--muted)}.newsletter form{display:flex;border-bottom:1px solid #a19e9f}.newsletter input{border:0;background:none;padding:10px 0;min-width:0;flex:1;font-size:12px}.newsletter button{font-size:22px}.newsletter small{font-size:9px;color:var(--muted)}.footer-bottom{border-top:1px solid #c9c3c2;margin-top:40px;padding-top:18px;display:flex;justify-content:space-between;font-size:9px;color:#696b74}.footer-bottom button{font-size:9px;padding:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:0;background:var(--paper);color:var(--ink);padding:40px;width:560px;max-height:90vh}dialog::backdrop{background:#46496066;backdrop-filter:blur(3px)}.dialog-close{position:absolute;top:12px;right:16px;font-size:27px}.dialog-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px}.dialog-top h2{font-size:38px;margin:0}.dialog-top button{font-size:28px}.bag-dialog{margin:0 0 0 auto;height:100%;max-height:100%;width:490px;padding:32px}.bag-line{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.bag-line>img{height:105px;width:83px;object-fit:contain;background:#f6eeeb}.bag-line .line-info{flex:1}.bag-line h3{font-size:13px;margin:4px 0}.bag-line .eyebrow{font-size:8px}.bag-line p{font-size:11px;margin:7px 0}.bag-controls{display:flex;gap:14px;align-items:center;font-size:12px}.bag-controls button{padding:0}.bag-controls .remove{font-size:10px;text-decoration:underline;margin-left:6px}.bag-line>strong{font-size:13px;font-weight:500}.bag-totals>div{display:flex;justify-content:space-between;font-size:13px;margin:12px 0}.bag-totals .saving{color:#2e7d52}.bag-totals .total{border-top:1px solid var(--line);padding-top:16px;font-size:18px}.bag-totals .btn{width:100%;margin-top:22px}.bag-totals small{font-size:10px;color:var(--muted);display:block;margin-top:12px}.empty-bag{padding:45px 0;color:var(--muted)}.empty-bag .btn{margin-top:25px}.bag-tip{background:#efe7e4;padding:12px;font-size:11px;margin:20px 0}#info h2{font-size:38px;margin-top:15px}#info p{font-size:14px;color:var(--muted)}#info img{max-height:65vh;width:100%;object-fit:contain}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);background:var(--ink);color:white;padding:13px 25px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}@media(min-width:1600px){.section{padding-left:8%;padding-right:8%}.hero{height:640px}.hero-copy{padding-top:90px}.product-photo{height:350px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* SPY brand touches */
.wordmark img{display:block;height:58px;width:auto}
footer .wordmark img{height:64px}
h1 em,h2 em{color:#a97b6f}
.eyebrow{color:var(--accent)}
.save-badge{background:var(--sky);color:#ffffff}

.hero-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% 55%}
[data-visual-slot="routine-3"]>img{object-position:50% 30%}
[data-visual-slot="routine-4"]>img{object-position:50% 55%}

/* Pairing fit checklist */
.pair-copy>p{min-height:0}
.pair-fit{margin:16px 0 4px;border-top:1px solid var(--line)}
.pair-fit>div{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
.pair-fit dt{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);font-weight:600;padding-top:2px}
.pair-fit dd{margin:0;color:var(--ink)}

/* Category pages — editorial layout */
.cat-hero{display:grid;grid-template-columns:1fr 1.05fr .8fr;grid-template-rows:240px 240px;gap:8px;padding:8px;background:var(--paper)}
.cat-tile{margin:0;overflow:hidden;position:relative}
.cat-tile img{display:block;width:100%;height:100%;object-fit:cover}
.cat-life{grid-row:1/3}
.cat-pack{display:grid;place-items:center}
.cat-pack img{width:78%;height:88%;object-fit:contain;filter:drop-shadow(4px 14px 14px #5054662e);transition:transform .5s}
.cat-pack:hover img{transform:scale(1.04)}
.cat-hero-card{grid-row:1/3;grid-column:2;background:#f2eae7;display:flex;flex-direction:column;justify-content:center;padding:40px 9%;text-align:center;align-items:center}
.cat-hero-card .breadcrumb{font-size:11px;color:var(--muted);margin-bottom:16px}
.cat-hero-card h1{font-size:52px;margin:8px 0 14px}
.cat-hero-card>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.8;max-width:390px}
.cat-facts{display:flex;gap:0;margin:16px 0 20px;border:1px solid var(--line)}
.cat-facts span{font-size:10px;letter-spacing:1.3px;text-transform:uppercase;padding:9px 16px}
.cat-facts span+span{border-left:1px solid var(--line)}
.cat-hero-links{display:flex;flex-direction:column;gap:10px;width:100%;max-width:300px}
.cat-hero-links .text-link{justify-content:space-between}
.cat-pack.tone-0{grid-column:3;grid-row:1}.cat-hero .cat-pack:last-child{grid-column:3;grid-row:2}

.cat-features{padding:70px 5% 20px;display:grid;gap:70px}
.cat-feature{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center}
.cat-feature.flip .cat-feature-art{order:2}
.cat-feature-art{margin:0;position:relative;height:580px;overflow:hidden}
.cat-feature-art{display:grid;place-items:center}
.cat-feature-product{width:72%;height:82%;object-fit:contain;filter:drop-shadow(6px 20px 22px #50546630);transition:transform 1.2s ease}
.cat-feature:hover .cat-feature-product{transform:scale(1.03)}
.cat-feature-copy .eyebrow{margin-bottom:22px}
.cat-brand{font-size:11px;letter-spacing:2px;color:var(--muted)}
.cat-feature-copy h2{font-size:46px;margin:8px 0 12px}
.cat-price{font-size:20px;margin-bottom:22px}
.cat-price span{font-size:12px;color:var(--muted);margin-left:10px}
.cat-lead{font-size:15px;line-height:1.8;color:var(--muted);max-width:480px}
.cat-best{display:flex;align-items:center;gap:14px;margin:24px 0;flex-wrap:wrap}
.cat-best>span{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;color:var(--accent);font-weight:600}
.cat-best ul{display:flex;gap:8px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.cat-best li{font-size:11px;padding:6px 12px;border-radius:30px;background:var(--sage)}
.cat-specs{margin:0 0 30px;border-top:1px solid var(--line);max-width:520px}
.cat-specs>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6}
.cat-specs dt{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600;padding-top:2px}
.cat-specs dd{margin:0;color:var(--muted)}
.cat-actions{display:flex;align-items:center;gap:28px}
.cat-actions .btn{min-width:240px}

.cat-choose-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cat-choose-grid article{background:#f6eeeb;padding:34px 36px;display:flex;flex-direction:column}
.cat-choose-grid h3{font:30px var(--serif);margin-bottom:18px}
.cat-choose-grid ul{list-style:none;padding:0;margin:0 0 26px;flex:1}
.cat-choose-grid li{font-size:14px;padding:11px 0 11px 28px;border-bottom:1px solid var(--line);position:relative}
.cat-choose-grid li:before{content:'✓';position:absolute;left:0;color:var(--accent)}
.cat-choose-grid .text-link{align-self:flex-start}

.cat-ingredients{background:#4a4e62;color:#f5eeeb;padding:75px 5%}
.cat-ingredients .eyebrow{color:#b2aeae}
.cat-ingredients .section-heading p:not(.eyebrow){color:#c9c3c2}
.cat-ing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#5d5f6c;border:1px solid #5d5f6c}
.cat-ing-grid article{background:#4a4e62;padding:30px 26px 26px;display:flex;flex-direction:column;min-height:270px;transition:background .3s}
.cat-ing-grid article:hover{background:#525667}
.cat-ing-n{font-size:10px;letter-spacing:1.2px;color:#b2aeae}
.cat-ing-grid h3{font:34px var(--serif);margin:26px 0 4px}
.cat-inci{font-size:11px;color:#b2aeae;margin-bottom:14px}
.cat-ing-grid p:not(.cat-inci){font-size:13px;line-height:1.7;color:#dad3d1;flex:1}
.cat-ing-grid small{font-size:9px;letter-spacing:1.1px;text-transform:uppercase;color:#9d9b9c;border-top:1px solid #5d5f6c;padding-top:12px;margin-top:16px}

.cat-ritual{background:#f6eeeb}
.cat-steps{display:grid;grid-template-columns:120px 1fr;align-items:start;gap:20px;padding:26px 0;border-top:1px solid var(--line)}
.cat-steps-label{font-size:10px;letter-spacing:1.6px;font-weight:600;color:var(--accent);padding-top:12px}
.cat-steps ol{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:18px;position:relative}
.cat-steps ol:before{content:'';position:absolute;top:18px;left:18px;right:18px;height:1px;background:#d3ccca}
.cat-steps li{position:relative}
.cat-steps li>span{width:37px;height:37px;border-radius:50%;background:var(--paper);border:1px solid #c3bdbc;display:grid;place-items:center;font-size:12px;position:relative}
.cat-steps h3{font:24px var(--serif);margin:16px 0 4px}
.cat-steps p{font-size:12px;color:var(--muted);line-height:1.6;max-width:210px}

/* Homepage hero: full, uncropped cover photo with a narrower copy panel */
.hero{grid-template-columns:63% 37%;height:auto}
.hero-art{min-height:calc(max(100vw,1080px) * .63 * 1451 / 2600)}
.hero-cover{object-position:50% 50%}
.hero-copy{padding:36px 4.5% 30px;display:flex;flex-direction:column;justify-content:center}
.hero-copy h1{font-size:clamp(42px,3.6vw,58px);margin:16px 0 18px}
.hero-copy>p:not(.eyebrow){font-size:14px}
.hero-actions{margin-top:22px}
.hero-foot{margin-top:24px}

/* Comparison switch: centered pill toggle above the table */
.compare-switch{display:flex;justify-content:center;margin:6px 0 34px}
.segmented.compare-toggle{border:1.5px solid var(--blue);border-radius:999px;padding:5px;margin:0;gap:4px;background:var(--paper)}
.compare-toggle button{border-radius:999px;padding:14px 34px;font-size:15px;color:var(--ink);transition:background .25s,color .25s}
.compare-toggle button strong{font-weight:600}
.compare-toggle button:hover{background:var(--sage)}
.compare-toggle button[aria-selected=true]{background:var(--blue);color:#ffffff}
.compare-toggle button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
[role=tabpanel]:not([hidden]){animation:compareFade .35s ease}
@keyframes compareFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Bundle offer bar (every page) */
.announcement{height:42px;background:#4a4e62;font-size:12.5px;gap:22px;letter-spacing:.2px}
.announcement strong{font-weight:700}
.announcement a{border:1px solid #ffffffb3;border-radius:999px;padding:5px 15px;font-weight:600;font-size:12px;transition:background .2s,color .2s}
.announcement a:hover{background:#ffffff;color:#4a4e62}

/* Bag nudges */
.bag-tip{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.bag-tip p{margin:0}
.bag-tip.unlocked{color:#2e7d52;background:#e6f2ea}
.bag-suggest{font-size:12px;font-weight:600;border:1px solid var(--blue);padding:7px 13px;border-radius:999px;color:var(--blue)}
.bag-suggest:hover{background:var(--blue);color:#ffffff}
.bag-tip a{font-size:11px;text-decoration:underline;text-underline-offset:3px}

/* Product-page bundle box */
.bundle-box{align-items:flex-start;padding:22px;gap:22px}
.bundle-box>img{width:104px;height:130px;flex:none}
.bundle-box .eyebrow{font-size:9px;letter-spacing:1.4px;color:var(--accent)}
.bundle-box h3{font:24px var(--serif);margin:6px 0 8px}
.bundle-box .bb-why{font-size:13px;line-height:1.7;color:var(--muted)}
.bb-good{list-style:none;padding:0;margin:4px 0 14px;display:flex;flex-wrap:wrap;gap:6px}
.bb-good li{font-size:11px;background:var(--paper);padding:5px 11px;border-radius:999px}
.bb-price{font-size:13px;color:var(--ink)}
.bb-price strong{font-size:18px;font-weight:600}
.bb-price span{color:#2e7d52;font-size:12px;margin-left:8px}
.bb-actions{display:flex;align-items:center;gap:20px;margin-top:12px}
.bb-actions .btn{min-height:42px;padding:10px 18px;font-size:12px;text-decoration:none;gap:18px}
.bb-actions a{font-size:12px;text-decoration:underline;text-underline-offset:4px}

/* Shop All strip + homepage inline link */
.bundle-strip{margin:20px 5% 70px;padding:44px 48px;background:#f4edea;display:flex;align-items:center;justify-content:space-between;gap:40px}
.bundle-strip h2{font-size:42px;margin:8px 0 10px}
.bundle-strip p:not(.eyebrow){font-size:14px;color:var(--muted);margin:0}
.bundle-strip .btn{min-width:240px}
.inline-link{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}

/* Build a Bundle page */
.bundle-hero{padding:56px 5% 46px;background:#f4edea;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 50px}
.bundle-hero .breadcrumb{font-size:11px;color:var(--muted)}
.bundle-hero h1{font-size:60px;margin:12px 0 14px}
.bundle-hero p:not(.eyebrow){font-size:15px;color:var(--muted);max-width:520px;line-height:1.8;margin:0}
.bundle-rules{list-style:none;margin:0;padding:0;display:flex;gap:0;background:var(--paper);border:1px solid #e1d9d6}
.bundle-rules li{padding:16px 22px;display:flex;flex-direction:column;gap:3px}
.bundle-rules li+li{border-left:1px solid #e1d9d6}
.bundle-rules strong{font-size:13px}
.bundle-rules span{font-size:11px;color:var(--muted)}
.pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pick-card{background:#f6eeeb;display:flex;flex-direction:column}
.pick-art{position:relative;height:190px;display:flex;align-items:center;justify-content:center;padding:18px 10px 6px}
.pick-art img{height:150px;width:auto;max-width:48%;object-fit:contain;margin:0 -12px;filter:drop-shadow(3px 10px 10px #50546626)}
.pick-art{overflow:hidden}
.pick-art img:nth-last-child(4),.pick-art img:nth-last-child(4)~img{max-width:28%;height:118px;margin:0 -7px}
.pick-tag{position:absolute;top:12px;left:12px;background:var(--blue);color:#ffffff;font-size:9px;letter-spacing:1px;text-transform:uppercase;padding:5px 9px;z-index:1}
.pick-copy{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.pick-copy h3{font:27px var(--serif);margin:0 0 4px}
.pick-contents{font-size:11px;letter-spacing:.4px;color:var(--accent);margin-bottom:10px}
.pick-copy>p:not(.pick-contents):not(.pick-price){font-size:13px;color:var(--muted);line-height:1.6;flex:1}
.pick-price{font-size:13px;margin:6px 0 14px}
.pick-price strong{font-size:19px;font-weight:600}
.pick-price span{color:#2e7d52;font-size:12px;margin-left:6px}
.pick-copy .btn{width:100%;min-height:44px}
.bundle-build{background:var(--paper);padding-top:30px}
.bb-layout{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start}
.bb-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bb-card{border:1.5px solid transparent;background:#ffffff;padding:14px 14px 18px;transition:border-color .2s,box-shadow .2s}
.bb-card.selected{border-color:#4a4e62;box-shadow:0 8px 22px #4a4e621f}
.bb-photo{position:relative;height:230px;margin-bottom:14px;overflow:hidden}
.bb-photo img{display:block;width:100%;height:100%;object-fit:contain;padding:16px}
.bb-check{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:#4a4e62;color:#ffffff;display:grid;place-items:center;font-size:14px}
.bb-card .eyebrow{font-size:9px}
.bb-card h3{font-size:16px;margin:6px 0 4px}
.bb-card p{font-size:12px;color:var(--muted);margin-bottom:12px}
.bb-meta{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--muted);margin-bottom:14px}
.bb-meta strong{font-size:17px;color:var(--ink);font-weight:600}
.bb-card .bb-add{width:100%;min-height:44px}
.bb-qty{display:flex;align-items:center;justify-content:space-between;border:1.5px solid #4a4e62;min-height:44px}
.bb-qty button{width:48px;height:44px;font-size:18px;color:#4a4e62}
.bb-qty button:hover{background:#f4edea}
.bb-qty span{font-weight:600}
.bb-summary{position:sticky;top:120px;background:#f6eeeb;padding:26px 24px}
.bb-status{font:24px/1.25 var(--serif);margin:10px 0 12px}
.bb-status.unlocked{color:#2e7d52}
.bb-progress{height:6px;background:#e9e0db;border-radius:6px;overflow:hidden;margin-bottom:20px}
.bb-progress span{display:block;height:100%;background:#4a4e62;transition:width .35s ease}
.bb-lines{list-style:none;margin:0 0 6px;padding:0;border-top:1px solid var(--line)}
.bb-lines li{display:flex;justify-content:space-between;font-size:13px;padding:10px 0;border-bottom:1px solid var(--line)}
.bb-empty{font-size:13px;color:var(--muted);padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 6px}
.bb-totals>div{display:flex;justify-content:space-between;font-size:13px;margin:10px 0}
.bb-totals .saving{color:#2e7d52}
.bb-totals .total{border-top:1px solid var(--line);padding-top:14px;font-size:18px}
.bb-summary .btn{width:100%;margin-top:14px;min-height:50px}
.bb-summary .btn[disabled]{opacity:.45;cursor:not-allowed}
.bb-clear{display:block;margin:12px auto 0;font-size:11px;text-decoration:underline;text-underline-offset:3px;color:var(--muted)}
.bb-summary small{display:block;text-align:center;font-size:10px;color:var(--muted);margin-top:10px}

/* Homepage: build-your-own strip under the pairings */
.bundle-strip.pair-more{margin:28px 0 0;padding:38px 44px}
.bundle-strip.pair-more h2{font-size:40px}

/* Bundle cards: richer bio, tags, quick view */
.bb-photo{display:block;width:100%;padding:0;border:0;cursor:zoom-in}
.bb-card .bb-bio{font-size:13px;line-height:1.6;color:var(--muted);margin:2px 0 10px;min-height:42px}
.bb-tags{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:6px}
.bb-tags li{font-size:10.5px;padding:5px 10px;border-radius:999px;background:var(--sage)}
.bb-quick{display:flex;align-items:center;gap:6px;margin:12px auto 0;font-size:12px;font-weight:600;color:var(--blue);text-decoration:underline;text-underline-offset:4px}
.bb-qty span{font-size:13px}

/* Quick view side panel */
.qv-dialog{margin:0 0 0 auto;height:100%;max-height:100%;width:480px;max-width:100%;padding:28px 32px 34px;border:0;background:var(--paper);color:var(--ink);overflow-y:auto}
.qv-dialog::backdrop{background:#494d6566}
.qv-dialog[open]{animation:qvIn .3s ease}
@keyframes qvIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.qv-close{position:absolute;top:16px;right:18px;font-size:28px;line-height:1;width:36px;height:36px;z-index:1}
.qv-photo{height:300px;display:grid;place-items:center;margin:10px 0 20px}
.qv-photo img{width:78%;height:86%;object-fit:contain;filter:drop-shadow(4px 14px 14px #5054662e)}
.qv-dialog h2{font:36px/1.1 var(--serif);margin:8px 0 10px}
.qv-price{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}
.qv-price strong{font-size:20px;font-weight:600}
.qv-price span{font-size:12px;color:var(--muted)}
.qv-bio{font-size:14px;line-height:1.75;color:var(--muted)}
.qv-specs{margin:6px 0 22px;border-top:1px solid var(--line)}
.qv-specs>div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6}
.qv-specs dt{font-size:9px;letter-spacing:1.3px;text-transform:uppercase;font-weight:600;padding-top:2px}
.qv-specs dd{margin:0;color:var(--muted)}
.qv-control{width:100%;min-height:50px}
.qv-pair{display:flex;align-items:center;gap:14px;background:#f6eeeb;padding:12px 14px;margin:18px 0}
.qv-pair img{width:52px;height:60px;object-fit:contain}
.qv-pair>div{flex:1}
.qv-pair .eyebrow{font-size:8px}
.qv-pair p{font-size:13px;margin:3px 0 0}
.qv-pair button{font-size:12px;font-weight:600;border:1px solid var(--blue);border-radius:999px;padding:6px 14px;color:var(--blue)}
.qv-pair button:hover{background:var(--blue);color:#ffffff}
.qv-added{font-size:12px;color:#2e7d52;font-weight:600}
.qv-full{width:100%}

/* Add to bundle: filled SPY blue so the main action stands out */
.btn.bb-add{background:#4a4e62;color:#ffffff;border:0}
.btn.bb-add:hover{background:#696a74}
.btn.bb-add:focus-visible{outline:2px solid #4a4e62;outline-offset:3px}

/* Full set tier */
.bb-marks{display:flex;justify-content:space-between;margin:-12px 0 18px;font-size:10px;letter-spacing:.3px;color:var(--muted)}
.bb-marks span:first-child{margin-left:calc(50% - 50px)}
.bb-marks .hit{color:#4a4e62;font-weight:600}
.bag-next{font-size:12px;color:var(--ink)}
.bb-fullset{display:inline-block;margin-top:12px;font-size:12px;font-weight:600;color:#4a4e62;text-decoration:underline;text-underline-offset:4px}

/* Homepage hero: let the copy fill its panel instead of leaving a gap on the right */
.hero-copy{padding:36px 6% 30px 5.5%}
.hero-copy h1{font-size:clamp(46px,4.4vw,78px)}
.hero-copy>p:not(.eyebrow){font-size:clamp(14px,1.1vw,17px)}
.hero-actions{max-width:none}
.hero-actions .btn{min-height:54px;font-size:14px}
.hero-actions .text-link{font-size:14px}
.hero-foot{justify-content:space-between;max-width:none}

/* Category pages: one wide photo + title card, a little shorter than before */
.cat-hero{grid-template-columns:60% 1fr;grid-template-rows:440px}
.cat-hero .cat-life{grid-row:1;grid-column:1}
.cat-hero-card{grid-row:1;grid-column:2;padding:28px 7%}
.cat-hero-card .breadcrumb{margin-bottom:12px}
.cat-hero-card h1{font-size:clamp(42px,3.6vw,56px);margin:6px 0 12px}
.cat-facts{margin:14px 0 18px}
.cat-hero-links{max-width:320px;gap:6px}

/* Category pages, option 2: title-first header with a small framed photo on the right */
.cat-hero{grid-template-columns:1fr 440px;grid-template-rows:auto;gap:60px;padding:44px 5% 48px;background:#f2eae7;align-items:center}
.cat-hero .cat-life{grid-column:2;grid-row:1;height:293px;border:8px solid #fcf9f7;box-shadow:0 14px 34px #50546626;overflow:hidden}
.cat-hero-card{grid-column:1;grid-row:1;background:none;padding:0;text-align:left;align-items:flex-start}
.cat-hero-card .breadcrumb{margin-bottom:14px}
.cat-hero-card h1{font-size:clamp(44px,4vw,60px);margin:6px 0 12px}
.cat-hero-card>p:not(.eyebrow){max-width:520px}
.cat-facts{margin:16px 0 22px}
.cat-hero-links{flex-direction:row;align-items:center;max-width:none;width:auto;gap:28px}
.cat-hero-links .btn{min-width:230px}

/* Category pages, option 1: shorter, narrower split — photo 40% left, title card right */
.cat-hero{grid-template-columns:40% 1fr;grid-template-rows:minmax(320px,auto);gap:8px;padding:8px;background:var(--paper);align-items:stretch}
.cat-hero .cat-life{grid-column:1;grid-row:1;height:auto;border:0;box-shadow:none}
.cat-hero-card{grid-column:2;grid-row:1;background:#f2eae7;padding:26px 7%;text-align:left;align-items:flex-start;justify-content:center}
.cat-hero-card .breadcrumb{margin-bottom:10px}
.cat-hero-card h1{font-size:clamp(40px,3.4vw,52px);margin:4px 0 10px}
.cat-hero-card>p:not(.eyebrow){max-width:560px;margin-bottom:0}
.cat-facts{margin:14px 0 18px}
.cat-hero-links{flex-direction:row;align-items:center;gap:26px}
.cat-hero .cat-life{position:relative;min-height:320px}
.cat-hero .cat-life img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Category pages: square photo instead of a wide one */
.cat-hero{grid-template-columns:340px 1fr;grid-template-rows:340px}
.cat-hero .cat-life{min-height:0}
.cat-hero-card{padding:26px 6%}

/* Category pages: full-width photo banner with the title over it */
.cat-hero{display:block;position:relative;min-height:380px;padding:0;background:#f0e8e5;overflow:hidden}
.cat-hero .cat-life{position:absolute;inset:0;margin:0;height:auto;min-height:0;border:0;box-shadow:none}
.cat-hero .cat-life img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-hero .cat-life:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f8f2ef 0%,#f8f2eff2 30%,#f8f2efa6 48%,#f8f2ef00 70%)}
.cat-hero-card{position:relative;z-index:1;background:none;min-height:380px;max-width:640px;padding:44px 5%;justify-content:center}

/* Category banner video: plays over the still photo; hidden for people who prefer reduced motion */
.cat-hero .cat-life video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (prefers-reduced-motion:reduce){.cat-hero .cat-life video{display:none}}

/* Moment tiles: slow zoom, deeper shade and a short line that slides up on hover */
.moment>img{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.moment:after{transition:background .5s ease}
.moment:hover>img,.moment:focus-visible>img{transform:scale(1.07)}
.moment:hover:after,.moment:focus-visible:after{background:linear-gradient(transparent,#494d65d9)}
.moment-more{font-size:12.5px;line-height:1.55;color:#f4edea;margin:0;max-height:0;opacity:0;overflow:hidden;transform:translateY(8px);transition:max-height .5s ease,opacity .4s ease .05s,transform .5s ease,margin .5s ease}
.moment:hover .moment-more,.moment:focus-visible .moment-more{max-height:60px;opacity:1;transform:none;margin:2px 0 10px}
.moment:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.moment>img,.moment-more{transition:none}.moment:hover>img,.moment:focus-visible>img{transform:none}}

/* Offer bar: deep SPY-blue gradient, slow shimmer, badge-style offers */
.announcement{position:relative;overflow:hidden;height:44px;gap:20px;background:linear-gradient(100deg,#656772 0%,#4a4e62 45%,#7f7e84 70%,#4a4e62 100%);font-size:12.5px}
.announcement:before{content:'';position:absolute;top:0;bottom:0;left:-40%;width:35%;background:linear-gradient(100deg,transparent,#ffffff26,transparent);animation:offerShimmer 7s ease-in-out infinite;pointer-events:none}
@keyframes offerShimmer{0%{left:-40%}55%,100%{left:110%}}
.offer-msg{position:relative;display:flex;align-items:center;gap:8px;white-space:nowrap}
.offer-msg i{font-style:normal;opacity:.6;margin:0 4px}
.offer-pill{display:inline-block;background:#ffffff;color:#656772;font-size:10.5px;font-weight:700;letter-spacing:.8px;padding:3px 9px;border-radius:999px}
.announcement .offer-cta{position:relative;border:1px solid #ffffffb3;border-radius:999px;padding:5px 15px;font-size:12px;font-weight:600;color:#ffffff;background:transparent;transition:background .2s,color .2s;white-space:nowrap}
.announcement .offer-cta:hover{background:#ffffff;color:#656772}
@media (prefers-reduced-motion:reduce){.announcement:before{animation:none;display:none}}

/* ---------- Sales + SEO pass: purchase options, assurances, expectations ---------- */
.purchase-options{border:0;margin:0 0 14px;padding:0;display:grid;gap:8px}
.po{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:4px 10px;border:1px solid #ccc6c4;padding:12px 14px;cursor:pointer;font-size:13px;transition:border-color .2s,background .2s}
.po:has(input:checked){border-color:var(--ink);background:#f6eeeb}
.po input{margin:0;accent-color:var(--blue)}
.po-price{font-weight:600}
.po-every{grid-column:2/-1;font-size:11px;color:var(--muted)}
.po-every select{font:inherit;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #aaa6a7;padding:0 2px;cursor:pointer}
.pdp-assure{list-style:none;padding:0;margin:14px 0 2px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:11.5px}
.pdp-assure li:before{content:'✓';color:var(--accent);margin-right:6px;font-weight:700}
.expect{border-top:1px solid var(--line)}
.expect-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:start}
.expect-time{list-style:none;margin:0;padding:0}
.expect-time li{display:grid;grid-template-columns:120px 1fr;gap:20px;border-top:1px solid var(--line);padding:22px 0}
.expect-time li:last-child{border-bottom:1px solid var(--line)}
.expect-time span{font:26px/1.1 var(--serif)}
.expect-time p{margin:0;font-size:14px;color:var(--muted);line-height:1.7}
.expect-fit{display:grid;gap:22px}
.expect-fit>div{background:#f6eeeb;padding:24px 26px}
.expect-fit h3{font:26px/1.1 var(--serif);margin-bottom:12px}
.expect-fit ul{list-style:none;margin:0;padding:0;font-size:13.5px;line-height:1.6}
.expect-fit li{padding:5px 0 5px 22px;position:relative}
.fit-yes li:before{content:'✓';position:absolute;left:0;color:var(--accent);font-weight:700}
.fit-check li:before{content:'·';position:absolute;left:4px;font-weight:700;font-size:20px;line-height:1.1;color:var(--accent)}
.expect-fit p{font-size:11.5px;color:var(--muted);margin:12px 0 0}
.ship-tip{font-size:12px;margin:2px 0 14px;color:var(--muted)}
.ship-tip.done{color:#3f7a4f;font-weight:600}
.sub-tag{font-size:11px;color:#4a4e62;font-weight:600}
.product-faq details p a,.faq details p a{display:inline-block;margin-top:4px;border-bottom:1px solid #aaa6a7}

/* ---------- Shop quiz ---------- */
.quiz{background:#f8f3f1;border-block:1px solid var(--line)}
.quiz-card{background:var(--paper);border:1px solid var(--line);padding:38px 40px;max-width:900px;margin:0 auto}
.quiz-q h3,.quiz-result h3{font:34px/1.1 var(--serif);margin:8px 0 22px}
.quiz-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
.quiz-opts button{border:1px solid #b6b1b1;background:#ffffff;padding:18px 18px;text-align:left;font-size:14px;line-height:1.4;transition:border-color .2s,background .2s}
.quiz-opts button:hover,.quiz-opts button:focus-visible{border-color:var(--ink);background:#f6eeeb}
.quiz-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:18px}
.quiz-pick{display:flex;flex-direction:column;gap:4px;background:#f6eeeb;padding:18px}
.quiz-pick img{width:100%;height:170px;object-fit:contain;margin-bottom:8px}
.quiz-pick strong{font:24px/1.1 var(--serif);font-weight:400}
.quiz-pick small{font-size:12.5px;color:var(--muted);line-height:1.5}
.quiz-price{display:flex;align-items:baseline;gap:10px;font-size:15px;margin:0 0 16px}
.quiz-price strong{font-size:22px}
.quiz-price del{color:var(--muted)}
.quiz-price span{font-size:12px;color:#3f7a4f;font-weight:600}
.quiz-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.quiz-actions .btn{min-width:240px}
.quiz-actions .text-link{width:auto;margin:0}

/* ---------- Guides and info pages ---------- */
.article{padding:0 5%}
.article-hero{max-width:760px;margin:0 auto;padding:44px 0 26px;border-bottom:1px solid var(--line)}
.article-hero .breadcrumb{font-size:11px;color:var(--muted);display:inline-block;margin-bottom:22px}
.article-hero h1{font-size:52px;margin:12px 0 16px}
.article-dek{font-size:18px;line-height:1.6;color:var(--muted);margin-bottom:14px}
.article-meta{font-size:11px;color:var(--muted);margin:0}
.article-body{max-width:720px;margin:0 auto;padding:30px 0 50px;font-size:16px;line-height:1.75}
.article-body h2{font-size:36px;margin:46px 0 14px}
.article-body h3{font:24px/1.2 var(--serif);margin:26px 0 8px}
.article-body ul,.article-body ol{padding-left:22px;margin:0 0 18px}
.article-body li{margin:6px 0}
.article-body p a,.article-body li a{border-bottom:1px solid #aaa6a7}
.article-lead{font-size:19px;line-height:1.7}
.article-toc{background:#f6eeeb;padding:22px 26px;margin:26px 0 8px}
.article-toc ol{columns:2;column-gap:30px;margin:8px 0 0;font-size:14px}
.article-toc a{border:0}
.article-steps li{padding-left:4px}
.article-table{overflow-x:auto;margin:18px 0 22px;border:1px solid var(--line)}
.article-table table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.5}
.article-table th,.article-table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.article-table th{background:#f6eeeb;font-weight:600;font-size:12px;letter-spacing:.3px}
.article-table tr:last-child td{border-bottom:0}
.article-products{background:#f2eae7;padding:30px;margin:44px 0 10px}
.article-products h2{font-size:32px;margin:8px 0 18px}
.article-products>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.article-product{display:flex;flex-direction:column;gap:4px;background:var(--paper);padding:16px;font-size:13px;border:0}
.article-product img{width:100%;height:150px;object-fit:contain;margin-bottom:6px}
.article-product strong{font:21px/1.15 var(--serif);font-weight:400}
.article-product small{color:var(--muted);line-height:1.5}
.article-product-price{margin-top:auto;padding-top:8px;font-size:12px;font-weight:600}
.article-products-note{font-size:12px;color:var(--muted);margin:14px 0 0}
.article-faq{margin-top:40px}
.article-faq h2{margin-top:0}
.article-faq details{border-top:1px solid var(--line);padding:16px 0;font-size:15px}
.article-faq details:last-child{border-bottom:1px solid var(--line)}
.article-faq details p{margin:10px 0 0;color:var(--muted)}
.guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.guide-card{background:#f6eeeb;padding:28px;display:flex;flex-direction:column;gap:8px;min-height:250px;transition:background .2s}
.guide-card:hover{background:#ebe4e1}
.guide-card h2,.guide-card h3{font:28px/1.12 var(--serif);margin:4px 0;letter-spacing:-.4px}
.guide-card p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0}
.guide-more{margin-top:auto;padding-top:10px;font-size:12px;font-weight:600}
.article-related{border-top:1px solid var(--line)}
.info-body{padding-top:20px}
.info-body .article-body{margin:0;padding-top:10px}

/* ---------- Tablet and phone ---------- */
@media (max-width:900px){
 html{scroll-padding-top:120px}
 html,body{overflow-x:clip}
 body{min-width:0;font-size:15px}
 h1,h2{font-size:36px;letter-spacing:-.6px}
 .hero-copy h1,.catalog-intro h1,.cat-hero-card h1,.bundle-hero h1,.about-intro h1,.article-hero h1{font-size:40px}
 .section-heading h2,.how-to h2,.faq h2,.product-faq h2,.category-cta h2,.cat-feature-copy h2,.bundle-strip h2,.bundle-strip.pair-more h2,.pairings .section-heading h2,.article-body h2{font-size:32px}
 .purchase h1{font-size:34px}
 .announcement{height:auto;min-height:40px;padding:8px 16px;flex-wrap:wrap;gap:6px 12px;font-size:11px;text-align:center}
 .offer-msg{white-space:normal;flex-wrap:wrap;justify-content:center}
 header{height:auto;flex-wrap:wrap;padding:10px 16px 0;row-gap:2px}
 .wordmark img{width:132px;height:auto}
 header nav{order:3;width:100%;overflow-x:auto;gap:22px;font-size:13px;scrollbar-width:none;padding-bottom:2px}
 header nav::-webkit-scrollbar{display:none}
 header nav a{white-space:nowrap;padding:10px 0}
 .section{padding:44px 16px}
 .section-heading{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:22px}

 .hero{grid-template-columns:1fr;height:auto}
 .hero-art{min-height:56vw}
 .hero-copy{padding:28px 16px 32px}

 .intro-strip{flex-wrap:wrap;gap:8px 16px;padding:16px}
 .product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
 .product-photo{height:210px}
 .card-bottom{flex-direction:column;gap:4px}
 .compare-head,.compare-row{grid-template-columns:30% 35% 35%;gap:8px;font-size:12px}
 .compare-actions a{font-size:11px}
 .moments-grid{grid-template-columns:repeat(2,1fr);gap:12px}
 .moment{height:280px}
 .moment h3{font-size:24px}
 .pair-grid{grid-template-columns:1fr}
 .pair-card{grid-template-columns:1fr}
 .pair-art{flex-wrap:nowrap;padding:34px 16px 16px}
 .pair-art img{width:40%;height:auto}
 .approach-strip{grid-template-columns:1fr;gap:22px;padding:40px 16px}
 .faq,.product-faq{grid-template-columns:1fr;gap:18px}
 .category-cta,.bundle-strip{flex-direction:column;align-items:stretch;gap:20px}
 .category-cta{padding:40px 16px}
 .bundle-strip{margin:16px 16px 50px;padding:30px 22px}
 .category-cta .btn,.bundle-strip .btn,.cat-actions .btn,.cat-hero-links .btn,.quiz-actions .btn{min-width:0}
 .catalog-intro{padding:28px 16px 24px}
 .catalog-toolbar{flex-wrap:wrap;gap:12px}
 .pdp-breadcrumb{padding:16px}
 .pdp{grid-template-columns:1fr;padding:0 16px 40px}
 .gallery{position:static;padding-right:0}
 .gallery-main{height:340px}
 .purchase{padding-top:22px}
 .mini-pair{flex-wrap:wrap}
 .pdp-nav{position:fixed;top:auto;bottom:0;left:0;right:0;z-index:30;padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:0;box-shadow:0 -6px 18px #4a4e6214}
 .pdp-nav a{display:none}
 .pdp-nav button{width:100%;margin:0;background:var(--blue);color:#ffffff;min-height:46px;justify-content:center}
 main:has(.pdp-nav){padding-bottom:72px}
 .how-to{grid-template-columns:1fr;gap:28px}
 .expect-grid{grid-template-columns:1fr;gap:28px}
 .expect-time li{grid-template-columns:1fr;gap:6px}
 .about-copy{grid-template-columns:1fr;gap:24px}
 .about-intro{padding-left:16px;padding-right:16px}
 .footer-top{grid-template-columns:1fr 1fr;gap:28px}
 .footer-top>div:first-child,.newsletter{grid-column:1/-1}
 .footer-bottom{flex-direction:column;gap:8px}
 footer{padding-left:16px;padding-right:16px}
 dialog{width:calc(100vw - 32px);max-width:560px;padding:26px}
 .bag-dialog,.qv-dialog{width:100%;max-width:100%;padding:22px 18px}
 .cat-hero{grid-template-columns:1fr;grid-template-rows:auto;gap:0;padding:0}
 .cat-tile,.cat-life,.cat-hero .cat-life{grid-row:auto;grid-area:auto;position:relative;inset:auto;height:240px}
 .cat-hero .cat-life::after{background:linear-gradient(180deg,transparent 65%,#f8f2ef)}
 .cat-hero-card{grid-row:auto;grid-column:auto;min-height:0;max-width:none;padding:28px 16px}
 .cat-feature{grid-template-columns:1fr;gap:20px}
 .cat-feature.flip .cat-feature-art{order:0}
 .cat-feature-art{height:320px}
 .cat-features{padding-left:16px;padding-right:16px}
 .cat-actions{flex-direction:column;align-items:stretch;gap:14px}
 .cat-choose-grid{grid-template-columns:1fr}
 .cat-choose-grid article{padding:26px 22px}
 .cat-ingredients{padding-left:16px;padding-right:16px}
 .cat-ing-grid{grid-template-columns:1fr 1fr}
 .cat-ing-grid article{min-height:0}
 .cat-steps{grid-template-columns:1fr;gap:12px}
 .cat-steps ol{grid-auto-flow:row;grid-template-columns:1fr 1fr;gap:16px}
 .cat-steps ol:before{display:none}
 .bundle-hero{padding:32px 16px}
 .bundle-rules{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .pick-grid{grid-template-columns:1fr}
 .bb-layout{grid-template-columns:1fr}
 .bb-summary{position:static}
 .quiz-card{padding:26px 20px}
 .quiz-q h3,.quiz-result h3{font-size:28px}
 .article{padding:0 16px}
 .article-hero{padding-top:28px}
 .article-toc ol{columns:1}
 .article-products{padding:22px 18px}
 .guide-grid{grid-template-columns:1fr}
 .guide-card{min-height:0}
}
@media (max-width:520px){
 .product-grid{gap:10px}
 .product-photo{height:170px}
 .moments-grid{grid-template-columns:1fr}
 .cat-ing-grid{grid-template-columns:1fr}
 .footer-top{grid-template-columns:1fr}
 .bb-grid{grid-template-columns:1fr}
 .compare-head>span{display:none}
 .compare-head{grid-template-columns:50% 50%}
 .compare-row{grid-template-columns:1fr 1fr}
 .compare-row strong{grid-column:1/-1;margin-top:6px}
}
@media (min-width:901px) and (max-width:1079px){
 body{min-width:0}
 header nav{gap:20px}
 .section,.pdp,.pdp-breadcrumb,.catalog-intro{padding-left:3%;padding-right:3%}
}

/* ---------- Gift strip + ready-made sets ---------- */
@media (min-width:901px){.pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gift-strip{display:flex;align-items:center;justify-content:center;gap:22px;padding:14px 5%;background:#f2eae7;border-bottom:1px solid var(--line);font-size:13px}
.gift-strip-cta{font-weight:600;border-bottom:1px solid #aaa6a7}
@media (max-width:900px){
 .gift-strip{flex-wrap:wrap;gap:6px 14px;padding:14px 16px;text-align:center}
}
.pick-for{color:var(--accent);margin-bottom:8px}

/* ---------- Seasonal: festive Bundle page ----------
   To switch off after the holidays, change <main class="festive"> to <main> in bundle.html. */
.festive .bundle-hero{position:relative;overflow:hidden;color:#f6efe2;background:radial-gradient(circle,#e3c27f55 0 1.5px,transparent 2.5px) 0 0/86px 86px,radial-gradient(circle,#f6efe233 0 1px,transparent 2px) 43px 30px/124px 124px,linear-gradient(130deg,#1e3b31 0%,#29493d 55%,#4a2a28 130%)}
.festive .bundle-hero:before{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,#d9b26a,transparent)}
.festive .bundle-hero:after{content:'✦';position:absolute;right:5%;top:10px;font-size:150px;line-height:1;color:#e3c27f1f;pointer-events:none}
.festive .bundle-hero>*{position:relative;z-index:1}
.festive .bundle-hero .eyebrow{color:#e3c27f}
.festive .bundle-hero .breadcrumb{color:#cfc4b0}
.festive .bundle-hero h1 em{color:#e9cb8c}
.festive .bundle-hero p:not(.eyebrow){color:#ece3d3}
.festive .bundle-rules{background:#fbf6ec;border-color:#d9b26a;color:var(--ink)}
.festive .bundle-rules li+li{border-left-color:#e6d3a8}
.festive .bundle-picks{background:linear-gradient(#f4ecdd,var(--paper) 70%)}
.festive .bundle-picks .eyebrow{color:#8f3a34}
.festive .pick-card{background:#fbf7ef;border-top:3px solid #c9a45c;box-shadow:0 10px 26px #4a2a2812}
.festive .pick-art{background:radial-gradient(circle,#c9a45c30 0 1.5px,transparent 2.5px) 0 0/34px 34px}
.festive .pick-for{color:#8f3a34}
.festive .pick-tag{background:#8f3a34}
/* Gift set products + gift message */
.gift-word{font-size:.62em;letter-spacing:0;color:var(--accent);white-space:nowrap}
.gift-note-opt{border-top:1px solid var(--line);padding-top:12px;margin-bottom:14px}
.gn-toggle{display:flex;align-items:center;gap:9px;font-size:13px;cursor:pointer}
.gn-toggle input{accent-color:#4f5366;width:16px;height:16px;margin:0}
.gn-fields{display:grid;gap:8px;margin-top:12px}
.gn-fields input,.gn-fields textarea,.gn-form input,.gn-form textarea{font:inherit;font-size:13px;color:var(--ink);background:#ffffff;border:1px solid #ccc6c4;padding:9px 11px;width:100%;box-sizing:border-box;resize:vertical}
.gn-fields input:focus,.gn-fields textarea:focus,.gn-form input:focus,.gn-form textarea:focus{outline:2px solid #aca7a8;outline-offset:0;border-color:#aca7a8}
.gn-row{display:flex;gap:10px;align-items:center}
.gn-row input{flex:1}
.gn-count{font-size:11px;color:var(--muted);white-space:nowrap}
.gn-help{font-size:11px;color:var(--muted)}
.gn-form{display:grid;gap:12px;margin-top:6px}
.gn-form label{display:grid;gap:6px;font-size:13px;font-weight:500}
.gn-form label span{font-weight:400;color:var(--muted)}
.gn-form .gn-count{margin-top:-6px;justify-self:end}
.gn-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.gn-actions .btn{min-width:200px}
.gn-actions .text-link{width:auto;margin:0}
.bag-gift-art{width:72px;height:90px;flex:none;position:relative;background:#f6eeeb}
.bag-gift-art img{position:absolute;width:62%;height:auto;bottom:8px;filter:drop-shadow(2px 6px 6px #50546626)}
.bag-gift-art img:first-child{left:4px}
.bag-gift-art img:nth-child(2){right:4px}
.bag-note{background:#f7f1ee;border-left:2px solid #aca7a8;padding:8px 10px;margin:6px 0 8px;font-size:12px}
.bag-note p{margin:4px 0 6px;line-height:1.5;word-break:break-word}
.bag-note button,.bag-note-add{font-size:11.5px;padding:0;text-decoration:underline;text-underline-offset:3px}
.bag-note-add{display:block;margin:4px 0 8px;color:#4f5366;font-weight:600}
.festive .pick-copy>.btn{background:#1e3b31}
.festive .pick-copy>.btn:hover{background:#142a22}
#gifts .pick-grid{align-items:start}
#gift-sets .pick-grid{align-items:start}

/* ---------- Gift set product pages ---------- */
.gift-gallery img{width:44%;height:auto;max-height:78%;object-fit:contain;margin:0 -3%;filter:drop-shadow(4px 14px 14px #5054662e)}
.gift-gallery.four img{width:27%;margin:0 -2%}
.gift-pdp .pdp-price span del{color:var(--muted)}
.gift-pdp .gift-note-opt{margin:6px 0 14px}
.gift-pdp #gift-add{width:100%}
.inside-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.inside-card{background:#f6eeeb;padding:22px;display:flex;flex-direction:column;gap:4px;transition:background .2s}
.inside-card:hover{background:#ebe4e1}
.inside-card img{width:100%;height:190px;object-fit:contain;margin-bottom:10px}
.inside-card strong{font:24px/1.15 var(--serif);font-weight:400}
.inside-card small{font-size:11.5px;color:var(--accent)}
.inside-card p{font-size:13px;color:var(--muted);line-height:1.6;margin:6px 0 0;flex:1}
.inside-more{font-size:12px;font-weight:600;margin-top:12px}
.gift-why{border-top:1px solid var(--line)}
.gift-why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.gift-why-grid article{border-top:2px solid #aca7a8;padding-top:16px}
.gift-why-grid h3{font:24px/1.15 var(--serif);margin:0 0 8px}
.gift-why-grid p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0}
.gift-details{display:inline-block;font-size:12px;font-weight:600;border-bottom:1px solid #aaa6a7;margin:2px 0 10px;align-self:flex-start}
.pick-copy h3 a:hover{color:#61636f}
a.pick-art{color:inherit}
@media (max-width:900px){
 .gift-why-grid{grid-template-columns:1fr 1fr}
 .inside-card img{height:160px}
}
@media (max-width:520px){.gift-why-grid{grid-template-columns:1fr}}
.article-products>div:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}
/* Festive photo on gift cards and the Mask Duo page */
.pick-art.has-photo{padding:0}
.pick-art .pick-photo{width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 58%;margin:0;filter:none}
.gift-gallery.has-photo{padding:0;overflow:hidden}
.gift-gallery .gift-photo{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:cover;margin:0;filter:none}
.gift-gallery.has-photo>.eyebrow,.gift-gallery.has-photo .gallery-note{z-index:1;color:#4a4e62;background:#fcf9f7d9;padding:4px 8px}
.article-product img[src*="festive"]{object-fit:cover}

/* Gift set cards: four narrow cards with square photos, so nothing is cropped */
#gifts .pick-grid,#gift-sets .pick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
#gifts .pick-art,#gift-sets .pick-art{height:auto;aspect-ratio:1/1}
#gifts .pick-art img:not(.pick-photo),#gift-sets .pick-art img:not(.pick-photo){height:58%;max-width:48%}
#gifts .pick-art img:nth-last-child(4):not(.pick-photo),#gifts .pick-art img:nth-last-child(4)~img,#gift-sets .pick-art img:nth-last-child(4):not(.pick-photo),#gift-sets .pick-art img:nth-last-child(4)~img{height:44%;max-width:28%}
#gifts .pick-copy h3,#gift-sets .pick-copy h3{font-size:25px}
@media (max-width:1199px){#gifts .pick-grid,#gift-sets .pick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){#gifts .pick-grid,#gift-sets .pick-grid{grid-template-columns:1fr}}
.gift-gallery.has-photo .gift-photo{width:100%;height:100%;margin:0}

/* ---------- Bag button with icon and count badge ---------- */
.bag-button{gap:9px;padding:7px 14px 7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:13px;font-weight:500;transition:border-color .2s,background .2s,box-shadow .2s}
.bag-button:hover,.bag-button:focus-visible{border-color:var(--ink);background:#ffffff;box-shadow:0 4px 14px #4a4e621a}
.bag-button span.bag-icon{position:relative;display:inline-flex;width:auto;height:auto;border:0;border-radius:0}
.bag-button span.bag-label{width:auto;height:auto;border:0;border-radius:0;font-size:13px;display:inline}
.bag-button span.bag-badge{position:absolute;top:-7px;right:-9px;min-width:18px;width:auto;height:18px;padding:0 5px;border:2px solid var(--paper);border-radius:999px;background:#4f5366;color:#ffffff;font-size:10px;font-weight:700;line-height:1;display:grid;place-items:center;box-sizing:border-box;transition:transform .2s}
.bag-button span.bag-badge.is-empty{display:none}
.bag-button.bump .bag-icon{animation:bagBump .55s cubic-bezier(.3,1.6,.5,1)}
.bag-button.bump .bag-badge{animation:badgePop .55s ease}
@keyframes bagBump{0%{transform:scale(1)}35%{transform:scale(1.18) rotate(-6deg)}70%{transform:scale(.96) rotate(3deg)}100%{transform:scale(1)}}
@keyframes badgePop{0%{transform:scale(.4)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.bag-button.bump .bag-icon,.bag-button.bump .bag-badge{animation:none}}
@media (max-width:520px){.bag-button{padding:7px 10px}.bag-button span.bag-label{display:none}}

/* ---------- Bundle page banner: light festive garland photo (seasonal) ---------- */
.festive .bundle-hero{flex-direction:column;align-items:flex-start;justify-content:center;gap:24px;min-height:460px;padding:56px 5%;color:var(--ink);background:url(assets/bundle-banner-festive.webp) right top/cover no-repeat,#f3ece1}
.festive .bundle-hero:before{background:linear-gradient(90deg,#c9a45c,transparent 70%)}
.festive .bundle-hero:after{content:none}
.festive .bundle-hero>div{max-width:560px}
.festive .bundle-hero .eyebrow{color:#8f3a34}
.festive .bundle-hero .breadcrumb{color:var(--muted)}
.festive .bundle-hero h1{color:var(--ink)}
.festive .bundle-hero h1 em{color:#8a6c52}
.festive .bundle-hero p:not(.eyebrow){color:#5f574f}
.festive .bundle-rules{background:#fffdf9e6;border-color:#e3d3b2}
.bundle-hero-cta{display:flex;align-items:center;gap:26px;margin-top:22px;flex-wrap:wrap}
.bundle-hero-cta .btn{min-width:220px;background:#4f5366}
.bundle-hero-cta .btn:hover{background:#4a4e62}
.bundle-hero-cta .text-link{width:auto;margin:0}
@media (min-width:901px) and (max-width:1199px){.festive .bundle-hero{background-position:72% top}}
@media (max-width:900px){
 .festive .bundle-hero{min-height:0;padding:200px 16px 32px;background:url(assets/bundle-banner-festive.webp) right top/auto 210px no-repeat,#f3ece1}
 .bundle-hero-cta{gap:16px}
 .bundle-hero-cta .btn{min-width:0;flex:1}
}
/* Soft cream fade on the left keeps the headline clear of the garland at every width */
@media (min-width:901px){.festive .bundle-hero{background:linear-gradient(90deg,#f3ece1 0,#f3ece1 26%,#f3ece100 46%),url(assets/bundle-banner-festive.webp) right top/cover no-repeat,#f3ece1}}
@media (min-width:901px) and (max-width:1199px){.festive .bundle-hero{background:linear-gradient(90deg,#f3ece1 0,#f3ece1 42%,#f3ece100 64%),url(assets/bundle-banner-festive.webp) right top/cover no-repeat,#f3ece1}}
/* Gift cards in a row match heights (buttons line up), except while a gift message is open */
#gifts .pick-grid:not(:has(.gn-fields:not([hidden]))),#gift-sets .pick-grid:not(:has(.gn-fields:not([hidden]))){align-items:stretch}

/* ---------- Quiz v2: progress, back, reasons, gift result ---------- */
.quiz-card{position:relative;overflow:hidden}
.quiz-progress{position:absolute;top:0;left:0;right:0;height:4px;background:var(--line)}
.quiz-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#aca7a8,#4f5366);transition:width .35s ease}
.quiz-opts button.chosen{border-color:var(--ink);background:#f6eeeb}
.quiz-back{margin-top:18px;padding:0;font-size:12.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.quiz-back:hover{color:var(--ink)}
.quiz-result h3{margin-bottom:16px}
.quiz-picks.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.quiz-picks.three .quiz-pick img{height:140px}
.quiz-gift-photo{display:block;max-width:420px;aspect-ratio:1/1;overflow:hidden;margin-bottom:16px}
.quiz-gift-photo img{width:100%;height:100%;object-fit:cover;display:block}
.quiz-why{list-style:none;margin:4px 0 16px;padding:0;font-size:14px;line-height:1.55}
.quiz-why li{position:relative;padding:5px 0 5px 24px}
.quiz-why li:before{content:'✓';position:absolute;left:0;color:#3f7a4f;font-weight:700}
.quiz-actions .text-link{width:auto;margin:0}
.quiz-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.quiz-foot .quiz-back{margin:0}
.quiz-guide{font-size:12.5px;font-weight:600;border-bottom:1px solid #aaa6a7}
@media (max-width:620px){.quiz-picks.three{gap:8px}.quiz-picks.three .quiz-pick img{height:96px}.quiz-gift-photo{max-width:none}}

/* ---------- Header actions: account + bag ---------- */
.header-actions{display:flex;align-items:center;gap:10px}
.account-button{display:flex;align-items:center;gap:8px;padding:7px 14px 7px 11px;border:1px solid transparent;border-radius:999px;font-size:13px;font-weight:500;transition:border-color .2s,background .2s}
.account-button:hover,.account-button:focus-visible{border-color:var(--line);background:#ffffff}
.account-button.is-member .account-label{color:#4f5366}
@media (max-width:1180px) and (min-width:901px){header nav{gap:22px}}
@media (max-width:520px){.account-button{padding:7px 8px}.account-button .account-label{display:none}.header-actions{gap:4px}}

/* ---------- Bag: points ---------- */
.bag-redeem{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;margin:12px 0;padding:12px 14px;background:#f7f1ee;border-left:2px solid #aca7a8}
.bag-redeem label{font-size:12.5px;font-weight:600}
.bag-redeem select{font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid #ccc6c4;background:#ffffff;color:var(--ink)}
.bag-redeem small{grid-column:1/-1;font-size:11px;color:var(--muted)}
.bag-points{font-size:12px;margin:0 0 14px;color:#636570}
.bag-points strong{color:#4f5366}
.bag-points a{text-decoration:underline;text-underline-offset:3px;color:#4f5366;font-weight:600}

/* ---------- Account: sign in / create account ---------- */
.account-page{padding:56px 5% 72px;background:linear-gradient(#f3ece9,var(--paper) 60%)}
.auth-shell{display:grid;grid-template-columns:1fr minmax(0,460px);gap:70px;align-items:start;max-width:1100px;margin:0 auto}
.auth-intro h1{font-size:54px;margin:10px 0 16px}
.auth-intro>p:not(.eyebrow){font-size:15px;line-height:1.75;color:#636570;max-width:440px}
.auth-intro a{border-bottom:1px solid #aaa6a7}
.auth-perks{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px;font-size:14px}
.auth-perks li{padding-left:26px;position:relative}
.auth-perks li:before{content:'✦';position:absolute;left:0;color:#aca7a8}
.auth-card{background:var(--paper);border:1px solid var(--line);border-top:3px solid #aca7a8;padding:26px 28px;box-shadow:0 14px 34px #4e516612}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:20px}
.auth-tabs button{padding:12px 0;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.auth-tabs button[aria-selected="true"]{color:var(--ink);font-weight:600;border-bottom-color:#4f5366}
.auth-form{display:grid;gap:14px}
.auth-form label,.auth-birthday legend{display:grid;gap:6px;font-size:13px;font-weight:500}
.auth-form label span,.auth-birthday legend span{font-weight:400;color:var(--muted)}
.auth-form input:not([type=checkbox]),.auth-form select{font:inherit;font-size:14px;color:var(--ink);background:#ffffff;border:1px solid #ccc6c4;padding:11px 12px;width:100%;box-sizing:border-box}
.auth-form input:focus,.auth-form select:focus{outline:2px solid #aca7a8;outline-offset:0;border-color:#aca7a8}
.auth-birthday{border:0;padding:0;margin:0;display:grid;grid-template-columns:1.4fr 1fr;gap:8px}
.auth-birthday legend{grid-column:1/-1;margin-bottom:6px}
.auth-form .auth-check{display:flex;align-items:center;gap:9px;font-weight:400}
.auth-check input{accent-color:#4f5366;width:16px;height:16px}
.auth-form .btn{background:#4f5366;margin-top:4px}
.auth-form .btn:hover{background:#4a4e62}
.auth-error{margin:0;padding:10px 12px;background:#f1e9e6;color:#61636f;font-size:13px}
.auth-note{font-size:12px;color:var(--muted);margin:0;text-align:center}
.auth-switch{padding:0;font-size:12px;color:#4f5366;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.auth-preview{text-align:center;margin:18px 0 0}

/* ---------- Account: dashboard ---------- */
.dash{max-width:1100px;margin:0 auto}
.dash-hero{display:grid;grid-template-columns:1fr minmax(0,380px);gap:40px;align-items:end;margin-bottom:28px}
.dash-hero h1{font-size:56px;margin:10px 0 6px}
.dash-hero>div>p:not(.eyebrow){color:var(--muted);font-size:14px;margin:0}
.dash-balance{background:#4f5366;color:#f6efec;padding:24px 26px;display:grid;gap:6px}
.dash-balance .eyebrow{color:#c9c3c1}
.dash-balance strong{font:64px/1 var(--serif);font-weight:400}
.dash-balance small{font-size:12.5px;line-height:1.5;color:#d9d2d0}
.dash-balance .btn{background:#f6efec;color:#4f5366;margin-top:10px}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dash-card{background:var(--paper);border:1px solid var(--line);padding:24px 26px}
.dash-card h2{font-size:30px;margin:0 0 14px}
.dash-perks,.dash-earn{list-style:none;padding:0;margin:0;font-size:13.5px}
.dash-perks li{padding:5px 0 5px 22px;position:relative}
.dash-perks li:before{content:'✓';position:absolute;left:0;color:#3f7a4f;font-weight:700}
.dash-progress{height:6px;background:var(--line);margin:16px 0 8px;border-radius:3px;overflow:hidden}
.dash-progress span{display:block;height:100%;background:linear-gradient(90deg,#aca7a8,#4f5366)}
.dash-small{font-size:12px;color:var(--muted);margin:10px 0 0}
.dash-earn li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.dash-earn li strong{color:#4f5366}
.dash-earn li.done span:after{content:' ✓';color:#3f7a4f;font-weight:700}
.dash-history{width:100%;border-collapse:collapse;font-size:13px}
.dash-history td{padding:9px 0;border-bottom:1px solid var(--line)}
.dash-history td:last-child{text-align:right;font-weight:600;color:#4f5366}
.dash-history td:first-child{color:var(--muted);width:110px}
.dash-details{margin:0 0 16px}
.dash-details div{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
.dash-details dt{color:var(--muted)}
.dash-details dd{margin:0;word-break:break-word}
.dash .preview-note{text-align:center;margin-top:20px}

/* ---------- Rewards page ---------- */
.rewards-hero{display:grid;grid-template-columns:1.2fr minmax(0,380px);gap:60px;align-items:center;padding:64px 5% 60px;background:radial-gradient(circle at 85% 30%,#ded6d355,transparent 45%),linear-gradient(#f3ece9,#faf6f4)}
.rewards-hero h1{font-size:60px;margin:12px 0 16px}
.rewards-hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.75;color:#636570;max-width:520px}
.rewards-hero .eyebrow{color:#61636f}
.rewards-hero-cta{display:flex;align-items:center;gap:24px;margin-top:24px;flex-wrap:wrap}
.rewards-hero-cta .btn{background:#4f5366;min-width:250px}
.rewards-hero-cta .btn:hover{background:#4a4e62}
.rewards-hero-cta .text-link{width:auto;margin:0}
.rewards-balance{font-size:15px;margin:0;width:100%}
.rewards-hero-card{aspect-ratio:1.6/1;border-radius:18px;padding:26px 28px;display:flex;flex-direction:column;justify-content:space-between;color:#f6efec;background:radial-gradient(circle at 80% 20%,#c9c3c140,transparent 50%),linear-gradient(135deg,#4f5366,#585b6a 60%,#4e5166);box-shadow:0 22px 44px #4f536640}
.rewards-hero-card .eyebrow{color:#c9c3c1}
.rewards-hero-card strong{font:76px/1 var(--serif);font-weight:400}
.rewards-hero-card small{font-size:13px;letter-spacing:.5px;margin-top:-18px}
.rewards-hero-card em{font:20px var(--serif);color:#d2cbc9}
.rewards-step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rewards-step-grid article{border-top:2px solid #aca7a8;padding-top:18px}
.rewards-step-grid span{font-size:12px;color:var(--muted)}
.rewards-step-grid h3{font:34px var(--serif);margin:6px 0 8px}
.rewards-step-grid p{font-size:14px;color:var(--muted);line-height:1.65;margin:0}
.rewards-earn{background:#f8f3f1;border-block:1px solid var(--line)}
.rewards-earn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.rewards-earn-grid article{background:var(--paper);border:1px solid var(--line);padding:22px}
.rewards-earn-grid strong{font:42px/1 var(--serif);font-weight:400;color:#4f5366}
.rewards-earn-grid h3{font-size:15px;margin:12px 0 6px}
.rewards-earn-grid p{font-size:13px;color:var(--muted);line-height:1.55;margin:0}
.rewards-ladder{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:none}
.rewards-ladder li{background:linear-gradient(160deg,#f3ece9,#fbf8f6);border:1px solid #d9d2d0;padding:26px 22px;display:grid;gap:2px;text-align:center}
.rewards-ladder strong{font:48px/1 var(--serif);font-weight:400}
.rewards-ladder span{font-size:12px;color:var(--muted);letter-spacing:.5px}
.rewards-ladder em{font-style:normal;font-weight:700;color:#4f5366;margin-top:10px;font-size:15px}
.rewards-tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.rewards-tier-grid article{position:relative;background:var(--paper);border:1px solid var(--line);padding:26px}
.rewards-tier-grid article.top{border:1px solid #aca7a8;background:linear-gradient(160deg,#faf6f4,#f3ece9);box-shadow:0 14px 30px #4e516614}
.rewards-tier-grid h3{font:38px var(--serif);margin:6px 0 12px}
.rewards-tier-grid ul{list-style:none;padding:0;margin:0;font-size:13.5px}
.rewards-tier-grid li{padding:6px 0 6px 22px;position:relative;border-top:1px solid var(--line)}
.rewards-tier-grid li:before{content:'✦';position:absolute;left:0;color:#aca7a8}
.tier-tag{position:absolute;top:-11px;right:18px;background:#61636f;color:#ffffff;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:4px 10px}
@media (max-width:900px){
 .auth-shell,.dash-hero,.dash-grid,.rewards-hero{grid-template-columns:1fr;gap:26px}
 .account-page{padding:32px 16px 48px}
 .auth-intro h1,.dash-hero h1,.rewards-hero h1{font-size:40px}
 .auth-card{padding:20px 18px}
 .rewards-hero{padding:36px 16px}
 .rewards-step-grid{grid-template-columns:1fr}
 .rewards-earn-grid,.rewards-ladder{grid-template-columns:1fr 1fr}
 .rewards-tier-grid{grid-template-columns:1fr}
 .rewards-hero-cta .btn{min-width:0;flex:1}
}
@media (max-width:900px){.rewards-hero-cta{flex-direction:column;align-items:stretch;gap:14px}.rewards-hero-cta .btn{flex:none}.rewards-hero-cta .text-link{justify-content:space-between}}

/* ---------- Brand colors for year-round features (rewards, accounts, bag, quiz) ----------
   From revialife.com / reviawell.com: espresso, sky blue, cream. The evergreen above is
   seasonal (gift sections only). */
:root{--espresso:#9c6a5d;--espresso-dp:#85584c;--sky-dp:#87868a;--sky-tint:#faf5f2;--cream:#f3ece9;--gold-lt:#cec8c6}
/* Bag + header */
.bag-button span.bag-badge{background:var(--espresso)}
.account-button.is-member .account-label{color:var(--espresso)}
.bag-redeem{background:var(--sky-tint);border-left-color:var(--sky)}
.bag-points strong{color:var(--espresso)}
.bag-points a{color:var(--sky-dp)}
/* Quiz */
.quiz-progress span{background:linear-gradient(90deg,var(--sky),var(--espresso))}
/* Account */
.account-page{background:linear-gradient(var(--cream),var(--paper) 60%)}
.auth-perks li:before{color:var(--sky)}
.auth-card{border-top-color:var(--sky);box-shadow:0 14px 34px #9c6a5d14}
.auth-tabs button[aria-selected="true"]{border-bottom-color:var(--espresso)}
.auth-form .btn{background:var(--espresso)}
.auth-form .btn:hover{background:var(--espresso-dp)}
.auth-check input{accent-color:var(--espresso)}
.auth-form input:focus,.auth-form select:focus{outline-color:var(--sky);border-color:var(--sky)}
.auth-switch{color:var(--sky-dp)}
.dash-balance{background:radial-gradient(circle at 85% 15%,#9c6a5d4d,transparent 55%),linear-gradient(135deg,var(--espresso),var(--espresso-dp))}
.dash-balance .eyebrow{color:var(--gold-lt)}
.dash-balance .btn{color:var(--espresso)}
.dash-progress span{background:linear-gradient(90deg,var(--sky),var(--sky-dp))}
.dash-earn li strong,.dash-history td:last-child{color:var(--sky-dp)}
/* Rewards page */
.rewards-hero{background:radial-gradient(circle at 85% 30%,#9c6a5d33,transparent 45%),linear-gradient(var(--cream),#fcf9f7)}
.rewards-hero .eyebrow{color:var(--sky-dp)}
.rewards-hero-cta .btn{background:var(--espresso)}
.rewards-hero-cta .btn:hover{background:var(--espresso-dp)}
.rewards-hero-card{background:radial-gradient(circle at 80% 20%,#9c6a5d59,transparent 55%),linear-gradient(135deg,var(--espresso),var(--espresso-dp));box-shadow:0 22px 44px #85584c40}
.rewards-hero-card em{color:var(--gold-lt)}
.rewards-step-grid article{border-top-color:var(--sky)}
.rewards-earn{background:var(--sky-tint)}
.rewards-earn-grid strong{color:var(--sky-dp)}
.rewards-ladder li{background:#ffffff;border-color:var(--line)}
.rewards-ladder em{color:var(--espresso)}
.rewards-tier-grid article.top{border-color:var(--sky);background:linear-gradient(160deg,#ffffff,var(--sky-tint));box-shadow:0 14px 30px #87868a1f}
.rewards-tier-grid li:before{color:var(--sky)}
.tier-tag{background:var(--sky-dp)}
/* Refer a friend */
.rewards-refer{background:var(--cream);border-block:1px solid var(--line)}
.refer-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.refer-grid h2{font-size:48px;margin:10px 0 14px}
.refer-lead{font-size:15px;line-height:1.75;color:#636570;max-width:470px}
.refer-box{margin-top:22px;max-width:470px}
.refer-box .btn{background:var(--espresso)}
.refer-box .btn:hover{background:var(--espresso-dp)}
.refer-link{display:flex;border:1px solid #ccc6c4;background:#ffffff}
.refer-link input{flex:1;min-width:0;border:0;padding:12px 14px;font:inherit;font-size:13px;color:var(--ink);background:transparent}
.refer-link button{padding:0 18px;background:var(--espresso);color:#ffffff;font-size:13px;font-weight:600}
.refer-link button:hover{background:var(--espresso-dp)}
.refer-box small{display:block;margin-top:8px;font-size:12px;color:var(--muted)}
.refer-steps{list-style:none;margin:0 0 26px;padding:0;display:grid;gap:12px;counter-reset:refer}
.refer-steps li{counter-increment:refer;display:grid;grid-template-columns:44px 1fr;gap:2px 14px;background:#ffffff;border:1px solid var(--line);padding:16px 18px}
.refer-steps li:before{content:counter(refer);grid-row:1/3;width:36px;height:36px;border-radius:50%;background:var(--sky-tint);color:var(--sky-dp);font-weight:700;display:grid;place-items:center}
.refer-steps strong{font-size:15px}
.refer-steps span{font-size:13px;color:var(--muted)}
.refer-rules h3{font:26px var(--serif);margin:0 0 10px}
.refer-fine{margin:0;padding-left:18px;font-size:13.5px;line-height:1.6;color:#636570}
.refer-fine li{margin:5px 0}
@media (max-width:900px){.refer-grid{grid-template-columns:1fr;gap:28px}.refer-grid h2{font-size:34px}}
.dash-sub{font:20px var(--serif);margin:18px 0 8px}
.dash-card .refer-link input{font-size:12px}
.dash-card .refer-link + small{display:block;font-size:11.5px;color:var(--muted);margin-top:6px}
.dash-small a{color:var(--sky-dp);text-decoration:underline;text-underline-offset:3px}
.rewards-earn-grid p a{color:var(--sky-dp);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.refer-box small a{color:var(--sky-dp);text-decoration:underline;text-underline-offset:3px}

/* ---------- "Earn N points" next to prices ---------- */
.pts{font-size:12.5px;line-height:1.4;color:var(--sky-dp);margin:6px 0 0}
.pts strong{font-weight:700}
.pts a{color:var(--muted);font-size:11.5px;margin-left:6px;text-decoration:underline;text-underline-offset:3px}
.pdp-points{margin:-8px 0 16px}
.card-points{font-size:11.5px;margin:2px 0 12px}
.pick-copy .card-points{margin:-8px 0 12px}
.cat-points{margin:-6px 0 4px}
.quiz-points{margin:-8px 0 16px}
.bb-points{margin:10px 0 14px;text-align:right}
/* Points lines: sit clear of the dividers around prices */
.pdp-points{margin:14px 0 18px}
.pick-copy .card-points{margin:0 0 14px}
.cat-points{margin:2px 0 6px}
.quiz-points{margin:0 0 16px}

/* Rewards + account: sky blue instead of espresso for the card and buttons */
:root{--sky-deep:#727279}
.rewards-hero-card,.dash-balance{background:radial-gradient(circle at 82% 18%,#ffffff40,transparent 55%),linear-gradient(135deg,#9c6a5d,#87868a 60%,#727279);box-shadow:0 22px 44px #87868a40;color:#ffffff}
.rewards-hero-card .eyebrow,.dash-balance .eyebrow{color:#f7f2ee}
.rewards-hero-card em{color:#ffffff}
.dash-balance small{color:#f7f2ee}
.dash-balance .btn{background:#ffffff;color:var(--sky-deep)}
.rewards-hero-cta .btn,.refer-box .btn,.auth-form .btn,.refer-link button{background:var(--sky-dp)}
.rewards-hero-cta .btn:hover,.refer-box .btn:hover,.auth-form .btn:hover,.refer-link button:hover{background:var(--sky-deep)}
.rewards-hero .eyebrow{color:var(--sky-dp)}
.auth-tabs button[aria-selected="true"]{border-bottom-color:var(--sky-dp)}
.auth-check input{accent-color:var(--sky-dp)}
/* "SPY CIRCLE" on the blue points card: glowing gold */
.rewards-hero-card .eyebrow,.dash-balance .eyebrow{color:#e0d8d5;background:linear-gradient(90deg,#eae2df,#bfbab9 45%,#f6f1ed 60%,#bfbab9 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 6px #e2dad7b3) drop-shadow(0 0 14px #dad3d166);animation:goldShimmer 4s ease-in-out infinite;font-weight:700;letter-spacing:2px}
@keyframes goldShimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@media (prefers-reduced-motion:reduce){.rewards-hero-card .eyebrow,.dash-balance .eyebrow{animation:none}}
.rewards-hero-card .eyebrow,.dash-balance .eyebrow{font-size:12.5px;letter-spacing:2.6px}
/* SPY icon as a membership-card emblem */
.rewards-hero-card,.dash-balance{position:relative;overflow:hidden}
.card-emblem{position:absolute;right:30px;top:50%;transform:translateY(-50%);width:112px;height:112px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff,#fcf8f6);display:grid;place-items:center;box-shadow:0 0 0 6px #ffffff2e,0 0 0 1px #e0d8d599,0 0 22px #e2dad755,0 12px 26px #5b5e6c40}
.card-emblem img{width:66%;height:auto;display:block}
.card-emblem.small{top:22px;right:22px;transform:none;width:64px;height:64px;box-shadow:0 0 0 4px #ffffff2e,0 0 0 1px #e0d8d599,0 0 14px #e2dad755}
@media (max-width:520px){.card-emblem{width:84px;height:84px;right:20px}}

/* One-serum Full Ritual: serum picker on gift cards and the gift page */
.serum-choice{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.serum-choice>span{font-size:11px;letter-spacing:.4px;color:var(--accent)}
.serum-choice button{border:1px solid #e7dfdc;background:#ffffff;border-radius:999px;padding:3px 10px;font-size:11.5px;cursor:pointer;color:#727279;transition:background .2s,color .2s,border-color .2s}
.serum-choice button[aria-checked="true"]{background:#87868a;border-color:#87868a;color:#ffffff}
.serum-choice button:focus-visible{outline:2px solid #727279;outline-offset:2px}
.serum-choice.large{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.serum-choice.large .eyebrow{grid-column:1/-1;margin:0;font-size:11px}
.serum-choice.large button{border-radius:4px;padding:14px 16px;text-align:left;display:flex;flex-direction:column;gap:3px;color:var(--ink)}
.serum-choice.large button strong{font:22px/1.1 var(--serif);font-weight:400}
.serum-choice.large button small{font-size:11.5px;color:var(--muted)}
.serum-choice.large button em{font-style:normal;font-weight:600;font-size:13px;margin-top:4px}
.serum-choice.large button[aria-checked="true"]{background:#faf5f2;border-color:#87868a;color:var(--ink);box-shadow:inset 0 0 0 1px #87868a}
.inside-card.serum-option{position:relative}
.inside-choice{position:absolute;top:12px;right:12px;font-size:10px;letter-spacing:.8px;text-transform:uppercase;background:#87868a;color:#ffffff;padding:3px 8px;border-radius:999px}
.inside-card.not-chosen{opacity:.45}
.inside-card.not-chosen .inside-choice{background:#aaa5a6}

/* Performance peptides band on the serum pages */
.perf-band{background:#faf5f2;border-top:1px solid #ede5e2;border-bottom:1px solid #ede5e2}
.perf-head{max-width:720px;margin-bottom:28px}
.perf-head h2{margin-bottom:0}
.perf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.perf-grid article{background:#ffffff;border:1px solid #ede5e2;padding:22px;border-radius:4px}
.perf-num{display:flex;align-items:baseline;gap:8px;font:46px/1 var(--serif);font-weight:400;color:#727279;margin-bottom:12px}
.perf-num small{font:600 12px/1.2 var(--sans);letter-spacing:.6px;text-transform:uppercase;color:#9c6a5d}
.perf-grid p{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0}
.perf-note{margin:22px 0 0;font-size:14px}
.perf-note a{color:#727279;text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.perf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.perf-grid{grid-template-columns:1fr}.perf-num{font-size:38px}.serum-choice.large{grid-template-columns:1fr}}

/* Full Ritual page picker v2: "Pick one", a serum photo per option, "or" between */
.serum-choice.large{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:8px}
.serum-choice.large .sc-label{grid-column:1/-1;margin:0 0 2px;display:flex;align-items:baseline;gap:10px}
.serum-choice.large .sc-label strong{font:24px/1.1 var(--serif);font-weight:400}
.serum-choice.large .sc-label span{font-size:12px;color:var(--muted)}
.serum-choice.large button{position:relative;flex-direction:row;align-items:center;gap:12px;padding:12px 34px 12px 12px}
.serum-choice.large button img{width:64px;height:64px;object-fit:contain;flex:none;background:#f6eeeb;border-radius:4px}
.serum-choice.large .sc-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.serum-choice.large .sc-dot{position:absolute;top:10px;right:10px;width:16px;height:16px;border-radius:50%;border:1.5px solid #d6d0cd;background:#ffffff}
.serum-choice.large button[aria-checked="true"] .sc-dot{border-color:#87868a;background:#87868a;box-shadow:inset 0 0 0 3px #ffffff}
.serum-choice.large button[aria-checked="true"] img{background:#ffffff}
.sc-or{align-self:center;font:italic 20px/1 var(--serif);color:var(--accent)}
@media (max-width:620px){.serum-choice.large{grid-template-columns:1fr}.sc-or{justify-self:center;margin:-2px 0}}
.sc-or{width:30px;height:30px;border-radius:50%;border:1px solid #e7dfdc;background:#ffffff;display:grid;place-items:center;font-size:16px;color:#727279}
.serum-choice.large button strong{font-size:19px;white-space:nowrap}

/* 404 page */
.not-found{min-height:52vh}
.nf-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:22px}

/* Gift sets page: gift-guide links above the sets */
.gift-guide-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:-6px 0 22px;font-size:13.5px}
.gift-guide-row span{color:var(--accent);letter-spacing:.4px}
.gift-guide-row a{color:#727279;text-decoration:underline;text-underline-offset:3px}

/* Welcome offer: one-time card (bottom left; bottom sheet on phones) */
/* Welcome offer: a centered window that shrinks into the corner tab (.wo-tab) when closed */
dialog.welcome-offer{margin:auto;padding:0;width:min(880px,calc(100vw - 48px));max-width:none;height:fit-content;max-height:calc(100vh - 48px);border:0;border-radius:6px;background:var(--paper);color:var(--ink);overflow:hidden;box-shadow:0 30px 80px rgba(70,73,96,.35)}
dialog.welcome-offer[open]{display:grid;grid-template-columns:1fr 1.05fr;animation:woIn .35s cubic-bezier(.2,.8,.2,1)}
dialog.welcome-offer::backdrop{background:#46496080;backdrop-filter:blur(4px)}
dialog.welcome-offer.out{animation:woOut .3s ease-in forwards}
@keyframes woIn{from{opacity:0;transform:translateY(18px) scale(.97)}}
@keyframes woOut{to{opacity:0;transform:translate(calc(110px - 50vw),calc(50vh - 48px)) scale(.18)}}
.wo-media{position:relative;background:var(--sage)}
.wo-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wo-body{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:540px;padding:56px 52px 36px;overflow-y:auto}
.welcome-offer h3{font:54px/1 var(--serif);font-weight:400;letter-spacing:-1px;margin:8px 0 16px;text-wrap:balance}
.welcome-offer h3 em{color:#727279}
.wo-body>p:not(.eyebrow){font-size:15px;color:var(--muted);margin-bottom:24px;max-width:36ch}
.welcome-offer form{display:flex;flex-direction:column;gap:10px}
.welcome-offer input{border:1px solid var(--line);border-radius:4px;padding:14px;font-size:15px;background:#ffffff}
.welcome-offer .btn{width:100%;justify-content:space-between}
.welcome-offer small{display:block;margin-top:12px;font-size:12px;color:var(--muted)}
.wo-skip{align-self:center;margin-top:18px;font-size:13px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.wo-skip:hover{color:var(--ink)}
.wo-close{position:absolute;top:14px;right:16px;font-size:28px;line-height:1;color:var(--muted);padding:4px 8px}
.wo-close:hover{color:var(--ink)}
.auth-welcome{background:#faf5f2;border:1px solid #e7dfdc;color:#727279;font-size:13.5px;padding:10px 12px;border-radius:4px;margin:0 0 4px}
@media (max-width:720px){dialog.welcome-offer{width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}dialog.welcome-offer[open]{grid-template-columns:1fr}.wo-media{height:170px}.wo-body{min-height:0;padding:28px 22px 20px}.welcome-offer h3{font-size:36px;margin-bottom:10px}.wo-body>p:not(.eyebrow){font-size:14px;margin-bottom:16px}@keyframes woOut{to{opacity:0;transform:translate(calc(90px - 50vw),calc(50vh - 36px)) scale(.18)}}}
@media (prefers-reduced-motion:reduce){dialog.welcome-offer[open],dialog.welcome-offer.out{animation:none}}
/* Minimized welcome offer: the tab left in the corner after the card is closed */
.wo-tab{position:fixed;left:24px;bottom:24px;z-index:60;display:flex;align-items:stretch;background:var(--ink);color:var(--paper);border-radius:4px;box-shadow:0 10px 30px rgba(74,78,98,.22);transform:translateY(12px);opacity:0;transition:transform .25s ease,opacity .25s ease}
.wo-tab.in{transform:none;opacity:1}
.wo-tab button{color:inherit}
.wo-tab-open{padding:14px 8px 14px 20px;font-size:12px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;white-space:nowrap}
.wo-tab-close{padding:0 16px 0 10px;font-size:20px;line-height:1;opacity:.7}
.wo-tab-close:hover{opacity:1}
.wo-tab button:focus-visible{outline:2px solid var(--sky);outline-offset:-3px}
@media (max-width:900px){body:has(.pdp-nav) .wo-tab{bottom:calc(84px + env(safe-area-inset-bottom))}}
@media (max-width:620px){.wo-tab{left:12px;bottom:calc(12px + env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.wo-tab{transition:none}}

/* iPhone-width banners: the photo or video sits behind the top of the text and fades into the
   cream, so image and copy read as one banner. Tablet and desktop keep their own layouts. */
@media (max-width:620px){
 .festive .bundle-hero{padding:170px 16px 32px;background:linear-gradient(180deg,rgba(243,236,225,0) 0,rgba(243,236,225,0) 110px,rgba(243,236,225,.82) 230px,#f3ece1 330px),url(assets/bundle-banner-festive.webp) right top/auto 330px no-repeat,#f3ece1}
 .festive .bundle-hero>div{max-width:none}
 .festive .bundle-hero h1{font-size:42px;line-height:1.02;text-shadow:0 1px 18px rgba(243,236,225,.9)}
 .cat-hero{position:relative;background:#f0e8e5}
 .cat-hero .cat-life{position:absolute;top:0;left:0;right:0;bottom:auto;height:400px}
 .cat-hero .cat-life::after{background:linear-gradient(180deg,rgba(240,232,229,0) 0,rgba(240,232,229,0) 170px,rgba(240,232,229,.85) 300px,#f0e8e5 400px)}
 .cat-hero-card{position:relative;z-index:1;padding:255px 16px 28px}
 .cat-hero-card h1{text-shadow:0 1px 18px rgba(240,232,229,.9)}
}

/* Serums + Masks product cards: the whole card opens the product page. The product-name link
   is stretched over the card; Add to bag and Full details sit above it and work as before. */
.cat-feature{position:relative;cursor:pointer}
.cat-feature h2 a::after{content:'';position:absolute;inset:0;z-index:1}
.cat-feature .cat-actions .btn,.cat-feature .cat-actions .text-link{position:relative;z-index:2}
.cat-feature:hover h2 a{color:#727279}
.cat-feature h2 a:focus-visible{outline:none}
.cat-feature:has(h2 a:focus-visible){outline:2px solid #727279;outline-offset:4px}

/* Tablet banners (621-900px): the desktop layout, with the photo or video full-width behind
   the banner and the text over a soft cream wash on the left. iPhone and desktop are separate. */
@media (min-width:621px) and (max-width:900px){
 .festive .bundle-hero{min-height:0;padding:44px 5% 36px;justify-content:flex-start;background:linear-gradient(180deg,rgba(243,236,225,0) 55%,#f3ece1) right top/100% 330px no-repeat,linear-gradient(90deg,rgba(243,236,225,.85) 0,rgba(243,236,225,.4) 40%,rgba(243,236,225,0) 60%) left top/100% 330px no-repeat,url(assets/bundle-banner-festive.webp) right top/100% auto no-repeat,#f3ece1}
 .festive .bundle-hero>div{max-width:400px}
 .festive .bundle-hero h1{font-size:46px;line-height:1.02}
 .cat-hero{display:block;position:relative;min-height:420px;padding:0;background:#f0e8e5;overflow:hidden}
 .cat-hero .cat-life{position:absolute;inset:0;height:auto}
 .cat-hero .cat-life::after{background:linear-gradient(90deg,#f8f2ef 0%,#f8f2eff2 36%,#f8f2efa6 54%,#f8f2ef00 76%)}
 .cat-hero-card{position:relative;z-index:1;min-height:420px;max-width:520px;padding:40px 5%;justify-content:center}
 .cat-hero-card>p:not(.eyebrow){max-width:380px}
 .cat-hero-card h1{max-width:420px}
}

/* Account settings on the dashboard: collapsible edit sections */
.dash-edit{border-top:1px solid var(--line);padding:4px 0}
.dash-edit summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:14px;font-weight:500;cursor:pointer;list-style:none}
.dash-edit summary::-webkit-details-marker{display:none}
.dash-edit summary:after{content:'+';font-size:18px;line-height:1;color:var(--muted)}
.dash-edit[open]>summary:after{content:'−'}
.dash-form{padding:4px 0 16px}
.dash-form .dash-small{margin:0}
.dash-danger summary{color:#646671}
.dash-danger .btn,.dash-danger .btn:hover{background:#646671}
.dash-account>.text-link{margin-top:14px}
/* Contact page form */
.contact-form{max-width:560px;margin-top:28px}
.contact-form textarea{font:inherit;font-size:14px;color:var(--ink);background:#ffffff;border:1px solid #ccc6c4;padding:11px 12px;width:100%;box-sizing:border-box;resize:vertical;min-height:140px}
.contact-form textarea:focus{outline:2px solid #aca7a8;outline-offset:0;border-color:#aca7a8}

/* Coral and navy kit: coral cream offer bar, product cards, and badges.
   Delete this block to drop the coral accents. */
.announcement{background:#e8d3ca;color:#4a4e62}
.announcement .offer-cta{border-color:#4a4e6259;color:#4a4e62}
.announcement .offer-cta:hover{background:#4a4e62;color:#e8d3ca}
.offer-pill{background:#4a4e62;color:#e8d3ca}
.tone-0,.tone-1,.tone-2,.tone-3{background:#e8d3ca}
.gift-strip{background:#f3eae5;border-bottom-color:#e8d3ca}
.gift-strip-cta{border-bottom-color:#4a4e62}
.save-badge{background:#9c6a5d;color:#ffffff}

/* Wordmark-only logo, shown larger */
.wordmark img{height:66px}
footer .wordmark img{height:72px}

/* Text links: a deep coral underline sweeps in on hover and the arrow nudges forward */
.text-link{background:linear-gradient(#9c6a5d,#9c6a5d) 0 100%/0 2px no-repeat;transition:color .25s,border-color .25s,background-size .35s ease}
.text-link:hover,.text-link:focus-visible{color:#9c6a5d;border-bottom-color:#9c6a5d;background-size:100% 2px}
.text-link span{display:inline-block;transition:transform .25s ease}
.text-link:hover span,.text-link:focus-visible span{transform:translate(3px,-3px)}

/* Checkout errors in the bag */
.checkout-error{color:#9c4a3f;font-size:13px;margin:10px 0 0}
.checkout-error:empty{display:none}
