/* Retail views inherit the current TERRA shell, type and rust palette. */
.shop-page { background:#faf8f1; }
.shop-intro { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(250px,.7fr); gap:56px; align-items:center; padding:28px 0 48px; }
.shop-intro h1 { margin:16px 0; font-size:clamp(44px,5.5vw,72px); }
.shop-intro .catalogue-lead { max-width:700px; }
.shop-brand-logo { display:block; width:145px; height:auto; margin:20px 0; }
.shop-promotions { display:grid; gap:0; padding:12px 24px; border-radius:20px; background:var(--paper,#f2ede0); }
.shop-promotions span { display:block; padding:18px 0; font-size:16px; color:var(--ink,#15201b); }
.shop-promotions span+span { border-top:1px solid rgba(21,32,27,.12); }
.shop-catalogue { padding-bottom:20px; }
.shop-groups { display:flex; flex-wrap:wrap; gap:10px; padding:8px 0 24px; }
.shop-groups a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; border:1px solid #d5d9d3; border-radius:30px; font-size:15px; font-weight:600; color:var(--ink,#15201b); }
.shop-groups a:hover { border-color:var(--rust,#7a2e1f); }
.shop-groups a[aria-current] { color:#fff; border-color:var(--rust,#7a2e1f); background:var(--rust,#7a2e1f); }
.shop-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(190px,290px); gap:24px; padding:20px 0; border-top:1px solid var(--line,#d5d9d3); }
.shop-filters>div { display:grid; gap:9px; min-width:0; }
.shop-filters label { font-size:14px; font-weight:600; }
.shop-filters :is(input,select) { min-width:0; width:100%; min-height:48px; padding:12px 14px; font:inherit; font-size:15px; border:1px solid #c7cec6; border-radius:9px; background:#fff; color:var(--ink,#15201b); }
.shop-results-bar { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin:6px 0 24px; }
.shop-results-bar p { margin:0; font-size:14px; }
.shop-tax-note { font-size:13px; color:#546057; }
.shop-product .shop-product-image { display:flex; align-items:center; justify-content:center; height:260px; padding:22px; background:transparent; }
.shop-product-image img { width:100%; height:100%; object-fit:contain; }
.shop-product:hover img { transform:none; }
.shop-product h2 { font-family:inherit; font-size:23px; line-height:1.22; margin:0 0 12px; letter-spacing:-.02em; }
.shop-product h2 a { color:var(--ink,#15201b); }
.shop-product .shop-card-description { font-size:15px; line-height:1.55; margin:0 0 16px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.shop-card-group { margin-top:auto; margin-bottom:14px; color:#59665d; font-size:13px; }
.shop-purchase { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; }
.shop-price { display:block; color:var(--ink,#15201b); font-size:24px; font-weight:700; letter-spacing:-.025em; }
.shop-purchase .btn { width:100%; margin-top:6px; min-height:44px; }
.shop-product .text-link { margin-top:16px; font-size:14px; }
.shop-empty { padding:36px 24px; text-align:center; border-radius:20px; background:#f5f5f2; }
.shop-empty h2 { font-size:27px; }
.shop-delivery-copy { max-width:850px; padding:52px 0 16px; }
.shop-delivery-copy h2 { font-size:32px; margin-bottom:20px; }
.shop-delivery-copy p { font-size:16px; line-height:1.7; color:#526157; }
.shop-detail-image { display:flex; align-items:center; justify-content:center; min-height:420px; background:transparent; border:0; }
.shop-detail-image img { width:100%; height:auto; max-height:570px; object-fit:contain; padding:32px; }
.shop-detail h1 { font-size:clamp(34px,3.5vw,48px); margin-bottom:22px; }
.shop-detail-description { font-size:19px; }
.shop-detail .shop-price { font-size:32px; }
.shop-detail .shop-purchase { max-width:420px; }
.shop-detail-delivery { margin:26px 0 18px; padding-top:22px; border-top:1px solid #d5d9d3; }
.shop-detail-delivery strong { font-size:16px; }
.shop-detail-delivery p { font-size:14px; color:#526157; margin:12px 0 0; }
.shop-discover-links { display:flex; flex-wrap:wrap; gap:18px 30px; padding:0 0 20px; }
.shop-related { padding-bottom:24px; }

/* Checkout and order confirmation reuse the shared commerce layout. */
.commerce-checkout-section { padding:24px 0 64px; }
.commerce-checkout-section>h2 { font-size:30px; margin:0 0 24px; }
.commercial-checkout .checkout-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.7fr); gap:40px; align-items:start; }
.commercial-checkout .checkout-panel { min-width:0; border:1px solid #d5d9d3; border-radius:22px; padding:30px; background:#fff; }
.commercial-checkout .checkout-fields { border:0; padding:0; margin:0 0 28px; min-width:0; }
.commercial-checkout .checkout-fields legend { font-size:20px; font-weight:700; padding:0; margin-bottom:18px; }
.commercial-checkout .checkout-field { display:grid; gap:8px; margin-bottom:16px; min-width:0; }
.commercial-checkout .checkout-field>span, .commercial-checkout .checkout-field>label { font-size:14px; font-weight:600; }
.commercial-checkout .checkout-field :is(input,select,textarea) { width:100%; min-width:0; min-height:46px; font:inherit; font-size:16px; padding:11px 12px; border:1px solid #c7cec6; border-radius:8px; color:var(--ink,#15201b); background:#fff; }
.commercial-checkout .checkout-two { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.commercial-checkout .checkout-payment { padding:20px; margin:0 0 24px; border-radius:14px; background:var(--paper,#f2ede0); font-size:15px; }
.commercial-checkout .checkout-payment :is(label,p) { font-size:15px; }
.commercial-checkout .checkout-terms { display:flex; align-items:flex-start; gap:12px; font-size:14px; margin-bottom:24px; }
.commercial-checkout .checkout-terms input { flex:0 0 20px; width:20px; height:20px; margin:2px 0; accent-color:var(--rust,#7a2e1f); }
.commercial-checkout .checkout-terms a { text-decoration:underline; text-underline-offset:3px; }
.shop-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.commercial-checkout .cart-lines { display:grid; gap:20px; }
.commercial-checkout .cart-line { display:grid; grid-template-columns:70px minmax(0,1fr); gap:16px; align-items:start; padding-bottom:20px; border-bottom:1px solid #d5d9d3; }
.commercial-checkout .cart-line>img { width:70px; height:70px; object-fit:contain; background:transparent; border-radius:8px; }
.commercial-checkout .cart-line-detail { min-width:0; }
.commercial-checkout .cart-line-detail :is(h3,p) { font-size:15px; line-height:1.45; margin:0 0 8px; }
.commercial-checkout .cart-line-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.commercial-checkout .cart-line-actions :is(button,input) { min-width:44px; min-height:44px; font:inherit; border:1px solid #c7cec6; border-radius:7px; background:#fff; text-align:center; }
.commercial-checkout .cart-line-actions input { width:65px; }
.commercial-checkout .cart-totals { display:grid; gap:14px; padding-top:24px; margin:0; }
.commercial-checkout .cart-totals>div { display:flex; justify-content:space-between; gap:20px; font-size:15px; }
.commercial-checkout .cart-totals :is(dt,dd) { margin:0; }
.commercial-checkout .cart-total { font-weight:700; font-size:21px!important; border-top:1px solid #d5d9d3; padding-top:18px; }
.commercial-checkout .order-status { font-size:15px; line-height:1.6; color:var(--ink,#15201b); overflow-wrap:anywhere; }
.commercial-checkout .order-success { padding:28px; background:var(--paper,#f2ede0); border-radius:20px; margin:24px 0; }
.commercial-checkout .order-success h2 { font-size:29px; }
.commercial-checkout .order-success :is(p,a) { overflow-wrap:anywhere; }
.commercial-checkout .checkout-panel button[type="submit"] { width:100%; min-height:48px; }
@media(max-width:1000px) {
  .shop-intro { gap:30px; }
  .commercial-checkout .checkout-layout { gap:24px; grid-template-columns:minmax(0,1fr) minmax(260px,.7fr); }
  .commercial-checkout .checkout-panel { padding:22px; }
}
@media(max-width:700px) {
  .shop-intro { grid-template-columns:1fr; gap:24px; padding:16px 0 32px; }
  .shop-promotions { padding:0 20px; }
  .shop-promotions span { padding:15px 0; font-size:14px; }
  .shop-groups { gap:8px; }
  .shop-groups a { font-size:14px; padding:10px 14px; }
  .shop-filters { grid-template-columns:1fr; gap:16px; }
  .shop-detail-image { min-height:270px; }
  .shop-detail-image img { max-height:370px; padding:20px; }
  .shop-detail h1 { font-size:34px; }
  .shop-delivery-copy h2 { font-size:28px; }
  .commercial-checkout .checkout-layout { grid-template-columns:1fr; }
  .commercial-checkout .checkout-two { grid-template-columns:1fr; gap:0; }
  .commercial-checkout .checkout-panel { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { .shop-product { transition:none; } }

/* Keep the SKU title and approved amount readable in the shared order summary. */
.commercial-checkout .cart-line-detail>strong, .commercial-checkout .cart-line-detail>span { display:block; margin-bottom:8px; font-size:15px; line-height:1.45; }
.commercial-checkout .checkout-summary>h2 { font-size:30px; }

/* Checkout responds to its available space, including enlarged text. */
.commerce-checkout-section { container:terra-checkout / inline-size; }
@container terra-checkout (max-width:700px) {
  .commerce-layout, .commercial-checkout .checkout-layout { grid-template-columns:1fr; gap:28px; }
  .form-grid, .fulfilment-options, .commercial-checkout .checkout-two { grid-template-columns:1fr; gap:16px; }
  .commerce-panel, .commercial-checkout .checkout-panel { padding:24px; }
}

.shop-filters-expanded { grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); }
.shop-brand-shortcuts {display:flex;flex-wrap:wrap;gap:10px;margin:0 0 26px;}
.shop-brand-shortcuts a {border:1px solid #d4cebf;border-radius:30px;padding:10px 18px;min-height:44px;font-size:14px;}
.shop-load-more {display:block;margin:30px auto;min-width:200px;}
.shop-specifications {padding:20px 0 44px;}
.shop-specs>div {display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);}
.shop-specs dt {color:var(--muted);}.shop-specs dd {margin:0;}
@media(max-width:920px){.shop-filters-expanded {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.shop-filters-expanded {grid-template-columns:1fr;}}

/* Customers review the full payable amount immediately before their acceptance. */
.commercial-checkout .checkout-layout { display:block; max-width:960px; margin-inline:auto; }
.commercial-checkout .checkout-final-summary { margin:30px 0; padding:26px; border:1px solid #d5d9d3; border-radius:14px; background:var(--paper,#f2ede0); }
.checkout-summary-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:18px; }
.checkout-summary-heading h2 { margin:0; }
.checkout-summary-heading button { font:inherit; border:0; background:none; cursor:pointer; padding:8px 0; min-height:44px; }
.commercial-checkout .checkout-consents { border:0; padding:0; margin:0 0 22px; min-width:0; }
.commercial-checkout .checkout-terms { margin-bottom:12px; }
.commercial-checkout .checkout-marketing { padding-bottom:10px; }
.checkout-withdraw { margin-top:0; margin-bottom:24px; font-size:13px; }
.checkout-required { font-weight:600; }
.checkout-privacy { font-size:13px; line-height:1.6; }
.checkout-terms-version { margin:0 0 12px 32px; font-size:12px; color:var(--muted); }
.checkout-error { padding:12px; border-left:3px solid var(--red); background:#fff2ea; color:#6d2c1e; font-size:14px; }
.checkout-variant,.checkout-sku { display:block; margin:0 0 7px; font-size:12px; line-height:1.5; color:var(--muted); }
.checkout-unit-price { display:block; margin:0 0 10px; font-size:13px; line-height:1.5; }
.commercial-checkout .cart-line-actions a { margin:0; font-size:13px; }
.order-confirmation { margin-top:24px; padding:24px; border:1px solid #d5d9d3; border-radius:14px; background:var(--paper); overflow-wrap:anywhere; }
.order-confirmation .order-reference { font-weight:700; font-size:24px; }
.confirmation-items { list-style:none; margin:24px 0 0; padding:0; }
.confirmation-items li { display:grid; gap:6px; padding:16px 0; border-bottom:1px solid #d5d9d3; }
.confirmation-items span { font-size:14px; }
.confirmation-links { display:flex; flex-wrap:wrap; gap:12px 22px; }
.confirmation-links a { text-decoration:underline; text-underline-offset:3px; }
.order-confirmation [data-print-confirmation] { font:inherit; background:none; border:0; min-height:44px; cursor:pointer; padding:8px 0; }
@media print {
  .order-confirmation [data-print-confirmation] { display:none; }
  .order-confirmation { background:#fff; border:0; padding:0; }
  body:has([data-order-confirmation]:not([hidden])) :is(.site-header,.footer,.skip-link) { display:none; }
  body:has([data-order-confirmation]:not([hidden])) .commerce-main>.container>:not([data-commercial-checkout]),
  body:has([data-order-confirmation]:not([hidden])) [data-commercial-checkout]>:not(.checkout-layout),
  body:has([data-order-confirmation]:not([hidden])) .checkout-panel>:not([data-order-confirmation]) { display:none; }
  body:has([data-order-confirmation]:not([hidden])) .checkout-panel { border:0; padding:0; background:#fff; }
}
@media(max-width:600px) { .commercial-checkout .checkout-final-summary,.order-confirmation { padding:18px; } .commercial-checkout .checkout-final-summary .cart-totals>div { gap:10px; } .commercial-checkout .checkout-final-summary .cart-total { font-size:18px!important; } }

.shop-product-image img,.shop-detail-image img,.commercial-checkout .cart-line>img{mix-blend-mode:multiply}
.shop-detail-image{overflow:visible;border-radius:0}

/* Small verified facts beside the purchase action; full details below. */
.product-key-facts { margin:24px 0 28px; padding:20px 0; border-block:1px solid var(--line); }
.product-key-facts h2 { margin:0 0 16px; font-size:14px; font-weight:600; color:var(--muted); }
.product-key-facts dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; }
.product-key-facts dt { font-size:12px; line-height:1.5; color:var(--muted); }
.product-key-facts dd { margin:8px 0 0; font-size:clamp(16px,1.8vw,22px); line-height:1.35; font-weight:600; overflow-wrap:anywhere; }
.product-key-facts nav,.warranty-links { display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:16px; }
.product-key-facts nav a { font-size:13px; padding:10px 0; }
.product-key-facts .warranty-use-note { margin:16px 0 0; font-size:12px; line-height:1.6; color:var(--muted); }
.packaged-specifications { margin-top:28px; }
.packaged-specifications h3 { margin:0 0 10px; font-size:20px; }
.packaged-specifications .small-note { max-width:720px; }
.shop-warranty .warranty-conditions { max-width:850px; margin:24px 0; line-height:1.7; }
.shop-specs>div { min-width:0; overflow-wrap:anywhere; }
.shop-detail { align-items:start; }
.shop-detail-image { position:sticky; top:110px; mix-blend-mode:multiply; }
@media(max-width:920px) { .shop-detail-image { position:static; } }
@media(max-width:600px) { .product-key-facts dl { grid-template-columns:repeat(2,minmax(0,1fr)); } .product-key-facts dd { font-size:18px; } }
