/* MiniBox · New Year 2027. Photo, type and controls remain independent. */
@font-face {font-family:Golos;src:url('/static/fonts/golos.woff2') format('woff2');font-weight:100 900;font-display:swap;}
@font-face {font-family:Cormorant;src:url('/static/fonts/cormorant.woff2') format('woff2');font-weight:300 700;font-display:swap;}
:root {--coffee:#2f1b14;--wine:#5e1f28;--blue:#91a7b5;--paper:#fbf8f4;--cream:#f2e9df;--white:#fffdfa;--pink:#f3e7e4;--sky:#e7edf0;--line:#e4d9cf;--muted:#77675e;--radius:18px;--serif:Cormorant,Georgia,serif;--sans:Golos,Arial,sans-serif;}
html {scroll-padding-bottom:110px;}
body {font-family:var(--sans);font-weight:400;background:var(--paper);padding-bottom:calc(96px + env(safe-area-inset-bottom));}
.shell {width:calc(100% - 80px);max-width:1280px;margin-inline:auto;}
h1,h2,h3 {font-family:var(--serif);font-weight:500;letter-spacing:-.025em;}
h1 em,h2 em {font-weight:500;}
.button {min-height:50px;padding:13px 26px;font-size:16px;font-weight:500;box-shadow:none;}
.button:hover {transform:none;background:#481720;}
.button span {font-size:24px;line-height:1;}
button,a,input,summary {scroll-margin-bottom:110px;}
.demo-bar {padding:5px 16px;font-size:12px;font-weight:500;}
.shop-header {background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:80;}
.shop-header-inner {min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:30px;}
.brand {display:inline-flex;align-items:center;gap:10px;color:var(--wine);flex-shrink:0;line-height:1;}
.brand > svg {width:38px;height:44px;stroke-width:1.6;}
.brand > span {font:600 34px/1 var(--serif);letter-spacing:-.04em;}
.brand small {display:block;font:400 10px/1.6 var(--sans);letter-spacing:0;}
.desktop-nav {display:flex;gap:28px;align-items:center;}
.desktop-nav a {padding:12px 0;font-size:14px;color:var(--coffee);}
.desktop-nav a:hover {color:var(--wine);text-decoration:underline;text-underline-offset:6px;}
.mobile-menu {display:none;}
.floating-cart {position:fixed;right:calc(20px + env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:90;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:var(--white);box-shadow:0 4px 18px #2f1b1428;border:1px solid #ffffff20;}
.floating-cart > svg {width:27px;height:27px;}
.floating-cart:hover {background:#44151f;}
.cart-count {position:absolute;right:-3px;top:-4px;display:grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border-radius:50%;border:2px solid var(--paper);background:var(--wine);color:var(--white);font-size:11px;font-weight:600;}
.season-hero {position:relative;isolation:isolate;background:var(--coffee);color:var(--white);}
.season-hero-photo {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2;}
.season-hero:after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,#1c100b6b,transparent 70%);z-index:-1;}
.season-hero-inner {padding-block:38px 40px;min-height:440px;}
.season-kicker {font-size:12px;line-height:1.6;font-weight:400;letter-spacing:.32em;text-transform:uppercase;margin:0 0 12px;}
.season-hero h1 {font-size:clamp(48px,4.8vw,72px);line-height:.93;letter-spacing:-.035em;max-width:620px;margin:0 0 21px;color:var(--white);}
.season-hero h1 em {display:block;font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:.01em;padding-left:100px;line-height:1.15;color:var(--white);}
.season-hero-description {font-size:16px;line-height:1.55;max-width:470px;margin-bottom:22px;}
.season-hero .button {min-width:230px;background:#701b30;border-color:#701b30;}
.benefit-strip {border-bottom:1px solid var(--line);background:var(--paper);}
.benefits {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-block:25px;}
.benefit {display:flex;align-items:center;gap:20px;padding:0 24px;border-right:1px solid var(--line);min-width:0;}
.benefit:first-child {padding-left:0;}.benefit:last-child {border-right:0;padding-right:0;}
.benefit > svg {width:38px;height:38px;flex:0 0 38px;color:var(--wine);stroke-width:1.5;}
.benefit strong {font-size:14px;font-weight:500;display:block;margin-bottom:5px;}
.benefit p {font-size:12px;color:var(--muted);line-height:1.5;margin:0;}
.category-section {padding-block:24px 17px;}
.category-heading {display:flex;align-items:center;gap:27px;margin-bottom:16px;}
.category-heading h2 {font-size:44px;line-height:1;margin:0;}
.category-heading > span {width:42px;height:1px;background:#aa9c92;}
.category-heading p {color:var(--muted);font-size:15px;margin:0;}
.category-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.category-card {position:relative;isolation:isolate;min-width:0;min-height:250px;overflow:hidden;border-radius:12px;background:var(--coffee);color:var(--white);}
.category-card > img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;}
.category-card:after {content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#170b0ab5,transparent 87%);}
.category-blue:after {background:linear-gradient(90deg,#3a5269bb,transparent 90%);}
.category-card > div {padding:24px;}
.category-card h3 {font-size:34px;line-height:.98;margin:0 0 10px;max-width:240px;color:var(--white);}
.category-card p {font-size:14px;line-height:1.4;margin:0 0 17px;max-width:215px;}
.category-arrow {display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--white);color:var(--wine);font:400 24px/1 var(--sans);}
.category-card:hover .category-arrow {background:var(--cream);}
.visual-note {font-size:11px;color:var(--muted);margin:10px 0 0;line-height:1.5;}
.season-selection {background:var(--cream);padding-block:28px 32px;}
.season-selection-inner {display:grid;grid-template-columns:320px minmax(0,1fr);gap:32px;align-items:start;}
.season-intro {padding-top:9px;}.season-intro h2 {font-size:48px;line-height:1.05;margin:0 0 14px;}
.season-intro > p:not(.season-kicker) {font-size:16px;line-height:1.45;margin-bottom:22px;}
.season-intro .button {font-size:14px;gap:15px;padding-inline:22px;}
.season-rail {display:flex;gap:16px;overflow-x:auto;min-width:0;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#c6b2a4 transparent;}
.season-rail > .product-tile {position:relative;flex:1 0 235px;max-width:none;scroll-snap-align:start;padding:0 0 15px;border:0;border-radius:10px;background:var(--paper);box-shadow:none;}
.season-rail .tile-image {border-radius:10px 10px 0 0;}
.season-rail .tile-image img {aspect-ratio:1.55;object-fit:cover;}
.season-rail .tile-arrow,.season-rail .tile-labels {display:none;}
.season-rail .tag {top:10px;left:10px;font-size:11px;padding:4px 8px;font-weight:400;}
.season-rail .tile-title {display:block;margin:12px 60px 0 15px;}
.season-rail .tile-title h3 {font:400 15px/1.4 var(--sans);letter-spacing:0;min-height:42px;margin:0 0 8px;}
.season-rail .tile-title > span {padding:0;background:none;border-radius:0;color:var(--coffee);font-size:16px;font-weight:500;}
.season-rail .product-tile > p {font-size:12px;margin:10px 15px 0;}
.quick-add {position:absolute;right:13px;bottom:58px;}
.quick-add button {width:42px;height:42px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--wine);color:var(--white);padding:10px;cursor:pointer;}
.quick-add svg {width:23px;height:23px;}
.season-empty {padding:25px;border:1px solid var(--line);border-radius:12px;}
/* Existing customer pages share the calmer typography and materials. */
.page-head h1 {font-size:clamp(42px,4.7vw,64px);font-weight:500;line-height:1.05;}
.eyebrow {font-weight:500;letter-spacing:.1em;}
.product-tile {border-radius:16px;box-shadow:none;}
.tile-image {border-radius:12px;}.tile-title h3 {font:500 26px/1.15 var(--serif);}
.tile-title > span {font-weight:500;}.tile-labels,.tag {font-weight:400;}
input,select,textarea {font-family:var(--sans);border-radius:12px;}
label,.form-field label,.finder-form label,.pack-option strong,.component strong {font-weight:500;}
.builder-summary {background:var(--cream);border-radius:18px;}
.pack-option,.component,.cart-line,.filters {border-radius:16px;}
.manifesto {border-radius:0;padding-block:42px;}.manifesto h2 {font-size:40px;font-weight:500;}
.manifesto p:not(.eyebrow) {font-size:16px;}.postcard {transform:none;border-radius:16px;box-shadow:none;margin:0;}
.postcard p {font-family:var(--serif);font-weight:500;}
.footer {padding-block:38px 20px;}.footer .brand {color:var(--wine);}
@media(max-width:1050px){
 .desktop-nav {gap:18px;}.desktop-nav a {font-size:13px;}.benefit {padding-inline:14px;gap:12px;}.benefit > svg {width:32px;height:32px;flex-basis:32px;}
 .season-selection-inner {grid-template-columns:270px minmax(0,1fr);gap:24px;}.category-card > div {padding:20px;}.category-card h3 {font-size:30px;}
}
@media(max-width:767px){
 .shell {width:calc(100% - 40px);}.shop-header-inner {min-height:68px;gap:18px;}.brand > svg {width:32px;height:38px;}.brand > span {font-size:30px;}.brand small {font-size:9px;}
 .desktop-nav {display:none;}.mobile-menu {display:block;}.mobile-menu > summary {display:grid;place-items:center;width:44px;height:44px;cursor:pointer;list-style:none;border-radius:50%;color:var(--wine);}.mobile-menu > summary::-webkit-details-marker {display:none;}.mobile-menu > summary svg {width:27px;height:27px;}
 .mobile-menu nav {position:absolute;right:20px;top:calc(100% - 3px);width:min(290px,calc(100vw - 40px));padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 25px #2f1b141f;}
 .mobile-menu nav a {display:block;min-height:48px;padding:12px;font-size:16px;border-radius:9px;}.mobile-menu nav a:hover {background:var(--cream);}
 .floating-cart {right:calc(18px + env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));width:54px;height:54px;}
 .season-hero-inner {min-height:400px;padding-block:30px 32px;}.season-hero-photo {object-position:57% center;}.season-hero:after {background:linear-gradient(90deg,#160b08c9,#160b0855 64%,#160b0820);}
 .season-kicker {font-size:11px;letter-spacing:.28em;}.season-hero h1 {font-size:47px;max-width:340px;line-height:.98;margin-bottom:20px;}.season-hero h1 em {padding-left:62px;font-size:53px;line-height:1.15;}
 .season-hero-description {font-size:15px;line-height:1.45;max-width:285px;margin-bottom:23px;}.season-hero .button {min-width:210px;}.desktop-break {display:none;}
 .benefits {grid-template-columns:repeat(2,minmax(0,1fr));padding-block:22px;gap:24px 0;}.benefit {gap:11px;padding-inline:13px;align-items:flex-start;}.benefit:nth-child(2) {border-right:0;padding-right:0;}.benefit:nth-child(3){padding-left:0;}.benefit strong {font-size:13px;line-height:1.45;margin-bottom:4px;}.benefit p {font-size:12px;line-height:1.45;}.benefit > svg {width:29px;height:29px;flex-basis:29px;}
 .category-section {padding-block:23px 17px;}.category-heading {display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:17px;}.category-heading h2 {font-size:40px;}.category-heading > span {width:34px;}.category-heading p {width:100%;font-size:14px;}
 .category-grid {grid-template-columns:minmax(0,1fr);gap:11px;}.category-card {min-height:208px;border-radius:11px;}.category-card > div {padding:23px;}.category-card > img {object-position:center;}.category-card h3 {font-size:33px;margin-bottom:9px;}.category-card p {font-size:13px;line-height:1.45;margin-bottom:13px;}.category-arrow {width:34px;height:34px;font-size:23px;}.visual-note {font-size:10px;line-height:1.5;}
 .season-selection {padding-block:25px 28px;}.season-selection-inner {display:block;}.season-intro {padding-top:0;margin-bottom:21px;}.season-intro h2 {font-size:43px;line-height:1;margin-bottom:11px;}.season-intro > p:not(.season-kicker) {font-size:15px;max-width:310px;margin-bottom:18px;}.season-intro .button {font-size:14px;min-height:48px;}
 .season-rail {gap:12px;margin-right:-20px;padding-right:20px;max-width:calc(100% + 20px);}.season-rail > .product-tile {flex:0 0 238px;max-width:238px;}.season-rail .tile-title h3 {font-size:14px;}.season-rail .tile-image img {aspect-ratio:1.45;}
 .page-head {padding-top:35px;}.page-head h1 {font-size:44px;}.tile-title h3 {font-size:28px;}.button {font-size:16px;}.manifesto-inner {gap:24px;}.manifesto h2 {font-size:36px;}.manifesto {padding-block:32px;}.postcard p {font-size:27px!important;}
 .footer-top {gap:24px;}.footer-top p {font-size:14px;}.footer-bottom {font-size:12px;}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*,*:before,*:after{transition:none!important;}}

.catalog-banner {position:relative;isolation:isolate;background:var(--cream);padding-block:25px 35px;overflow:hidden;}
.catalog-banner > img {position:absolute;inset:0 0 0 auto;width:60%;height:100%;object-fit:cover;object-position:right center;z-index:-2;}
.catalog-banner:after {content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 24%,#fbf8f4ed 48%,#fbf8f400 90%);z-index:-1;}
.breadcrumbs {display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:30px;}
.breadcrumbs a:hover {text-decoration:underline;}
.catalog-banner h1 {font-size:62px;line-height:1.05;font-weight:500;margin:0 0 15px;max-width:750px;}
.catalog-banner p {font-size:16px;line-height:1.6;max-width:600px;margin:0;}
.occasion-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding-top:26px;}
.occasion-card {min-height:320px;}.occasion-card > div {padding:32px;}.occasion-card h2 {font-size:43px;color:var(--white);margin-bottom:15px;line-height:1.05;}.occasion-card p {font-size:16px;line-height:1.5;margin-bottom:22px;}.occasion-card small {display:block;margin-top:12px;font-size:12px;}.mother-card:after {background:linear-gradient(90deg,#633232c9,transparent 95%);}
.occasion-note {padding-block:15px 35px;}
.catalog-showcase {padding-block:22px 60px;}
.catalog-toolbar {display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px;}.catalog-toolbar .result-count {margin:0;font-size:14px;}.catalog-toolbar .text-link {font-size:14px;}
.catalog-filter-panel {border:1px solid var(--line);border-radius:12px;margin-bottom:24px;background:var(--white);}
.catalog-filter-panel > summary {display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;font-size:14px;list-style:none;}.catalog-filter-panel > summary::-webkit-details-marker {display:none;}.catalog-filter-panel > summary span {font-size:24px;}.catalog-filter-panel[open] > summary span {transform:rotate(45deg);}
.catalog-filter-panel .filters {border:0;border-top:1px solid var(--line);border-radius:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 22px;padding:20px;}.catalog-filter-panel .filter-heading {grid-column:1/-1;}.catalog-filter-panel label,.catalog-filter-panel fieldset {margin:0;}.catalog-filter-panel .button {align-self:end;}
.catalog-showcase .catalog-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.catalog-showcase .product-tile {position:relative;padding:0 0 20px;border:0;background:var(--white);border-radius:14px;overflow:hidden;}
.catalog-showcase .tile-image {border-radius:14px;}.catalog-showcase .tile-image img {aspect-ratio:1/1.02;}.catalog-showcase .tile-arrow,.catalog-showcase .tile-labels {display:none;}
.catalog-showcase .tile-title {display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:17px 70px 0 17px;}.catalog-showcase .tile-title h3 {flex:none;font:400 19px/1.35 var(--sans);letter-spacing:0;}.catalog-showcase .tile-title > span {padding:0;background:transparent;color:var(--coffee);font-size:19px;font-weight:500;}
.catalog-showcase .product-tile > p {font-size:14px;line-height:1.6;margin:12px 17px 0;}.catalog-showcase .quick-add {right:17px;bottom:auto;top:calc(100% - 112px);}.quick-add button {width:44px;height:44px;}
@media(max-width:767px){
 .catalog-banner {padding-block:18px 26px;}.catalog-banner > img {width:75%;opacity:.8;}.catalog-banner:after {background:linear-gradient(90deg,var(--paper) 6%,#fbf8f4e6 40%,#fbf8f444 100%);}.breadcrumbs {font-size:11px;gap:9px;margin-bottom:25px;}.catalog-banner h1 {font-size:43px;line-height:1.1;margin-bottom:14px;}.catalog-banner p {font-size:14px;line-height:1.6;max-width:310px;}
 .occasion-grid {grid-template-columns:minmax(0,1fr);gap:16px;padding-top:20px;}.occasion-card {min-height:260px;}.occasion-card > div {padding:27px;}.occasion-card h2 {font-size:38px;}.occasion-card p {font-size:14px;}.occasion-note {padding-bottom:30px;}
 .catalog-toolbar {gap:12px;}.catalog-toolbar .result-count,.catalog-toolbar .text-link {font-size:12px;}.catalog-filter-panel .filters {grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:16px;}.catalog-filter-panel label {font-size:13px;}.catalog-filter-panel .filters select {font-size:14px;}.catalog-filter-panel .filters .button {grid-column:1/-1;}
 .catalog-showcase .catalog-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.catalog-showcase .product-tile {padding-bottom:16px;border-radius:11px;}.catalog-showcase .tile-image {border-radius:11px;}.catalog-showcase .tag {font-size:10px;top:8px;left:8px;padding:4px 7px;}.catalog-showcase .tile-title {margin:11px 11px 0;gap:12px;}.catalog-showcase .tile-title h3 {font-size:14px;line-height:1.4;min-height:40px;}.catalog-showcase .tile-title > span {font-size:16px;padding-block:8px;}.catalog-showcase .product-tile > p {font-size:12px;line-height:1.5;margin:12px 11px 0;}.catalog-showcase .quick-add {right:9px;top:auto;bottom:82px;}.catalog-showcase .quick-add button {width:38px;height:38px;padding:9px;}.catalog-showcase .quick-add:before {content:'';position:absolute;inset:-3px;}
}

/* Keep price and the real add action in one row, without overlaying descriptions. */
.season-rail .tile-title,.catalog-showcase .tile-title {display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:10px;margin:14px 15px 0;}
.season-rail .tile-title h3,.catalog-showcase .tile-title h3 {grid-column:1/-1;margin:0;min-height:0;}
.season-rail .quick-add,.catalog-showcase .quick-add {position:static;grid-column:2;grid-row:2;margin:0;}
.season-rail .tile-title > span,.catalog-showcase .tile-title > span {grid-column:1;grid-row:2;white-space:normal;overflow-wrap:anywhere;}
@media(max-width:900px){
 .desktop-nav {display:none;}.mobile-menu {display:block;}.mobile-menu > summary {display:grid;place-items:center;width:44px;height:44px;cursor:pointer;list-style:none;border-radius:50%;color:var(--wine);}.mobile-menu > summary::-webkit-details-marker {display:none;}.mobile-menu > summary svg {width:27px;height:27px;}
 .mobile-menu nav {position:absolute;right:20px;top:calc(100% - 3px);width:min(290px,calc(100vw - 40px));padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 25px #2f1b141f;}
 .mobile-menu nav a {display:block;min-height:48px;padding:12px;font-size:16px;border-radius:9px;}
}
@media(max-width:767px){
 .catalog-showcase .tile-title {margin:12px 11px 0;gap:10px 6px;}.catalog-showcase .quick-add button {width:44px;height:44px;}.catalog-showcase .quick-add:before {content:none;}
}

.catalog-showcase .tile-title h3 {min-height:52px;}
.catalog-showcase .tile-description {grid-column:1/-1;grid-row:2;font-size:14px;line-height:1.6;color:var(--muted);margin:0;min-height:66px;}
.catalog-showcase .tile-title > span,.catalog-showcase .quick-add {grid-row:3;}
@media(max-width:767px){.catalog-showcase .tile-title h3{min-height:40px;}.catalog-showcase .tile-description{font-size:12px;line-height:1.5;min-height:54px;}}
.occasion-note {margin-inline:auto;}
/* Four-step gift builder. Native form is usable without JavaScript. */
[hidden] {display:none!important;}
.visually-hidden {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.builder-shell {max-width:1080px;padding-bottom:42px;}
.builder-shell .breadcrumbs {padding-block:24px;font-size:13px;}
.gift-builder {max-width:100%;}
.builder-progress {max-width:800px;margin:10px auto 30px;}
.builder-progress ol {list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:0;}
.builder-progress li {position:relative;text-align:center;}
.builder-progress li:not(:last-child):after {content:'';position:absolute;top:19px;left:60%;width:80%;height:1px;background:var(--line);}
.builder-progress button {position:relative;z-index:1;border:0;background:none;color:var(--muted);font:400 13px/1.4 var(--sans);display:flex;flex-direction:column;align-items:center;gap:10px;min-height:70px;width:100%;padding:0 4px;cursor:pointer;pointer-events:none;}
.is-enhanced .builder-progress button {pointer-events:auto;}
.builder-progress button > span {display:grid;place-items:center;border-radius:50%;width:38px;height:38px;background:var(--paper);border:1px solid var(--line);font-size:16px;}
.builder-progress button[aria-current=step] {color:var(--wine);font-weight:500;}
.builder-progress button[aria-current=step] > span,.builder-progress button.is-complete > span {background:var(--wine);border-color:var(--wine);color:var(--white);}
.builder-progress button:disabled {cursor:default;opacity:.65;}
.builder-demo {font-size:12px;color:var(--muted);margin:0 0 22px;}
.builder-step {padding-bottom:24px;min-width:0;}
.is-enhanced .builder-step {min-height:410px;}
.builder-step-heading {margin-bottom:26px;}
.builder-step-heading h1,.builder-step-heading h2 {font:500 clamp(34px,3.4vw,48px)/1.08 var(--serif);margin:0 0 10px;outline-offset:6px;}
.builder-step-heading p {font-size:15px;margin:0;color:var(--muted);}
.builder-step-heading .eyebrow {font-size:11px;margin-bottom:10px;}
.builder-choices {border:0;padding:0;margin:0;min-width:0;}
.builder-choices legend {font:500 18px/1.4 var(--sans);margin-bottom:16px;}
.builder-photo-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.builder-choice {position:relative;display:block;border:1px solid transparent;border-radius:12px;padding:5px;cursor:pointer;min-width:0;}
.builder-choice:has(input:checked) {border-color:var(--wine);background:#f4e9e4;}
.builder-choice:has(input:focus-visible) {outline:2px solid var(--wine);outline-offset:3px;}
.builder-choice > input {position:absolute;opacity:0;width:1px;height:1px;}
.choice-image,.component-photo {position:relative;display:block;border-radius:9px;overflow:hidden;background:var(--cream);aspect-ratio:1;}
.choice-image img,.component-photo img {display:block;width:100%;height:100%;object-fit:cover;}
.choice-check {position:absolute;right:9px;top:9px;display:none;place-items:center;width:26px;height:26px;background:var(--wine);color:var(--white);border-radius:50%;font-size:16px;}
.builder-choice:has(input:checked) .choice-check {display:grid;}
.choice-text {display:flex;flex-direction:column;gap:6px;padding:12px 7px 8px;font-size:15px;font-weight:400;}
.choice-text strong {font-weight:500;line-height:1.4;}
.choice-text small {font-size:12px;color:var(--muted);}
.builder-photo-empty {min-height:140px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:15px;color:var(--muted);padding:18px;text-align:center;}
.builder-photo-empty > svg {width:48px;height:48px;color:var(--wine);}
.builder-photo-empty small {font-size:12px;}
.builder-component {padding:5px;border:1px solid transparent;border-radius:12px;min-width:0;}
.builder-component.is-selected {border-color:var(--wine);background:#f4e9e4;}
.component-photo {cursor:pointer;}
.component-name {display:block;font:400 15px/1.4 var(--sans);margin:12px 5px 8px;min-height:42px;cursor:pointer;overflow-wrap:anywhere;}
.component-purchase {display:flex;align-items:center;gap:8px;justify-content:space-between;margin:0 5px;flex-wrap:wrap;}
.component-price {font:500 15px/1.4 var(--sans);}
.builder-quantity {display:flex;align-items:center;gap:3px;}
.builder-quantity input {width:52px;min-height:44px;padding:6px;text-align:center;font-size:16px;background:var(--paper);border:1px solid var(--line);border-radius:7px;}
.is-enhanced .builder-quantity input {appearance:textfield;-moz-appearance:textfield;border:0;width:28px;padding:0;background:transparent;}
.builder-quantity input::-webkit-inner-spin-button,.builder-quantity input::-webkit-outer-spin-button {-webkit-appearance:none;margin:0;}
.builder-quantity button {display:grid;place-items:center;border:0;border-radius:50%;width:44px;height:44px;min-height:44px;background:var(--wine);color:var(--white);font:400 24px/1 var(--sans);padding:0;cursor:pointer;}
.builder-quantity button:disabled {background:#dacac2;color:#71605a;cursor:default;}
.component-units {display:block;color:var(--muted);font-size:11px;margin:8px 5px;}
.builder-tabs {display:none;gap:8px;overflow-x:auto;padding:0 0 18px;scrollbar-width:thin;}
.is-enhanced .builder-tabs {display:flex;}
.builder-tabs button {flex-shrink:0;border:1px solid var(--line);border-radius:25px;background:var(--cream);color:var(--coffee);font:400 14px var(--sans);padding:11px 18px;min-height:44px;cursor:pointer;}
.builder-tabs [aria-pressed=true] {background:var(--wine);border-color:var(--wine);color:var(--white);}
.decoration-group {position:relative;margin-bottom:28px;}
.clear-choice {display:none;position:absolute;right:0;top:0;font-size:13px;min-height:32px;padding:0;}
.is-enhanced .clear-choice {display:inline-block;}
.builder-bottom {border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:22px;max-width:100%;margin-top:14px;}
.builder-live > p:first-child {display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;margin:0;font-size:13px;}
.builder-live strong {font-weight:500;}
#builder-error {font-size:13px;min-height:20px;line-height:1.5;color:var(--muted);margin:10px 0 0;}
#builder-error.has-error {color:var(--wine);font-weight:500;}
.builder-total-row {display:flex;align-items:baseline;justify-content:space-between;gap:15px;padding:15px 0 20px;border-top:1px solid #ddcec2;margin-top:15px;font-size:16px;}
.builder-total-row > strong {font-size:24px;white-space:nowrap;}
.builder-buttons {display:flex;gap:12px;}
.builder-buttons .button {flex:1;}
.builder-buttons .button-light {flex:0 1 140px;background:var(--paper);color:var(--wine);border:1px solid var(--line);}
.builder-buttons svg {width:23px;height:23px;}
.builder-reset {display:block;margin:15px auto 0;font-size:14px;min-height:44px;}
.builder-final-layout {display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start;}
.builder-preview img {width:100%;aspect-ratio:1.1;object-fit:cover;border-radius:12px;}
.builder-composition h3 {font:500 18px/1.4 var(--sans);margin:0 0 18px;}
#builder-composition {list-style:none;margin:0;padding:0;}
#builder-composition li {display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:13px 0;font-size:14px;line-height:1.5;}
#builder-composition li strong {font-weight:500;white-space:nowrap;}
.builder-empty {grid-column:1/-1;padding:25px;background:var(--cream);border-radius:12px;font-size:16px;}
@media(min-width:1100px){.filling-grid {grid-template-columns:repeat(4,minmax(0,1fr));}.finishing-grid {grid-template-columns:repeat(4,minmax(0,1fr));}.packaging-grid {grid-template-columns:repeat(3,minmax(0,1fr));max-width:860px;}.gift-builder .builder-bottom {margin-inline:auto;max-width:640px;}}
@media(max-width:767px){.builder-shell {width:calc(100% - 32px);}.builder-shell .breadcrumbs {padding-block:20px;}.builder-progress {margin:0 auto 22px;}.builder-progress button {font-size:11px;gap:9px;padding-inline:0;}.builder-progress button > span {width:32px;height:32px;}.builder-progress li:not(:last-child):after {top:16px;}.builder-demo {font-size:11px;margin-bottom:20px;}.builder-step-heading {margin-bottom:20px;}.builder-step-heading h1,.builder-step-heading h2 {font-size:36px;}.builder-step-heading p {font-size:14px;line-height:1.5;}.builder-photo-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.choice-text {font-size:14px;padding-inline:3px;}.choice-text small {font-size:11px;}.component-name {font-size:14px;min-height:40px;margin:10px 3px 5px;}.component-purchase {margin-inline:3px;gap:5px;}.component-price {font-size:14px;}.component-units {font-size:10px;margin-inline:3px;}.builder-quantity {gap:0;}.is-enhanced .builder-quantity input {width:25px;}.builder-quantity button {width:44px;height:44px;}.builder-bottom {padding:17px 14px;margin-top:10px;}.builder-live > p:first-child {font-size:12px;gap:6px;}.builder-total-row {font-size:14px;}.builder-total-row > strong {font-size:22px;}.builder-buttons .button {padding-inline:15px;font-size:14px;min-height:50px;}.builder-buttons .button-light {flex-basis:90px;}.builder-final-layout {grid-template-columns:1fr;gap:24px;}.builder-preview img {aspect-ratio:1.3;}.builder-composition h3 {font-size:17px;}.clear-choice {font-size:12px;}#builder-composition li {font-size:13px;}.builder-tabs button {font-size:13px;padding:10px 15px;}.is-enhanced .builder-step {min-height:380px;}}
/* Saved gifts use the same anonymous session as the basket. */
.product-tile {position:relative;}
.save-product {position:absolute;right:10px;top:10px;z-index:2;}
.save-product button {display:grid;place-items:center;width:44px;height:44px;padding:9px;background:var(--paper);border:1px solid #fff8;border-radius:50%;color:var(--wine);cursor:pointer;}
.save-product svg {width:24px;height:24px;stroke-width:1.4;}
.saved-nav {display:flex;align-items:center;gap:8px;}
.saved-nav svg {width:25px;height:25px;}
.desktop-nav .saved-nav > span {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.builder-save {margin-top:12px;width:100%;background:var(--paper);border:1px solid var(--line);color:var(--wine);}
.builder-save svg {width:23px;height:23px;}
.builder-save:hover {color:var(--white);}
.saved-list {padding-bottom:50px;}
.saved-card {display:flex;gap:25px;align-items:center;border-bottom:1px solid var(--line);padding:24px 0;}
.saved-card > img {width:160px;height:160px;object-fit:cover;border-radius:12px;}
.saved-card > div {flex:1;min-width:0;}
.saved-card h2 {font-size:32px;line-height:1.1;margin:0 0 12px;}
.saved-card p,.saved-card li {font-size:14px;}
.saved-card ul {padding-left:18px;}
.saved-card > form {display:flex;flex-direction:column;gap:12px;max-width:245px;}
.saved-card .text-link {font-size:13px;min-height:44px;}
@media(max-width:767px){.saved-card {flex-wrap:wrap;gap:18px;}.saved-card > img {width:90px;height:90px;}.saved-card h2 {font-size:28px;}.saved-card > form {max-width:none;width:100%;}.saved-card > form .button {font-size:15px;}}
/* Fieldset legends have their own box; keep skip controls in normal flow. */
.clear-choice {position:static;margin:-5px 0 14px;text-align:left;min-height:44px;}
@media(min-width:1100px){
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) {display:grid;grid-template-columns:minmax(0,2fr) minmax(285px,1fr);column-gap:30px;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) > .builder-progress,.gift-builder.is-enhanced:has(.builder-final:not([hidden])) > .builder-demo,.gift-builder.is-enhanced:has(.builder-final:not([hidden])) > #draft-note {grid-column:1/-1;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) > .builder-progress {width:100%;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) > .builder-final {grid-column:1;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) > .builder-bottom {grid-column:2;align-self:start;width:100%;max-width:none;margin:98px 0 0;padding:20px;}
 .builder-final-layout {gap:22px;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) .builder-buttons {flex-wrap:wrap;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) .builder-buttons .button-light {flex:1 0 100%;order:2;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) .builder-buttons .button {font-size:14px;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) .builder-total-row {display:block;}
 .gift-builder.is-enhanced:has(.builder-final:not([hidden])) .builder-total-row strong {display:block;margin-top:5px;}
}
.builder-preview img {height:auto;}
