:root { --ink:#111; --muted:#777; --line:#dedede; --paper:#f6f4ef; --accent:#e8512d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial,"Apple SD Gothic Neo",sans-serif; padding-bottom:64px; }
button,input,select { font:inherit; }
button,a,select,input { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; opacity:.45; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.skip-link { position:fixed; z-index:100; left:12px; top:8px; padding:10px 14px; color:#fff; background:var(--ink); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.topbar { height:62px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 18px; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); }
.logo { color:var(--ink); text-decoration:none; font-size:22px; font-weight:900; letter-spacing:.18em; }
.icon-button { min-height:44px; display:inline-grid; place-items:center; border:0; background:none; padding:10px 0; font-size:12px; color:var(--ink); text-decoration:none; }
.top-actions { display:flex; justify-content:flex-end; align-items:center; gap:16px; }
.menu-trigger { justify-self:start; letter-spacing:.08em; }
.cart-button span { display:inline-grid; place-items:center; background:var(--ink); color:#fff; border-radius:50%; min-width:18px; height:18px; }
.storefront-main { width:100%; overflow:hidden; }
.hero-stack { display:grid; }
.hero { position:relative; isolation:isolate; min-height:470px; padding:78px 26px 42px; overflow:hidden; background:linear-gradient(145deg,#d7d2c7,#f5f3ee 52%,#c5beb0) center/cover no-repeat; display:flex; flex-direction:column; justify-content:flex-end; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-copy { position:relative; z-index:1; }
.hero.has-media { color:#fff; background-position:center; background-size:cover; background-repeat:no-repeat; }
.hero.has-media .hero-copy { text-shadow:0 1px 18px rgba(0,0,0,.28); }
.hero.has-media .hero-link { color:#fff; }
.hero .eyebrow { font-size:11px; letter-spacing:.23em; }
.hero h1 { font-size:45px; line-height:1.05; margin:12px 0 18px; letter-spacing:-.06em; }
.hero p { max-width:310px; line-height:1.6; }
.hero-link { color:var(--ink); font-weight:700; margin-top:20px; text-underline-offset:6px; }
.filters { padding:18px 18px 16px; }
.chips { display:flex; gap:8px; overflow:auto; padding-bottom:14px; scrollbar-width:none; }
.chip { white-space:nowrap; border:1px solid var(--line); border-radius:20px; background:#fff; padding:9px 15px; }
.chip.active { color:#fff; background:var(--ink); border-color:var(--ink); }
.category-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; }
.category-chips { min-width:0; }
.filter-open-button { min-height:40px; padding:0 14px; border:1px solid var(--ink); background:#fff; font-size:12px; font-weight:800; white-space:nowrap; }
.filter-open-button span { display:inline-grid; min-width:18px; height:18px; margin-left:4px; place-items:center; border-radius:50%; color:#fff; background:var(--ink); font-size:10px; }
.filter-open-button span[hidden] { display:none; }
.search-row { display:grid; grid-template-columns:1fr 116px; gap:8px; }
.search-row input,.search-row select { width:100%; border:1px solid var(--line); background:#fff; padding:12px; }
.attribute-filters { display:flex; gap:8px; overflow:auto; margin-bottom:10px; }
.attribute-filters label { display:flex; align-items:center; gap:6px; white-space:nowrap; font-size:12px; }
.attribute-filters select { border:1px solid var(--line); background:#fff; padding:8px; }
.search-keywords { margin-top:10px; padding-bottom:0; }
.recent-keywords { align-items:center; padding-top:8px; color:var(--muted); font-size:11px; }
.commerce-filters { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:10px; }
.commerce-filters label { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.commerce-filters input { min-width:0; padding:10px; border:1px solid var(--line); }
.commerce-filters .stock-filter { grid-column:1/-1; display:flex; align-items:center; }
.filter-backdrop { position:fixed; z-index:42; inset:0; background:rgba(0,0,0,.5); opacity:0; transition:opacity .22s; }
.filter-backdrop.open { opacity:1; }
.filter-open { overflow:hidden; }
.filter-panel { position:fixed; z-index:43; left:0; right:0; bottom:0; max-height:min(82dvh,760px); display:grid; grid-template-rows:auto minmax(0,1fr) auto; background:#fff; transform:translateY(102%); transition:transform .24s ease; box-shadow:0 -24px 70px rgba(0,0,0,.18); }
.filter-panel.open { transform:translateY(0); }
.filter-panel-header { display:flex; align-items:flex-start; justify-content:space-between; padding:20px 18px 16px; border-bottom:1px solid var(--line); }
.filter-panel-header p { margin:0 0 4px; color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.18em; }
.filter-panel-header h2 { margin:0; font-size:24px; }
.filter-panel-header button { width:42px; height:42px; border:0; background:var(--paper); font-size:26px; }
.filter-panel-body { padding:0 18px; overflow:auto; overscroll-behavior:contain; }
.filter-group { padding:20px 0; border-bottom:1px solid var(--line); }
.filter-group:last-child { border-bottom:0; }
.filter-group h3 { margin:0 0 12px; font-size:13px; }
.filter-group .chips { padding-bottom:0; }
.filter-panel-footer { display:grid; grid-template-columns:1fr 2fr; gap:8px; padding:12px 18px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#fff; }
.filter-panel-footer button { min-height:50px; margin:0; }
.product-section { padding:8px 18px 40px; }
.section-title { display:flex; justify-content:space-between; align-items:baseline; }
.section-title h2 { font-size:18px; letter-spacing:.08em; }
.section-title span { color:var(--muted); font-size:12px; }
.product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 10px; }
.product-card { cursor:pointer; position:relative; }
.product-card-link { color:inherit; text-decoration:none; }
.wish-button { position:absolute; z-index:2; right:8px; top:8px; width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.9); font-size:18px; }
.product-image { aspect-ratio:3/4; display:grid; place-items:center; background:var(--paper); color:#999; font-size:11px; letter-spacing:.08em; overflow:hidden; }
.product-image img { width:100%; height:100%; object-fit:cover; }
.product-card h3 { margin:11px 0 7px; font-size:14px; font-weight:500; line-height:1.35; }
.quick-cart { width:100%; min-height:42px; padding:9px; margin-top:8px; border:1px solid var(--line); background:#fff; font-size:11px; }
.product-card { display:flex; flex-direction:column; min-width:0; }
.product-card-link { flex:1; }
.brand-name,.labels { color:var(--muted); font-size:11px; }
.labels { display:flex; justify-content:space-between; gap:8px; min-height:14px; }
.card-review { margin-left:auto; color:#555; white-space:nowrap; }
.price { font-size:13px; font-weight:700; }
.price del { color:#aaa; font-weight:400; margin-right:5px; }
.load-more { display:block; width:100%; margin-top:32px; padding:14px; border:1px solid var(--ink); background:#fff; }
.collection-sections { padding:0 18px 50px; }
.collection-block { margin-top:42px; }
.collection-head { min-height:210px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end; background:var(--paper) center/cover; }
.collection-head[data-curated-type] { cursor:pointer; }
.collection-head h2 { margin:5px 0; font-size:28px; }
.collection-products { display:grid; grid-auto-flow:column; grid-auto-columns:44%; gap:10px; overflow:auto; padding-top:14px; }
.product-attributes div { display:flex; gap:12px; font-size:13px; }
.product-attributes dt { min-width:70px; color:var(--muted); }
.product-attributes dd { margin:0; }
.product-description { margin:20px 0; color:#444; line-height:1.7; white-space:pre-line; }
.variant-select,.primary-button { width:100%; padding:15px; margin-top:14px; }
.variant-select { background:#fff; border:1px solid var(--line); }
.primary-button { color:#fff; background:var(--ink); border:0; font-weight:700; }
.quantity { display:flex; align-items:center; gap:8px; }
.quantity button { width:30px; height:30px; background:#fff; border:1px solid var(--line); }
.auth-tabs { display:flex; gap:18px; margin:34px 0 24px; border-bottom:1px solid var(--line); }
.auth-tabs button { padding:12px 0; border:0; background:none; color:var(--muted); }
.auth-tabs button.active { color:var(--ink); border-bottom:2px solid var(--ink); }
.auth-form { display:grid; gap:10px; }
.auth-form input { width:100%; padding:14px 12px; border:1px solid var(--line); }
.auth-form input[readonly] { color:var(--ink); background:var(--paper); }
.phone-verification-row,.email-verification-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.phone-verification-row .secondary-button,.email-verification-row .secondary-button { width:auto; min-width:128px; margin:0; padding:0 12px; }
.email-verification-row[hidden] { display:none; }
.verification-status { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.checkout-form { display:grid; gap:10px; margin-top:34px; }
.checkout-form input { width:100%; padding:14px 12px; border:1px solid var(--line); }
.checkout-total { display:flex; justify-content:space-between; padding:18px 0; border-top:2px solid var(--ink); margin-top:18px; font-weight:700; }
.payment-grid { display:grid; grid-template-columns:1fr; gap:8px; }
.payment-option { position:relative; }
.payment-option input { position:absolute; opacity:0; pointer-events:none; }
.payment-option-body { min-height:72px; display:flex; align-items:center; gap:18px; border:1px solid var(--line); padding:10px 16px; background:#fff; cursor:pointer; transition:border-color .15s ease,background-color .15s ease; }
.payment-option-logo { width:108px; height:40px; object-fit:contain; flex:0 0 108px; }
.payment-option-copy { display:block; text-align:left; }
.payment-option-copy strong { font-size:14px; }
.payment-option-copy small { display:none; }
.payment-option input:checked + .payment-option-body { border:2px solid var(--ink); background:var(--paper); padding:9px 15px; }
.payment-option input:focus-visible + .payment-option-body { outline:2px solid var(--ink); outline-offset:2px; }
.benefit-fields { display:grid; gap:10px; padding:16px; background:var(--paper); }
.benefit-fields label { display:grid; gap:6px; }
.benefit-fields select,.benefit-fields input { width:100%; padding:12px; border:1px solid var(--line); background:#fff; }
.checkbox-row { display:flex; align-items:center; gap:8px; font-size:13px; }
.checkbox-row input { width:auto; }
.mypage-section { margin-top:28px; }
.mypage-section h3 { font-size:13px; letter-spacing:.08em; border-bottom:1px solid var(--line); padding-bottom:10px; }
.mini-list { display:grid; gap:10px; }
.mini-item { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid var(--line); font-size:13px; }
.text-button { border:0; background:none; padding:0; text-decoration:underline; text-underline-offset:4px; }
.status-badge { display:inline-block; padding:6px 9px; background:var(--paper); font-size:11px; }
.order-items { margin:22px 0; }
.shipment-box { margin:18px 0; padding:14px; background:var(--paper); font-size:13px; }
.order-item { padding:14px 0; border-bottom:1px solid var(--line); }
.inquiry-form { display:grid; gap:9px; margin-top:14px; }
.address-editor { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; padding:12px 0; border-bottom:1px solid var(--line); }
.address-editor input { min-width:0; padding:9px; border:1px solid var(--line); }
.address-section-head,.checkout-section-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.address-section-head h2,.checkout-section-head h2 { margin:0; }
.address-add-button { padding:9px 13px; color:#fff; background:var(--ink); border:1px solid var(--ink); font-size:12px; font-weight:700; }
.address-dialog { width:min(620px,calc(100% - 28px)); max-height:calc(100dvh - 28px); padding:0; border:0; background:transparent; overflow:visible; }
.address-dialog::backdrop { background:rgba(0,0,0,.55); backdrop-filter:blur(2px); }
.address-dialog-panel { max-height:calc(100dvh - 28px); padding:24px; background:#fff; overflow:auto; box-shadow:0 24px 80px rgba(0,0,0,.24); }
.address-dialog-panel > header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.address-dialog-panel h3 { margin:6px 0 0; font-size:24px; }
.address-dialog-close { width:40px; height:40px; padding:0; border:0; background:var(--paper); font-size:25px; line-height:1; }
.address-modal-form { padding:22px 0 0; border:0; }
.address-modal-form .primary-button { grid-column:1/-1; }
.postcode-fields { display:grid; grid-column:1/-1; gap:8px; }
.postcode-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.postcode-search-button { min-width:104px; padding:0 16px; color:#fff; background:var(--ink); border:1px solid var(--ink); font-weight:700; cursor:pointer; }
.postcode-fields input[readonly] { color:var(--ink); background:#f7f7f4; cursor:default; }
.postcode-help { color:#666; font-size:11px; line-height:1.45; }
.inquiry-form input,.inquiry-form textarea,.inquiry-form select { width:100%; padding:12px; border:1px solid var(--line); }
.review-card { padding:13px 0; border-top:1px solid var(--line); }
.inquiry-answer { margin-top:8px; padding:10px; background:var(--paper); }
.bottom-nav { position:fixed; z-index:18; bottom:0; left:0; right:0; height:calc(58px + env(safe-area-inset-bottom)); padding-bottom:env(safe-area-inset-bottom); display:flex; justify-content:space-around; align-items:center; background:#fff; border-top:1px solid var(--line); }
.bottom-nav a,.bottom-nav button { min-width:52px; min-height:44px; display:grid; place-items:center; color:var(--ink); background:none; border:0; text-decoration:none; font-size:10px; font-weight:700; }
.bottom-nav [aria-current="page"] { text-decoration:underline; text-underline-offset:5px; }
.toast { position:fixed; left:50%; bottom:76px; transform:translate(-50%,20px); background:var(--ink); color:#fff; padding:11px 18px; opacity:0; pointer-events:none; transition:.2s; z-index:30; white-space:nowrap; }
.toast.show { opacity:1; transform:translate(-50%,0); }

.sidebar-backdrop { position:fixed; inset:0; z-index:40; background:rgba(0,0,0,.48); opacity:0; transition:opacity .22s; }
.sidebar-backdrop.open { opacity:1; }
.site-sidebar { position:fixed; z-index:41; inset:0 auto 0 0; width:min(88vw,420px); padding:0 24px 34px; background:#fff; overflow:auto; transform:translateX(-102%); transition:transform .24s ease; }
.site-sidebar.open { transform:translateX(0); }
.sidebar-open { overflow:hidden; }
.sidebar-head { height:72px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--ink); letter-spacing:.16em; }
.sidebar-close { border:0; background:none; font-size:30px; }
.sidebar-member { display:flex; gap:18px; padding:20px 0; border-bottom:1px solid var(--line); }
.sidebar-member a,.sidebar-secondary a,.sidebar-categories a { color:var(--ink); text-decoration:none; }
.sidebar-member a { font-size:12px; }
.sidebar-categories { padding:16px 0; }
.sidebar-categories > a,.sidebar-categories summary { display:block; padding:12px 0; font-size:18px; font-weight:800; letter-spacing:.04em; cursor:pointer; list-style:none; }
.sidebar-categories summary::-webkit-details-marker { display:none; }
.sidebar-categories summary::after { content:'＋'; float:right; font-weight:400; }
.sidebar-categories details[open] summary::after { content:'－'; }
.sidebar-categories details div { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding:4px 0 14px; }
.sidebar-categories details div a { padding:8px 0; color:#555; font-size:13px; }
.sidebar-secondary { display:grid; gap:0; padding:12px 0; border-top:1px solid var(--ink); }
.sidebar-secondary a { padding:11px 0; font-size:13px; }
.sidebar-foot { margin-top:28px; padding-top:20px; color:#555; font-size:11px; letter-spacing:.13em; line-height:1.8; }

.product-page { padding-bottom:142px; }
.product-page-main { max-width:1440px; margin:auto; }
.detail-loading,.detail-error { min-height:65vh; display:grid; place-content:center; padding:30px; text-align:center; }
.seo-product-intro { justify-items:center; gap:8px; }
.seo-product-intro h1 { margin:4px 0; font-size:clamp(28px,6vw,46px); }
.seo-product-intro > p:not(.brand-name) { max-width:620px; color:var(--muted); line-height:1.6; }
.seo-product-intro > strong { font-size:20px; }
.seo-product-intro > small { margin-top:14px; color:var(--muted); }
.pdp-breadcrumb { display:flex; gap:8px; padding:18px; color:#888; font-size:10px; }
.pdp-breadcrumb a { color:inherit; text-decoration:none; }
.pdp-layout { display:grid; }
.pdp-gallery { display:flex; overflow:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
.pdp-gallery::-webkit-scrollbar { display:none; }
.pdp-image { flex:0 0 88%; aspect-ratio:3/4; margin:0; background:var(--paper); scroll-snap-align:start; }
.pdp-image img { width:100%; height:100%; object-fit:cover; }
.pdp-image.placeholder { display:grid; place-items:center; color:#aaa; letter-spacing:.2em; }
.pdp-purchase { padding:28px 18px 36px; }
.pdp-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.pdp-title-row h1 { margin:6px 0 12px; font-size:27px; line-height:1.25; letter-spacing:-.04em; }
.pdp-wish { border:0; background:none; font-size:28px; }
.pdp-summary { color:#666; line-height:1.65; }
.pdp-price { display:flex; align-items:center; gap:10px; margin:24px 0; }
.pdp-price del { color:#aaa; }
.pdp-price strong { font-size:20px; }
.pdp-sold-out { padding:12px 14px; color:#6f2720; background:#f6e9e6; font-size:12px; font-weight:700; letter-spacing:.03em; }
.pdp-delivery { display:grid; grid-template-columns:70px 1fr; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-size:13px; }
.pdp-delivery p { margin:0; line-height:1.6; }
.pdp-delivery small { color:#888; }
.pdp-option-label { display:block; margin-top:22px; font-size:12px; font-weight:700; }
.pdp-quantity { display:flex; justify-content:space-between; align-items:center; margin-top:12px; font-size:12px; }
.pdp-quantity input { width:82px; padding:10px; border:1px solid var(--line); }
.pdp-actions { display:grid; grid-template-columns:1fr 1.5fr; gap:8px; }
.pdp-actions button:disabled,.mobile-buy-bar button:disabled { color:#777; background:#e9e9e7; border:1px solid #d4d4d1; opacity:1; }
.secondary-button { width:100%; padding:15px; margin-top:14px; color:var(--ink); background:#fff; border:1px solid var(--ink); font-weight:700; }
.account-withdrawal { margin-top:64px; padding-top:20px; border-top:1px solid var(--line); text-align:right; }
.withdraw-button { padding:4px 0; color:#8b867e; background:transparent; border:0; font-size:11px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.withdraw-button:hover,.withdraw-button:focus-visible { color:#8d2f2f; }
.pdp-information { padding:0 18px 80px; }
.pdp-section { padding:44px 0; border-top:1px solid var(--line); }
.pdp-section h2 { margin:7px 0 24px; font-size:21px; }
.product-description { overflow:hidden; line-height:1.7; }
.product-description img { display:block; width:auto; max-width:100%; height:auto; margin:0 auto; }
.product-description figure { max-width:100%; margin:0; }
.product-description table { display:block; max-width:100%; overflow:auto; border-collapse:collapse; }
.product-description td,.product-description th { padding:8px; border:1px solid var(--line); }
.product-description a { color:inherit; text-underline-offset:3px; }
.pdp-review-head { display:flex; justify-content:space-between; align-items:baseline; }
.pdp-review-head h2 { margin-bottom:0; }
.pdp-review { padding:20px 0; }
.review-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-card-head > strong { color:#e3a008; letter-spacing:.06em; }
.review-card-head > span { padding:5px 8px; color:#315e42; background:#e8f3ec; font-size:10px; font-weight:800; }
.review-empty { padding:24px; color:var(--muted); background:var(--paper); text-align:center; }
.review-empty strong { color:var(--ink); }
.review-empty p { margin-bottom:0; font-size:12px; }
.mobile-buy-bar { position:fixed; z-index:19; left:0; right:0; bottom:calc(58px + env(safe-area-inset-bottom)); display:grid; grid-template-columns:1fr 2fr; gap:8px; padding:8px 12px; background:#fff; border-top:1px solid var(--line); }
.mobile-buy-bar button { margin:0; }

.content-page { min-height:100vh; }
.page-main { width:min(1180px,100%); min-height:calc(100vh - 62px); margin:auto; padding:0 18px 100px; }
.page-breadcrumb { display:flex; gap:8px; padding:22px 0; color:var(--muted); font-size:11px; }
.page-breadcrumb a { color:inherit; text-decoration:none; }
.page-heading { padding:28px 0 38px; border-bottom:1px solid var(--ink); }
.page-heading h1 { margin:7px 0 0; font-size:clamp(34px,7vw,64px); letter-spacing:-.055em; }
.page-loading { padding:70px 0; color:var(--muted); text-align:center; }
.page-empty { min-height:360px; display:grid; place-content:center; justify-items:center; text-align:center; }
.page-empty h2 { margin-bottom:4px; }
.page-empty p { color:var(--muted); }
.primary-link { display:block; padding:16px 20px; margin-top:20px; color:#fff; background:var(--ink); text-align:center; text-decoration:none; font-weight:700; }
.continue-link { display:block; margin-top:15px; color:var(--ink); text-align:center; text-underline-offset:5px; }
.cart-page-layout,.checkout-page-layout { display:grid; gap:42px; padding-top:34px; }
.cart-page-item { display:flex; justify-content:space-between; gap:24px; padding:22px 0; border-bottom:1px solid var(--line); }
.cart-tools { display:flex; flex-wrap:wrap; gap:16px; padding:14px 0; border-bottom:1px solid var(--ink); font-size:12px; }
.cart-select { align-self:flex-start; padding-top:5px; }
.cart-item-info { flex:1; }
.cart-option-select { display:block; width:min(100%,320px); padding:9px; margin:8px 0; border:1px solid var(--line); background:#fff; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.cart-page-item h2 { margin:5px 0; font-size:18px; }
.cart-page-item .text-button { display:block; margin-top:18px; color:var(--muted); }
.order-summary { height:max-content; padding:24px; background:var(--paper); }
.order-summary h2 { margin:0 0 24px; font-size:15px; letter-spacing:.08em; }
.order-summary dl { margin:0; }
.order-summary dl div,.summary-item,.summary-total { display:flex; justify-content:space-between; gap:20px; padding:10px 0; }
.order-summary dd { margin:0; }
.summary-total { margin-top:12px; padding-top:18px !important; border-top:1px solid var(--ink); font-weight:700; }
.account-guest-layout { display:grid; gap:48px; max-width:920px; margin:auto; padding-top:40px; }
.account-form-wrap { max-width:520px; margin:auto; padding-top:24px; }
.guest-order-box { padding:28px; background:var(--paper); }
.guest-order-box h2 { margin-top:0; }
.account-dashboard { display:grid; gap:44px; padding-top:34px; }
.member-overview { height:max-content; padding:28px; background:var(--paper); }
.member-overview h2 { font-size:28px; }
.member-overview dl div { display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid #ddd8cc; }
.member-overview dd { margin:0; font-weight:700; }
.account-sections .mypage-section { margin:0; padding:26px 0; }
.account-sections .mypage-section:first-child { padding-top:0; }
.review-section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:14px; border-bottom:2px solid var(--ink); }
.review-section-head h2 { margin:0 0 6px; }
.review-section-head p { margin:0; color:var(--muted); font-size:12px; }
.review-section-head > span { padding:6px 9px; background:var(--paper); font-size:11px; white-space:nowrap; }
.review-write-list { display:grid; gap:14px; padding-top:14px; }
.review-write-card { padding:18px; border:1px solid var(--line); }
.review-write-card > header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.review-write-card h3 { margin:4px 0; font-size:16px; }
.review-write-card header p { margin:3px 0; color:var(--muted); font-size:11px; }
.review-write-card header a { color:inherit; font-size:11px; text-underline-offset:4px; white-space:nowrap; }
.review-write-form { display:grid; gap:9px; padding-top:14px; }
.review-write-form fieldset { margin:0; padding:0; border:0; }
.review-write-form legend { margin-bottom:7px; color:var(--muted); font-size:11px; }
.review-rating-input { display:flex; flex-direction:row-reverse; justify-content:flex-end; width:max-content; }
.review-rating-input label { cursor:pointer; }
.review-rating-input input { position:absolute; width:1px; height:1px; opacity:0; }
.review-rating-input span { display:block; padding:2px; color:#ccc; font-size:27px; }
.review-rating-input label:hover span,.review-rating-input label:hover ~ label span,.review-rating-input label:has(input:checked) span,.review-rating-input label:has(input:checked) ~ label span { color:#e3a008; }
.review-rating-input input:focus-visible + span { outline:2px solid var(--accent); outline-offset:2px; }
.review-one-line-field { display:grid; gap:7px; color:var(--muted); font-size:11px; }
.review-one-line-field input { width:100%; padding:12px; color:var(--ink); border:1px solid var(--line); font:inherit; }
.review-write-form .primary-button { justify-self:end; width:min(100%,220px); }
.mini-item { color:inherit; text-decoration:none; }
.support-layout { display:grid; gap:40px; padding-top:34px; }
.support-nav { display:flex; flex-wrap:wrap; gap:8px; align-content:start; }
.support-nav a { padding:10px 14px; color:var(--ink); border:1px solid var(--line); text-decoration:none; }
.support-section { padding:0 0 48px; scroll-margin-top:80px; }
.support-section h2 { padding-bottom:14px; border-bottom:2px solid var(--ink); }
.support-section details { border-bottom:1px solid var(--line); }
.support-section summary { padding:18px 4px; cursor:pointer; font-weight:600; }
.support-section details p { padding:0 4px 18px; color:#555; line-height:1.7; }
.page-checkout-form { margin:0; }
.page-checkout-form section { display:grid; gap:10px; padding-bottom:34px; }
.page-checkout-form section h2 { margin:0 0 8px; font-size:18px; }
.page-checkout-form .checkout-section-head h2 { margin:0; }
.same-recipient-row { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:700; white-space:nowrap; }
.same-recipient-row input { width:auto; margin:0; }
.page-checkout-form input.copied-from-buyer { background:#f7f7f4; }
.saved-address-book { min-width:0; margin:4px 0 10px; padding:0; border:0; }
.saved-address-book legend { margin-bottom:9px; font-size:12px; font-weight:700; }
.saved-address-grid { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(250px,84%); gap:8px; overflow:auto; padding-bottom:6px; scroll-snap-type:x proximity; }
.saved-address-card { position:relative; display:block; scroll-snap-align:start; cursor:pointer; }
.saved-address-card > input { position:absolute; opacity:0; pointer-events:none; }
.saved-address-card > span { display:grid; gap:5px; min-height:118px; padding:14px; border:1px solid var(--line); background:#fff; }
.saved-address-card > input:checked + span { border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.saved-address-card strong { display:flex; align-items:center; gap:7px; }
.saved-address-card em { padding:3px 6px; color:#fff; background:var(--ink); font-size:9px; font-style:normal; }
.saved-address-card small { color:var(--muted); }
.saved-address-card span span { font-size:12px; line-height:1.5; }
.saved-address-empty { display:grid; gap:4px; margin:4px 0 10px; padding:14px; background:var(--paper); font-size:12px; }
.saved-address-empty span { color:var(--muted); }
.order-detail-page { max-width:800px; margin:auto; padding-top:38px; }
.order-detail-page > header { padding-bottom:28px; border-bottom:2px solid var(--ink); }
.order-detail-page .order-item { display:flex; justify-content:space-between; gap:20px; }
.claim-history { margin-top:48px; padding-top:24px; border-top:1px solid var(--line); }
.editorial-page { max-width:920px; margin:auto; padding-top:34px; }
.policy-page { max-width:920px; margin:auto; padding:34px 0; }
.policy-page > header { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; padding-bottom:18px; color:var(--muted); border-bottom:1px solid var(--line); font-size:12px; }
.policy-page > header p { margin:0; }
.policy-content { padding:32px 0; color:#333; font-size:14px; line-height:1.9; white-space:pre-wrap; overflow-wrap:anywhere; }
.editorial-summary { margin:10px 0 30px; font-size:20px; line-height:1.6; }
.editorial-hero,.editorial-page figure img { width:100%; display:block; }
.editorial-page figure { margin:22px 0; }
.editorial-page figcaption { padding:8px 0; color:var(--muted); font-size:12px; }
.related-products { display:grid; grid-auto-flow:column; grid-auto-columns:42%; gap:12px; overflow:auto; }
.related-products a { display:grid; gap:7px; color:inherit; text-decoration:none; font-size:12px; }
.related-products span { color:var(--muted); }
.related-products a { scroll-snap-align:start; }
.related-products { scroll-snap-type:x proximity; padding-bottom:8px; }
.site-footer { display:grid; gap:24px; padding:42px 18px 96px; color:#eee; background:#171717; }
.site-footer strong { font-size:22px; letter-spacing:.18em; }
.site-footer p,.site-footer small { color:#aaa; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:10px 22px; }
.site-footer a { color:#fff; text-decoration:none; font-size:13px; }
.footer-company-info { display:grid; gap:5px; color:#aaa; font-size:12px; font-style:normal; line-height:1.65; }
.footer-company-info p { display:flex; flex-wrap:wrap; gap:2px 16px; margin:0; }
#wishlist,#recent,#addresses { scroll-margin-top:78px; }

@media (max-width:420px) {
  .topbar { grid-template-columns:minmax(48px,1fr) auto minmax(82px,1fr); padding-inline:12px; }
  .logo { font-size:18px; letter-spacing:.13em; }
  .top-actions { gap:10px; }
  .hero h1 { font-size:clamp(36px,12vw,45px); }
  .search-row { grid-template-columns:minmax(0,1fr) 104px; }
  .page-heading { padding:18px 0 26px; }
  .page-heading h1 { font-size:34px; }
  .cart-page-item { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px 12px; }
  .cart-page-item .quantity { grid-column:2; justify-content:flex-start; }
  .address-editor { grid-template-columns:1fr; }
  .checkout-section-head { align-items:flex-start; flex-direction:column; gap:8px; }
  .address-dialog-panel { padding:20px 16px; }
  .product-page { padding-bottom:142px; }
}
@media (min-width:800px) { .storefront-main { max-width:1440px; margin:auto; } .hero { min-height:560px; } .product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:38px 16px; } .collection-products { grid-auto-flow:initial; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; } .bottom-nav { display:none; } body { padding-bottom:0; } }
@media (min-width:800px) {
  .filters { display:grid; grid-template-columns:1fr; gap:12px; padding:32px; }
  .category-toolbar { grid-row:1; }
  .filter-open-button { display:none; }
  .search-row { grid-row:2; }
  .filter-backdrop,.filter-panel-header,.filter-panel-footer { display:none !important; }
  .filter-panel { position:static; z-index:auto; max-height:none; display:grid; grid-template-rows:auto; transform:none; box-shadow:none; }
  .filter-panel-body { display:grid; grid-template-columns:minmax(360px,1fr) minmax(360px,.8fr); gap:10px 28px; padding:0; overflow:visible; }
  .filter-group { padding:12px 0; border:0; }
  .filter-group h3 { font-size:11px; letter-spacing:.06em; }
  .filter-group:nth-child(1) { grid-column:1; grid-row:1; }
  .filter-group:nth-child(2) { grid-column:1; grid-row:2; }
  .filter-group:nth-child(3) { grid-column:2; grid-row:1 / span 2; }
  .filter-group:nth-child(4) { grid-column:1 / -1; grid-row:3; display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .filter-group:nth-child(4) h3 { grid-column:1/-1; margin-bottom:0; }
  .commerce-filters { padding:0; }
  .cart-page-layout,.checkout-page-layout { grid-template-columns:minmax(0,1fr) 340px; align-items:start; }
  .order-summary { position:sticky; top:92px; }
  .account-guest-layout { grid-template-columns:1fr 1fr; }
  .account-dashboard { grid-template-columns:280px minmax(0,1fr); }
  .member-overview { position:sticky; top:92px; }
  .support-layout { grid-template-columns:220px minmax(0,1fr); }
  .support-nav { position:sticky; top:92px; display:grid; }
  .site-footer { grid-template-columns:1fr auto; padding:56px 32px; }
  .footer-company-info { grid-column:1/-1; }
  .site-footer small { grid-column:1/-1; }
}
@media (min-width:900px) {
  .product-page-main { max-width:1440px; }
  .pdp-breadcrumb { padding:24px 34px; }
  .pdp-layout { grid-template-columns:minmax(0,1.55fr) minmax(380px,.75fr); gap:48px; padding:0 34px; align-items:start; }
  .pdp-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:visible; }
  .pdp-image { aspect-ratio:3/4; }
  .pdp-image.primary { grid-column:1 / -1; aspect-ratio:4/5; }
  .pdp-purchase { position:sticky; top:86px; padding:24px 0 60px; }
  .pdp-information { max-width:900px; padding:50px 34px 120px; }
  .mobile-buy-bar { display:none; }
  .product-page { padding-bottom:0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; }
}
