/* =============================================
   Steiff Theme - Main Stylesheet
   Premium minimalist eCommerce design
   ============================================= */

/* ----- CSS Variables ----- */
:root {
    --color-primary: #1A1A1A;
    --color-secondary: #6B6B6B;
    --color-accent: #000000;
    --color-white: #FFFFFF;
    --color-bg: #FFFFFF;
    --color-footer-bg: #F5F5F5;
    --color-border: #E5E5E5;
    --color-border-light: #F0F0F0;
    --color-promo-bg: #000000;
    --color-promo-text: #FFFFFF;
    --color-success: #2E7D32;
    --color-error: #C62828;
    --color-sale: #C62828;

    --font-heading: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    --container-width: 96%;
    --container-padding: clamp(16px, 3vw, 40px);

    --header-height: 80px;
    --promo-bar-height: 40px;

    --transition: 0.3s ease;
    --transition-fast: 0.15s ease;

    --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 12px rgba(0,0,0,0.1);
    --shadow-lg: 0 8px 30px rgba(0,0,0,0.12);

    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-full: 50%;
}

/* ----- Reset & Base ----- */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.6;
    color: var(--color-primary);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--color-accent);
}

ul, ol {
    list-style: none;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

input, textarea, select {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-primary);
}

h1 { font-size: 2.5rem; }
h2 { font-size: 2rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

/* ----- Container ----- */
.container {
    width: var(--container-width);
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    box-sizing: border-box;
}

/* Prevent horizontal scroll — must be on html AND body for iOS Safari */
html, body {
    overflow-x: hidden;
    max-width: 100%;
}

/* Global image safety net — never let an image escape its container on mobile */
img {
    max-width: 100%;
    height: auto;
}

/* ----- Buttons ----- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 32px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--transition);
    line-height: 1;
}

.btn--primary {
    background-color: var(--color-accent);
    color: var(--color-white);
    border-color: var(--color-accent);
}

.btn--primary:hover {
    background-color: transparent;
    color: var(--color-accent);
}

.btn--outline {
    background-color: transparent;
    color: var(--color-accent);
    border-color: var(--color-accent);
}

.btn--outline:hover {
    background-color: var(--color-accent);
    color: var(--color-white);
}

.btn--white {
    background-color: var(--color-white);
    color: var(--color-accent);
    border-color: var(--color-white);
}

.btn--white:hover {
    background-color: transparent;
    color: var(--color-white);
}

/* ----- Icons ----- */
.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

/* =============================================
   PROMO BAR — Steiff.com style
   ============================================= */
.promo-bar {
    height: var(--promo-bar-height);
    background-color: #F5F5F5;
    border-bottom: 1px solid #E8E8E8;
    font-size: 13px;
    position: relative;
    z-index: 100;
}

.promo-bar__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--promo-bar-height);
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 clamp(12px, 2vw, 40px);
}

.promo-bar__center {
    display: flex;
    align-items: center;
    gap: 5px;
    font-weight: 700;
    color: var(--color-primary);
}

.promo-bar__text {
    margin: 0;
}

.promo-bar__link {
    color: var(--color-primary);
    text-decoration: underline;
    font-weight: 600;
}

.promo-bar__link:hover {
    color: var(--color-secondary);
}

.promo-bar__right {
    position: absolute;
    right: var(--container-padding);
    top: 50%;
    transform: translateY(-50%);
}

.promo-bar__locale {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--color-primary);
    cursor: pointer;
    padding: 4px 0;
}

.promo-bar__locale:hover {
    color: var(--color-secondary);
}

.promo-bar__globe {
    color: #0078D7;
}

.promo-bar__locale .icon svg {
    width: 12px;
    height: 12px;
}

.promo-bar.hidden {
    display: none;
}

/* =============================================
   HEADER — fixed width, centered, same on all pages
   ============================================= */
.site-header {
    background-color: var(--color-white);
    position: sticky;
    top: 0;
    z-index: 99;
    transition: box-shadow var(--transition);
    width: 100%;
    overflow: visible;
}

.site-header.scrolled {
    box-shadow: var(--shadow-sm);
}

/* Fix sticky header when WP admin bar is visible */
.admin-bar .site-header {
    top: 32px;
}

@media (max-width: 782px) {
    .admin-bar .site-header {
        top: 46px;
    }
}

.site-header > .container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 clamp(12px, 2vw, 40px);
}

/* Default: 2-row header (small screens / zoom) */
.site-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
    min-height: var(--header-height);
    gap: 0;
}

/* Row 1: logo | search | actions */
.site-branding {
    grid-column: 1;
    grid-row: 1;
}

.header-search {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
}

.header-actions {
    grid-column: 3;
    grid-row: 1;
    flex-shrink: 0;
}

/* Row 2: nav spans full width */
.main-navigation {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    justify-content: center;
    padding-bottom: 8px;
}

.primary-menu {
    flex-wrap: nowrap;
}

/* Large screens: single row */
@media (min-width: 1300px) {
    .site-header__inner {
        display: flex;
        align-items: center;
        flex-wrap: nowrap;
        height: var(--header-height);
    }

    .main-navigation {
        flex: 1;
        padding-bottom: 0;
    }

    .header-search {
        justify-self: auto;
    }
}

/* Header accent line */
.header-accent-line {
    height: 3px;
    background: linear-gradient(90deg, #C41230 0%, #C41230 15%, transparent 40%);
    width: 100%;
}

/* Logo */
.site-branding {
    flex-shrink: 0;
    margin-right: clamp(12px, 2vw, 32px);
}

.site-branding__link {
    display: flex;
    align-items: center;
}

.site-branding__logo {
    height: 88px !important;
    width: auto !important;
    object-fit: contain;
    max-width: none !important;
}

/* Mobile Menu Toggle */
.mobile-menu-toggle {
    display: none;
    padding: 8px;
}

/* Primary Navigation — Steiff style */
.main-navigation {
    flex: 1;
    display: flex;
    align-items: center;
}

.primary-menu {
    display: flex;
    align-items: center;
    gap: 0;
}

.primary-menu > li {
    position: relative;
}

.primary-menu > li > a {
    display: flex;
    align-items: center;
    padding: 28px clamp(6px, 1vw, 18px);
    font-size: clamp(11px, 0.9vw, 14px);
    font-weight: 600;
    color: var(--color-primary);
    transition: color var(--transition-fast);
    position: relative;
    white-space: nowrap;
}

.primary-menu > li > a:hover {
    color: var(--color-secondary);
}

.primary-menu > li > a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 18px;
    right: 18px;
    height: 2px;
    background-color: var(--color-accent);
    transform: scaleX(0);
    transition: transform var(--transition);
}

.primary-menu > li:hover > a::after,
.primary-menu > li.current-menu-item > a::after {
    transform: scaleX(1);
}

/* Mega Menu — Steiff.com full-width dropdown */
.mega-menu {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    width: 100%;
    background-color: var(--color-white);
    border-top: 2px solid var(--color-primary);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
    z-index: 100;
}

.primary-menu > li:hover > .mega-menu {
    opacity: 1;
    visibility: visible;
}

.mega-menu__inner {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 40px var(--container-padding) 48px;
}

.mega-menu__columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 40px;
}

.mega-menu__column {
    min-width: 0;
}

.mega-menu__heading {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 20px;
    line-height: 1.3;
}

.mega-menu__links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mega-menu__links li {
    margin-bottom: 2px;
}

.mega-menu__links a {
    display: inline-block;
    padding: 4px 0;
    font-size: 14px;
    color: #555;
    text-decoration: none;
    transition: color var(--transition-fast);
    line-height: 1.5;
}

.mega-menu__links a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

/* Sale link — red */
.mega-menu__links .mega-menu__sale {
    color: #C41230;
    font-weight: 500;
}

.mega-menu__links .mega-menu__sale:hover {
    color: #A00E28;
}

/* Further results link — underlined */
.mega-menu__links .mega-menu__further {
    text-decoration: underline;
    font-weight: 500;
    color: var(--color-primary);
    margin-top: 4px;
}

/* Header Actions — Steiff style with icons + labels */
.header-actions {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 1;
    margin-left: auto;
    min-width: 0;
}

/* Inline Search Field — Steiff style */
.header-search {
    position: relative;
    margin-right: clamp(8px, 1vw, 20px);
}

.header-search__form {
    display: flex;
    align-items: center;
    border: 1px solid #CCCCCC;
    border-radius: 0;
    height: 36px;
    width: clamp(80px, 10vw, 160px);
    transition: width var(--transition), border-color var(--transition-fast);
}

.header-search__form:focus-within {
    border-color: var(--color-primary);
    width: clamp(140px, 16vw, 240px);
}

.header-search__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 32px;
    flex-shrink: 0;
    color: var(--color-primary);
}

.header-search__icon .icon svg {
    width: 16px;
    height: 16px;
}

.header-search__input {
    flex: 1;
    height: 100%;
    padding: 0 8px 0 0;
    border: none;
    outline: none;
    background: none;
    font-size: 13px;
    min-width: 0;
}

.header-search__results {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    min-width: 320px;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-lg);
    z-index: 101;
    display: none;
}

.header-search__results.has-results {
    display: block;
}

.header-search__results .search-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    transition: background-color var(--transition-fast);
}

.header-search__results .search-result-item:hover {
    background-color: var(--color-border-light);
}

.header-search__results .search-result-item img {
    width: 48px;
    height: 48px;
    object-fit: cover;
}

.header-search__results .search-result-item .result-info {
    flex: 1;
}

.header-search__results .search-result-item .result-title {
    font-size: 13px;
    font-weight: 500;
}

.header-search__results .search-result-item .result-price {
    font-size: 12px;
    color: var(--color-secondary);
}

/* Action Items (My Steiff, Wishlist, Shopping cart) — icons with labels below */
.header-action-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 6px clamp(3px, 0.6vw, 12px);
    text-decoration: none;
    color: var(--color-primary);
    transition: color var(--transition-fast);
    cursor: pointer;
    background: none;
    border: none;
}

.header-action-item:hover {
    color: var(--color-secondary);
}

.header-action-item__icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 24px;
}

.header-action-item__icon svg {
    display: block;
    width: clamp(18px, 1.5vw, 22px);
    height: clamp(18px, 1.5vw, 22px);
}

.header-action-item__label {
    font-size: clamp(9px, 0.8vw, 12px);
    font-weight: 600;
    white-space: nowrap;
    line-height: 1;
    letter-spacing: 0.2px;
}

/* Header Cart */
.header-cart {
    position: relative;
}

.cart-count {
    position: absolute;
    top: -4px;
    right: -6px;
    background-color: #C41230;
    color: var(--color-white);
    font-size: 9px;
    font-weight: 700;
    width: 16px;
    height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-full);
    line-height: 1;
}

.mini-cart {
    position: fixed;
    top: 0;
    right: 0;
    width: 420px;
    height: 100%;
    background-color: var(--color-white);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform var(--transition);
}

.mini-cart.active {
    transform: translateX(0);
}

.mini-cart__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 24px;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

.mini-cart__header h3 {
    font-family: var(--font-body);
    font-size: 18px;
    font-weight: 700;
    margin: 0;
}

.mini-cart__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    background: none;
    cursor: pointer;
    color: var(--color-primary);
    padding: 0;
}

.mini-cart__body {
    flex: 1;
    overflow-y: auto;
}

.mini-cart__content {
    padding: 0;
}

/* Mini cart product list */
.mini-cart__content ul.woocommerce-mini-cart,
.mini-cart__content ul.cart_list,
.mini-cart__content ul.product_list_widget {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Each cart item — name top-left, image right, × far right */
.mini-cart__content li.woocommerce-mini-cart-item,
.mini-cart__content li.mini_cart_item {
    display: grid !important;
    grid-template-columns: 1fr 90px 28px;
    grid-template-rows: auto auto;
    gap: 0 20px !important;
    padding: 28px 24px !important;
    border-bottom: 1px solid #F0F0F0 !important;
    margin: 0 !important;
    align-items: start;
}

/* Product name — top left */
.mini-cart__content li.woocommerce-mini-cart-item a:not(.remove),
.mini-cart__content li.mini_cart_item a:not(.remove) {
    grid-column: 1;
    grid-row: 1;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    text-decoration: none !important;
    line-height: 1.4;
}

/* Quantity + price — below name, with spacing */
.mini-cart__content li .quantity {
    grid-column: 1;
    grid-row: 2;
    font-size: 14px !important;
    color: #999 !important;
    margin-top: 16px;
}

/* Product image — right side */
.mini-cart__content li.woocommerce-mini-cart-item img,
.mini-cart__content li.mini_cart_item img {
    grid-column: 2;
    grid-row: 1 / 3;
    width: 90px !important;
    height: 90px !important;
    object-fit: contain !important;
    align-self: center;
}

/* Remove × button — far right */
.mini-cart__content li .remove,
.mini-cart__content li a.remove {
    grid-column: 3;
    grid-row: 1;
    color: var(--color-primary) !important;
    font-size: 18px !important;
    text-decoration: none !important;
    font-weight: 300;
    line-height: 1;
    width: 28px;
    height: 28px;
    display: flex !important;
    align-items: center;
    justify-content: center;
}

.mini-cart__content li a.remove:hover {
    color: #C41230 !important;
    background: none !important;
}

/* Subtotal */
.mini-cart__content .woocommerce-mini-cart__total,
.mini-cart__content p.total {
    display: flex !important;
    justify-content: space-between !important;
    padding: 20px 24px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-top: 1px solid var(--color-border) !important;
    margin: 0 !important;
}

/* Cart buttons */
.mini-cart__content .woocommerce-mini-cart__buttons,
.mini-cart__content p.buttons {
    padding: 16px 24px 28px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 !important;
}

.mini-cart__content .woocommerce-mini-cart__buttons a,
.mini-cart__content p.buttons a,
.mini-cart__content .woocommerce-mini-cart__buttons .button {
    display: block !important;
    width: 100% !important;
    padding: 14px 24px !important;
    text-align: center !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: all var(--transition) !important;
    box-sizing: border-box;
    border: 1px solid var(--color-primary) !important;
    background-color: var(--color-white) !important;
    color: var(--color-primary) !important;
}

.mini-cart__content .woocommerce-mini-cart__buttons a:last-child,
.mini-cart__content p.buttons a:last-child,
.mini-cart__content .woocommerce-mini-cart__buttons .button.checkout,
.mini-cart__content .woocommerce-mini-cart__buttons a.checkout {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
    border-color: var(--color-primary) !important;
}

.mini-cart__content .woocommerce-mini-cart__buttons a:hover,
.mini-cart__content p.buttons a:hover {
    opacity: 0.85;
}

/* Empty cart message */
.mini-cart__content .woocommerce-mini-cart__empty-message,
.mini-cart__content p.woocommerce-mini-cart__empty-message {
    padding: 48px 24px !important;
    text-align: center !important;
    color: var(--color-secondary) !important;
    font-size: 15px;
    margin: 0;
}

/* Site overlay for mini cart */
.site-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition);
}

.site-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* =============================================
   MOBILE NAVIGATION
   ============================================= */
.mobile-nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 200;
    pointer-events: none;
}

.mobile-nav.active {
    pointer-events: all;
}

.mobile-nav__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity var(--transition);
}

.mobile-nav.active .mobile-nav__overlay {
    opacity: 1;
}

.mobile-nav__drawer {
    position: absolute;
    top: 0;
    left: -320px;
    width: 320px;
    height: 100%;
    background-color: var(--color-white);
    display: flex;
    flex-direction: column;
    transition: left var(--transition);
    overflow: hidden;
}

.mobile-nav.active .mobile-nav__drawer {
    left: 0;
}

.mobile-nav__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--color-border);
}

.mobile-nav__header .site-branding__logo {
    height: 36px;
}

.mobile-nav__content {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0;
}

/* Mobile menu — clean list */
.mobile-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mobile-menu li {
    list-style: none;
}

/* Top level items */
.mobile-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 600;
    color: var(--color-primary);
    border-bottom: 1px solid #F0F0F0;
    text-decoration: none;
}

/* Arrow indicator for items with children */
.mobile-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 8px;
    height: 8px;
    border-right: 2px solid #999;
    border-bottom: 2px solid #999;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
    margin-left: 12px;
}

.mobile-menu > li.menu-item-has-children.open > a::after {
    transform: rotate(-135deg);
}

/* Sub-menu level 1 — hidden by default */
.mobile-menu .sub-menu {
    display: none;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #FAFAFA;
}

.mobile-menu li.open > .sub-menu {
    display: block;
}

/* Sub-menu level 1 items (category headings) */
.mobile-menu .sub-menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px 12px 32px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary);
    border-bottom: 1px solid #EFEFEF;
    text-decoration: none;
}

.mobile-menu .sub-menu > li.menu-item-has-children > a::after {
    content: '';
    width: 6px;
    height: 6px;
    border-right: 1.5px solid #999;
    border-bottom: 1.5px solid #999;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

.mobile-menu .sub-menu > li.open > a::after {
    transform: rotate(-135deg);
}

/* Sub-menu level 2 items (links) */
.mobile-menu .sub-menu .sub-menu {
    background-color: #F5F5F5;
}

.mobile-menu .sub-menu .sub-menu > li > a {
    padding: 10px 20px 10px 48px;
    font-size: 14px;
    font-weight: 400;
    color: #555;
    border-bottom: 1px solid #EAEAEA;
}

.mobile-menu .sub-menu .sub-menu > li > a:hover {
    color: var(--color-primary);
}

/* Quick links at bottom */
.mobile-nav__links {
    padding: 16px 20px;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.mobile-nav__link-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: none;
}

.mobile-nav__link {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
}

/* Mobile drawer — language switcher (placed at bottom of drawer) */
.mobile-nav__lang {
    padding: 14px 20px;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex-shrink: 0;
}

.mobile-nav__lang-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-secondary);
}

.mobile-nav__lang-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mobile-nav__lang-option {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    font-size: 13px;
    color: var(--color-primary);
    text-decoration: none;
    background: var(--color-white);
    transition: all var(--transition-fast);
}

.mobile-nav__lang-option:hover {
    border-color: var(--color-primary);
    text-decoration: none;
}

.mobile-nav__lang-option.is-active {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
    font-weight: 600;
}

/* =============================================
   BREADCRUMBS
   ============================================= */
.breadcrumbs {
    padding: 16px 0;
    font-size: 13px;
    color: var(--color-secondary);
    border-bottom: 1px solid var(--color-border-light);
}

.breadcrumbs a {
    color: var(--color-secondary);
}

.breadcrumbs a:hover {
    color: var(--color-primary);
}

.breadcrumbs__separator {
    margin: 0 8px;
}

/* =============================================
   HERO SLIDER — Steiff.com style (dark bg)
   ============================================= */
.hero-slider {
    position: relative;
    overflow: hidden;
    background-color: #1a1a1a;
}

.hero-slider__track {
    position: relative;
    width: 100%;
    height: min(644px, calc(100vw * 644 / 1905));
}

.hero-slider__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 0.8s ease;
    display: flex;
    align-items: center;
}

.hero-slider__slide.active {
    opacity: 1;
}

.hero-slider__content {
    position: relative;
    z-index: 2;
    max-width: 500px;
}

.hero-slider__label {
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--color-white);
    border: 1px solid rgba(255,255,255,0.4);
    padding: 6px 14px;
    margin-bottom: 20px;
}

.hero-slider__title {
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2.8rem);
    font-weight: 700;
    color: var(--color-white);
    margin-bottom: 28px;
    line-height: 1.15;
}

.hero-slider__btn {
    display: inline-block;
    padding: 12px 28px;
    background-color: var(--color-white);
    color: var(--color-primary);
    font-size: 13px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: all var(--transition);
    text-decoration: none;
}

.hero-slider__btn:hover {
    background-color: #f0f0f0;
    color: var(--color-primary);
}

/* Hero arrows — circle, on sides */
.hero-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    cursor: pointer;
    z-index: 3;
    color: var(--color-primary);
    transition: all var(--transition);
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.hero-slider__arrow:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.hero-slider__arrow--prev { left: 16px; }
.hero-slider__arrow--next { right: 16px; }

.hero-slider__dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 3;
}

.hero-slider__dot {
    width: 8px;
    height: 8px;
    border-radius: var(--radius-full);
    background-color: rgba(255,255,255,0.4);
    border: none;
    cursor: pointer;
    transition: all var(--transition-fast);
    padding: 0;
}

.hero-slider__dot.active {
    background-color: var(--color-white);
}

/* =============================================
   HOMEPAGE SECTIONS — Steiff.com style
   ============================================= */
.section {
    padding: 64px 0;
}

.section__title--steiff {
    text-align: center;
    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    font-weight: 600;
    margin-bottom: 36px;
    color: var(--color-primary);
}

.section__title--steiff::after {
    display: none;
}

.section__subtitle {
    text-align: center;
    font-size: 14px;
    color: var(--color-secondary);
    margin-bottom: 4px;
    font-style: italic;
}

.section__title--gifts {
    margin-bottom: 32px;
}

/* Section header row (title left + link right) */
.section__header-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 28px;
}

.section__title--left {
    text-align: left;
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 0;
}

.section__title--left::after {
    display: none;
}

.section__more-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: none;
    white-space: nowrap;
}

.section__more-link:hover {
    color: var(--color-secondary);
}

.section__action {
    text-align: center;
    margin-top: 40px;
}

/* =============================================
   "What's new" — 2x2 Teaser Grid (Steiff style)
   ============================================= */
.teasers-grid-steiff {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

/* Teaser card — Steiff.com exact (image top, gray footer) */
.teaser-steiff {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--color-primary);
    overflow: hidden;
    transition: transform var(--transition);
}

.teaser-steiff:hover {
    transform: translateY(-3px);
}

.teaser-steiff__image {
    aspect-ratio: 4/3;
    overflow: hidden;
    background-color: #f0ebe5;
    display: flex;
    align-items: center;
    justify-content: center;
}

.teaser-steiff__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition);
}

.teaser-steiff:hover .teaser-steiff__image img {
    transform: scale(1.03);
}

.teaser-steiff__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #E8E0D8 0%, #D8CFC4 100%);
}

.teaser-steiff__footer {
    background-color: #C8C4BE;
    padding: 20px 16px;
    text-align: center;
}

.teaser-steiff__title {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--color-primary);
}

.teaser-steiff__btn {
    display: inline-block;
    padding: 10px 24px;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 12px;
    font-weight: 500;
    border: none;
    cursor: pointer;
    transition: background-color var(--transition);
}

.teaser-steiff:hover .teaser-steiff__btn {
    background-color: #333;
}

/* =============================================
   PRODUCT CARD — Steiff.com exact replica
   Flat gray bg, TOP badge, heart, size, name, price
   ============================================= */

/* Carousel wrapper */
.products-carousel {
    position: relative;
}

.products-carousel__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-100%);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    cursor: pointer;
    z-index: 3;
    color: var(--color-primary);
    transition: all var(--transition);
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

.products-carousel__arrow:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.products-carousel__arrow--prev {
    left: -16px;
}

.products-carousel__arrow--next {
    right: -16px;
}

/* Products row (scrollable) */
.products-row-steiff {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    padding: 0 4px 4px;
    scrollbar-width: none;
}

.products-row-steiff::-webkit-scrollbar {
    display: none;
}

/* Single product card (.pcs) — Steiff.com exact */
.pcs {
    flex: 0 0 calc(25% - 12px);
    min-width: 180px;
    scroll-snap-align: start;
    text-align: left;
    background-color: #FFFFFF;
    border: 1px solid #F0F0F0;
    position: relative;
    transition: box-shadow var(--transition), border-color var(--transition);
}

.pcs:hover {
    border-color: #E0E0E0;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.10);
}

/* Image area — fixed height, no crop */
.pcs__image-area {
    position: relative;
    background-color: #FFFFFF;
    aspect-ratio: 3/4;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0;
    padding: 32px;
    overflow: visible;
}

.pcs__image-area img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform var(--transition);
}

.pcs:hover .pcs__image-area img {
    transform: scale(1.03);
}

.pcs__image-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

/* Product badges — circular SALE + NEW badges on pcs cards */
.pcs__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 2;
}

.pcs__badge {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
    color: #1A1A1A;
}

.pcs__badge--sale {
    background-color: #F4C2C2;
}

.pcs__badge--new {
    background-color: #FDDCB5;
}

/* Wishlist heart — pink outlined */
.pcs__wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 2;
    color: #D44B6E;
    padding: 4px;
    transition: all var(--transition-fast);
}

.pcs__wishlist:hover {
    color: #C41230;
    transform: scale(1.15);
}

.pcs__wishlist svg {
    width: 22px;
    height: 22px;
}

/* Details area (size, name, price) */
.pcs__details {
    padding: 14px 12px 16px;
}

/* Size label */
.pcs__size {
    display: block;
    font-size: 12px;
    color: #AAAAAA;
    margin-bottom: 6px;
    line-height: 1;
}

/* Product name */
.pcs__title-link {
    text-decoration: none;
    color: inherit;
}

.pcs__title {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 16px;
    color: var(--color-primary);
    min-height: 42px;
}

/* Price */
.pcs__price {
    font-size: 20px;
    font-weight: 400;
    color: var(--color-primary);
    line-height: 1;
    letter-spacing: 0.5px;
}

.pcs__price del {
    color: var(--color-secondary);
    font-weight: 400;
    font-size: 16px;
    margin-right: 6px;
}

.pcs__price ins {
    text-decoration: none;
    color: #C41230;
    font-weight: 400;
}

/* Carousel progress bar — hidden until hover */
.carousel-progress {
    width: 100%;
    height: 3px;
    background-color: #E8E8E8;
    margin-top: 24px;
    border-radius: 2px;
    overflow: hidden;
    opacity: 0;
    transition: opacity var(--transition);
}

.products-carousel:hover .carousel-progress {
    opacity: 1;
}

.carousel-progress__bar {
    height: 100%;
    width: 0%;
    background-color: #1A1A1A;
    border-radius: 2px;
    transition: width 0.15s ease;
}

/* Beige background row variant */
.section--products-row-beige {
    background-color: #F9F6F2;
}

/* =============================================
   "Exclusive gifts" — Gift Cards (Steiff style)
   ============================================= */
.gifts-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.gift-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: var(--color-primary);
    overflow: hidden;
    transition: transform var(--transition);
}

.gift-card:hover {
    transform: translateY(-3px);
}

.gift-card__image {
    aspect-ratio: 4/5;
    overflow: hidden;
}

.gift-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gift-card__bottom {
    padding: 16px 12px 18px;
    text-align: center;
}

.gift-card__title {
    display: block;
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--color-primary);
}

.gift-card__btn {
    display: block;
    margin: 0 12px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 400;
    font-style: italic;
    border: none;
    color: var(--color-primary);
    background-color: #FFFFFF !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
    transition: box-shadow var(--transition);
}

.gift-card:hover .gift-card__btn {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.10);
}

/* =============================================
   "The World of Steiff" — 2x2 Image Cards
   ============================================= */
.world-grid-steiff {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.world-card-steiff {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    text-decoration: none;
    color: var(--color-primary);
    transition: transform var(--transition);
}

.world-card-steiff:hover {
    transform: translateY(-3px);
}

.world-card-steiff__image {
    width: 100%;
    aspect-ratio: 4/3;
    background: linear-gradient(135deg, #555 0%, #888 100%);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.world-card-steiff__overlay {
    background-color: #D0CCC6;
    padding: 24px 20px 28px;
    text-align: center;
}

.world-card-steiff__title {
    font-family: var(--font-body);
    font-size: 20px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 16px;
}

.world-card-steiff__btn {
    display: inline-block;
    padding: 12px 32px;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 13px;
    font-weight: 500;
    border: none;
    transition: background-color var(--transition);
}

.world-card-steiff:hover .world-card-steiff__btn {
    background-color: #333;
}

/* Product Badges (kept for WooCommerce loop) */
.product-badges {
    position: absolute;
    top: 12px;
    left: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 2;
}

.badge {
    display: inline-block;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: var(--radius-sm);
}

.badge--sale {
    background-color: var(--color-sale);
    color: var(--color-white);
}

.badge--new {
    background-color: var(--color-accent);
    color: var(--color-white);
}

/* =============================================
   NEWSLETTER — Steiff.com style (discount + form)
   ============================================= */
.newsletter-section {
    display: flex;
    overflow: hidden;
}

.newsletter-section__discount {
    flex: 0 0 200px;
    background: #d73246;
    color: var(--color-white);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    text-align: center;
}

.newsletter-section__discount-amount {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 4px;
}

.newsletter-section__discount-label {
    font-size: 14px;
    font-weight: 600;
}

.newsletter-section__form-area {
    flex: 1;
    background-color: #F5F5F5;
    padding: 36px 48px;
}

.newsletter-section__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 16px;
}

.newsletter-form {
    width: 100%;
}

.newsletter-form__label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--color-primary);
}

.newsletter-form__field {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.newsletter-form__input {
    flex: 1;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    outline: none;
    font-size: 13px;
    background-color: var(--color-white);
    color: var(--color-primary);
}

.newsletter-form__input::placeholder {
    color: #999;
}

.newsletter-form__submit {
    padding: 10px 24px;
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background-color var(--transition-fast);
    white-space: nowrap;
}

.newsletter-form__submit:hover {
    background-color: #333;
}

.newsletter-form__categories {
    display: flex;
    gap: 20px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.newsletter-form__category {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    cursor: pointer;
}

.newsletter-form__category-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--color-secondary);
    border-radius: 50%;
    transition: color var(--transition-fast), background-color var(--transition-fast);
    text-decoration: none;
}

.newsletter-form__category-link:hover {
    color: var(--color-white);
    background-color: var(--color-primary);
}

.newsletter-form__notice {
    margin-bottom: 14px;
    padding: 10px 14px;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1.5;
}

.newsletter-form__notice.is-success {
    background-color: #e8f5e9;
    color: #1b5e20;
    border: 1px solid #a5d6a7;
}

.newsletter-form__notice.is-error {
    background-color: #fdecea;
    color: #b71c1c;
    border: 1px solid #f5c6cb;
}

.newsletter-form__consent {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 11px;
    color: var(--color-secondary);
    cursor: pointer;
    margin-bottom: 16px;
}

.newsletter-form__consent input {
    margin-top: 2px;
}

.newsletter-form__social {
    display: flex;
    gap: 12px;
    margin-top: 16px;
    align-items: center;
}

.newsletter-form__social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-white);
    transition: background-color var(--transition-fast), transform var(--transition-fast);
    text-decoration: none;
    line-height: 0;
}

.newsletter-form__social a svg {
    display: block;
    width: 18px;
    height: 18px;
}

.newsletter-form__social a:hover {
    background-color: #d73246;
    transform: translateY(-1px);
}

.newsletter-form__privacy-link {
    text-decoration: underline;
    color: inherit;
}

.newsletter-form__privacy-link:hover {
    color: var(--color-primary);
}

/* =============================================
   FOOTER
   ============================================= */
.site-footer {
    padding: 60px 0 32px;
}

.footer-columns {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    margin-bottom: 48px;
}

.footer-columns--1 { grid-template-columns: 1fr; }
.footer-columns--2 { grid-template-columns: repeat(2, 1fr); }
.footer-columns--3 { grid-template-columns: repeat(3, 1fr); }
.footer-columns--4 { grid-template-columns: repeat(4, 1fr); }

.footer-column__title {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    margin-bottom: 16px;
    color: var(--color-primary);
}

.footer-menu li {
    margin-bottom: 0;
}

.footer-menu li a {
    display: block;
    padding: 4px 0;
    font-size: 14px;
    color: var(--color-secondary);
    transition: color var(--transition-fast);
}

.footer-menu li a:hover {
    color: var(--color-primary);
}

.footer-social {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-bottom: 32px;
    flex-wrap: wrap;
}

.footer-social__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: var(--color-primary);
    color: var(--color-white);
    transition: background-color var(--transition-fast), transform var(--transition-fast);
    line-height: 0;
}

.footer-social__link svg {
    display: block;
    width: 18px;
    height: 18px;
}

.footer-social__link:hover {
    background-color: #d73246;
    color: var(--color-white);
    transform: translateY(-1px);
}

.footer-badges {
    display: flex;
    justify-content: center;
    gap: 48px;
    padding: 24px 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 32px;
}

.footer-badges__group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.footer-badges__label {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-secondary);
}

.footer-badges__icons {
    display: flex;
    gap: 8px;
}

.badge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 600;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.site-branding--footer img {
    height: 28px;
    width: auto;
}

.footer-copyright {
    font-size: 13px;
    color: var(--color-secondary);
}

.footer-credit {
    font-size: 12px;
    color: var(--color-secondary);
    margin-top: 8px;
}

.footer-credit a {
    color: var(--color-primary);
    font-weight: 600;
    text-decoration: none;
}

.footer-credit a:hover {
    text-decoration: underline;
}

/* =============================================
   BACK TO TOP
   ============================================= */
.back-to-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-accent);
    color: var(--color-white);
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-md);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: all var(--transition);
    z-index: 50;
}

.back-to-top.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.back-to-top:hover {
    transform: translateY(-4px);
}

/* =============================================
   MOBILE BOTTOM NAV
   ============================================= */
.mobile-bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-white);
    border-top: 1px solid var(--color-border);
    z-index: 90;
    padding: 8px 0;
    padding-bottom: calc(8px + env(safe-area-inset-bottom));
}

.mobile-bottom-nav__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    font-size: 10px;
    color: var(--color-secondary);
    position: relative;
}

.mobile-bottom-nav__item.active {
    color: var(--color-primary);
}

/* =============================================
   CONTENT AREAS
   ============================================= */
.content-area--sidebar {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 48px;
}

.content-primary {
    min-width: 0;
}

/* Posts Grid */
.posts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
}

.post-card {
    background-color: var(--color-white);
    border-radius: var(--radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: box-shadow var(--transition);
}

.post-card:hover {
    box-shadow: var(--shadow-md);
}

.post-card__image {
    aspect-ratio: 16/9;
    overflow: hidden;
}

.post-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.post-card__content {
    padding: 20px;
}

.post-card__title {
    font-size: 1.125rem;
    margin-bottom: 8px;
}

.post-card__title a:hover {
    color: var(--color-accent);
}

.post-card__meta {
    font-size: 13px;
    color: var(--color-secondary);
    margin-bottom: 8px;
}

.post-card__excerpt {
    font-size: 14px;
    color: var(--color-secondary);
}

/* Single Post */
.single-post__featured-image {
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 32px;
}

.single-post__header {
    margin-bottom: 32px;
}

.single-post__title {
    font-size: 2.5rem;
    margin-bottom: 12px;
}

.single-post__meta {
    font-size: 14px;
    color: var(--color-secondary);
    display: flex;
    gap: 16px;
}

.single-post__content {
    font-size: 16px;
    line-height: 1.8;
}

.single-post__content p {
    margin-bottom: 1.5em;
}

.single-post__content h2,
.single-post__content h3 {
    margin-top: 2em;
    margin-bottom: 0.75em;
}

.single-post__content img {
    border-radius: var(--radius-md);
    margin: 1.5em 0;
}

.single-post__footer {
    margin-top: 48px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border);
}

.single-post__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.tag {
    display: inline-block;
    padding: 4px 12px;
    background-color: var(--color-border-light);
    border-radius: var(--radius-sm);
    font-size: 13px;
}

.tag:hover {
    background-color: var(--color-accent);
    color: var(--color-white);
}

/* Social Share */
.social-share {
    display: flex;
    align-items: center;
    gap: 12px;
}

.social-share__label {
    font-size: 13px;
    font-weight: 600;
}

.social-share__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    transition: all var(--transition-fast);
}

.social-share__link:hover {
    background-color: var(--color-accent);
    color: var(--color-white);
    border-color: var(--color-accent);
}

/* Page Content */
.page-content {
    max-width: 800px;
    margin: 0 auto;
    padding: 48px 0 80px;
}

.page-content__title {
    font-size: 2.5rem;
    margin-bottom: 32px;
    text-align: center;
}

.page-content__body {
    font-size: 16px;
    line-height: 1.8;
}

.page-content__body p {
    margin-bottom: 1.5em;
}

/* Archive Header */
.archive-header {
    padding: 48px 0 32px;
    text-align: center;
}

.archive-header__title {
    font-size: 2rem;
}

.archive-header__description {
    color: var(--color-secondary);
    margin-top: 12px;
}

/* 404 */
.error-404 {
    text-align: center;
    padding: 120px 0;
}

.error-404__title {
    font-size: 8rem;
    font-weight: 700;
    color: var(--color-border);
    line-height: 1;
}

.error-404__subtitle {
    font-size: 2rem;
    margin: 16px 0;
}

.error-404__text {
    color: var(--color-secondary);
    margin-bottom: 32px;
}

/* Pagination */
.pagination {
    margin-top: 48px;
    text-align: center;
}

.pagination .nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}

.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    transition: all var(--transition-fast);
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
    background-color: var(--color-accent);
    color: var(--color-white);
    border-color: var(--color-accent);
}

/* Widget Area */
.widget {
    margin-bottom: 32px;
}

.widget-title {
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--color-accent);
}

/* =============================================
   SHOP PAGE — Steiff.com style
   ============================================= */

/* Shop header */
.shop-header {
    padding: 16px 0 12px;
}

.shop-header__title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 700;
}

/* Shop banner */
.shop-banner {
    margin-bottom: 32px;
    border-radius: 0;
    overflow: hidden;
}

.shop-banner img {
    width: 100%;
    height: auto;
    display: block;
}

/* Sub-categories row */
.shop-subcats {
    display: flex;
    gap: 16px;
    margin-bottom: 32px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 4px;
}

.shop-subcats::-webkit-scrollbar { display: none; }

.shop-subcat {
    flex: 0 0 auto;
    width: 140px;
    text-align: center;
    text-decoration: none;
    color: var(--color-primary);
}

.shop-subcat__image {
    aspect-ratio: 1/1;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 8px;
    background-color: #f5f5f5;
}

.shop-subcat__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shop-subcat__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #eee, #ddd);
}

.shop-subcat__name {
    font-size: 13px;
    font-weight: 600;
}

/* Filter bar */
.shop-filters {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 8px;
}

.shop-filters__pills {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.shop-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    font-size: 13px;
    font-weight: 400;
    color: var(--color-primary);
    background: var(--color-white);
    cursor: pointer;
    transition: border-color var(--transition-fast);
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(0,0,0,0.05);
}

@media (hover: hover) {
    .shop-filter-pill:hover {
        border-color: var(--color-primary);
    }
}

.shop-filter-pill.active {
    border-color: #008B8B;
    color: #008B8B;
}

/* Clear all filters link */
.shop-filter-clear {
    font-size: 13px;
    color: var(--color-secondary);
    text-decoration: underline;
    white-space: nowrap;
}

.shop-filter-clear:hover {
    color: var(--color-primary);
}

/* ---- Filter Dropdowns ---- */
.sf-dropdown {
    position: relative;
}

.sf-dropdown__panel {
    display: none;
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    min-width: 260px;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    padding: 16px;
    z-index: 100;
}

.sf-dropdown.open .sf-dropdown__panel {
    display: block;
}

/* Price filter inside dropdown */
.sf-price__inputs {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}

.sf-price__inputs > div {
    flex: 1;
}

.sf-price__label {
    display: block;
    font-size: 11px;
    color: var(--color-secondary);
    margin-bottom: 4px;
}

.sf-price__input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-family: var(--font-body);
}

.sf-price__input:focus {
    outline: none;
    border-color: #008B8B;
}

.sf-price__sep {
    font-size: 16px;
    color: var(--color-secondary);
    padding-bottom: 8px;
}

.sf-price__apply {
    display: block;
    width: 100%;
    padding: 10px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--font-body);
    transition: opacity var(--transition-fast);
}

.sf-price__apply:hover {
    opacity: 0.85;
}

/* ---- Toggle Switches (Sale / New) ---- */
.sf-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    border: none !important;
    padding: 6px 12px !important;
    background: transparent !important;
}

.sf-toggle__text {
    font-size: 13px;
    font-weight: 400;
    color: var(--color-primary);
    user-select: none;
}

.sf-toggle__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.sf-toggle__switch {
    position: relative;
    width: 38px;
    height: 22px;
    background: #ccc;
    border-radius: 11px;
    transition: background var(--transition-fast);
    flex-shrink: 0;
}

.sf-toggle__switch::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    background: var(--color-white);
    border-radius: 50%;
    transition: transform var(--transition-fast);
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.sf-toggle__input:checked + .sf-toggle__switch {
    background: #008B8B;
}

.sf-toggle__input:checked + .sf-toggle__switch::after {
    transform: translateX(16px);
}

/* ---- Color Dropdown (Grid) ---- */
.sf-colors-panel {
    min-width: 280px;
    max-height: 350px;
    overflow-y: auto;
}

.sf-colors-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    padding: 4px 0;
}

.sf-color-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    padding: 6px 4px;
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast);
}

.sf-color-item:hover {
    background: #f5f5f5;
}

.sf-color-item.active {
    background: #e8f5f5;
}

.sf-color-item__circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.1);
    flex-shrink: 0;
}

.sf-color-item.active .sf-color-item__circle {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px #008B8B;
}

.sf-color-item__circle--multi {
    background: conic-gradient(
        #FF0000 0deg,
        #FF8800 45deg,
        #FFFF00 90deg,
        #00CC00 135deg,
        #0088FF 180deg,
        #0000FF 225deg,
        #8800FF 270deg,
        #FF00FF 315deg,
        #FF0000 360deg
    );
}

.sf-color-item__name {
    font-size: 11px;
    color: var(--color-secondary);
    text-align: center;
    line-height: 1.2;
}

.sf-color-item.active .sf-color-item__name {
    color: var(--color-primary);
    font-weight: 600;
}

/* Legacy single-column color list */
.sf-colors {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.sf-color {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 6px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    color: var(--color-primary);
    font-size: 13px;
    transition: background var(--transition-fast);
}

.sf-color:hover {
    background: #f5f5f5;
}

.sf-color.active {
    background: #e8f5f5;
    font-weight: 600;
}

.sf-color__circle {
    display: inline-block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--color-border);
    flex-shrink: 0;
}

.sf-color.active .sf-color__circle {
    border-color: #008B8B;
    box-shadow: 0 0 0 2px #008B8B;
}

.sf-color__name {
    line-height: 1.2;
}

.sf-color--clear {
    color: var(--color-secondary);
    font-size: 12px;
    border-top: 1px solid var(--color-border);
    margin-top: 4px;
    padding-top: 10px;
}

.sf-color--clear:hover {
    color: var(--color-primary);
}

/* ---- Size Range Slider ---- */
.sf-size-range {
    padding: 4px 0;
    min-width: 220px;
}

.sf-size-range__inputs {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin-bottom: 16px;
}

.sf-size-range__inputs > div {
    flex: 1;
}

.sf-size-range__label {
    display: block;
    font-size: 11px;
    color: var(--color-secondary);
    margin-bottom: 4px;
}

.sf-size-range__input {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: 14px;
    text-align: center;
    -moz-appearance: textfield;
}

.sf-size-range__input::-webkit-outer-spin-button,
.sf-size-range__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.sf-size-range__sep {
    font-size: 14px;
    color: var(--color-secondary);
    padding-bottom: 8px;
}

.sf-size-range__slider {
    position: relative;
    height: 24px;
    margin-bottom: 14px;
}

.sf-size-range__track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--color-border);
    border-radius: 2px;
    transform: translateY(-50%);
}

.sf-size-range__fill {
    position: absolute;
    top: 50%;
    height: 4px;
    background: #008B8B;
    border-radius: 2px;
    transform: translateY(-50%);
}

.sf-size-range__thumb {
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    pointer-events: none;
    margin: 0;
    padding: 0;
}

.sf-size-range__thumb::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #008B8B;
    cursor: pointer;
    pointer-events: all;
    position: relative;
    z-index: 2;
}

.sf-size-range__thumb::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 3px solid #008B8B;
    cursor: pointer;
    pointer-events: all;
}

.sf-size-range__apply {
    width: 100%;
    padding: 8px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--transition-fast);
}

.sf-size-range__apply:hover {
    background: var(--color-accent);
}

.sf-pill-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 11px;
    font-weight: 600;
    margin-left: 4px;
}

/* Small colour dot shown in pill button when colour is active */
.shop-filter-color-dot {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
}

/* Product count */
/* Count + toolbar wrapper */
.shop-count-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0 16px;
}

.shop-count {
    font-size: 13px;
    color: #8B9A6B;
}

.shop-count .woocommerce-result-count {
    margin: 0;
    color: inherit;
}

.shop-count .woocommerce-result-count {
    margin: 0;
}

/* Shop layout: sidebar + products */
.shop-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 0 16px;
    padding-top: 0;
}

/* Sidebar */
.shop-sidebar__widget {
    border: 1px solid #E8E8E8;
    padding: 24px;
    border-radius: 0;
}

.shop-sidebar__title {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
    padding-bottom: 0;
    border-bottom: none;
}

.shop-sidebar__menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shop-sidebar__menu > li {
    border-bottom: 1px solid #EBEBEB;
}

.shop-sidebar__menu > li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.shop-sidebar__menu > li > a:hover {
    color: var(--color-secondary);
}

/* Arrow for items with sub-menu */
.shop-sidebar__menu > li.menu-item-has-children > a::after {
    content: '';
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #999;
    border-bottom: 1.5px solid #999;
    transform: rotate(45deg);
    flex-shrink: 0;
    margin-left: 8px;
    transition: transform 0.2s;
}

/* Sub menu hidden */
.shop-sidebar__menu .sub-menu {
    list-style: none;
    padding: 0 0 8px 12px;
    margin: 0;
    display: none;
}

.shop-sidebar__menu li.open > .sub-menu {
    display: block;
}

.shop-sidebar__menu li.open > a::after {
    transform: rotate(-135deg);
}

.shop-sidebar__menu .sub-menu a {
    display: block;
    padding: 6px 0;
    font-size: 13px;
    color: #666;
    text-decoration: none;
}

.shop-sidebar__menu .sub-menu a:hover {
    color: var(--color-primary);
}

/* Fallback item style */
.shop-sidebar__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid #EBEBEB;
}

.shop-sidebar__item a {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.shop-sidebar__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-secondary);
}

/* Shop toolbar (per page + sort) — aligned with sidebar top */
.shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: -4px;
    margin-bottom: 16px;
    padding: 0 0 12px;
    border-bottom: 1px solid #EBEBEB;
}

.shop-toolbar__label {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    margin-right: 12px;
}

.shop-toolbar__select,
.shop-toolbar .woocommerce-ordering select {
    padding: 10px 36px 10px 14px;
    border: 1px solid #D0D0D0;
    font-size: 13px;
    background-color: var(--color-white);
    cursor: pointer;
    appearance: auto;
    min-width: 160px;
}

.shop-toolbar__per-page,
.shop-toolbar__sort {
    display: flex;
    align-items: center;
}

.shop-toolbar .woocommerce-ordering {
    margin: 0;
}

/* Hide WC injected elements inside product grid */
.shop-products .woocommerce-result-count,
.shop-products .woocommerce-ordering,
.shop-products .woocommerce-notices-wrapper {
    display: none !important;
}

/* Shop product grid — 3 columns, no extra space */
.shop-products .woocommerce ul.products,
.shop-products ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Ensure no empty first cell */
.shop-products ul.products::before,
.shop-products ul.products::after {
    display: none !important;
}

.shop-products ul.products li.product {
    margin: 0 !important;
    padding: 0 !important;
    width: auto !important;
    float: none !important;
    list-style: none;
}

/* Shop product card (.spc) — same style as homepage .pcs */
.spc {
    background-color: #FFFFFF;
    border: 1px solid #F0F0F0;
    transition: box-shadow var(--transition), border-color var(--transition);
    height: 100%;
    display: flex;
    flex-direction: column;
}

.spc:hover {
    border-color: #E8E8E8;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
}

.spc__image-area {
    position: relative;
    background-color: #FFFFFF;
    aspect-ratio: 3/4;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.spc__image-area img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: transform var(--transition);
}

.spc:hover .spc__image-area img {
    transform: scale(1.03);
}

.spc__image-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

/* Product badges — circular SALE + NEW badges on spc cards */
.spc__badges {
    position: absolute;
    top: 10px;
    left: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    z-index: 2;
}

.spc__badge {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1;
    color: #1A1A1A;
}

.spc__badge--sale {
    background-color: #F4C2C2;
}

.spc__badge--new {
    background-color: #FDDCB5;
}

/* Wishlist heart */
.spc__wishlist {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    z-index: 2;
    color: #D44B6E;
    padding: 4px;
    transition: all var(--transition-fast);
}

.spc__wishlist:hover {
    color: #C41230;
    transform: scale(1.15);
}

.spc__wishlist svg {
    width: 22px;
    height: 22px;
}

/* Details */
.spc__details {
    padding: 14px 12px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Size label */
.spc__size {
    display: block;
    font-size: 12px;
    color: #AAAAAA;
    margin-bottom: 6px;
    line-height: 1;
}

/* Color dots — hidden on cards, only visible via filters */
.spc__colors {
    display: none;
    gap: 5px;
    margin-bottom: 8px;
}

.spc__color-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.15);
}

/* Product name */
.spc__title-link {
    text-decoration: none;
    color: inherit;
}

.spc__title {
    font-family: var(--font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 16px;
    color: var(--color-primary);
    min-height: 42px;
}

/* Price */
.spc__price {
    font-size: 20px;
    font-weight: 400;
    color: var(--color-primary);
    line-height: 1;
    margin-top: auto;
}

.spc__price del {
    color: var(--color-secondary);
    font-weight: 400;
    font-size: 14px;
    margin-right: 4px;
}

.spc__price ins {
    text-decoration: none;
    color: #C41230;
    font-weight: 400;
}

/* Shop pagination */
.shop-pagination {
    text-align: center;
    padding: 32px 0;
}

.shop-pagination .woocommerce-pagination {
    text-align: center;
}

/* Shop topseller section */
.shop-topseller {
    padding: 48px 0;
    border-top: 1px solid var(--color-border-light);
    margin-top: 32px;
}

/* Shop description */
.shop-description {
    padding: 32px 0 48px;
    border-top: 1px solid var(--color-border-light);
    margin-top: 16px;
}

.shop-description h2 {
    font-family: var(--font-heading);
    font-size: 2rem;
    margin-bottom: 16px;
}

.shop-description p {
    color: var(--color-secondary);
    font-size: 14px;
    line-height: 1.7;
}

/* Shop no products */
.shop-no-products {
    text-align: center;
    padding: 64px 0;
    color: var(--color-secondary);
}

/* =============================================
   WOOCOMMERCE OVERRIDES
   ============================================= */

/* Product Loop */
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.woocommerce ul.products li.product {
    margin: 0;
    padding: 0;
    width: auto !important;
    float: none;
}

.woocommerce ul.products li.product a img {
    border-radius: var(--radius-md);
    margin-bottom: 12px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 500;
    padding: 0;
    text-align: center;
}

.woocommerce ul.products li.product .price {
    text-align: center;
    font-size: 14px;
    color: var(--color-primary);
    margin-bottom: 8px;
}

.woocommerce ul.products li.product .price del {
    color: var(--color-secondary);
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    color: var(--color-sale);
    font-weight: 600;
}

.woocommerce ul.products li.product .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 10px 16px;
    background-color: var(--color-accent);
    color: var(--color-white);
    border: 2px solid var(--color-accent);
    border-radius: var(--radius-sm);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all var(--transition);
}

.woocommerce ul.products li.product .button:hover {
    background-color: transparent;
    color: var(--color-accent);
}

/* Single Product */
.woocommerce div.product {
    padding: 48px 0;
}

.woocommerce div.product div.images {
    border-radius: var(--radius-md);
    overflow: hidden;
}

.woocommerce div.product .product_title {
    font-size: 2rem;
    margin-bottom: 12px;
}

.woocommerce div.product p.price {
    font-size: 1.5rem;
    margin-bottom: 20px;
}

.woocommerce div.product .woocommerce-product-details__short-description {
    margin-bottom: 24px;
    color: var(--color-secondary);
    line-height: 1.6;
}

.woocommerce div.product form.cart {
    margin-bottom: 24px;
}

.woocommerce div.product form.cart .quantity input {
    padding: 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    padding: 14px 32px;
    background-color: var(--color-accent);
    border: 2px solid var(--color-accent);
    color: var(--color-white);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: var(--radius-sm);
    transition: all var(--transition);
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background-color: transparent;
    color: var(--color-accent);
}

/* Product Size Info */
.product-size-info {
    margin-bottom: 16px;
    font-size: 14px;
    color: var(--color-secondary);
}

.product-size-info__label {
    font-weight: 600;
    color: var(--color-primary);
}

/* Product Color Info */
.product-color-info {
    margin-bottom: 16px;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.product-color-info__label {
    font-weight: 600;
    color: var(--color-primary);
}

.product-color-info__swatches {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.product-color-info__dot {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.15);
}

/* Color swatches in Additional Information tab */
.attr-color-swatches {
    display: inline-flex;
    gap: 6px;
    align-items: center;
}

.attr-color-dot {
    display: inline-block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.12);
}

/* Delivery Info */
.product-delivery-info {
    margin-top: 20px;
    padding: 16px 0;
    border-top: 1px solid var(--color-border-light);
}

.product-delivery-info__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    font-size: 14px;
    color: var(--color-success);
}

/* =============================================
   SINGLE PRODUCT PAGE — Steiff.com exact
   ============================================= */
.single-product-page .breadcrumbs {
    border-bottom: none;
}

/* 3-column layout: info | main image | thumbnails */
.sp-layout {
    display: grid;
    grid-template-columns: minmax(280px, 30%) 1fr minmax(120px, 14%);
    gap: clamp(20px, 3vw, 48px);
    padding: 20px 0 56px;
    align-items: start;
}

/* LEFT: Product Info */
.sp-info__greeting {
    display: block;
    font-family: var(--font-heading);
    font-size: 1.6rem;
    color: #AAAAAA;
    font-weight: 400;
    margin-bottom: 0;
    line-height: 1.3;
}

.sp-info__title {
    font-family: var(--font-body);
    font-size: clamp(1.5rem, 3vw, 2.8rem);
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 28px;
    color: var(--color-primary);
}

.sp-info__description {
    font-size: 15px;
    line-height: 1.7;
    color: #666;
    margin-bottom: 28px;
}

.sp-info__more {
    display: inline-block;
    font-weight: 700;
    color: var(--color-primary);
    text-decoration: underline;
    font-size: 15px;
}

.sp-info__size {
    margin-bottom: 8px;
    font-size: 15px;
}

.sp-info__size-label {
    color: #AAAAAA;
    margin-right: 8px;
}

.sp-info__size-value {
    font-weight: 700;
    color: var(--color-primary);
}

.sp-info__availability {
    font-size: 14px;
    font-weight: 700;
    color: #5A8F3C;
    margin-bottom: 8px;
}

.sp-info__price-wrap {
    display: flex;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 20px;
    flex-wrap: nowrap;
}

.sp-info__price {
    font-size: clamp(1.5rem, 3vw, 2.8rem);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
    white-space: nowrap;
    flex-shrink: 0;
}

.sp-info__price .woocommerce-Price-amount {
    font-size: inherit;
    font-weight: inherit;
}

.sp-info__price del {
    font-size: 1.5rem;
    color: #999;
    font-weight: 400;
}

.sp-info__price ins {
    text-decoration: none;
    color: var(--color-primary);
}

.sp-info__tax-info {
    font-size: 12px;
    line-height: 1.6;
}

.sp-info__tax-info a {
    color: #8B9A6B;
    text-decoration: underline;
}

.sp-info__tax-info a:hover {
    color: var(--color-primary);
}

/* Variable product form */
.sp-variations {
    margin-bottom: 8px;
}

.sp-variations-form {
    margin: 0;
}

/* Attribute rows */
.sp-var-attributes {
    margin-bottom: 16px;
    display: flex;
    flex-direction: column;
}

.sp-var-row[data-attribute="attribute_pa_color"],
.sp-var-row[data-attribute="attribute_pa_colour"] {
    order: 2;
}

.sp-var-row[data-attribute="attribute_pa_size"] {
    order: 1;
}

.sp-var-clear {
    order: 3;
}

.sp-var-row {
    margin-bottom: 18px;
}

.sp-var-row__label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 10px;
}

/* Color swatches */
.sp-var-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sp-var-color {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 6px;
    border: 2px solid transparent;
    background: none;
    cursor: pointer;
    border-radius: var(--radius-md);
    transition: all var(--transition-fast);
}

.sp-var-color:hover {
    background: #f5f5f5;
}

.sp-var-color.active {
    border-color: #008B8B;
    background: #e8f5f5;
}

.sp-var-color__dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,0.12);
}

.sp-var-color__dot--multi {
    background: conic-gradient(
        #FF0000 0deg, #FF8800 45deg, #FFFF00 90deg,
        #00CC00 135deg, #0088FF 180deg, #0000FF 225deg,
        #8800FF 270deg, #FF00FF 315deg, #FF0000 360deg
    );
}

.sp-var-color__name {
    font-size: 10px;
    color: var(--color-secondary);
    line-height: 1.2;
}

.sp-var-color.active .sp-var-color__name {
    color: var(--color-primary);
    font-weight: 600;
}

/* Size buttons */
.sp-var-sizes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sp-var-size {
    padding: 8px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-white);
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--color-primary);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.sp-var-size:hover {
    border-color: var(--color-primary);
}

.sp-var-size.active {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

/* Disabled (unavailable) swatches */
.sp-var-color.disabled,
.sp-var-size.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
    position: relative;
}

.sp-var-size.disabled::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--color-secondary);
    transform: rotate(-12deg);
}

/* Default select fallback */
.sp-var-select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 14px;
    background: var(--color-white);
    cursor: pointer;
}

/* Reset/Clear link */
.sp-variations .reset_variations,
.sp-variations-form .reset_variations {
    display: none !important;
}

.sp-var-clear {
    display: inline-block;
    font-size: 12px;
    color: var(--color-secondary);
    margin-top: 10px;
    text-decoration: underline;
    cursor: pointer;
}

.sp-var-clear:hover {
    color: var(--color-primary);
}

/* Variation data */
.sp-variations .single_variation_wrap,
.sp-variations-form .single_variation_wrap {
    margin-top: 16px;
}

.sp-variations-form .woocommerce-variation {
    margin-bottom: 12px;
}

.sp-variations-form .woocommerce-variation-price .price {
    font-family: var(--font-heading);
    font-size: 26px;
    font-weight: 700;
    color: var(--color-primary);
}

.sp-variations-form .woocommerce-variation-price .price del {
    color: var(--color-secondary);
    font-weight: 400;
    font-size: 20px;
}

.sp-variations-form .woocommerce-variation-price .price ins {
    text-decoration: none;
    color: var(--color-sale);
}

.sp-variations-form .woocommerce-variation-availability {
    margin-bottom: 12px;
}

.sp-variations-form .woocommerce-variation-availability p {
    color: var(--color-success);
    font-size: 13px;
    margin: 4px 0;
    font-weight: 500;
}

.sp-variations-form .woocommerce-variation-availability .out-of-stock {
    color: var(--color-error);
}

/* Quantity + Add to Cart */
.sp-variations-form .woocommerce-variation-add-to-cart {
    display: flex;
    align-items: stretch;
    gap: 12px;
}

/* Variation add to cart row */
.sp-var-actions {
    display: flex;
    align-items: stretch;
    gap: 12px;
}

.sp-var-actions .sp-qty {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
}

.sp-var-actions .sp-qty .quantity {
    display: contents;
}

.sp-var-actions .sp-qty .sp-qty__input,
.sp-var-actions .sp-qty .qty,
.sp-var-actions .sp-qty input[type="hidden"] {
    display: block !important;
    width: 44px;
    height: 44px;
    text-align: center;
    border: none;
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    font-size: 15px;
    font-family: var(--font-body);
    -moz-appearance: textfield;
    padding: 0;
    background: var(--color-white);
}

.sp-var-actions .sp-qty input::-webkit-outer-spin-button,
.sp-var-actions .sp-qty input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Force quantity visible even when WC sets type=hidden */
.sp-var-actions .sp-qty .quantity input {
    -webkit-appearance: none;
    appearance: none;
}

.sp-var-actions .sp-add-to-cart,
.sp-variations-form .single_add_to_cart_button {
    flex: 1;
    padding: 12px 24px;
    background: var(--color-accent) !important;
    color: var(--color-white) !important;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    border: 2px solid var(--color-accent) !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer;
    transition: all var(--transition);
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-var-actions .sp-add-to-cart:hover,
.sp-variations-form .single_add_to_cart_button:hover {
    background: transparent !important;
    color: var(--color-accent) !important;
}

.sp-var-actions .sp-add-to-cart.disabled,
.sp-variations-form .single_add_to_cart_button.disabled,
.sp-variations-form .single_add_to_cart_button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--color-secondary) !important;
    border-color: var(--color-secondary) !important;
}

/* Hide default WooCommerce table layout if it leaks */
.sp-variations-form .variations {
    display: none;
}

/* Out of stock */
.sp-out-of-stock {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-error);
    padding: 12px 0;
}

/* Actions row: qty + cart + wishlist */
.sp-info__actions {
    display: flex;
    align-items: stretch;
    gap: 12px;
}

/* Custom quantity selector */
.sp-cart-form {
    display: flex;
    align-items: stretch;
    gap: 0;
    flex: 1;
}

.sp-qty {
    display: flex;
    align-items: center;
    border: 1px solid #D0D0D0;
}

.sp-qty__btn {
    width: 40px;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 20px;
    font-weight: 300;
    color: var(--color-primary);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    user-select: none;
}

.sp-qty__btn:hover {
    background-color: #F5F5F5;
}

.sp-qty__input {
    width: 40px;
    text-align: center;
    border: none;
    border-left: 1px solid #D0D0D0;
    border-right: 1px solid #D0D0D0;
    padding: 14px 0;
    font-size: 16px;
    font-weight: 600;
    background: none;
    -moz-appearance: textfield;
}

.sp-qty__input::-webkit-inner-spin-button,
.sp-qty__input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

/* Add to Cart button */
.sp-add-to-cart {
    flex: 1;
    padding: 16px 40px;
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color var(--transition);
    white-space: nowrap;
    font-family: var(--font-body);
}

.sp-add-to-cart:hover {
    background-color: #333;
}

/* Fallback WC cart form */
.sp-info__cart form.cart {
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
}

.sp-info__cart .single_add_to_cart_button {
    flex: 1;
    padding: 16px 40px;
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    border-radius: 0;
}

/* Wishlist heart button — circle */
.sp-wishlist-btn {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #E0E0E0;
    border-radius: 50%;
    background: var(--color-white);
    cursor: pointer;
    color: #D44B6E;
    flex-shrink: 0;
    transition: all var(--transition-fast);
}

.sp-wishlist-btn:hover {
    border-color: #D44B6E;
    color: #C41230;
}

/* CENTER: Main Image */
.sp-image-main {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: -100px;
}

.sp-image-main__img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    object-fit: contain;
    cursor: zoom-in;
}

.sp-image-main__closeup {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    padding: 0;
    background: none;
    border: none;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary);
    cursor: pointer;
}

.sp-closeup-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #F0F0F0;
    border-radius: 50%;
    transition: background-color var(--transition-fast);
}

.sp-image-main__closeup:hover .sp-closeup-icon {
    background: #E0E0E0;
}

/* RIGHT: Thumbnails with arrows */
.sp-thumbnails {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.sp-thumbnails__label {
    font-size: 14px;
    font-weight: 500;
    font-style: italic;
    color: var(--color-primary);
    margin-bottom: 0;
    text-align: center;
    line-height: 1;
}

.sp-thumbs-arrow--up {
    padding: 2px 0;
}

.sp-thumbs-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-height: 440px;
    overflow: hidden;
    width: 100%;
}

.sp-thumb {
    width: 100%;
    aspect-ratio: 1/1;
    border: none;
    padding: 8px;
    background: var(--color-white);
    cursor: pointer;
    transition: opacity var(--transition-fast);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.sp-thumb:hover {
    opacity: 0.7;
}

.sp-thumb.active {
    opacity: 1;
    outline: 1px solid var(--color-primary);
}

.sp-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    aspect-ratio: 1/1;
}

/* Up/Down arrows */
.sp-thumbs-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 6px 0;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-primary);
    transition: color var(--transition-fast);
}

.sp-thumbs-arrow:hover {
    color: var(--color-secondary);
}

.sp-thumbs-arrow svg {
    width: 28px;
    height: 28px;
}

/* Hide WC notices on single product (cart drawer shows instead) */
.single-product-page .woocommerce-message,
.single-product-page .woocommerce-info {
    margin: 0 0 20px;
    padding: 14px 20px;
    background-color: #F0F8F0;
    border-left: 3px solid var(--color-success);
    border-radius: 0;
    font-size: 14px;
}

.single-product-page .woocommerce-message a.button {
    float: right;
    padding: 8px 20px;
    background-color: var(--color-primary);
    color: var(--color-white);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    border: none;
}

/* Related products carousel */
.sp-related {
    border-top: 1px solid var(--color-border-light);
    padding-top: 48px;
    margin-top: 16px;
}

/* Tabs */
.sp-tabs {
    padding: 48px 0;
    border-top: 1px solid var(--color-border-light);
}

/* ---- Accordion (replaces tabs): each section collapses/expands ---- */
.sp-accordion {
    width: 100%;
    margin: 0;
    padding: 24px 0;
    border-top: 1px solid var(--color-border-light);
}
.sp-accordion__item {
    border-bottom: 1px solid #e5e5e5;
}
.sp-accordion__item:first-child {
    border-top: 1px solid #e5e5e5;
}
.sp-accordion__summary {
    list-style: none;
    cursor: pointer;
    padding: 22px 4px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    font-size: 18px;
    font-weight: 700;
    color: #1a1a1a;
    transition: color .15s ease;
    user-select: none;
}
.sp-accordion__summary::-webkit-details-marker,
.sp-accordion__summary::marker {
    display: none !important;
    content: "" !important;
}
.sp-accordion__summary:hover {
    color: #000;
}
.sp-accordion__title {
    font-family: var(--font-serif, Georgia, serif);
    font-size: 22px;
    letter-spacing: .2px;
}
.sp-accordion__chevron {
    flex-shrink: 0;
    color: #666;
    transition: transform .25s ease;
}
.sp-accordion__item[open] > .sp-accordion__summary .sp-accordion__chevron {
    transform: rotate(180deg);
    color: #1a1a1a;
}
.sp-accordion__body {
    padding: 0 4px 28px;
    font-size: 15px;
    line-height: 1.65;
    color: #333;
    animation: sp-accordion-fade .25s ease;
}
@keyframes sp-accordion-fade {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}
/* Neutralise WC's default description heading inside accordion body
   (tabs template prints a redundant "Description" <h2>). */
.sp-accordion__body > h2:first-child {
    display: none;
}

@media (max-width: 640px) {
    .sp-accordion__summary { padding: 18px 0; font-size: 16px; }
    .sp-accordion__title { font-size: 18px; }
}

/* ---- Steiff-style spec card inside Additional Information tab ---- */
.sp-specs {
    padding: 16px 0 0;
}
.sp-specs__title {
    text-align: center;
    font-family: var(--font-serif, Georgia, serif);
    font-size: 30px;
    font-weight: 700;
    color: #111;
    margin: 8px 0 36px;
    line-height: 1.2;
}
.sp-specs__layout {
    display: grid;
    grid-template-columns: 1fr minmax(220px, 300px) 1fr;
    gap: 32px;
    align-items: center;
    max-width: 1000px;
    margin: 0 auto;
}
.sp-specs__col {
    display: flex;
    flex-direction: column;
    gap: 26px;
}
.sp-specs__col--left { align-items: flex-end; }
.sp-specs__col--right { align-items: flex-start; }
.sp-specs__item {
    display: flex;
    align-items: center;
    gap: 16px;
    max-width: 280px;
}
.sp-specs__item--left { flex-direction: row; text-align: right; }
.sp-specs__item--right { flex-direction: row; text-align: left; }
.sp-specs__text { flex: 1; min-width: 0; line-height: 1.4; }
.sp-specs__text strong {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #000;
    margin-bottom: 2px;
}
.sp-specs__text span {
    display: block;
    font-size: 13px;
    color: #888;
}
.sp-specs__icon {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 1.5px solid #e5e5e5;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    overflow: hidden;
}

/* Colour swatches — replaces the generic icon for colour attributes */
.sp-specs__icon--swatch {
    padding: 6px;
    gap: 3px;
    flex-wrap: wrap;
}
.sp-specs__swatch {
    display: block;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0,0,0,.08) inset;
}
/* Single colour: the swatch IS the circle — fills the whole 50×50 container. */
.sp-specs__icon--swatch-single {
    padding: 0 !important;
    border: 0 !important;
    background: transparent;
}
.sp-specs__icon--swatch-single .sp-specs__swatch {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(0,0,0,.1) inset;
}
.sp-specs__center img {
    display: block;
    width: 100%;
    max-width: 300px;
    margin: 0 auto;
    height: auto;
}

@media (max-width: 900px) {
    .sp-tabs .woocommerce-tabs ul.tabs {
        gap: 28px;
    }
    .sp-tabs .woocommerce-tabs ul.tabs li a {
        padding: 12px 2px;
        font-size: 13px;
        letter-spacing: 1px;
    }
    /* Keep the desktop 3-column layout on mobile, just compact */
    .sp-specs__title {
        font-size: 22px;
        margin-bottom: 20px;
    }
    .sp-specs__layout {
        grid-template-columns: 1fr minmax(100px, 140px) 1fr;
        gap: 10px;
        align-items: center;
        max-width: 100%;
    }
    .sp-specs__col {
        gap: 16px;
    }
    .sp-specs__col--left { align-items: flex-end; }
    .sp-specs__col--right { align-items: flex-start; }
    .sp-specs__item {
        gap: 8px;
        max-width: none;
    }
    .sp-specs__item--left {
        flex-direction: row;
        text-align: right;
    }
    .sp-specs__item--right {
        flex-direction: row;
        text-align: left;
    }
    .sp-specs__icon {
        width: 38px;
        height: 38px;
    }
    .sp-specs__icon svg {
        width: 18px;
        height: 18px;
    }
    .sp-specs__text strong {
        font-size: 12px;
    }
    .sp-specs__text span {
        font-size: 11px;
    }
    .sp-specs__center img {
        max-width: 140px;
    }
}
/* Very small phones — tighter icons only, keep 3-col layout */
@media (max-width: 480px) {
    .sp-specs__layout {
        grid-template-columns: 1fr minmax(80px, 110px) 1fr;
        gap: 6px;
    }
    .sp-specs__col {
        gap: 14px;
    }
    .sp-specs__item {
        gap: 6px;
    }
    .sp-specs__icon {
        width: 34px;
        height: 34px;
    }
    .sp-specs__icon svg {
        width: 16px;
        height: 16px;
    }
    .sp-specs__text strong {
        font-size: 11px;
    }
    .sp-specs__text span {
        font-size: 10.5px;
    }
    .sp-specs__center img {
        max-width: 110px;
    }
    .sp-specs__title {
        font-size: 18px;
        margin-bottom: 16px;
    }
}

/* Responsive single product */
@media (max-width: 991px) {
    /* Single-column, image FIRST then info. Using flex-column so the
       `order` values below still work (grid didn't centre the image). */
    .sp-layout {
        display: flex !important;
        flex-direction: column !important;
        grid-template-columns: unset !important;
        gap: 20px !important;
        padding: 16px 0 40px;
        align-items: stretch;
    }

    .sp-info {
        order: 3;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .sp-image-main {
        order: 1;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px !important;
        padding: 0 !important;
        text-align: center !important;
        float: none !important;
    }

    .sp-image-main__img {
        display: block !important;
        width: auto !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 70vh !important;
        aspect-ratio: auto !important;
        object-fit: contain;
        margin: 0 auto !important;
        float: none !important;
    }

    .sp-image-main__closeup {
        display: inline-flex !important;
        margin: 14px auto 0 !important;
    }

    .sp-thumbnails {
        order: 2;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 8px;
    }

    .sp-thumbs-list {
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
    }

    .sp-thumb {
        width: 80px;
        flex-shrink: 0;
    }

    .sp-thumbs-arrow {
        display: none;
    }

    .sp-thumbnails__label {
        display: none;
    }

    .sp-info__title {
        font-size: 1.75rem;
    }

    .sp-info__price {
        font-size: 2rem;
    }
}

/* Product Tabs */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 48px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--color-border);
    padding: 0;
    margin: 0 0 32px;
    list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after {
    display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin: 0 0 -2px;
    padding: 0;
    border-radius: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--color-accent);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-secondary);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--color-primary);
}

/* Related Products */
/* Default WC related products hidden — we use custom carousel */
.woocommerce .related.products {
    display: none;
}

/* Cart */
.woocommerce-cart .woocommerce-cart-form table {
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

.woocommerce table.shop_table th {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    background-color: var(--color-border-light);
}

/* =============================================
   CHECKOUT — Classic Shortcode [woocommerce_checkout]
   ============================================= */

/* Checkout two-column layout */
.steiff-checkout {
    display: flex;
    gap: 50px;
    max-width: 100%;
    margin: 0 auto;
}

.steiff-checkout__left {
    flex: 1;
    min-width: 0;
}

.steiff-checkout__right {
    width: 420px;
    flex-shrink: 0;
}

.steiff-checkout__right #order_review {
    position: sticky;
    top: 100px;
}

/* Coupon notice */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    background: var(--color-footer-bg);
    border: none;
    border-left: 3px solid var(--color-primary);
    padding: 14px 20px;
    font-size: 14px;
    margin-bottom: 30px;
}

/* Billing/Shipping columns — single column */
.woocommerce-checkout .col2-set {
    margin-bottom: 20px;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: 100%;
    float: none;
    padding: 0;
}

/* Section headings */
.woocommerce-checkout h3,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--color-primary);
    margin: 30px 0 20px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

/* Form rows */
.woocommerce-checkout .form-row,
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last,
.woocommerce-checkout .form-row-wide {
    margin-bottom: 18px;
    padding: 0 !important;
    float: none !important;
    width: 100% !important;
    box-sizing: border-box;
}

.woocommerce-checkout .woocommerce-input-wrapper {
    width: 100% !important;
}

/* First + Last name side by side */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row {
    flex: 1 1 100% !important;
    width: 100% !important;
}

.woocommerce-checkout #billing_first_name_field,
.woocommerce-checkout #billing_last_name_field {
    flex: 1 1 calc(50% - 8px) !important;
    width: calc(50% - 8px) !important;
}

/* Labels */
.woocommerce-checkout .form-row label {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 6px;
    display: block;
}

.woocommerce-checkout .form-row label .required {
    color: var(--color-error);
}

/* All inputs */
.woocommerce-checkout .woocommerce-input-wrapper input,
.woocommerce-checkout .woocommerce-input-wrapper textarea,
.woocommerce-checkout .woocommerce-input-wrapper select,
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select {
    width: 100% !important;
    padding: 12px 14px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    color: var(--color-primary) !important;
    background: var(--color-white) !important;
    box-sizing: border-box !important;
    transition: border-color var(--transition-fast);
}

.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus {
    border-color: var(--color-primary) !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Select2 override */
.woocommerce-checkout .select2-container {
    width: 100% !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single {
    height: 46px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    padding: 8px 14px !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 28px !important;
    font-size: 14px !important;
    color: var(--color-primary) !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
}

/* Order notes */
.woocommerce-checkout #order_comments {
    min-height: 100px;
    resize: vertical;
}

/* Order review */
.woocommerce-checkout #order_review_heading {
    margin-top: 0;
}

.woocommerce-checkout #order_review {
    background: var(--color-footer-bg);
    padding: 24px;
    border-radius: var(--radius-sm);
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 14px;
    text-align: left;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table th {
    font-weight: 600;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
    font-size: 18px;
    font-weight: 700;
    border-bottom: none;
    padding-top: 16px;
}

/* Payment methods */
.woocommerce-checkout #payment {
    background: transparent !important;
    border-radius: 0 !important;
}

.woocommerce-checkout #payment ul.payment_methods {
    padding: 0 !important;
    margin-bottom: 20px;
    border: none !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border-light);
    list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li label {
    font-size: 14px;
    font-weight: 500;
}

.woocommerce-checkout #payment div.payment_box {
    background: var(--color-white) !important;
    border-radius: var(--radius-sm);
    padding: 14px;
    font-size: 13px;
    color: var(--color-secondary);
}

/* Place order button */
.woocommerce #place_order {
    width: 100%;
    padding: 16px 24px;
    background-color: var(--color-accent) !important;
    border: 2px solid var(--color-accent) !important;
    color: var(--color-white) !important;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition);
    margin-top: 16px;
}

.woocommerce #place_order:hover {
    background-color: transparent !important;
    color: var(--color-accent) !important;
}

/* Privacy text */
.woocommerce-checkout .woocommerce-privacy-policy-text p {
    font-size: 12px;
    color: var(--color-secondary);
    margin-top: 12px;
}

/* Hide unnecessary fields */
.woocommerce-checkout #billing_company_field,
.woocommerce-checkout #shipping_company_field,
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field,
.woocommerce-checkout #billing_city_field,
.woocommerce-checkout #shipping_city_field,
.woocommerce-checkout #billing_state_field,
.woocommerce-checkout #shipping_state_field,
.woocommerce-checkout #billing_postcode_field,
.woocommerce-checkout #shipping_postcode_field,
.woocommerce-checkout #billing_address_2_field,
.woocommerce-checkout #shipping_address_2_field {
    display: none !important;
}

/* Responsive checkout */
@media (max-width: 768px) {
    .steiff-checkout {
        flex-direction: column;
        gap: 30px;
    }

    .steiff-checkout__right {
        width: 100%;
    }

    .steiff-checkout__right #order_review {
        position: static;
    }

    .woocommerce-checkout #billing_first_name_field,
    .woocommerce-checkout #billing_last_name_field {
        flex: 1 1 100% !important;
    }

    .woocommerce-checkout #order_review {
        padding: 16px;
    }
}

/* WooCommerce Notices — Global */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border: none !important;
    border-radius: var(--radius-sm) !important;
    padding: 14px 20px !important;
    margin: 0 0 20px !important;
    font-size: 14px !important;
    font-family: var(--font-body) !important;
    line-height: 1.5 !important;
    background: #F0F8F0 !important;
    border-left: 3px solid var(--color-success) !important;
    color: var(--color-primary) !important;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    display: none !important;
}

.woocommerce-info {
    background: #F0F4FF !important;
    border-left-color: #4A90D9 !important;
}

.woocommerce-error {
    background: #FFF5F5 !important;
    border-left-color: var(--color-error) !important;
    color: var(--color-error) !important;
}

.woocommerce-message a.button,
.woocommerce-message a.restore-item {
    float: right;
    padding: 6px 16px;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-sm);
}

.woocommerce-message a.button:hover {
    background: #333;
}

/* =============================================
   RESPONSIVE
   ============================================= */

/* Tablet Landscape */
@media (max-width: 1199px) {
    .products-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr);
    }

    .world-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .content-area--sidebar {
        grid-template-columns: 1fr 240px;
        gap: 32px;
    }
}

/* Tablet Portrait */
@media (max-width: 991px) {
    /* Flatten layout so sidebar pill + toolbar pills + products grid become one flow */
    .shop-layout {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        grid-template-columns: none !important;
    }

    .shop-products {
        display: contents;
    }

    /* Toolbar: own row below categories — two selects share row equally */
    .shop-toolbar {
        flex: 0 0 100%;
        width: 100%;
        flex-direction: row;
        gap: 8px;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        justify-content: flex-start;
    }

    .shop-toolbar__per-page,
    .shop-toolbar__sort {
        flex: 1 1 0;
        min-width: 0;
    }

    .shop-toolbar__select,
    .shop-toolbar .woocommerce-ordering select {
        width: 100%;
    }

    /* Products grid + pagination + no-products + count take a full row below pills */
    .shop-products .woocommerce ul.products,
    .shop-products ul.products,
    .shop-pagination,
    .shop-no-products,
    .shop-count-toolbar {
        flex: 0 0 100%;
        width: 100%;
    }

    .shop-count-toolbar {
        padding: 4px 0 0 !important;
        margin-top: 8px;
    }

    .shop-products .woocommerce ul.products,
    .shop-products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        max-width: 100%;
    }

    .shop-layout {
        min-width: 0;
        max-width: 100%;
    }

    .spc,
    .spc__image-area {
        min-width: 0;
        max-width: 100%;
    }

    .spc__image-area img {
        max-width: 100%;
        max-height: 100%;
        width: auto;
        height: auto;
    }

    .shop-filters__pills {
        overflow-x: auto;
        flex-wrap: nowrap;
        scrollbar-width: none;
    }

    .site-header__inner {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        height: 60px;
        gap: 0;
        padding: 0 12px;
    }

    .site-branding {
        margin-right: auto;
        order: 1;
        flex-shrink: 0;
    }

    .site-branding__logo {
        height: 58px !important;
        width: auto !important;
    }

    .site-branding__title {
        font-size: 18px !important;
    }

    .mobile-menu-toggle {
        display: flex;
        order: 0;
        margin-right: 12px;
    }

    .main-navigation {
        display: none;
    }

    .header-search {
        display: none;
    }

    .header-actions {
        order: 3;
        margin-left: 0;
        gap: 2px;
    }

    .header-action-item__label {
        display: none;
    }

    .header-action-item {
        padding: 6px;
    }

    .header-action-item svg {
        width: 20px;
        height: 20px;
    }

    .promo-bar {
        display: none;
    }

    .site-header {
        top: 0 !important;
    }

    /* Shop filters — mobile: pills wrap so dropdowns aren't clipped */
    .shop-filters {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 12px 0;
        overflow: visible !important;
        position: relative;
    }

    .shop-filters__pills {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        width: 100%;
        overflow: visible;
    }

    .shop-filter-pill {
        padding: 9px 14px;
        font-size: 12px;
        white-space: nowrap;
    }

    /* Mobile dropdown — panel spans full row width, anchored to the row (categories pattern) */
    .shop-filters__row--dropdowns {
        position: relative;
    }
    .sf-dropdown {
        position: static;
    }

    .sf-dropdown__panel {
        position: absolute !important;
        top: calc(100% + 6px) !important;
        bottom: auto !important;
        left: 0 !important;
        right: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: 70vh;
        overflow-y: auto;
        border-radius: 8px;
        box-shadow: 0 6px 18px rgba(0,0,0,0.12);
        z-index: 250 !important;
        padding: 16px;
        background: #fff;
        border: 1px solid #E8E8E8;
    }

    /* Shop toolbar — hide labels and pill-style the selects */
    .shop-toolbar__label {
        display: none !important;
    }

    .shop-toolbar__select,
    .shop-toolbar .woocommerce-ordering select {
        padding: 9px 30px 9px 14px !important;
        min-width: auto !important;
        border: 1px solid var(--color-border) !important;
        border-radius: 20px !important;
        font-size: 12px !important;
        font-weight: 400;
        color: var(--color-primary);
        background-color: var(--color-white) !important;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
        background-repeat: no-repeat;
        background-position: right 12px center;
        background-size: 10px;
        white-space: nowrap;
    }

    .shop-filter-clear {
        font-size: 12px;
    }

    /* Shop grid — 2 columns on mobile */
    .shop-products-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }

    .spc__title {
        font-size: 13px;
    }

    .spc__price {
        font-size: 13px;
    }

    /* Shop count toolbar */
    .shop-count-toolbar {
        flex-direction: column;
        gap: 8px;
        align-items: flex-start;
    }

    .hero-slider__track {
        height: 400px;
    }

    .hero-slider__title {
        font-size: 2rem;
    }

    .advisor-banners {
        grid-template-columns: 1fr;
    }

    .newsletter-section__inner {
        flex-direction: column;
        text-align: center;
        gap: 24px;
    }

    .newsletter-form {
        max-width: 100%;
    }

    .footer-columns {
        grid-template-columns: repeat(2, 1fr);
    }

    .content-area--sidebar {
        grid-template-columns: 1fr;
    }

    .content-sidebar {
        display: none;
    }
}

/* Mobile */
@media (max-width: 767px) {
    :root {
        --header-height: 60px;
    }

    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.5rem; }

    .shop-toolbar {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
    }

    .shop-filters {
        flex-direction: column;
        align-items: flex-start;
    }

    .shop-subcats {
        gap: 12px;
    }

    .shop-subcat {
        width: 110px;
    }

    .section {
        padding: 48px 0;
    }

    .section__title {
        margin-bottom: 32px;
    }

    .hero-slider__track {
        height: 350px;
    }

    .hero-slider__title {
        font-size: 1.75rem;
    }

    .hero-slider__subtitle {
        font-size: 0.875rem;
    }

    .hero-slider__arrow {
        width: 36px;
        height: 36px;
    }

    .hero-slider__arrow--prev { left: 12px; }
    .hero-slider__arrow--next { right: 12px; }

    .teasers-grid-steiff {
        grid-template-columns: 1fr;
    }

    .gifts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .world-grid-steiff {
        grid-template-columns: 1fr;
    }

    .pcs {
        flex: 0 0 160px;
        min-width: 160px;
    }

    .pcs__title {
        font-size: 14px;
        min-height: auto;
    }

    .pcs__price {
        font-size: 15px;
    }

    .pcs__badges {
        top: 6px;
        left: 6px;
    }

    .pcs__badge {
        width: 40px;
        height: 40px;
        font-size: 9px;
    }

    .pcs__wishlist {
        top: 10px;
        right: 10px;
    }

    .pcs__wishlist svg {
        width: 18px;
        height: 18px;
    }

    .products-carousel__arrow {
        width: 32px;
        height: 32px;
    }

    .products-carousel__arrow--prev { left: -8px; }
    .products-carousel__arrow--next { right: -8px; }

    .products-carousel__arrow svg {
        width: 16px;
        height: 16px;
    }

    .newsletter-section {
        flex-direction: column;
    }

    .newsletter-section__discount {
        flex: none;
        padding: 24px;
        flex-direction: row;
        gap: 8px;
    }

    .newsletter-section__form-area {
        padding: 24px;
    }

    .newsletter-form__field {
        flex-direction: column;
    }

    .newsletter-form__categories {
        flex-direction: column;
        gap: 8px;
    }

    .products-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        max-width: 100%;
    }

    /* Shop products: tighter gap on small phones, ensure cards never overflow */
    .shop-products .woocommerce ul.products,
    .shop-products ul.products {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    .spc__image-area {
        padding: 12px;
    }

    .world-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }

    .advisor-banner {
        padding: 32px;
    }

    .footer-columns {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .footer-badges {
        flex-direction: column;
        gap: 16px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: center;
        gap: 12px;
        text-align: center;
    }

    .posts-grid {
        grid-template-columns: 1fr;
    }

    .single-post__title {
        font-size: 1.75rem;
    }

    .page-content__title {
        font-size: 1.75rem;
    }

    /* Mobile Bottom Nav */
    .mobile-bottom-nav {
        display: flex;
        justify-content: space-around;
    }

    /* Add padding at bottom for bottom nav */
    .site-footer {
        padding-bottom: 80px;
    }

    .back-to-top {
        bottom: 72px;
    }

    /* Mini Cart Full Width */
    .mini-cart {
        width: 100%;
    }
}

/* Small Mobile */
@media (max-width: 575px) {
    .hero-slider__track {
        height: 280px;
    }

    .hero-slider__title {
        font-size: 1.5rem;
    }

    .hero-placeholder {
        padding: 60px 0;
    }

    .hero-placeholder__title {
        font-size: 2rem;
    }

    .products-grid,
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .product-card__title {
        font-size: 12px;
    }

    .product-card__price {
        font-size: 12px;
    }

    .error-404__title {
        font-size: 5rem;
    }
}

/* =============================================
   ENTRY CONTENT (Gutenberg blocks)
   ============================================= */
.entry-content > *:not(.alignwide):not(.alignfull) {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.entry-content .alignwide {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.entry-content .alignfull {
    width: 100vw;
    margin-left: calc(-50vw + 50%);
}

/* =============================================
   CART PAGE — Steiff.com style
   ============================================= */
.steiff-cart {
    padding: 32px 0 64px;
}

.steiff-cart__title {
    font-family: var(--font-body);
    font-size: 2rem;
    font-weight: 800;
    margin-bottom: 32px;
}

.steiff-cart__count {
    font-weight: 400;
    color: #999;
}

.steiff-cart__layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    align-items: start;
}

/* Cart Item Card */
.cart-item {
    display: flex;
    gap: 24px;
    padding: 28px;
    border: 1px solid #E0E0E0;
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    background: var(--color-white);
}

.cart-item__image {
    flex-shrink: 0;
    width: 160px;
}

.cart-item__image img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.cart-item__details {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.cart-item__top {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.cart-item__info {
    flex: 1;
}

.cart-item__name {
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 6px;
}

.cart-item__name a {
    color: var(--color-primary);
    text-decoration: none;
}

.cart-item__sku {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 4px;
}

.cart-item__stock {
    font-size: 13px;
    font-weight: 700;
    color: #5A8F3C;
    margin-bottom: 4px;
}

.cart-item__size,
.cart-item__qty-label {
    font-size: 13px;
    color: #666;
    margin-bottom: 2px;
}

.cart-item__price-col {
    text-align: right;
    flex-shrink: 0;
}

.cart-item__price {
    font-size: 22px;
    font-weight: 800;
    display: block;
    margin-bottom: 2px;
}

.cart-item__vat {
    font-size: 11px;
    color: #999;
}

.cart-item__remove {
    display: inline-flex;
    align-items: center;
    margin-top: 8px;
    color: #666;
    transition: color var(--transition-fast);
}

.cart-item__remove:hover {
    color: #C41230;
}

/* Quantity */
.cart-item__quantity {
    margin-bottom: 16px;
}

.cart-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #D0D0D0;
}

.cart-qty__btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 18px;
    font-weight: 300;
    color: var(--color-primary);
    cursor: pointer;
}

.cart-qty__btn:hover {
    background: #F5F5F5;
}

.cart-qty__input {
    width: 36px;
    height: 36px;
    text-align: center;
    border: none;
    border-left: 1px solid #D0D0D0;
    border-right: 1px solid #D0D0D0;
    font-size: 15px;
    font-weight: 600;
    -moz-appearance: textfield;
}

.cart-qty__input::-webkit-inner-spin-button,
.cart-qty__input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

/* Bottom actions */
.cart-item__actions {
    display: flex;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid #E8E8E8;
    font-size: 13px;
}

.cart-item__edit {
    color: var(--color-primary);
    text-decoration: underline;
    font-weight: 500;
}

.cart-item__favorite {
    background: none;
    border: none;
    color: var(--color-primary);
    text-decoration: underline;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

/* Update cart button (hidden, auto-submit) */
.cart-update-btn {
    display: none;
}

/* RIGHT: Total Amount Sidebar */
.cart-totals {
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 32px 28px;
}

.cart-totals__title {
    font-family: var(--font-body);
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: 24px;
}

.cart-totals__rows {
    margin-bottom: 16px;
}

.cart-totals__row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: 14px;
    color: var(--color-primary);
}

/* Coupon */
.cart-coupon {
    padding: 16px 0;
    border-top: 1px solid #DDD;
    border-bottom: 1px solid #DDD;
    margin-bottom: 16px;
}

.cart-coupon__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    color: var(--color-primary);
}

.cart-coupon__toggle::-webkit-details-marker {
    display: none;
}

.cart-coupon__form {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.cart-coupon__input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #D0D0D0;
    font-size: 13px;
}

.cart-coupon__btn {
    padding: 10px 20px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* Grand total */
.cart-totals__grand {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    background: var(--color-footer-bg);
    margin: 16px -28px 0;
    padding: 20px 28px;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.cart-totals__grand-label {
    font-size: 16px;
    font-weight: 800;
}

.cart-totals__grand-value {
    text-align: right;
}

.cart-totals__grand-price {
    font-size: 26px;
    font-weight: 800;
}

.cart-totals__grand-vat {
    display: block;
    font-size: 11px;
    color: #999;
    text-align: right;
}

/* Checkout button */
.cart-totals__checkout {
    margin-top: 20px;
}

.cart-checkout-btn {
    display: block;
    width: 100%;
    padding: 16px;
    background-color: var(--color-primary);
    color: var(--color-white);
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.cart-checkout-btn:hover {
    background-color: transparent;
    color: var(--color-primary);
}

/* Terms */
.cart-totals__terms {
    margin-top: 16px;
    font-size: 12px;
    color: #999;
    text-align: center;
}

.cart-totals__terms a {
    color: #999;
    text-decoration: underline;
}

/* Cart responsive */
@media (max-width: 991px) {
    .steiff-cart__layout {
        grid-template-columns: 1fr;
    }

    .cart-item {
        flex-direction: column;
        gap: 16px;
    }

    .cart-item__image {
        width: 120px;
    }

    .cart-item__top {
        flex-direction: column;
    }

    .cart-item__price-col {
        text-align: left;
    }
}

/* =============================================
   CART PAGE — Steiff.com custom template (.sc)
   ============================================= */
.sc {
    padding: 32px 0 80px;
}

.sc__title {
    font-family: var(--font-body);
    font-size: 2.2rem;
    font-weight: 800;
    margin-bottom: 32px;
}

.sc__count {
    font-weight: 400;
    color: #999;
    font-size: 1.5rem;
}

.sc__layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 40px;
    align-items: start;
}

/* Empty cart */
.sc__empty {
    text-align: center;
    padding: 80px 0;
    color: var(--color-secondary);
    font-size: 16px;
}

.sc__continue-btn {
    display: inline-block;
    margin-top: 20px;
    padding: 14px 40px;
    background: var(--color-primary);
    color: var(--color-white);
    font-weight: 600;
    text-decoration: none;
}

/* Update cart button — hidden, auto-submit on qty change */
.sc__update-btn {
    display: none;
}

/* --- Cart Item Card --- */
.sc-item {
    display: flex;
    gap: 24px;
    border: 1px solid #E0E0E0;
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 28px;
    margin-bottom: 16px;
    background: var(--color-white);
}

.sc-item__img {
    flex-shrink: 0;
    width: 160px;
}

.sc-item__img img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.sc-item__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.sc-item__row-top {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.sc-item__info {
    flex: 1;
}

.sc-item__name {
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 6px;
}

.sc-item__name a {
    color: var(--color-primary);
    text-decoration: none;
}

.sc-item__meta {
    font-size: 13px;
    color: var(--color-primary);
    margin-bottom: 3px;
}

.sc-item__stock {
    font-size: 13px;
    font-weight: 700;
    color: #5A8F3C;
    margin-bottom: 3px;
}

.sc-item__price-col {
    text-align: right;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.sc-item__price {
    font-size: 22px;
    font-weight: 800;
}

.sc-item__vat {
    font-size: 11px;
    color: #999;
}

.sc-item__delete {
    display: inline-flex;
    margin-top: 8px;
    color: #999;
    transition: color var(--transition-fast);
}

.sc-item__delete:hover {
    color: #C41230;
}

/* Quantity */
.sc-item__qty {
    margin-bottom: 20px;
}

.sc-qty {
    display: inline-flex;
    align-items: center;
    border: 1px solid #D0D0D0;
}

.sc-qty__btn {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    font-size: 18px;
    font-weight: 300;
    color: var(--color-primary);
    cursor: pointer;
}

.sc-qty__btn:hover {
    background: #F5F5F5;
}

.sc-qty__input {
    width: 38px;
    height: 38px;
    text-align: center;
    border: none;
    border-left: 1px solid #D0D0D0;
    border-right: 1px solid #D0D0D0;
    font-size: 15px;
    font-weight: 600;
    -moz-appearance: textfield;
}

.sc-qty__input::-webkit-inner-spin-button,
.sc-qty__input::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

/* Bottom actions */
.sc-item__actions {
    display: flex;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid #EBEBEB;
}

.sc-item__link,
button.sc-item__link,
.cart-item__favorite,
.cart-item__edit {
    -webkit-appearance: none;
    appearance: none;
    background: transparent !important;
    border: 0 !important;
    outline: none;
    box-shadow: none !important;
    padding: 0;
    margin: 0;
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: underline;
    cursor: pointer;
    line-height: 1.4;
}
.sc-item__link:hover,
button.sc-item__link:hover,
.cart-item__favorite:hover,
.cart-item__edit:hover {
    color: #000;
    text-decoration: underline;
}
.sc-item__link:focus,
button.sc-item__link:focus,
.cart-item__favorite:focus,
.cart-item__edit:focus {
    outline: none;
}
.sc-item__link:focus-visible,
button.sc-item__link:focus-visible,
.cart-item__favorite:focus-visible,
.cart-item__edit:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* --- Sidebar Totals --- */
.sc-totals {
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    padding: 32px 28px;
}

.sc-totals__title {
    font-family: var(--font-body);
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: 24px;
}

.sc-totals__row {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    font-size: 14px;
}

.sc-totals__row--discount {
    color: #5A8F3C;
}

/* Coupon */
.sc-coupon {
    padding: 16px 0;
    border-top: 1px solid #DDD;
    border-bottom: 1px solid #DDD;
    margin: 16px 0;
}

.sc-coupon__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.sc-coupon__toggle::-webkit-details-marker {
    display: none;
}

.sc-coupon__form {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.sc-coupon__input {
    flex: 1;
    padding: 10px 12px;
    border: 1px solid #D0D0D0;
    font-size: 13px;
}

.sc-coupon__btn {
    padding: 10px 20px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* Grand total */
.sc-totals__grand {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    background: var(--color-footer-bg);
    margin: 16px -28px 0;
    padding: 24px 28px;
    border-radius: 0 0 var(--radius-sm) var(--radius-sm);
}

.sc-totals__grand-label {
    font-size: 16px;
    font-weight: 800;
}

.sc-totals__grand-val {
    text-align: right;
}

.sc-totals__grand-price {
    font-size: 26px;
    font-weight: 700;
    display: block;
}

.sc-totals__grand-vat {
    font-size: 11px;
    color: #999;
}

/* Checkout button */
.sc-checkout-btn {
    display: block;
    width: 100%;
    padding: 18px;
    background-color: var(--color-primary);
    color: var(--color-white);
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    margin-top: 24px;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius-sm);
    transition: all var(--transition);
}

.sc-checkout-btn:hover {
    background-color: transparent;
    color: var(--color-primary);
}

/* Terms */
.sc-totals__terms {
    margin-top: 16px;
    font-size: 12px;
    color: #999;
    text-align: center;
}

.sc-totals__terms a {
    color: #999;
    text-decoration: underline;
}

/* Responsive */
@media (max-width: 991px) {
    .sc__layout {
        grid-template-columns: 1fr;
    }

    .sc-item {
        flex-direction: column;
        gap: 16px;
    }

    .sc-item__img {
        width: 120px;
    }

    .sc-item__row-top {
        flex-direction: column;
    }

    .sc-item__price-col {
        text-align: left;
        align-items: flex-start;
    }
}

/* =============================================
   CART PAGE — WooCommerce block/classic full-width
   ============================================= */

/* Force cart page content full width */
.woocommerce-cart .page-content {
    max-width: 100% !important;
    padding: 0 !important;
}

.woocommerce-cart .page-content__body {
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 var(--container-padding) 64px !important;
}

.woocommerce-cart .page-content__header {
    max-width: 100%;
    margin: 0 auto;
    padding: 16px var(--container-padding) 0;
}

.woocommerce-cart .page-content__title {
    font-family: var(--font-body) !important;
    font-size: 2.2rem !important;
    font-weight: 800 !important;
    text-align: left !important;
    margin-bottom: 24px !important;
}

/* Remove white space gaps */
.woocommerce-cart .page-content {
    padding-bottom: 0 !important;
}

.woocommerce-cart .site-main {
    padding-bottom: 48px;
}

/* WC blocks container full width */
.woocommerce-cart .wp-block-woocommerce-cart,
.woocommerce-cart .wc-block-cart {
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 var(--container-padding) !important;
}

.woocommerce-cart .entry-content > * {
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ---- Page wrapper ---- */
.woocommerce-cart .wp-block-group,
.woocommerce-cart .entry-content,
.woocommerce-cart .page-content__body {
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 var(--container-padding) !important;
}

/* ---- Hide default WC heading, use our own ---- */
.woocommerce-cart .wp-block-heading {
    font-family: var(--font-body) !important;
    font-size: 2rem !important;
    font-weight: 800 !important;
    margin-bottom: 28px !important;
}

/* ---- Block Cart ---- */
.wc-block-cart,
.wp-block-woocommerce-cart {
    padding: 0 16px !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

.wc-block-cart .wc-block-cart__main,
.wp-block-woocommerce-cart .wc-block-cart__main {
    border: none !important;
    box-shadow: none !important;
}

/* Cart item row */
.wc-block-cart-items__row,
.wp-block-woocommerce-cart .wc-block-cart-items__row {
    border: 1px solid #E0E0E0 !important;
    border-radius: 0 !important;
    padding: 24px !important;
    margin-bottom: 12px !important;
    overflow: visible !important;
}

/* Product image — desktop */
.wc-block-cart-item__image {
    width: 120px !important;
    min-width: 120px !important;
    margin-right: 20px !important;
}

.wc-block-cart-item__image img {
    border-radius: 0 !important;
    width: 100% !important;
    height: auto !important;
}

/* Cart prices & sale badge */
.wc-block-cart-item__total .wc-block-formatted-money-amount {
    font-family: var(--font-body) !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
}

.wc-block-components-product-price__regular {
    text-decoration: line-through !important;
    color: var(--color-secondary) !important;
    font-weight: 400 !important;
}

.wc-block-components-product-price__value--on-sale {
    color: var(--color-primary) !important;
}

/* Sale badge in cart — keep WooCommerce default style */

/* Product name in cart */
.wc-block-components-product-name {
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--color-primary) !important;
    text-decoration: none !important;
}

/* Quantity in cart */
.wc-block-components-quantity-selector {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
}

.wc-block-components-quantity-selector__button {
    color: var(--color-primary) !important;
}

/* Remove link in cart */
.wc-block-cart-item__remove-link {
    color: var(--color-secondary) !important;
    font-size: 12px !important;
}

/* Mobile cart */
@media (max-width: 767px) {
    .wc-block-cart-items__row {
        padding: 16px !important;
    }

    .wc-block-cart-item__image {
        width: 80px !important;
        min-width: 80px !important;
        margin-right: 12px !important;
    }

    .wc-block-components-product-name {
        font-size: 13px !important;
        word-break: break-word !important;
    }

    .wc-block-cart-item__total .wc-block-formatted-money-amount {
        font-size: 14px !important;
    }

    .wc-block-cart .wc-block-cart__sidebar {
        padding: 20px 16px !important;
    }

    .wc-block-components-totals-footer-item {
        margin: 12px -16px 0 !important;
        padding: 16px !important;
    }
}

/* Product name */
.wc-block-components-product-name {
    font-family: var(--font-body) !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    text-decoration: none !important;
}

/* Product meta */
.wc-block-components-product-metadata {
    font-size: 13px !important;
    color: #666 !important;
}

/* Price */
.wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-item__total .wc-block-formatted-money-amount {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
}

/* Quantity selector */
.wc-block-components-quantity-selector {
    border: 1px solid #D0D0D0 !important;
    border-radius: 0 !important;
    overflow: hidden;
}

.wc-block-components-quantity-selector__button {
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    font-size: 18px !important;
    color: var(--color-primary) !important;
    min-width: 36px !important;
}

.wc-block-components-quantity-selector__button:hover {
    background: #F5F5F5 !important;
}

.wc-block-components-quantity-selector__input {
    border: none !important;
    border-left: 1px solid #D0D0D0 !important;
    border-right: 1px solid #D0D0D0 !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    width: 40px !important;
    min-width: 40px !important;
}

/* Remove button */
.wc-block-cart-item__remove-link {
    color: #666 !important;
    font-size: 13px !important;
    text-decoration: underline !important;
}

.wc-block-cart-item__remove-link:hover {
    color: #C41230 !important;
}

/* ---- Sidebar (totals) ---- */
.wc-block-cart__sidebar,
.wp-block-woocommerce-cart .wc-block-cart__sidebar {
    background-color: #F5F5F5 !important;
    padding: 32px 28px !important;
    border: none !important;
    border-radius: 0 !important;
}

/* Sidebar title */
.wc-block-cart__sidebar .wc-block-components-sidebar-layout h2,
.wc-block-cart__sidebar .wp-block-heading {
    font-family: var(--font-body) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    margin-bottom: 20px !important;
}

/* Totals rows */
.wc-block-components-totals-wrapper {
    border: none !important;
}

.wc-block-components-totals-item {
    padding: 8px 0 !important;
}

.wc-block-components-totals-item__label {
    font-size: 14px !important;
    color: var(--color-primary) !important;
}

.wc-block-components-totals-item__value {
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Footer total */
.wc-block-components-totals-footer-item {
    background: var(--color-white) !important;
    margin: 16px -28px 0 !important;
    padding: 20px 28px !important;
    border-top: none !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 16px !important;
    font-weight: 800 !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 24px !important;
    font-weight: 700 !important;
}

/* Coupon toggle */
.wc-block-components-totals-coupon__button-text {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--color-primary) !important;
}

/* Checkout button — ALL variants */
.wc-block-cart__submit-button,
.wc-block-cart__submit-container .wc-block-components-button,
.wc-block-cart__submit-container a,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart .wc-block-components-button {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: var(--font-body) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 16px 24px !important;
    width: 100% !important;
    text-align: center !important;
    cursor: pointer;
    transition: background-color 0.3s ease !important;
    text-decoration: none !important;
    display: block !important;
}

.wc-block-cart .wc-block-components-button:hover,
.wc-block-cart__submit-container .wc-block-components-button:hover {
    background-color: #333 !important;
    color: var(--color-white) !important;
}

/* Coupon form */
.wc-block-components-totals-coupon__form {
    gap: 8px;
}

.wc-block-components-totals-coupon__content input {
    border: 1px solid #D0D0D0 !important;
    border-radius: 0 !important;
    padding: 10px 12px !important;
}

/* ---- Classic shortcode cart (fallback) ---- */
.woocommerce-cart .woocommerce {
    max-width: 100%;
    margin: 0 auto;
    padding: 32px var(--container-padding) 64px;
}

.woocommerce-cart table.shop_table {
    border: 1px solid #E0E0E0 !important;
    border-collapse: collapse !important;
    border-radius: 0 !important;
    width: 100% !important;
}

.woocommerce-cart table.shop_table th {
    background-color: #F5F5F5 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    padding: 12px 16px !important;
}

.woocommerce-cart table.shop_table td {
    padding: 20px 16px !important;
    border-top: 1px solid #E8E8E8 !important;
    vertical-align: middle !important;
}

.woocommerce-cart .cart_totals {
    background-color: #F5F5F5;
    padding: 28px;
}

.woocommerce-cart .cart_totals h2 {
    font-family: var(--font-body) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    margin-bottom: 20px !important;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
    border-radius: 0 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    padding: 16px !important;
    display: block !important;
    text-align: center !important;
}

/* =============================================
   WooCommerce Mobile Sticky Add to Cart
   ============================================= */
@media (max-width: 767px) {
    .woocommerce div.product form.cart {
        position: fixed;
        bottom: 56px;
        left: 0;
        right: 0;
        background-color: var(--color-white);
        padding: 12px 16px;
        box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
        z-index: 80;
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 0;
    }

    .woocommerce div.product form.cart .quantity {
        flex-shrink: 0;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button {
        flex: 1;
        padding: 12px 16px;
    }
}

/* =============================================
   WISHLIST
   ============================================= */

/* Wishlisted heart — filled red */
.pcs__wishlist.wishlisted,
.spc__wishlist.wishlisted,
.sp-wishlist-btn.wishlisted {
    color: #C41230;
}

.pcs__wishlist.wishlisted svg,
.spc__wishlist.wishlisted svg,
.sp-wishlist-btn.wishlisted svg {
    fill: currentColor;
}

/* Wishlist count badge in header */
.wishlist-count {
    position: absolute;
    top: -4px;
    right: -6px;
    background-color: #C41230;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    min-width: 16px;
    height: 16px;
    padding: 2px 4px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.header-action-item__icon {
    position: relative;
}

/* ----- Wishlist Page ----- */
.wishlist-page {
    padding-bottom: 80px;
}

.wishlist-page__header {
    padding: 40px 0 32px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 40px;
}

.wishlist-page__title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 600;
    color: var(--color-primary);
}

.wishlist-page__count {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    color: var(--color-secondary);
}

/* Wishlist grid — 4 columns, compact */
.wishlist-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    max-width: 1200px;
}

.wishlist-grid__item {
    transition: opacity 0.3s, transform 0.3s;
}

/* Card actions (Add to Cart + Remove) */
.wishlist-card__actions {
    margin-top: auto;
    padding-top: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.wishlist-card__actions .btn {
    flex: 1;
    padding: 10px 16px;
    font-size: 11px;
    letter-spacing: 1.5px;
}

.wishlist-card__actions .btn.loading {
    opacity: 0.6;
    pointer-events: none;
}

.wishlist-remove-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--color-secondary);
    font-size: 12px;
    font-family: var(--font-body);
    padding: 8px 4px;
    transition: color var(--transition-fast);
    white-space: nowrap;
}

.wishlist-remove-btn:hover {
    color: var(--color-error);
}

.wishlist-remove-btn svg {
    flex-shrink: 0;
}

.wishlist-out-of-stock {
    opacity: 0.5;
    pointer-events: none;
    font-size: 11px;
}

/* Empty wishlist state */
.wishlist-empty {
    text-align: center;
    padding: 80px 20px;
}

.wishlist-empty__icon {
    color: var(--color-border);
    margin-bottom: 24px;
}

.wishlist-empty__title {
    font-family: var(--font-heading);
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 12px;
}

.wishlist-empty__text {
    color: var(--color-secondary);
    font-size: 15px;
    margin-bottom: 32px;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

/* Wishlist page responsive */
@media (max-width: 991px) {
    .wishlist-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

@media (max-width: 575px) {
    .wishlist-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }

    .wishlist-page__header {
        padding: 24px 0 20px;
        margin-bottom: 24px;
    }

    .wishlist-page__title {
        font-size: 1.5rem;
    }

    .wishlist-card__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .wishlist-card__actions .btn {
        text-align: center;
    }

    .wishlist-remove-btn {
        justify-content: center;
    }
}

/* =============================================
   ABOUT PAGE - THE STEIFF STORY
   ============================================= */

/* Hero */
.about-hero {
    text-align: center;
    padding: clamp(60px, 8vw, 120px) clamp(20px, 5vw, 60px) clamp(40px, 6vw, 80px);
    max-width: 800px;
    margin: 0 auto;
}

.about-hero__subtitle {
    display: block;
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--color-secondary);
    margin-bottom: 12px;
}

.about-hero__divider {
    width: 40px;
    height: 1px;
    background-color: var(--color-secondary);
    margin: 0 auto 24px;
}

.about-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(36px, 5vw, 56px);
    font-weight: 400;
    line-height: 1.15;
    color: var(--color-primary);
    margin-bottom: 20px;
}

.about-hero__heading {
    font-family: var(--font-heading);
    font-size: clamp(18px, 2.5vw, 24px);
    font-weight: 400;
    color: var(--color-primary);
    margin-bottom: 24px;
}

.about-hero__text {
    font-size: 14px;
    line-height: 1.8;
    color: var(--color-secondary);
}

.about-hero__text p + p {
    margin-top: 16px;
}

/* Quote Banner */
.about-quote {
    background-color: #D8C8D8;
    padding: clamp(50px, 7vw, 90px) 20px;
    text-align: center;
}

.about-quote__inner {
    max-width: 700px;
    margin: 0 auto;
}

.about-quote__text {
    font-family: var(--font-heading);
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 400;
    font-style: italic;
    line-height: 1.3;
    color: var(--color-primary);
    margin-bottom: 16px;
}

.about-quote__author {
    display: block;
    font-family: var(--font-body);
    font-style: normal;
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-secondary);
}

/* Timeline */
.about-timeline {
    padding: clamp(60px, 8vw, 100px) 0;
    background-color: var(--color-bg);
}

.about-timeline .container {
    max-width: 1100px;
    position: relative;
}

/* Timeline center line */
.about-timeline .container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 100%;
    background-color: var(--color-border);
}

/* Timeline Item */
.timeline-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    position: relative;
    margin-bottom: clamp(40px, 5vw, 70px);
}

/* Year marker */
.timeline-item__year {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 0;
    background-color: var(--color-bg);
    padding: 4px 12px;
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 600;
    color: var(--color-primary);
    z-index: 1;
}

/* Right layout: content on the right */
.timeline-item--right .timeline-item__content {
    grid-column: 2;
    padding-left: 30px;
}

.timeline-item--right .timeline-item__image {
    grid-column: 1;
    grid-row: 1;
    padding-right: 30px;
}

/* Left layout: content on the left */
.timeline-item--left .timeline-item__content {
    grid-column: 1;
    text-align: right;
    padding-right: 30px;
}

.timeline-item--left .timeline-item__image {
    grid-column: 2;
    grid-row: 1;
    padding-left: 30px;
}

/* When no image, content still stays on correct side */
.timeline-item--right .timeline-item__content:first-of-type:last-of-type {
    grid-column: 2;
}

.timeline-item--left .timeline-item__content:first-of-type:last-of-type {
    grid-column: 1;
}

.timeline-item__title {
    font-family: var(--font-heading);
    font-size: clamp(18px, 2vw, 22px);
    font-weight: 600;
    margin-bottom: 12px;
    color: var(--color-primary);
    padding-top: 6px;
}

.timeline-item__content p {
    font-size: 14px;
    line-height: 1.8;
    color: var(--color-secondary);
}

.timeline-item__image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    filter: grayscale(30%);
    transition: filter var(--transition);
}

.timeline-item__image img:hover {
    filter: grayscale(0%);
}

/* About Page Responsive */
@media (max-width: 768px) {
    .about-timeline .container::before {
        left: 20px;
    }

    .timeline-item {
        display: block;
        padding-left: 50px;
    }

    .timeline-item__year {
        left: 20px;
        transform: translateX(-50%);
        font-size: 16px;
    }

    .timeline-item--left .timeline-item__content,
    .timeline-item--right .timeline-item__content {
        text-align: left;
        padding: 0;
    }

    .timeline-item--left .timeline-item__image,
    .timeline-item--right .timeline-item__image {
        padding: 0;
        margin-bottom: 16px;
    }

    .timeline-cta__grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================
   CHECKOUT PAGE — Steiff Custom Template
   ============================================= */

.checkout-page__title {
    font-family: var(--font-body);
    font-size: clamp(1.8rem, 3vw, 2.2rem);
    font-weight: 800;
    text-align: left;
    margin: clamp(20px, 3vw, 30px) 0 clamp(20px, 3vw, 36px);
}

/* Two-column layout */
.steiff-co {
    display: flex;
    gap: clamp(30px, 4vw, 60px);
    align-items: flex-start;
}

.steiff-co__left {
    flex: 1;
    min-width: 0;
}

.steiff-co__right {
    width: clamp(340px, 35%, 440px);
    flex-shrink: 0;
    position: sticky;
    top: 100px;
}

/* Sections */
.steiff-co__section {
    margin-bottom: 32px;
}

.steiff-co__heading {
    font-family: var(--font-body);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--color-primary);
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 20px;
    margin-top: 0;
}

/* Fields */
.steiff-co__field {
    margin-bottom: 18px;
}

.steiff-co__field label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    margin-bottom: 6px;
}

.steiff-co__field label .required,
.steiff-co__field label abbr {
    color: var(--color-error);
    text-decoration: none;
}

.steiff-co__input,
.steiff-co__textarea {
    width: 100%;
    padding: 16px 16px;
    border: 1px solid #D0D0D0;
    border-radius: 0;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--color-primary);
    background: var(--color-white);
    transition: border-color var(--transition-fast);
    box-sizing: border-box;
}

.steiff-co__input:hover,
.steiff-co__textarea:hover {
    border-color: #999;
}

.steiff-co__input:focus,
.steiff-co__textarea:focus {
    border-color: var(--color-primary);
    outline: none;
}

.steiff-co__input::placeholder,
.steiff-co__textarea::placeholder {
    color: #B0B0B0;
    font-size: 13px;
}

.steiff-co__textarea {
    min-height: 100px;
    resize: vertical;
}

/* Half-width row */
.steiff-co__row--half {
    display: flex;
    gap: 16px;
}

.steiff-co__row--half .steiff-co__field {
    flex: 1;
}

/* Order summary card */
.steiff-co__order {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 0;
    padding: clamp(24px, 2vw, 32px);
}

.steiff-co__order .steiff-co__heading {
    font-size: 1.3rem;
    font-weight: 800;
    margin-bottom: 6px;
}

.steiff-co__order-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 20px;
    font-size: 14px;
    font-weight: 600;
}

.steiff-co__order-meta a {
    text-decoration: underline;
    color: var(--color-primary);
}

/* Order items */
.steiff-co__items {
    margin-bottom: 20px;
}

.steiff-co__item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px 0;
    border-bottom: 1px solid var(--color-border-light);
}

.steiff-co__item:last-child {
    border-bottom: none;
}

.steiff-co__item-img {
    position: relative;
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border-light);
}

.steiff-co__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.steiff-co__item-qty {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    font-size: 11px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}

.steiff-co__item-info {
    flex: 1;
    min-width: 0;
}

.steiff-co__item-name {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 4px;
}

.steiff-co__item-attr {
    display: block;
    font-size: 12px;
    color: var(--color-secondary);
    line-height: 1.6;
}

.steiff-co__item-price {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-primary);
    white-space: nowrap;
    text-align: right;
    margin-left: auto;
}

/* Coupon */
.steiff-co__coupon {
    border-top: 1px solid var(--color-border);
    padding-top: 14px;
    margin-bottom: 14px;
}

.steiff-co__coupon summary {
    font-size: 13px;
    color: var(--color-secondary);
    cursor: pointer;
}

.steiff-co__coupon-form {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.steiff-co__coupon-form .steiff-co__input {
    flex: 1;
    padding: 10px 12px;
    font-size: 13px;
}

.steiff-co__coupon-btn {
    padding: 10px 20px;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background var(--transition-fast);
}

.steiff-co__coupon-btn:hover {
    background: #333;
}

/* Totals */
.steiff-co__totals {
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
    margin-bottom: 20px;
}

.steiff-co__totals-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    font-size: 14px;
    color: var(--color-secondary);
}

.steiff-co__totals-row--coupon {
    color: var(--color-success);
}

.steiff-co__totals-row--total {
    background: var(--color-footer-bg);
    margin: 12px -24px 0;
    padding: 18px 24px;
    font-size: 18px;
    font-weight: 800;
    color: var(--color-primary);
    border-top: none;
}

/* Payment methods */
.steiff-co__payment {
    border-top: 1px solid var(--color-border);
    padding-top: 16px;
    margin-bottom: 20px;
}

.steiff-co__payment .wc_payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}

.steiff-co__payment .wc_payment_methods li {
    padding: 0;
    margin-bottom: 10px;
}

.steiff-co__payment .wc_payment_methods label {
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-primary);
}

.steiff-co__payment .wc_payment_methods input[type="radio"] {
    accent-color: var(--color-primary);
}

.steiff-co__payment .payment_box {
    background: transparent;
    padding: 6px 0 0 24px;
    margin: 0;
    font-size: 13px;
    color: var(--color-secondary);
    line-height: 1.5;
}

.steiff-co__payment .payment_box::before {
    display: none;
}

/* Submit button */
.steiff-co__submit {
    width: 100%;
    padding: 18px 24px;
    background: var(--color-accent);
    color: var(--color-white);
    border: 2px solid var(--color-accent);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    cursor: pointer;
    transition: all var(--transition);
    margin-top: 8px;
}

.steiff-co__submit:hover {
    background: transparent;
    color: var(--color-accent);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.steiff-co__submit:active {
    transform: translateY(0);
}

.steiff-co__privacy {
    font-size: 11px;
    color: var(--color-secondary);
    margin-top: 16px;
    line-height: 1.6;
    text-align: center;
}

/* Responsive */
@media (max-width: 768px) {
    .steiff-co {
        flex-direction: column;
    }

    .steiff-co__right {
        width: 100%;
        position: static;
    }

    .steiff-co__row--half {
        flex-direction: column;
        gap: 0;
    }
}

/* =============================================
   CHECKOUT PAGE — WooCommerce Overrides
   ============================================= */

/* Hide default coupon notice at top (we have one in order summary) */
.checkout-page .woocommerce-form-coupon-toggle,
.checkout-page .woocommerce-form-coupon {
    display: none !important;
}

/* Hide duplicate WC privacy text and terms (we have our own) */
.checkout-page .woocommerce-privacy-policy-text,
.checkout-page .woocommerce-terms-and-conditions-wrapper {
    display: none !important;
}

/* WC notices styling */
.checkout-page .woocommerce-error,
.checkout-page .woocommerce-message,
.checkout-page .woocommerce-info {
    padding: 14px 20px;
    border-radius: var(--radius-sm);
    margin-bottom: 20px;
    font-size: 14px;
}

.checkout-page .woocommerce-error {
    background: #FFF5F5;
    border-left: 3px solid var(--color-error);
    color: var(--color-error);
}

.checkout-page .woocommerce-message {
    background: #F0FFF4;
    border-left: 3px solid var(--color-success);
}

/* Page title */
.woocommerce-checkout .page-content__title,
.woocommerce-checkout .wp-block-heading {
    font-family: var(--font-heading) !important;
    font-size: clamp(1.8rem, 3vw, 2.5rem) !important;
    font-weight: 400 !important;
    text-align: center !important;
    margin-bottom: 32px !important;
}

/* Section headings */
.wc-block-checkout .wc-block-components-checkout-step__heading,
.wc-block-checkout h2 {
    font-family: var(--font-heading) !important;
    font-size: 1.3rem !important;
    font-weight: 400 !important;
    color: var(--color-primary) !important;
}

/* Form fields */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox .components-combobox-control input,
.wc-block-checkout select {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    padding: 12px 14px !important;
    transition: border-color var(--transition-fast) !important;
}

.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input textarea:focus {
    border-color: var(--color-primary) !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Labels */
.wc-block-checkout .wc-block-components-text-input label {
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    color: var(--color-secondary) !important;
}

/* Order summary sidebar */
.wc-block-checkout .wc-block-components-order-summary {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    padding: 24px !important;
}

.wc-block-checkout .wc-block-components-order-summary__button {
    font-family: var(--font-body) !important;
    font-weight: 700 !important;
}

/* Product in summary */
.wc-block-components-order-summary-item__description .wc-block-components-product-name {
    font-size: 13px !important;
    font-weight: 600 !important;
}

/* Totals */
.wc-block-components-totals-wrapper {
    border-top: 1px solid var(--color-border) !important;
}

.wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
    font-family: var(--font-body) !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-weight: 700 !important;
}

/* Place order button */
.wc-block-components-checkout-place-order-button {
    background: var(--color-primary) !important;
    color: var(--color-white) !important;
    border: 2px solid var(--color-primary) !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    padding: 16px 24px !important;
    width: 100% !important;
    transition: all var(--transition) !important;
}

.wc-block-components-checkout-place-order-button:hover {
    background: transparent !important;
    color: var(--color-primary) !important;
}

/* Hide fields: Country, Town/City, State/County, Postcode, apartment line */
.wc-block-checkout [id*="country"],
.wc-block-checkout [id*="city"],
.wc-block-checkout [id*="state"],
.wc-block-checkout [id*="postcode"],
.wc-block-checkout .wc-block-components-address-form__address_2-toggle,
.wc-block-checkout [id*="address-2"],
#billing-country,
#shipping-country,
#billing-city,
#shipping-city,
#billing-state,
#shipping-state,
#billing-postcode,
#shipping-postcode {
    display: none !important;
}

/* Also hide via WC block field names */
.wc-block-components-address-form__country,
.wc-block-components-address-form__city,
.wc-block-components-address-form__state,
.wc-block-components-address-form__postcode,
.wc-block-components-address-form__address_2 {
    display: none !important;
}

/* Order notes / message */
.wc-block-checkout .wc-block-components-textarea {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: 14px !important;
    min-height: 80px !important;
    padding: 12px 14px !important;
}

/* =============================================
   CONTACT PAGE
   ============================================= */

.contact-hero {
    text-align: center;
    padding: clamp(50px, 8vw, 100px) 20px clamp(40px, 5vw, 60px);
    background: var(--color-footer-bg);
    margin-bottom: clamp(30px, 4vw, 50px);
}

.contact-hero__subtitle {
    display: block;
    font-size: 11px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--color-secondary);
    margin-bottom: 14px;
}

.contact-hero__title {
    font-family: var(--font-heading);
    font-size: clamp(32px, 5vw, 50px);
    font-weight: 400;
    margin-bottom: 18px;
    line-height: 1.15;
}

.contact-hero__text {
    font-size: 15px;
    color: var(--color-secondary);
    max-width: 520px;
    margin: 0 auto;
    line-height: 1.8;
}

/* Layout */
.contact-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 48px;
    padding-bottom: 80px;
    align-items: start;
}

/* Cards */
.contact-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 32px;
    margin-bottom: 24px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: box-shadow var(--transition);
}

.contact-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.contact-card--muted {
    background: var(--color-footer-bg);
    border: none;
    box-shadow: none;
}

.contact-card--muted:hover {
    box-shadow: none;
}

.contact-card__title {
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 14px;
    color: var(--color-primary);
    letter-spacing: -0.2px;
}

.contact-card__text {
    font-size: 14px;
    color: var(--color-secondary);
    line-height: 1.7;
    margin-bottom: 16px;
}

.contact-card__text:last-child {
    margin-bottom: 0;
}

.contact-card__text a {
    color: var(--color-primary);
    text-decoration: underline;
    font-weight: 600;
}

.contact-card__text a:hover {
    color: var(--color-secondary);
}

/* Address */
.contact-card__address {
    font-size: 14px;
    line-height: 1.8;
    margin-bottom: 16px;
    color: var(--color-primary);
}

.contact-card__address p {
    margin-bottom: 2px;
}

.contact-card__phone {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding: 8px 16px;
    background: var(--color-footer-bg);
    border-radius: var(--radius-sm);
}

.contact-card__phone a {
    font-weight: 700;
    color: var(--color-primary);
    font-size: 15px;
}

.contact-card__hours {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    color: var(--color-secondary);
    line-height: 1.6;
    background: var(--color-footer-bg);
    padding: 14px 18px;
    border-radius: var(--radius-sm);
}

.contact-card__hours svg {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--color-primary);
}

/* Links */
.contact-card__links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-card__links--grid {
    gap: 8px;
}

.contact-card__link {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    padding: 12px 18px;
    background: var(--color-footer-bg);
    border-radius: var(--radius-sm);
    transition: all var(--transition-fast);
    border: 1px solid transparent;
}

.contact-card__link:hover {
    background: var(--color-white);
    border-color: var(--color-border);
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

.contact-card__link svg {
    color: var(--color-secondary);
    flex-shrink: 0;
}

/* Button */
.contact-card__btn {
    display: inline-block;
    padding: 12px 32px;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: all var(--transition);
    border: 2px solid var(--color-primary);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.contact-card__btn:hover {
    background: transparent;
    color: var(--color-primary);
}

/* Sidebar */
.contact-resources {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 28px;
    margin-bottom: 20px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    position: sticky;
    top: 100px;
}

.contact-resources__title {
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 800;
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 2px solid var(--color-primary);
}

.contact-resources__list {
    list-style: none;
    padding: 0;
}

.contact-resources__list li {
    margin-bottom: 0;
}

.contact-resources__list a {
    display: flex;
    align-items: center;
    padding: 12px 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--color-border-light);
    transition: all var(--transition-fast);
}

.contact-resources__list a::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid var(--color-secondary);
    border-bottom: 1.5px solid var(--color-secondary);
    transform: rotate(-45deg);
    margin-right: 10px;
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.contact-resources__list a:hover::before {
    transform: rotate(-45deg) translate(2px, 2px);
    border-color: var(--color-primary);
}

.contact-resources__list li:last-child a {
    border-bottom: none;
}

.contact-resources__list a:hover {
    color: var(--color-secondary);
    padding-left: 4px;
}

.contact-notice {
    background: var(--color-footer-bg);
    border-radius: var(--radius-md);
    padding: 24px;
    margin-top: 20px;
}

.contact-notice p {
    font-size: 12px;
    color: var(--color-secondary);
    line-height: 1.8;
}

/* Responsive */
@media (max-width: 768px) {
    .contact-layout {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .contact-card {
        padding: 24px;
    }

    .contact-resources {
        position: static;
    }
}

/* =============================================
   ANIMATIONS
   ============================================= */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.fade-in {
    animation: fadeIn 0.6s ease forwards;
}

