/* WooCommerce-specific styling that has no Astro counterpart: single product,
   cart, checkout, account, notices, pagination. Uses the shared tokens. */
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.category-products { padding: var(--space-6) var(--space-3); background: var(--color-surface); }
@media (min-width: 900px) { .category-products { padding: var(--space-6); } }
.category-products .products-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3) var(--space-2); max-width: 1400px; margin: 0 auto; }
@media (min-width: 700px) { .category-products .products-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-3); } }
@media (min-width: 1100px) { .category-products .products-grid { grid-template-columns: repeat(4, 1fr); } }

.navigation.pagination { margin-top: var(--space-6); text-align: center; }
.navigation.pagination .page-numbers { display: inline-block; padding: var(--space-1) var(--space-2); }
.navigation.pagination .current { color: var(--color-accent); border-bottom: 1px solid currentColor; }

/* Single product */
.product-page { max-width: 1200px; margin: 0 auto; padding: var(--space-4) var(--space-3) var(--space-12); }
.crumbs { margin-bottom: var(--space-3); font-size: .8rem; letter-spacing: .04em; color: var(--color-ink-muted); }
.crumbs a:hover { color: var(--color-accent); }
.single-grid { display: grid; gap: var(--space-4); }
@media (min-width: 900px) { .single-grid { grid-template-columns: 1.1fr 1fr; gap: var(--space-8); align-items: start; } }
.single-gallery { display: grid; gap: var(--space-2); }
.single-gallery img { display: block; width: 100%; height: auto; border-radius: var(--radius-sm); background: var(--color-surface-alt); }
.single-summary h1 { font-size: clamp(1.8rem, 3vw + 1rem, 2.6rem); line-height: 1.15; }
.single-price { margin: var(--space-2) 0 0; font-size: 1.4rem; display: flex; gap: var(--space-2); align-items: baseline; }
.single-price .price-old { color: var(--color-ink-muted); text-decoration: line-through; font-size: 1rem; }
.single-tax, .single-sku { margin: .25rem 0 0; font-size: .8rem; color: var(--color-ink-muted); }
.single-excerpt { margin: var(--space-3) 0; color: var(--color-ink-muted); line-height: 1.7; }
.single-cart form.cart { display: flex; gap: var(--space-2); align-items: stretch; flex-wrap: wrap; }
.single-cart .quantity input { width: 4.5rem; height: 100%; padding: var(--space-2); border: 1px solid var(--color-surface-alt); border-radius: var(--radius-sm); background: var(--color-surface); font: inherit; text-align: center; }
.single-details { margin-top: var(--space-8); padding-top: var(--space-4); border-top: 1px solid var(--color-surface-alt); max-width: 68ch; line-height: 1.7; color: var(--color-ink-muted); }
.single-details h2 { font-size: 1.35rem; margin-bottom: var(--space-2); color: var(--color-ink); }
.wishlist-inline { position: static; display: inline-flex; align-items: center; gap: var(--space-1); margin-top: var(--space-3); padding: var(--space-1) 0; background: none; border: 0; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-ink); }
.wishlist-inline svg { width: 1.1rem; height: 1.1rem; }
.wishlist-inline[aria-pressed="true"] svg { fill: var(--color-accent); stroke: var(--color-accent); }

/* Buttons shared by WooCommerce forms */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.single_add_to_cart_button, .wc-block-components-button {
	display: inline-block;
	padding: var(--space-2) var(--space-4);
	border: 0;
	border-radius: var(--radius-sm);
	background: var(--color-ink);
	color: var(--color-accent-ink);
	font: 600 .8rem var(--font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--duration-fast) var(--ease-standard);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .single_add_to_cart_button:hover { background: var(--color-accent); color: var(--color-accent-ink); }

/* Cart / checkout / account */
.prose--wide { max-width: 1100px; }
.prose--wide table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.prose--wide th, .prose--wide td { padding: var(--space-2); border-bottom: 1px solid var(--color-surface-alt); text-align: left; vertical-align: middle; }
.prose--wide input[type="text"], .prose--wide input[type="email"], .prose--wide input[type="tel"], .prose--wide input[type="password"], .prose--wide input[type="number"], .prose--wide select, .prose--wide textarea {
	width: 100%; padding: var(--space-2); border: 1px solid var(--color-surface-alt); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-ink); font: inherit;
}
.prose--wide label { display: block; margin-bottom: .25rem; font-size: .85rem; color: var(--color-ink-muted); }
.prose--wide .form-row { margin-bottom: var(--space-2); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { margin: 0 0 var(--space-3); padding: var(--space-2) var(--space-3); list-style: none; background: var(--color-surface-alt); border-left: 3px solid var(--color-accent); }
.woocommerce-error { border-left-color: #b3261e; }
.woocommerce-cart-form img { width: 64px; height: auto; border-radius: var(--radius-sm); }

/* Safety net against inherited blockquote styling. */
.testimonials .quote { padding: 0; border: 0; }

/* Specific enough to beat WooCommerce's own button colors. */
.single-cart .single_add_to_cart_button,
.single-cart button.button.alt {
	padding: var(--space-2) var(--space-4);
	border: 0;
	border-radius: var(--radius-sm);
	background: var(--color-ink);
	color: var(--color-accent-ink);
	font: 600 .8rem var(--font-body);
	letter-spacing: .08em;
	text-transform: uppercase;
}
.single-cart .single_add_to_cart_button:hover { background: var(--color-accent); }

/* ---- Header: logo image, truly centred, dropdown, language switch ---- */
.site-header .wordmark { display: flex; justify-content: center; align-items: center; line-height: 0; }
.site-header .wordmark img { display: block; width: auto; height: 44px; }
@media (min-width: 1100px) {
	.site-header .nav-row { display: grid; grid-template-columns: 1fr auto 1fr; }
	.site-header .primary-nav { justify-self: start; }
	.site-header .icon-actions { justify-self: end; }
	.site-header .wordmark img { height: 52px; }
}
/* Below 1100px the full desktop menu does not fit: use the hamburger. */
@media (max-width: 1099px) {
	.site-header .menu-toggle { display: inline-flex; }
	.site-header .primary-nav { display: none; }
	.site-header .wordmark { flex: 1; }
	.site-header .mobile-nav.is-open { display: block !important; }
}
.site-header .cart-count { top: .2rem; right: .15rem; }
.site-header .primary-nav .has-sub { position: relative; }
.site-header .primary-nav .sub {
	position: absolute; top: 100%; left: -1rem; z-index: 20; min-width: 12rem;
	display: none; flex-direction: column; gap: 0; padding: var(--space-1) 0;
	background: var(--color-surface); border: 1px solid var(--color-surface-alt);
	box-shadow: 0 8px 24px var(--color-ink-shadow);
}
.site-header .primary-nav .has-sub:hover .sub, .site-header .primary-nav .has-sub:focus-within .sub { display: flex; }
.site-header .primary-nav .sub a { display: block; padding: .6rem 1rem; }
.site-header .mobile-nav ul { max-height: calc(100svh - 7rem); overflow-y: auto; }
.site-header .mobile-nav .sub-item a { padding-left: var(--space-3); color: var(--color-ink-muted); }
.lang-switch { display: inline-flex; align-items: center; gap: .35rem; margin-right: var(--space-1); font-size: .75rem; letter-spacing: .08em; color: var(--color-ink-muted); }
.lang-switch a { padding: .25rem .1rem; }
.lang-switch a[aria-current="true"] { color: var(--color-ink); font-weight: 600; border-bottom: 1px solid currentColor; }
.lang-switch a:hover { color: var(--color-accent); }

/* ---- Footer: logo + payment strip (icons only, no live gateways yet) ---- */
.site-footer .brand-logo { display: block; width: auto; height: 72px; }
.site-footer .footer-payments {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4);
	max-width: 1440px; margin: 0 auto; padding: var(--space-3);
	border-top: 1px solid var(--color-surface-alt);
}
.footer-payments__heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem var(--space-2); }
.footer-payments__title { font-size: .75rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--color-ink); }
.footer-payments__status { font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; color: var(--color-ink-muted); }
.footer-payments__list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.footer-payments__list li {
	display: flex; min-width: 7rem; min-height: 2.4rem; align-items: center; justify-content: center; padding: .45rem .8rem;
	border: 1px solid var(--color-ink-scrim-soft); background: var(--color-surface-scrim); color: var(--color-ink-muted); line-height: 1; opacity: .8;
}
.payment-logo { display: inline-flex; align-items: center; color: currentColor; white-space: nowrap; font-family: Arial, sans-serif; }
.payment-logo--paypal { gap: 5px; font-size: 12px; font-weight: 700; letter-spacing: -.02em; }
.payment-logo--paypal b { font-size: 20px; font-style: italic; line-height: .8; }
.payment-logo--visa { font-size: 16px; font-style: italic; font-weight: 800; letter-spacing: -.08em; }
.payment-logo--mastercard { position: relative; gap: 5px; padding-left: 20px; font-size: 11px; font-weight: 700; letter-spacing: -.04em; text-transform: lowercase; }
.payment-logo--mastercard i { position: absolute; top: 50%; width: 18px; height: 18px; border: 1px solid currentColor; border-radius: 50%; transform: translateY(-50%); }
.payment-logo--mastercard i:first-child { left: 0; opacity: .76; }
.payment-logo--mastercard i:nth-child(2) { left: 8px; opacity: .42; }
.payment-logo--klarna { font-size: 15px; font-weight: 700; letter-spacing: -.04em; }

/* ---- Cart / checkout notice ---- */
.checkout-notice { margin: 0 0 var(--space-3); padding: var(--space-2) var(--space-3); background: var(--color-surface-alt); border-left: 3px solid var(--color-accent); color: var(--color-ink); }
.woocommerce-cart-form table.shop_table, .cart_totals table { width: 100%; }
.wc-empty-cart-message, .cart-empty { text-align: center; font-family: var(--font-display); font-size: 1.4rem; padding: var(--space-6) 0 var(--space-2); }
.return-to-shop { text-align: center; margin-bottom: var(--space-6); }
.return-to-shop .button { display: inline-block; }

/* Logo is a thin script: give it room. */
.site-header .wordmark img { height: 54px; }
@media (min-width: 1100px) { .site-header .wordmark img { height: 66px; } }
.site-header .nav-row { padding-block: .6rem; }

/* WooCommerce notices: Adoria look instead of the default blue bar. */
.woocommerce-info, .woocommerce-message, .wc-empty-cart-message .woocommerce-info { border-top: 0 !important; color: var(--color-ink); }
.woocommerce-info::before, .woocommerce-message::before { display: none !important; }
.cart-empty.woocommerce-info { border-left: 0; background: transparent; padding-bottom: 0; }

/* TranslatePress 3.x still renders its floating box; the header has its own DE/EN switch. */
.trp-floating-switcher { display: none !important; }

/* Narrow phones: the language switch moves into the menu so the header fits. */
@media (max-width: 479px) {
	.site-header .icon-actions .lang-switch { display: none; }
	.site-header .icon-actions { gap: .15rem; }
}
.mobile-nav .lang-switch { margin: var(--space-1) 0 0; }

/* Checkout: Adoria buttons and panels instead of WooCommerce purple. */
.woocommerce #payment, .woocommerce-checkout #payment { background: var(--color-surface-alt); border-radius: var(--radius-sm); }
.woocommerce #payment div.payment_box { background: var(--color-surface); color: var(--color-ink); }
.woocommerce #payment div.payment_box::before { border-bottom-color: var(--color-surface); }
.woocommerce #payment #place_order, .woocommerce button.button.alt, .woocommerce a.button.alt,
.woocommerce a.checkout-button, .wc-proceed-to-checkout a.checkout-button {
	background: var(--color-ink); color: var(--color-accent-ink); border-radius: var(--radius-sm);
	font: 600 .8rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; padding: var(--space-2) var(--space-4);
}
.woocommerce #payment #place_order:hover, .woocommerce button.button.alt:hover, .woocommerce a.checkout-button:hover { background: var(--color-accent); }

/* Temporary staff link back to the landing page (remove at launch). */
.announcement-bar { position: relative; }
.back-to-landing { position: absolute; left: var(--space-3); top: 50%; transform: translateY(-50%); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--color-ink-muted); }
.back-to-landing:hover { color: var(--color-accent); }
@media (max-width: 899px) { .back-to-landing { display: none; } }

/* ---- Compact page banners (the Astro originals were very tall) ---- */
.page-header { padding: var(--space-4) var(--space-3) var(--space-3); gap: .25rem; }
.page-header .title { font-size: clamp(1.8rem, 2.2vw + 1rem, 2.4rem); }
.page-header .subtitle { margin-top: .25rem; }
.prose { padding-top: var(--space-6); padding-bottom: var(--space-8); }
.category-products, .all-products, .new-arrivals-products, .sale-products, .search-section, .wishlist-products { padding-top: var(--space-4); }

/* Product photos: square cards, so the 1000x1000 cut-outs from the image
   processor are never cropped. */
.product-card .product-photo { aspect-ratio: 1 / 1; }
