/* Shop & auth pages */
.shop-main{ padding-top:100px; min-height:70vh; }
.shop-grid,.shop-filters{ margin-bottom:32px; }
.shop-filters a{ display:inline-block; margin:0 12px 8px 0; padding:8px 16px; border:1px solid var(--hairline); border-radius:999px; font-size:.85rem; }
.shop-filters a.active,.shop-filters a:hover{ border-color:var(--gold); color:var(--gold); }
.product-detail-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.product-main-image{ border-radius:var(--radius-md); overflow:hidden; background:var(--white); }
.product-main-image img{ width:100%; display:block; aspect-ratio:1; object-fit:cover; }
.product-image-thumbs{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.product-thumb{ padding:0; border:2px solid transparent; border-radius:8px; overflow:hidden; cursor:pointer; background:none; width:72px; height:72px; }
.product-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.product-thumb.active,.product-thumb:hover{ border-color:var(--gold); }
.product-price{ font-size:1.6rem; color:var(--olive); margin:16px 0; font-family:var(--font-display); }
.product-desc{ margin:20px 0 28px; color:var(--ink-soft); }
.add-cart-form .form-row{ margin-bottom:16px; }
.add-cart-form label{ display:block; font-size:.8rem; margin-bottom:6px; text-transform:uppercase; letter-spacing:.1em; }
.add-cart-form input,.add-cart-form select{ width:100%; padding:12px; border:1px solid var(--hairline); border-radius:var(--radius-sm); background:var(--white); }
.cart-table{ width:100%; border-collapse:collapse; margin:24px 0; }
.cart-table th,.cart-table td{ padding:14px; border-bottom:1px solid var(--hairline); text-align:left; }
.cart-table .qty-input{ width:70px; padding:8px; }
.cart-actions{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; }
.cart-total{ font-size:1.2rem; }
.checkout-grid{ display:grid; grid-template-columns:1.4fr .8fr; gap:40px; }
.checkout-form h3{ margin:28px 0 16px; font-size:1.2rem; }
.checkout-form .form-row{ margin-bottom:14px; }
.checkout-form label{ display:block; margin-bottom:6px; font-size:.85rem; }
.checkout-form input,.checkout-form textarea,.checkout-form select{ width:100%; padding:12px; border:1px solid var(--hairline); border-radius:var(--radius-sm); }
.radio-card{ display:block; padding:14px; border:1px solid var(--hairline); border-radius:var(--radius-sm); margin-bottom:10px; cursor:pointer; }
.checkout-summary{ background:var(--white); padding:28px; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); height:fit-content; position:sticky; top:100px; }
.summary-line{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--hairline); }
.summary-line.total{ font-size:1.15rem; font-weight:500; border:none; margin-top:8px; }
.auth-box{ max-width:480px; margin:0 auto; background:var(--white); padding:40px; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); }
.auth-box h1{ margin-bottom:24px; }
.auth-links{ margin-top:20px; font-size:.9rem; }
.auth-links a{ color:var(--gold); }
.account-grid{ display:grid; grid-template-columns:1fr 1.2fr; gap:40px; }
.alert{ padding:14px 18px; border-radius:var(--radius-sm); margin-bottom:20px; }
.alert-success{ background:#d8f3dc; color:#1b4332; }
.alert-error{ background:#ffccd5; color:#9b2226; }
.shop-empty{ padding:40px 0; color:var(--ink-soft); }
.iban-list,.iban-item{ background:rgba(176,141,87,.08); padding:14px; border-radius:var(--radius-sm); margin:12px 0; }
.iban-item code{ font-size:.95rem; word-break:break-all; }
.cart-table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.cart-product{ display:flex; gap:14px; align-items:center; }
.cart-product-thumb{ flex:0 0 56px; width:56px; height:56px; border-radius:8px; overflow:hidden; background:#eceae4; }
.cart-product-thumb img{ width:100%; height:100%; object-fit:cover; }
.checkout-lines{ margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid var(--hairline); }
.summary-item{ font-size:.88rem; }
.summary-item small{ color:var(--ink-faint); }
.shipping-desc{ display:block; color:var(--ink-faint); margin-top:4px; }
.product-out-of-stock,.product-out-of-stock-detail{ font-size:.85rem; color:#9b2226; font-weight:500; }
.product-out-of-stock-detail{ margin-top:16px; }
.btn.is-disabled{ opacity:.5; pointer-events:none; cursor:not-allowed; }
.btn-link{ background:none; border:none; color:var(--gold); cursor:pointer; text-decoration:underline; }
.paytr-wrap{ margin-top:20px; min-height:500px; }
.legal-checks{ margin:20px 0; padding:18px; background:rgba(176,141,87,.06); border-radius:var(--radius-sm); border:1px solid rgba(176,141,87,.15); }
.legal-check-row{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.legal-check-row:last-child{ margin-bottom:0; }
.legal-check{ display:flex; gap:14px; align-items:flex-start; flex:1; margin:0; font-size:.92rem; line-height:1.55; cursor:pointer; }
.legal-check-input{ width:22px; height:22px; min-width:22px; margin:2px 0 0; flex-shrink:0; accent-color:var(--gold); cursor:pointer; }
.legal-check-text strong{ font-weight:500; color:var(--ink); }
.legal-view-btn{ flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; border:1px solid var(--hairline); border-radius:var(--radius-sm); color:var(--olive); background:var(--white); transition:border-color .2s,color .2s,background .2s; }
.legal-view-btn:hover{ border-color:var(--gold); color:var(--gold); background:rgba(176,141,87,.06); }
.legal-check.billing-toggle{ margin-bottom:12px; }
.legal-check.billing-toggle .legal-check-input{ width:18px; height:18px; min-width:18px; }
.price-value{ text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; min-width:5.5em; }
.summary-line span:first-child{ padding-right:12px; }
.checkout-guest-note{ margin-bottom:20px; padding:14px 16px; background:rgba(95,111,82,.08); border-radius:var(--radius-sm); font-size:.9rem; line-height:1.6; }
.checkout-guest-note a{ color:var(--olive); text-decoration:underline; }
.billing-fields{ display:none; margin-bottom:8px; padding:16px; background:rgba(30,30,30,.03); border-radius:var(--radius-sm); border:1px solid var(--hairline); }
.billing-fields.open{ display:block; }
.billing-fields h3{ margin-top:0; }
.legal-page .legal-content{ background:var(--white); padding:32px; border-radius:var(--radius-md); box-shadow:var(--shadow-soft); line-height:1.8; }
.legal-page .legal-content h2,.legal-page .legal-content h3{ margin:1.2em 0 .6em; font-family:var(--font-display); }
.blog-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:28px; margin-top:28px; }
.blog-card a{ display:block; background:var(--white); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); padding-bottom:20px; height:100%; }
.blog-card img,.blog-card-placeholder,.blog-card .blog-card-placeholder{ width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--bg); display:block; }
.blog-card .blog-card-placeholder{ display:flex; align-items:center; justify-content:center; object-fit:unset; }
.blog-hero-fallback{ width:100%; aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; background:var(--bg); border-radius:var(--radius-md); }
.blog-hero-image .masonry-fill,.blog-hero-image img{ width:100%; display:block; border-radius:var(--radius-md); }
.product-main-image .masonry-fill{ aspect-ratio:1; }
.cart-product-thumb .masonry-fill{ width:100%; height:100%; }
.blog-card h2{ font-family:var(--font-display); font-size:1.35rem; padding:16px 20px 8px; margin:0; color:var(--ink); }
.blog-card p{ padding:0 20px; font-size:.9rem; color:var(--ink-soft); margin:0 0 8px; }
.blog-card time{ padding:0 20px; font-size:.78rem; color:var(--ink-faint); }
.blog-article{ max-width:800px; }
.blog-related-products{ margin:0 0 40px; padding-bottom:32px; border-bottom:1px solid var(--hairline); }
.blog-related-head{ margin-bottom:24px; }
.blog-related-title{ font-family:var(--font-display); font-size:clamp(1.5rem,3vw,2rem); font-weight:400; margin:8px 0 0; }
.blog-related-products .product-grid{ margin-bottom:0; }
.blog-date{ display:block; margin-bottom:24px; color:var(--ink-faint); font-size:.9rem; }
.blog-hero-image{ margin:0 0 28px; border-radius:var(--radius-md); overflow:hidden; }
.blog-hero-image img{ width:100%; display:block; }
.blog-excerpt{ font-size:1.1rem; color:var(--ink-soft); margin-bottom:28px; line-height:1.7; }
.blog-content h2,.blog-content h3{ font-family:var(--font-display); margin:1.4em 0 .6em; }
.blog-filters{ margin-bottom:8px; }
@media(max-width:900px){
  .product-detail-grid,.checkout-grid,.account-grid{ grid-template-columns:1fr; }
  .checkout-summary{ position:static; }
}
