.shop-page {
  --espresso: #21130f;
  --brown: #4a281d;
  --gold: #c7964a;
  --cream: #f7f0e4;
  --paper: #fffdf8;
  --ink: #261b17;
  --checkout-section-gap: 28px;
  --checkout-field-gap: 18px;
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: "Inter", Arial, sans-serif;
  line-height: 1.55;
}
.shop-page .account-shell{padding-block:56px 80px;max-width:760px}.shop-page .shop-form{display:grid;gap:18px;margin-top:28px;padding:clamp(22px,4vw,36px);background:#fff;border:1px solid #ded6c9;border-radius:12px}.shop-page .shop-field label{display:block;margin-bottom:7px;font-weight:700}.shop-page .shop-field input,.shop-page .shop-field select{width:100%;min-height:48px;padding:10px 12px;border:1px solid #bcb1a3;border-radius:7px;font:inherit}.shop-page .shop-error{color:#922f28;font-weight:650}.shop-page .shop-success{padding:14px 16px;color:#28633d;background:#edf7ef;border:1px solid #bddcc5;border-radius:8px}.shop-page .shop-logout{display:inline}.shop-page .shop-logout button{border:0;padding:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}.shop-page .account-data{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;padding:24px;background:#fff;border-radius:10px}.shop-page .account-data dt{font-weight:700}.shop-page .account-data dd{margin:0}
.shop-page .shop-login-help{margin-top:24px;padding:20px 22px;background:#fffaf0;border-left:4px solid var(--gold);border-radius:8px}.shop-page .shop-login-help p{margin:8px 0 0}.shop-page .shop-welcome[hidden]{display:none}.shop-page.shop-welcome-open{overflow:hidden}.shop-page .shop-welcome{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(35,22,14,.72)}.shop-page .shop-welcome__panel{position:relative;width:min(100%,560px);max-height:calc(100vh - 40px);overflow:auto;padding:clamp(28px,5vw,44px);background:var(--cream);border:1px solid rgba(200,145,58,.6);border-radius:14px;box-shadow:0 24px 70px rgba(20,12,8,.32);text-align:center}.shop-page .shop-welcome__panel h2{margin:0 28px 18px;font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.65rem,4vw,2.25rem);line-height:1.15;color:var(--espresso)}.shop-page .shop-welcome__panel p{margin:0 0 14px;line-height:1.65}.shop-page .shop-welcome__panel .catalog-button{margin-top:12px}.shop-page .shop-welcome__close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:42px;height:42px;border:0;border-radius:50%;background:transparent;color:var(--espresso);font:inherit;font-size:1.65rem;line-height:1;cursor:pointer}.shop-page .shop-welcome__close:hover{background:rgba(200,145,58,.14)}.shop-page .shop-welcome__close:focus-visible,.shop-page .shop-welcome__panel .catalog-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.shop-page .account-manage{max-width:900px}.shop-page .account-back-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;margin-bottom:12px;color:var(--brown);font-weight:700;text-decoration:underline;text-underline-offset:4px}.shop-page .account-back-link:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.shop-page .account-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0}.shop-page .account-dashboard>a,.shop-page .account-address{border:1px solid #ded6c9;border-radius:10px;padding:20px;background:#fff}.shop-page .account-dashboard>a{display:grid;gap:5px;text-decoration:none}.shop-page .account-dashboard>a strong{color:var(--brown);font:700 1.2rem/1.2 "Playfair Display",Georgia,serif}.shop-page .account-dashboard>a span{color:#665851}.shop-page .account-nav{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:30px;border-top:1px solid #d8ccbf;padding-top:20px}.shop-page .account-nav a{font-weight:700}.shop-page .account-readonly{border-radius:8px;padding:16px;background:#f4eee5}.shop-page .account-readonly p{margin:0 0 10px}.shop-page .account-readonly p:last-child{margin-bottom:0}.shop-page .account-addresses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.shop-page .account-address h2{font-size:1.35rem}.shop-page .account-badge{display:inline-block;border-radius:999px;padding:4px 8px;background:#e0eddf;color:#1f5827;font:700 .7rem/1 Inter,sans-serif;vertical-align:middle}.shop-page .account-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.shop-page .account-inline{display:inline}.shop-page .account-inline button{border:0;padding:0;background:transparent;color:var(--brown);font:700 .88rem/1.4 Inter,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.shop-page .account-check{display:flex;gap:12px;align-items:flex-start}.shop-page .account-check input{margin-top:5px}
.shop-page *, .shop-page *::before, .shop-page *::after { box-sizing: border-box; }
.shop-page a { color: inherit; }
.shop-page img { display: block; max-width: 100%; }
.shop-page .catalog-shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.shop-page .skip-link { position: fixed; top: 8px; left: 8px; z-index: 99; padding: 10px 14px; background: #fff; transform: translateY(-150%); }
.shop-page .skip-link:focus { transform: none; }
.shop-page .shop-header { background: var(--espresso); border-bottom: 1px solid rgba(255,255,255,.12); }
.shop-page .shop-header-inner { min-height: 116px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 7px; }
.shop-page .shop-brand { display: flex; align-items: center; gap: 18px; color: #fff; text-decoration: none; }
.shop-page .shop-brand img { width: 102px; height: 102px; object-fit: contain; }
.shop-page .shop-brand span { padding-left: 18px; border-left: 1px solid rgba(255,255,255,.35); font: 600 1rem/1 "Inter", sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.shop-page .shop-site-link { color: #fff; font-weight: 600; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.shop-page .shop-header-actions { display: flex; align-items: center; gap: 26px; color: #fff; font-weight: 600; }
.shop-page .shop-header-actions a { text-underline-offset: 5px; }
.shop-page .shop-header-content { display: grid; min-width: 0; justify-items: end; gap: 10px; }
.shop-page .shop-customer-greeting { display: flex; max-width: 100%; align-items: baseline; justify-content: flex-end; gap: 9px 16px; color: #fff; text-align: right; }
.shop-page .shop-customer-greeting strong { min-width: 0; overflow-wrap: anywhere; font-family: "Playfair Display", Georgia, serif; font-size: 1.12rem; }
.shop-page .shop-customer-greeting span { color: #e2bb78; font-size: .82rem; font-weight: 600; }
.shop-page .catalog-hero { padding: 60px 0; color: #fff; background: radial-gradient(circle at 80% 10%, rgba(199,150,74,.19), transparent 36%), var(--espresso); }
.shop-page .eyebrow { margin: 0 0 10px; color: var(--gold); font-size: .78rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.shop-page h1, .shop-page h2, .shop-page h3 { margin-top: 0; font-family: "Playfair Display", Georgia, serif; line-height: 1.12; }
.shop-page h1 { margin-bottom: 20px; font-size: clamp(2.8rem, 6vw, 5.4rem); }
.shop-page .catalog-hero h1 { margin-bottom: 14px; font-size: clamp(2.8rem, 5vw, 4.5rem); }
.shop-page .catalog-maintenance-heading-break, .shop-page .catalog-maintenance-heading-hyphen { display: none; }
.shop-page .catalog-intro { max-width: 660px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.6; }
.shop-page .catalog-main { padding-block: 40px 96px; }
.shop-page .catalog-login-invitation { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: start; gap: 18px; margin-bottom: 32px; border: 1px solid #ddcdb7; border-radius: 12px; padding: 22px 24px; background: #fbf4e8; }
.shop-page .catalog-login-icon { margin-top: 2px; color: var(--gold); fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.shop-page .catalog-login-copy { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; }
.shop-page .catalog-login-message { min-width: 0; }
.shop-page .catalog-login-eyebrow { margin: 0 0 4px; color: #8a632d; font-size: .7rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.shop-page .catalog-login-invitation h2 { margin-bottom: 5px; font-size: clamp(1.45rem, 2.5vw, 1.9rem); }
.shop-page .catalog-login-invitation .catalog-login-message>p:not(.catalog-login-eyebrow) { margin: 0; color: #665851; }
.shop-page .catalog-login-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.shop-page .catalog-login-actions .catalog-button { min-height: 44px; margin: 0; white-space: nowrap; }
.shop-page .repeat-order-card,.shop-page .cart-promotions { margin: 0 0 32px; padding: 20px 24px; border: 1px solid #ddcdb7; border-radius: 12px; background: #fbf4e8; }
.shop-page .repeat-order-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.shop-page .repeat-order-card h2,.shop-page .cart-promotions h2 { margin: 0; font-size: 1.35rem; }
.shop-page .repeat-order-card form { margin: 0; }
.shop-page .cart-promotions>p { margin: 6px 0 18px; color: #665851; }
.shop-page .cart-promotion-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.shop-page .cart-promotion { display: flex; min-width: 0; max-width: 360px; overflow: hidden; border: 1px solid #ddcdb7; border-radius: 10px; background: var(--paper); flex-direction: column; }
.shop-page .cart-promotion-media { display: flex; height: 150px; align-items: center; justify-content: center; overflow: hidden; background: #eee5d9; }
.shop-page .cart-promotion-media img { width: 100%; height: 100%; object-fit: contain; }
.shop-page .cart-promotion-media .product-placeholder { height: 100%; }
.shop-page .cart-promotion-body { display: flex; min-width: 0; flex: 1; flex-direction: column; padding: 16px; }
.shop-page .cart-promotion h3 { margin: 0 0 5px; color: var(--brown); font-size: 1.16rem; overflow-wrap: anywhere; }
.shop-page .cart-promotion-package { margin: 0 0 12px; color: #665851; font-size: .88rem; }
.shop-page .cart-promotion-prices { display: flex; align-items: baseline; gap: 10px; margin: 0 0 14px; }
.shop-page .cart-promotion-prices s { color: #756861; font-size: .9rem; }
.shop-page .cart-promotion-prices strong { color: var(--brown); font-size: 1.2rem; }
.shop-page .cart-promotion-form { display: grid; grid-template-columns: 72px minmax(0,1fr); align-items: end; gap: 10px; margin-top: auto; }
.shop-page .cart-promotion-form label { display: grid; gap: 4px; color: #6e625c; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.shop-page .cart-promotion-form input[type="number"] { width: 100%; min-height: 44px; border: 1px solid #bbaea4; border-radius: 7px; padding: 8px; font: inherit; }
.shop-page .cart-promotion-form .catalog-button { width: 100%; min-height: 44px; margin: 0; border-radius: 7px; }
.shop-page .cart-promotion-form button:disabled { cursor: wait; opacity: .65; }
.shop-page .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.shop-page .catalog-button--secondary { border: 1px solid var(--brown); background: transparent; color: var(--brown); }
.shop-page .catalog-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); gap: 48px; align-items: end; }
.shop-page .catalog-heading h2 { margin-bottom: 0; font-size: clamp(2rem, 4vw, 3rem); }
.shop-page .catalog-search label { display: block; margin-bottom: 8px; font-weight: 600; font-size: .9rem; }
.shop-page .catalog-search > div { display: flex; }
.shop-page .catalog-search input { min-width: 0; flex: 1; border: 1px solid #bbaea4; border-radius: 7px 0 0 7px; padding: 13px 15px; background: var(--paper); color: var(--ink); font: inherit; }
.shop-page .catalog-search button, .shop-page .catalog-button { border: 0; border-radius: 0 7px 7px 0; padding: 13px 20px; background: var(--gold); color: var(--espresso); font: 700 .92rem/1 "Inter", sans-serif; cursor: pointer; }
.shop-page .catalog-search input:focus, .shop-page .catalog-search button:focus-visible, .shop-page a:focus-visible { outline: 3px solid #e0b76f; outline-offset: 3px; }
.shop-page .catalog-filters { display: flex; flex-wrap: wrap; gap: 9px; margin: 24px 0; }
.shop-page .catalog-chip { border: 1px solid #cdbfb2; border-radius: 999px; padding: 8px 15px; background: rgba(255,255,255,.55); text-decoration: none; font-size: .88rem; font-weight: 600; }
.shop-page .catalog-chip:hover, .shop-page .catalog-chip.is-active { border-color: var(--brown); background: var(--brown); color: #fff; }
.shop-page .catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.shop-page .product-card { display: flex; min-width: 0; overflow: hidden; border: 1px solid #dfd4c8; border-radius: 12px; background: var(--paper); box-shadow: 0 12px 34px rgba(40,21,13,.07); flex-direction: column; }
.shop-page .product-card-media { display: flex; aspect-ratio: 16 / 10; align-items: center; justify-content: center; overflow: hidden; background: #eee5d9; text-decoration: none; }
.shop-page .product-card-media img { width: 100%; height: 100%; object-fit: contain; }
.shop-page .product-placeholder { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; background: linear-gradient(145deg, #ede1d2, #f9f4eb); color: rgba(74,40,29,.52); }
.shop-page .product-placeholder span { display: grid; width: 84px; aspect-ratio: 1; place-items: center; border: 2px solid currentColor; border-radius: 50%; font: 700 1.45rem/1 "Playfair Display", Georgia, serif; }
.shop-page .product-card-body { display: flex; min-height: 255px; flex: 1; flex-direction: column; padding: 18px 20px 19px; }
.shop-page .product-category { margin: 0 0 6px; color: #855e2b; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.shop-page .product-card h3 { margin-bottom: 6px; font-size: 1.4rem; overflow-wrap: anywhere; }
.shop-page .product-card h3 a { text-decoration: none; }
.shop-page .product-code { margin: 0 0 15px; color: #756861; font-size: .8rem; }
.shop-page .product-package { margin: 0 0 18px; color: #5f534d; font-size: .92rem; }
.shop-page .product-status { align-self: flex-start; margin: 0 0 18px; border-radius: 999px; padding: 6px 10px; background: #f1dfc2; color: #6b481c; font-size: .76rem; font-weight: 700; }
.shop-page .product-card-footer { margin-top: auto; padding-top: 8px; }
.shop-page .product-price { margin: 0 0 9px; color: var(--brown); font-size: 1.25rem; font-weight: 700; }
.shop-page .product-price small { font-size: .67rem; font-weight: 500; }
.shop-page .quick-order-form { display: grid; gap: 10px; margin-bottom: 7px; }
.shop-page .quick-order-form fieldset { margin: 0; border: 0; padding: 0; }
.shop-page .unit-options { display: flex; flex-wrap: wrap; gap: 7px; }
.shop-page .unit-option-input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.shop-page .unit-option { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; border: 1px solid #d3c7ba; border-radius: 999px; padding: 7px 13px; background: #fbf7f0; color: var(--brown); font-size: .82rem; font-weight: 700; cursor: pointer; }
.shop-page .unit-option-input:checked + .unit-option { border-color: var(--gold); background: #e8c98f; color: var(--espresso); box-shadow: 0 0 0 1px rgba(74,40,29,.08); }
.shop-page .unit-option-input:focus-visible + .unit-option { outline: 3px solid #e0b76f; outline-offset: 3px; }
.shop-page .quick-order-form .catalog-button { width: 100%; min-height: 44px; border-radius: 7px; }
.shop-page .product-link, .shop-page .detail-back { color: var(--brown); font-size: .9rem; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.shop-page .product-card .product-link { display: inline-flex; min-height: 36px; align-items: center; }
.shop-page .catalog-empty { grid-column: 1 / -1; border: 1px dashed #bbaea4; border-radius: 12px; padding: 48px; text-align: center; }
.shop-page .catalog-empty h2 { margin-bottom: 10px; font-size: 2rem; }
.shop-page .product-detail, .shop-page .detail-missing { padding-block: 64px 96px; }
.shop-page .detail-back { display: inline-block; margin-bottom: 34px; }
.shop-page .product-detail-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: clamp(40px, 7vw, 88px); align-items: center; }
.shop-page .product-detail-media { display: flex; aspect-ratio: 4 / 3; align-items: center; justify-content: center; overflow: hidden; border-radius: 12px; background: #eee5d9; }
.shop-page .product-detail-media img { width: 100%; height: 100%; object-fit: contain; }
.shop-page .product-detail h1, .shop-page .detail-missing h1 { margin-bottom: 12px; color: var(--espresso); font-size: clamp(2.6rem, 5vw, 4.5rem); }
.shop-page .product-description { max-width: 60ch; font-size: 1.05rem; }
.shop-page .product-price--large { margin-top: 28px; font-size: 1.8rem; }
.shop-page .detail-note { margin-top: 22px; border-left: 3px solid var(--gold); padding-left: 14px; color: #665851; font-size: .9rem; }
.shop-page .product-packages { margin-top: 28px; }
.shop-page .product-packages h2 { margin-bottom: 14px; font-size: 1.5rem; }
.shop-page .product-packages ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid #ddcfc3; }
.shop-page .product-packages li { display: flex; justify-content: space-between; gap: 24px; padding: 13px 0; border-bottom: 1px solid #ddcfc3; }
.shop-page .product-packages p { color: #665851; font-size: .82rem; }
.shop-page .visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.shop-page .add-to-cart fieldset { margin: 0; border: 0; padding: 0; }
.shop-page .package-choices, .shop-page .package-readonly { display: grid; gap: 9px; }
.shop-page .package-choice { display: block; cursor: pointer; }
.shop-page .package-choice input { position: absolute; opacity: 0; }
.shop-page .package-choice span { display: flex; justify-content: space-between; gap: 20px; border: 1px solid #cdbfb2; border-radius: 8px; padding: 13px 15px; background: var(--paper); }
.shop-page .package-choice input:checked + span { border-color: var(--brown); box-shadow: 0 0 0 2px var(--brown); }
.shop-page .package-choice input:focus-visible + span { outline: 3px solid #e0b76f; outline-offset: 3px; }
.shop-page .package-choice--static { cursor: default; }
.shop-page .add-to-cart > label { display: block; margin-top: 18px; font-weight: 700; }
.shop-page .add-to-cart > input { width: 90px; margin-top: 7px; border: 1px solid #bbaea4; border-radius: 7px; padding: 11px; font: inherit; }
.shop-page .add-to-cart .catalog-button { margin-left: 10px; }
.shop-page .alert { border-radius: 8px; padding: 13px 16px; }
.shop-page .alert--success { background: #e0eddf; color: #1f5827; }
.shop-page .alert--error, .shop-page .cart-unavailable { background: #f5dfdc; color: #7b251f; }
.shop-page .catalog-flash { margin: 0 0 32px; }
.shop-page .cart-page { padding-block: 64px 96px; }
.shop-page .cart-page h1 { color: var(--espresso); font-size: clamp(2.6rem,5vw,4.5rem); }
.shop-page .cart-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.shop-page .cart-heading a { margin-bottom: 24px; font-weight: 700; }
.shop-page .cart-lines { display: grid; gap: 14px; }
.shop-page .cart-line { display: grid; grid-template-columns: 100px minmax(180px,1fr) 125px 150px 135px auto; gap: 18px; align-items: center; border: 1px solid #dfd4c8; border-radius: 10px; padding: 16px; background: var(--paper); }
.shop-page .cart-line > img, .shop-page .cart-placeholder { width: 100px; height: 80px; object-fit: contain; border-radius: 7px; background: #eee5d9; }
.shop-page .cart-placeholder { display: grid; place-items: center; color: var(--brown); font-weight: 700; }
.shop-page .cart-line h2 { margin: 0 0 4px; font-size: 1.2rem; }
.shop-page .cart-line p { margin: 0; }
.shop-page .cart-unavailable { margin-top: 7px!important; border-radius: 5px; padding: 5px 8px; font-size: .82rem; }
.shop-page .cart-line-price, .shop-page .cart-line-total, .shop-page .cart-quantity { display: grid; gap: 5px; }
.shop-page .cart-line-price span, .shop-page .cart-line-total span, .shop-page .cart-quantity label, .shop-page .cart-quantity > span { color: #6e625c; font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.shop-page .cart-line-price .cart-promotion-breakdown { display: grid; gap: 4px; color: inherit; font-size: inherit; font-weight: inherit; text-transform: none; }
.shop-page .cart-promotion-breakdown small { display: block; color: #6e625c; font-size: .82rem; font-weight: 500; line-height: 1.35; }
.shop-page .cart-quantity input { width: 70px; border: 1px solid #bbaea4; border-radius: 6px; padding: 8px; font: inherit; }
.shop-page .cart-quantity button, .shop-page .cart-remove button { border: 0; padding: 0; background: transparent; color: var(--brown); font: 700 .82rem/1.4 Inter,sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cart-auto-enabled .shop-page .cart-quantity button { display: none; }
.shop-page .cart-update-status { min-height: 1.4em; margin: 18px 0 0; color: #6e625c; font-size: .88rem; text-align: right; }
.shop-page .cart-update-status--error { color: #7b251f; font-weight: 600; }
.shop-page .cart-summary { width: min(100%,440px); margin: 28px 0 0 auto; border-radius: 10px; padding: 22px; background: var(--espresso); color: #fff; }
.shop-page .cart-summary > p:first-child { display: flex; justify-content: space-between; gap: 20px; margin: 0; font-size: 1.2rem; }
.shop-page .shipping-progress { color: #f1cc8b; font-weight: 700; }
.shop-page .cart-summary small { color: rgba(255,255,255,.72); }
.shop-page .cart-after-summary { display: flex; justify-content: flex-end; width: min(100%,440px); margin: 0 0 0 auto; }
.shop-page .cart-after-summary { gap: 12px; flex-wrap: wrap; }
.shop-page .cart-document { margin:24px 0 24px auto; width:min(100%,440px); padding:20px 22px; border:1px solid #ddcdb7; border-radius:10px; background:#fbf4e8; }
.shop-page .cart-document h2 { margin-top:0; }
.shop-page .cart-document-upload { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px 14px; margin:14px 0 8px; }
.shop-page .cart-document-picker { position:relative; overflow:hidden; min-height:44px; margin:0; cursor:pointer; }
.shop-page .cart-document-picker input[type=file] { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.shop-page .cart-document-picker:focus-within { outline:3px solid #315b77; outline-offset:3px; }
.shop-page .cart-document-picker:has(input:disabled) { opacity:.65; cursor:wait; }
.shop-page .cart-document-selected,.shop-page .cart-document-current { min-width:0; overflow-wrap:anywhere; }
.shop-page .cart-document-current { display:flex; gap:0; flex-wrap:wrap; margin:12px 0 2px; }
.shop-page .cart-document-status { min-height:24px; margin:4px 0 8px; color:#335b43; }
.shop-page .cart-document-status--error { color:#8a241e; }
.shop-page .cart-document-remove { margin:0 0 12px; }
.shop-page .cart-document-remove button { padding:0; border:0; background:none; color:#7d281d; text-decoration:underline; cursor:pointer; }
.shop-page .cart-upload-pending { opacity:.65; cursor:wait; }
.shop-page .document-actions { display:flex; gap:10px; flex-wrap:wrap; }
.shop-page .checkout-page,.shop-page .order-page { padding-block: 64px 96px; }
.shop-page .checkout-page h1,.shop-page .order-page h1 { color: var(--espresso); font-size: clamp(2.6rem,5vw,4.5rem); }
.shop-page .checkout-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,380px); gap: 24px 36px; align-items: start; }
.shop-page .checkout-form>section { grid-column: 1; border: 1px solid #dfd4c8; border-radius: 10px; padding: 24px; background: var(--paper); }
.shop-page .checkout-form>.checkout-login { grid-column: 1; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #dfd4c8; border-radius: 10px; padding: 18px 20px; background: #f8f1e7; }
.shop-page .checkout-login h2 { margin: 0 0 4px; font-size: 1.2rem; }
.shop-page .checkout-login p { margin: 0; color: #665851; }
.shop-page .checkout-login .catalog-button { flex: 0 0 auto; margin: 0; }
.shop-page .checkout-form fieldset { margin: 20px 0 0; border: 0; padding: 0; }
.shop-page .checkout-form legend,.shop-page .checkout-form h2 { margin-bottom: 14px; color: var(--espresso); font-family: "Playfair Display",Georgia,serif; font-size: 1.45rem; font-weight: 700; }
.shop-page .checkout-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.shop-page .checkout-form [hidden] { display: none !important; }
.checkout-address-choice { max-width: 680px; }
.checkout-inline-address { margin-top: var(--checkout-field-gap); padding-top: var(--checkout-field-gap); border-top: 1px solid rgba(45,31,23,.14); }
.shop-page .checkout-contact-grid { column-gap: 20px; row-gap: 16px; }
.shop-page .business-fields { display: contents; }
.shop-page .business-grid-spacer { display: block; }
.shop-page .checkout-form .field { min-width: 0; margin: 0; }
.shop-page .checkout-form label { display: block; margin-bottom: 6px; font-weight: 700; }
.shop-page .checkout-form input:not([type="checkbox"]):not([type="radio"]),.shop-page .checkout-form select,.shop-page .checkout-form textarea { box-sizing: border-box; width: 100%; border: 1px solid #bbaea4; border-radius: 7px; padding: 10px 12px; background: #fff; font: inherit; }
.shop-page .checkout-form input:not([type="checkbox"]):not([type="radio"]),.shop-page .checkout-form select { height: 46px; min-height: 46px; }
.shop-page .checkout-form textarea { min-height: 96px; resize: vertical; }
.shop-page .checkout-options { display: grid; gap: 16px; margin-top: 24px; }
.shop-page .checkout-form .check { display: flex; gap: 12px; align-items: flex-start; margin: 0; }
.shop-page .checkout-form .check input[type="checkbox"] { appearance: none; flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; margin: 1px 0 0; border: 2px solid #8d7b6e; border-radius: 4px; padding: 0; background: #fff; display: grid; place-content: center; }
.shop-page .checkout-form .check input[type="checkbox"]::before { width: 10px; height: 10px; border-radius: 2px; background: var(--gold); content: ""; transform: scale(0); transition: transform .12s ease; }
.shop-page .checkout-form .check input[type="checkbox"]:checked::before { transform: scale(1); }
.shop-page .checkout-form .check input[type="checkbox"]:focus-visible { outline: 3px solid rgba(176,124,47,.38); outline-offset: 2px; }
.shop-page .checkout-form .check span { display: grid; gap: 3px; min-width: 0; }
.shop-page .checkout-form .check strong { line-height: 1.35; }
.shop-page .checkout-form .check small { color: #665851; font-size: .88rem; line-height: 1.5; }
.shop-page .checkout-form .check small a { color: var(--brown); text-underline-offset: 2px; }
.shop-page .checkout-delivery-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 18px; }
.shop-page .checkout-form .checkout-different-billing { align-items: center; margin: 16px 0 0; }
.shop-page .checkout-form .checkout-different-billing input[type="checkbox"] { margin-top: 0; }
.shop-page [data-billing-section] { margin-top: var(--checkout-section-gap); border-top: 1px solid #dfd4c8; padding-top: var(--checkout-section-gap); }
.shop-page .field-error { margin: 5px 0 0; color: #7b251f; font-size: .86rem; }
.shop-page .checkout-summary { grid-column: 2; grid-row: 1 / span 4; position: sticky; top: 24px; border-radius: 10px; padding: 24px; background: var(--espresso); color: #fff; }
.shop-page .checkout-summary ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.shop-page .checkout-summary li,.shop-page .checkout-summary>p { display: flex; justify-content: space-between; gap: 14px; }
.shop-page .checkout-summary li>span { display: grid; gap: 3px; }
.shop-page .checkout-summary li small { color: rgba(255,255,255,.72); }
.shop-page .checkout-summary>p { border-top: 1px solid rgba(255,255,255,.22); padding-top: 16px; }
.shop-page .checkout-form>button { grid-column: 1; justify-self: start; }
.shop-page .order-page table,.shop-page .account-shell table { width: 100%; border-collapse: collapse; background: var(--paper); }
.shop-page .order-page > form[action$="/opnieuw-betalen"] { display: inline-block; margin-right: 12px; }
.shop-page .order-page > a[href$="/annuleren"] { margin-right: 12px; }
.shop-page .order-page th,.shop-page .order-page td,.shop-page .account-shell th,.shop-page .account-shell td { border-bottom: 1px solid #dfd4c8; padding: 12px; text-align: left; }
.shop-page .cart-empty { border: 1px dashed #bbaea4; border-radius: 12px; padding: 36px; background: var(--paper); text-align: center; }
.shop-page .catalog-button { display: inline-block; margin-top: 18px; border-radius: 7px; text-decoration: none; }
.shop-page .shop-footer { padding: 56px 0; background: var(--espresso); color: rgba(255,255,255,.75); text-align: center; }
.shop-page .shop-footer img { width: 140px; height: auto; margin: 0 auto 18px; }
.shop-page .shop-footer p { margin: 0 0 10px; }
.shop-page .shop-footer a { color: #fff; }
@media (max-width: 960px) {
  .shop-page .shop-header-inner { gap: 20px; }
  .shop-page .shop-header-actions { gap: 14px; }
  .shop-page .catalog-login-copy { grid-template-columns: 1fr; gap: 14px; }
  .shop-page .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-page .cart-promotion-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shop-page .catalog-heading { grid-template-columns: 1fr; gap: 28px; }
  .shop-page .cart-line { grid-template-columns: 86px minmax(180px,1fr) 120px 135px; }
  .shop-page .cart-line-total, .shop-page .cart-remove { grid-column: span 1; }
  .shop-page .checkout-form { grid-template-columns: 1fr; }
  .shop-page .checkout-summary { grid-column: 1; grid-row: auto; position: static; }
}
@media (max-width: 680px) {
  .shop-page .cart-document-upload { grid-template-columns:1fr; align-items:stretch; }
  .shop-page .cart-document-picker { justify-content:center; width:100%; }
  .shop-page .repeat-order-card { align-items: stretch; flex-direction: column; }
  .shop-page .catalog-shell { width: min(100% - 32px, 1180px); }
  .shop-page .shop-header-inner { min-height: 92px; gap: 10px 12px; flex-wrap: wrap; padding-block: 10px; }
  .shop-page .shop-brand img { width: 82px; height: 82px; }
  .shop-page .shop-brand span { display: none; }
  .shop-page .shop-site-link { font-size: .82rem; }
  .shop-page .shop-header-actions { width: 100%; flex-wrap: wrap; justify-content: space-between; gap: 8px 12px; font-size: .82rem; }
  .shop-page .shop-header-content { width: 100%; justify-items: stretch; }
  .shop-page .shop-customer-greeting { align-items: flex-start; flex-direction: column; gap: 2px; text-align: left; }
  .shop-page .shop-customer-greeting strong { font-size: 1rem; }
  .shop-page .catalog-login-invitation { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
  .shop-page .catalog-login-icon { width: 40px; height: 40px; }
  .shop-page .catalog-login-actions { grid-column: 1 / -1; width: 100%; align-items: stretch; flex-direction: column; }
  .shop-page .catalog-login-actions .catalog-button { width: 100%; text-align: center; }
  .shop-page .catalog-hero { padding: 44px 0; }
  .shop-page .catalog-hero h1 { font-size: clamp(2.5rem, 12vw, 3.5rem); }
  .shop-page .catalog-main { padding-block: 32px 72px; }
  .shop-page .catalog-search > div { display: grid; gap: 8px; }
  .shop-page .catalog-search input, .shop-page .catalog-search button { width: 100%; border-radius: 7px; }
  .shop-page .catalog-grid { grid-template-columns: minmax(0, 1fr); }
  .shop-page .cart-promotions { padding: 18px; }
  .shop-page .cart-promotion-grid { grid-template-columns: minmax(0,1fr); }
  .shop-page .cart-promotion { width: 100%; max-width: none; }
  .shop-page .product-card-body { min-height: 0; }
  .shop-page .product-detail-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .shop-page .catalog-empty { padding: 32px 20px; }
  .shop-page .cart-heading { align-items: flex-start; flex-direction: column; gap: 0; }
  .shop-page .cart-line { grid-template-columns: 72px minmax(0,1fr); gap: 12px; }
  .shop-page .cart-line > img, .shop-page .cart-placeholder { width: 72px; height: 64px; }
  .shop-page .cart-line-price, .shop-page .cart-quantity, .shop-page .cart-line-total, .shop-page .cart-remove { grid-column: 2; }
  .shop-page .cart-summary { width: 100%; }
  .shop-page .account-dashboard,.shop-page .account-addresses{grid-template-columns:1fr}.shop-page .account-data{grid-template-columns:1fr;gap:2px}.shop-page .account-data dd{margin-bottom:12px}
  .shop-page .checkout-form { grid-template-columns: 1fr; }
  .shop-page .checkout-summary { grid-column: 1; grid-row: auto; position: static; }
  .shop-page .checkout-grid { grid-template-columns: 1fr; }
  .shop-page .business-grid-spacer { display: none; }
  .shop-page .checkout-delivery-options { grid-template-columns: 1fr; }
  .shop-page .checkout-form>button { width: 100%; }
  .shop-page .checkout-form>.checkout-login { align-items: stretch; flex-direction: column; }
  .shop-page .checkout-login .catalog-button { width: 100%; text-align: center; }
  .shop-page .order-page table,.shop-page .order-page thead,.shop-page .order-page tbody,.shop-page .order-page tr,.shop-page .order-page th,.shop-page .order-page td,.shop-page .account-shell table,.shop-page .account-shell thead,.shop-page .account-shell tbody,.shop-page .account-shell tr,.shop-page .account-shell th,.shop-page .account-shell td { display: block; width: 100%; }
  .shop-page .order-page thead,.shop-page .account-shell thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .shop-page .order-page tbody,.shop-page .account-shell tbody { display: grid; gap: 12px; }
  .shop-page .order-page tr,.shop-page .account-shell tr { border: 1px solid #dfd4c8; border-radius: 8px; padding: 8px; background: var(--paper); }
  .shop-page .order-page td,.shop-page .account-shell td { overflow-wrap: anywhere; }
}

.shop-page .catalog-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 20px; color: var(--muted); font-size: .9rem; overflow-wrap: anywhere; }
.shop-page .catalog-breadcrumbs a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.shop-page .catalog-breadcrumbs [aria-current="page"] { color: var(--brown); font-weight: 600; }
.feedback-trigger{position:fixed;right:20px;bottom:20px;z-index:40;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--gold);color:#21140f;padding:13px 18px;border-radius:999px;font-weight:700;text-decoration:none;box-shadow:0 6px 20px #21140f38}.feedback-trigger-icon{line-height:1}.feedback-modal[hidden]{display:none}.feedback-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}.feedback-backdrop{position:absolute;inset:0;background:#21140fb8}.feedback-dialog{position:relative;z-index:1;width:min(520px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);border-radius:14px;padding:28px}.feedback-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:2rem}.feedback-form{display:grid;gap:15px}.feedback-form label{display:grid;gap:6px;font-weight:600}.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%}.feedback-open{overflow:hidden}@media(max-width:600px){.feedback-trigger{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:48px;height:48px;padding:0;border-radius:50%;font-size:1.15rem}.feedback-trigger-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.feedback-dialog{padding:24px 18px}}
.shop-page .catalog-hero .catalog-breadcrumbs { color: rgba(255,255,255,.82); }
.shop-page .catalog-hero .catalog-breadcrumbs [aria-current="page"] { color: var(--gold); }

@media (max-width: 680px) {
  .shop-page .catalog-hero .catalog-shell { min-width: 0; }
  .shop-page .catalog-hero h1 { max-width: 100%; font-size: clamp(2.15rem, 10vw, 3.5rem); overflow-wrap: anywhere; hyphens: auto; }
  .shop-page .catalog-hero h1[aria-label="Onderhoudsproducten"] { overflow-wrap: normal; hyphens: none; }
  .shop-page .catalog-maintenance-heading-first, .shop-page .catalog-maintenance-heading-second { white-space: nowrap; }
  .shop-page .catalog-maintenance-heading-break { display: initial; }
  .shop-page .catalog-maintenance-heading-hyphen { display: inline; }
}

@media (max-width: 600px) {
  .shop-page .shop-footer { padding-bottom: calc(116px + env(safe-area-inset-bottom)); }
}
