/*
Theme Name:  Olevs
Template:    kadence
Description: Olevs Watch Bangladesh. Black and champagne: a serif display face over a clean sans, dark header and footer around warm ivory pages.
Version:     1.0.0
Text Domain: olevs
*/

/*
 * Kadence carries the layout, WooCommerce and the header/footer builders; this
 * file only sets the look. Colours that Kadence exposes are set in its palette
 * (Customizer > Colors), so they stay editable there; what lives here is what
 * the palette cannot express: the dark bands, the gold details and the
 * homepage sections (their blocks carry the olv-* class names used below).
 */

/*
 * Digits only, from the clean sans: Cormorant's "1" is a small-capital I, so a
 * model number like 5611 reads as letters. Listed first in the serif stack, so
 * titles keep Cormorant for letters and take these for 0-9. Kept in the theme
 * so it does not depend on Kadence's generated font folder.
 */
@font-face {
	font-family: 'Olevs Digits';
	font-style: normal;
	/* One fixed weight: the variable font is drawn at this weight whatever the
	   title asks for, so the digits stay as light as the Cormorant letters. */
	font-weight: 300;
	font-display: swap;
	src: url('fonts/manrope-latin.woff2') format('woff2');
	unicode-range: U+0030-0039;
	size-adjust: 84%;
}

:root {
	--olv-ink: #0f0e0c;
	--olv-ink-2: #171512;
	--olv-line: #2a2620;
	--olv-line-2: #3a342c;
	--olv-ivory: #f3eee6;
	--olv-muted: #a8a196;
	--olv-soft: #cfc8bc;
	--olv-gold: #c9a96e;
	--olv-gold-hover: #e2c99a;
	--olv-paper: #f4efe6;
	--olv-text: #1a1814;
	--olv-muted-dark: #6b645a;
	--olv-bronze: #7a5c24;
	--olv-line-light: #e2dbcf;
	--olv-serif: 'Olevs Digits', 'Cormorant Garamond', Georgia, serif;
}

/* ---------- Header ------------------------------------------------------ */

#masthead,
#masthead .site-header-row-container-inner,
#mobile-header .site-header-row-container-inner {
	background: var(--olv-ink);
}
.site-top-header-wrap .site-header-row-container-inner {
	border-bottom: 1px solid var(--olv-line);
}
.site-main-header-wrap .site-header-row-container-inner {
	border-bottom: 1px solid var(--olv-line);
}
.site-top-header-wrap .header-html,
.site-top-header-wrap .mobile-html,
#mobile-header .mobile-html {
	color: var(--olv-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-align: center;
}
.main-navigation .primary-menu-container > ul > li.menu-item > a {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.site-branding .custom-logo {
	max-height: 56px;
	width: auto;
}
/* Dropdowns and the mobile drawer follow the dark header. */
.header-navigation .header-menu-container ul ul.sub-menu,
.popup-drawer .drawer-inner {
	background: var(--olv-ink-2);
}
.header-navigation .header-menu-container ul ul li.menu-item > a {
	color: var(--olv-soft);
	border-bottom-color: var(--olv-line);
}
.popup-drawer .drawer-inner .mobile-navigation ul li a {
	color: var(--olv-ivory);
	border-bottom-color: var(--olv-line);
}

/* ---------- Type -------------------------------------------------------- */

h1, h2, h3, .entry-title, .product_title, .woocommerce-loop-product__title, .wc-block-components-product-name {
	font-family: var(--olv-serif);
	font-weight: 500;
	letter-spacing: -0.005em;
}
/* Kadence's own heading rules (card names among them) read this variable. */
body { --global-heading-font-family: var(--olv-serif); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--olv-serif); }

/* Cormorant's default old-style figures drop below the line ("3725" reads as
   jumbled), and model numbers are what people read here: use full-height
   lining figures wherever the serif is used. */
h1, h2, h3, .entry-title, .product_title, .woocommerce-loop-product__title,
.wc-block-components-product-name, .olv-display, .olv-sub, .olv-sticky-name {
	font-variant-numeric: lining-nums;
	font-feature-settings: "lnum" 1;
}

/* ---------- Shared pieces for the homepage blocks ----------------------- */

.olv-dark {
	background: var(--olv-ink);
	color: var(--olv-ivory);
}
.olv-dark h1, .olv-dark h2, .olv-dark h3 { color: var(--olv-ivory); }
.olv-dark a:not(.wp-block-button__link) { color: var(--olv-ivory); }
.olv-dark a:not(.wp-block-button__link):hover { color: var(--olv-gold-hover); }
.olv-paper { background: var(--olv-paper); color: var(--olv-text); }

/* Kadence zeroes the side padding of every full-width block
   (.entry-content .alignfull), which on a phone leaves text on the screen edge;
   this selector outranks it. */
.olv-section,
.entry-content .wp-block-group.olv-section { padding: clamp(64px, 8vw, 112px) clamp(20px, 5.5vw, 80px); }
.olv-section > * { max-width: 1280px; margin-left: auto; margin-right: auto; }

/* The homepage bands sit edge to edge; Kadence would otherwise put its block
   spacing between them and let the ivory page show through as stripes. */
.home .entry-content > .wp-block-group.alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }
.home .entry-content-wrap { padding: 0; }
.home #primary,
.home .content-area,
.home .entry-content { margin-top: 0; margin-bottom: 0; }

/* The small gold caps line that opens each section. */
.olv-eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 14px;
	font-family: inherit;
	font-size: 12px !important;
	font-weight: 600;
	letter-spacing: 0.26em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--olv-gold);
}
.olv-eyebrow::before {
	content: '';
	width: 36px;
	height: 1px;
	flex-shrink: 0;
	background: currentColor;
}
.olv-paper .olv-eyebrow { color: var(--olv-bronze); }

.olv-h2 {
	margin: 0;
	font-size: clamp(38px, 4.2vw, 56px);
	line-height: 1.02;
}

.olv-section-head { margin-bottom: 48px !important; }
/* A classic theme wraps a group's blocks in an inner container, so that is the
   row to lay out; without the wrapper, the group itself is. */
.olv-section-head:not(:has(> .wp-block-group__inner-container)),
.olv-section-head > .wp-block-group__inner-container {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
}
.olv-section-head > *,
.olv-section-head > .wp-block-group__inner-container > *,
.olv-section-title .wp-block-group__inner-container > * { margin: 0; }
.olv-section-title .olv-eyebrow { margin-bottom: 14px; }
.olv-more a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
}
.olv-more a::after { content: '→'; font-size: 16px; }
.olv-paper .olv-more a { color: var(--olv-text); }

/* Buttons: gold on dark, outline beside it. */
.wp-block-button.olv-btn-gold .wp-block-button__link,
.wp-block-button.olv-btn-ghost .wp-block-button__link,
.wp-block-button.olv-btn-dark .wp-block-button__link {
	min-height: 56px;
	display: inline-flex;
	align-items: center;
	padding: 0 30px;
	border-radius: 2px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	box-shadow: none;
}
.wp-block-button.olv-btn-gold .wp-block-button__link { background: var(--olv-gold); color: var(--olv-ink); border: 0; }
.wp-block-button.olv-btn-gold .wp-block-button__link:hover { background: var(--olv-gold-hover); color: var(--olv-ink); }
.wp-block-button.olv-btn-ghost .wp-block-button__link { background: transparent; color: var(--olv-ivory); border: 1px solid var(--olv-line-2); }
.wp-block-button.olv-btn-ghost .wp-block-button__link:hover { border-color: var(--olv-gold); color: var(--olv-gold-hover); }
.wp-block-button.olv-btn-dark .wp-block-button__link { background: var(--olv-ink); color: var(--olv-ivory); border: 0; }
.wp-block-button.olv-btn-dark .wp-block-button__link:hover { background: var(--olv-bronze); }

/* ---------- Hero -------------------------------------------------------- */

.olv-hero { padding-top: clamp(32px, 5vw, 64px); padding-bottom: clamp(56px, 7vw, 96px); }
.olv-hero .wp-block-columns { gap: clamp(32px, 4vw, 64px); margin: 0 auto; }
.olv-display {
	margin: 0 0 24px;
	font-family: var(--olv-serif);
	font-size: clamp(54px, 6.6vw, 92px);
	font-weight: 500;
	line-height: 0.98;
	color: var(--olv-ivory);
}
.olv-display em { font-style: italic; color: var(--olv-gold); }
.olv-lead { max-width: 470px; margin: 0 0 32px; font-size: 17px; line-height: 1.7; color: var(--olv-muted); }

/*
 * The photos here are the old homepage banners, which have their label and a
 * "Discover more" button printed across the bottom 12%. Every frame that shows
 * one is taller-than-wide and draws the image 118% tall from the top, so that
 * strip always falls outside the frame.
 */

/* The arched hero photo with a thin gold frame offset behind it. */
.olv-arch { position: relative; max-width: 480px; margin: 0 20px 20px auto; }
.olv-arch::before {
	content: '';
	position: absolute;
	inset: 20px -20px -20px 20px;
	border: 1px solid var(--olv-gold);
	border-radius: 240px 240px 4px 4px;
	opacity: 0.55;
	pointer-events: none;
}
.olv-arch figure {
	position: relative;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 240px 240px 4px 4px;
	background: var(--olv-ink-2);
}
.olv-arch figure img {
	display: block;
	width: 100%;
	height: 118%;
	object-fit: cover;
	object-position: top center;
}

/* ---------- Trust strip --------------------------------------------------- */

.olv-trust,
.entry-content .wp-block-group.olv-trust {
	border-top: 1px solid var(--olv-line);
	border-bottom: 1px solid var(--olv-line);
	padding: 0 clamp(20px, 5.5vw, 80px);
}
.olv-trust .wp-block-columns { max-width: 1280px; margin: 0 auto; gap: 0; }
.olv-trust .wp-block-column {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 30px 24px;
	border-left: 1px solid var(--olv-line);
}
.olv-trust .wp-block-column:first-child { border-left: 0; padding-left: 0; }
.olv-trust p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--olv-muted); }
.olv-trust p strong { display: block; margin-bottom: 3px; font-size: 15px; font-weight: 600; color: var(--olv-ivory); }
.olv-trust a { color: var(--olv-ivory); }
.olv-trust .wp-block-column::before {
	content: '';
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	background: var(--olv-gold);
	-webkit-mask: var(--olv-icon) center / contain no-repeat;
	mask: var(--olv-icon) center / contain no-repeat;
}
.olv-ic-shield { --olv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v6c0 4.5 3 7.5 7 9 4-1.5 7-4.5 7-9V6l-7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.olv-ic-truck { --olv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3z'/%3E%3Cpath d='M14 10h4l3 3v3h-7'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E"); }
.olv-ic-cash { --olv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='19' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 9.5v5M18 9.5v5'/%3E%3C/svg%3E"); }
.olv-ic-phone { --olv-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E"); }

/* ---------- Category tiles ---------------------------------------------- */

.olv-cats .wp-block-columns { gap: 20px; }
.olv-cat figure { margin: 0 0 18px; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 4px; background: var(--olv-ink-2); }
.olv-cat figure a { display: block; height: 100%; }
.olv-cat img {
	display: block;
	width: 100%;
	/* Taller than the arch: in a 3:4 tile the label's top edge still showed at 118%. */
	height: 126%;
	object-fit: cover;
	object-position: top center;
	transition: transform 0.6s ease;
}
.olv-cat a:hover img { transform: scale(1.04); }
.olv-cat h3 { margin: 0 0 6px; font-size: 26px; }
.olv-cat h3 a { text-decoration: none; }
.olv-cat p { margin: 0; }
.olv-cat p a {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--olv-gold) !important;
}

/* ---------- Product cards (best sellers, shop, categories, related) ------- */

/* Flat cards: the photo in a thin frame and the text straight on the page,
   instead of Kadence's white box and shadow under the photo. */
.woocommerce ul.products li.product,
.woocommerce ul.products li.product.entry.content-bg {
	display: flex;
	flex-direction: column;
	text-align: left;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
}
.woocommerce ul.products li.product:hover { box-shadow: none; }
.woocommerce ul.products { row-gap: clamp(36px, 4vw, 48px) !important; }
.woocommerce ul.products li.product .woocommerce-loop-image-link {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
	background: #fff;
}
.woocommerce ul.products li.product .woocommerce-loop-image-link img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: cover;
	border: 0;
	border-radius: 0;
	transition: transform 0.6s cubic-bezier(0.2, 0.6, 0.2, 1);
}
.woocommerce ul.products li.product:hover .woocommerce-loop-image-link img { transform: scale(1.04); }
.woocommerce ul.products li.product .product-details {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 6px;
	/* Kadence's unboxed-card rule is five classes deep. */
	margin: 0 !important;
	padding: 16px 0 0 !important;
	background: transparent !important;
	box-shadow: none;
}
.olv-card-meta {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--olv-muted-dark);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 0;
	font-size: 25px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--olv-text);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title a { color: inherit; text-decoration: none; }
/* The reviews were never real; stars under every name said nothing. */
.woocommerce ul.products li.product .star-rating { display: none; }
.woocommerce ul.products li.product .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 10px;
	margin: 0;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	color: var(--olv-text);
}
/* Sale price first, the old price after it, as in the design. */
.woocommerce ul.products li.product .price ins { order: 1; text-decoration: none; }
.woocommerce ul.products li.product .price del { order: 2; font-size: 14px; font-weight: 400; color: var(--olv-muted-dark); }
.woocommerce ul.products li.product .price .amount { white-space: nowrap; }
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
	top: 14px;
	right: 14px;
	left: auto;
	min-height: 0;
	padding: 7px 10px;
	background: var(--olv-ink);
	color: var(--olv-ivory);
	border-radius: 2px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
/* Always visible, pinned to the bottom so a row of buttons lines up. */
.woocommerce ul.products li.product .product-action-wrap {
	margin-top: auto;
	padding-top: 12px;
	opacity: 1;
	visibility: visible;
	transform: none;
	position: static;
}
/* !important on what Kadence's button-style rule (also five classes) sets. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0 12px !important;
	border: 1px solid var(--olv-text) !important;
	border-radius: 2px;
	background: transparent !important;
	box-shadow: none;
	color: var(--olv-text) !important;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
	background: var(--olv-ink) !important;
	color: var(--olv-ivory) !important;
	border-color: var(--olv-ink) !important;
}
/* Kadence collapses the button once added and shows View cart instead. */
.woocommerce ul.products li.product .button.added { display: none !important; }
/* Kadence's arrow; the spinner and tick still show while adding. */
.woocommerce ul.products li.product .button .kadence-arrow-right-alt-svg { display: none; }
.woocommerce ul.products li.product .added_to_cart { margin-top: 8px; border-color: var(--olv-line-light); }

/* ---------- Single product ------------------------------------------------ */

.single-product .woocommerce-breadcrumb,
.single-product .kadence-breadcrumbs {
	margin-bottom: 24px;
	font-size: 13px;
	color: var(--olv-muted-dark);
}
.single-product .woocommerce-breadcrumb a,
.single-product .kadence-breadcrumbs a { color: var(--olv-muted-dark); text-decoration: none; }
.single-product .woocommerce-breadcrumb a:hover,
.single-product .kadence-breadcrumbs a:hover { color: var(--olv-text); }

/* Photos left, buying right; whichever column is shorter stays in view. */
@media (min-width: 1025px) {
	.single-product div.product {
		display: grid;
		grid-template-columns: minmax(0, 540px) minmax(0, 1fr);
		column-gap: clamp(48px, 5vw, 88px);
		align-items: start;
	}
	.single-product div.product > * { grid-column: 1 / -1; }
	.single-product div.product > .woocommerce-product-gallery,
	.single-product div.product > .summary {
		grid-row: 1;
		width: auto !important;
		float: none !important;
		margin: 0 !important;
	}
	.single-product div.product > .woocommerce-product-gallery { grid-column: 1; }
	.single-product div.product > .summary { grid-column: 2; }
}

/* Gallery */
.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image,
.single-product div.product .woocommerce-product-gallery .flex-viewport {
	overflow: hidden;
	border-radius: 4px;
	background: #fff;
}
.single-product div.product .woocommerce-product-gallery .flex-viewport,
.single-product div.product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child {
	border: 1px solid var(--olv-line-light);
}
/* Thumbnails: one row of squares under the photo that scrolls sideways,
   instead of Kadence's overlap (-32px) and rows of flattened thumbs that
   stretch the gallery. */
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs {
	display: flex !important;
	flex-wrap: nowrap !important;
	justify-content: flex-start !important;
	gap: 10px;
	left: 0 !important;
	width: 100% !important;
	max-width: none !important;
	margin: 12px 0 0 !important;
	padding: 0 0 4px !important;
	overflow-x: auto !important;
	overflow-y: hidden !important;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	transform: none !important;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li {
	flex: 0 0 calc((100% - 40px) / 5);
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none;
	aspect-ratio: 1;
	scroll-snap-align: start;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	box-sizing: border-box;
	border-width: 1px !important;
	border-style: solid !important;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
	background: #fff;
	opacity: 0.65;
	transition: opacity 0.2s, border-color 0.2s;
}
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img:hover,
.single-product div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	opacity: 1;
	border-color: var(--olv-text);
}
.single-product div.product .woocommerce-product-gallery__trigger {
	top: 14px;
	right: 14px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 1px 3px rgba(15, 14, 12, 0.12);
}
/* On the product page the saving sits beside the price instead. */
.single-product div.product > .onsale { display: none; }
.olv-save {
	order: 3;
	align-self: center;
	padding: 6px 10px;
	border-radius: 2px;
	background: var(--olv-ink);
	color: var(--olv-ivory);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Summary */
.single-product div.product .summary { display: flex; flex-direction: column; }
.single-product .summary .product-single-category,
.single-product .summary .single-category {
	margin: 0 0 12px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.single-product .summary .product-single-category a,
.single-product .summary .single-category a { color: var(--olv-bronze); text-decoration: none; }
.single-product .summary .product_title {
	margin: 0 0 12px;
	font-size: clamp(36px, 3.6vw, 54px);
	font-weight: 500;
	line-height: 1.02;
	color: var(--olv-text);
}
.single-product div.product .summary .woocommerce-product-rating { margin: 0 0 20px; font-size: 13px; }
.single-product .summary .woocommerce-product-rating .star-rating { color: var(--olv-bronze); }
.single-product .summary .woocommerce-review-link { color: var(--olv-muted-dark); }
.single-product div.product .summary > .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 14px;
	margin: 0 0 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--olv-line-light);
	font-size: 32px;
	font-weight: 700;
	color: var(--olv-text);
}
.single-product .summary > .price ins { order: 1; text-decoration: none; }
.single-product .summary > .price del { order: 2; font-size: 19px; font-weight: 400; color: var(--olv-muted-dark); }
.single-product .summary .woocommerce-product-details__short-description {
	margin: 0 0 24px;
	font-size: 16px;
	line-height: 1.7;
	color: var(--olv-muted-dark);
}

/* Warranty line and short description, under the price */
.single-product .summary .woocommerce-product-details__short-description { margin: 0 0 24px !important; }
.olv-warranty {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	border: 1px solid var(--olv-gold);
	border-radius: 4px;
	background: linear-gradient(0deg, rgba(201, 169, 110, 0.10), rgba(201, 169, 110, 0.10)), #fff;
}
.olv-warranty-icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--olv-ink);
	position: relative;
}
.olv-warranty-icon::before {
	content: '';
	position: absolute;
	inset: 9px;
	background: var(--olv-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v6c0 4.5 3 7.5 7 9 4-1.5 7-4.5 7-9V6l-7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v6c0 4.5 3 7.5 7 9 4-1.5 7-4.5 7-9V6l-7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.olv-warranty strong { display: block; font-size: 15px; font-weight: 700; letter-spacing: 0.02em; color: var(--olv-text); }
.olv-warranty span:not(.olv-warranty-icon) { display: block; margin-top: 2px; font-size: 13px; color: var(--olv-muted-dark); }
.olv-short { margin-top: 18px; font-size: 15px; line-height: 1.6; color: var(--olv-muted-dark); }
.olv-short p { margin: 0 0 8px; }
.olv-short ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.olv-short li { position: relative; padding-left: 26px; }
.olv-short li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 4px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--olv-bronze) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 10px no-repeat;
}
.olv-short strong, .olv-short em { font-style: normal; font-weight: 600; color: var(--olv-text); }

/* Colour swatches */
.single-product .summary table.variations { margin: 0 0 8px; border: 0; }
.single-product .summary table.variations tr,
.single-product .summary table.variations td { display: block; padding: 0; border: 0; background: transparent; }
.single-product .summary table.variations td.label { height: auto; min-height: 0; margin-bottom: 12px; line-height: 1.2; }
.single-product .summary table.variations td.label label {
	display: inline;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--olv-text);
}
.single-product .summary table.variations td.label label span:not(.olv-picked) { display: none; }
/* The swatch plugin prints the raw slug ("all-golden") under the label. */
.single-product .summary .xt_woovs-attribute-value { display: none !important; }
/* The chosen colour's name after the label, filled in by the page script. */
.olv-picked { display: inline !important; margin-left: 10px; font-size: 14px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--olv-muted-dark); }
.single-product .summary .xt_woovs-swatches { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important; padding: 8px 0 0 !important; }
/* One frame per swatch: the plugin's own inner ring is removed, and the
   chosen one gets a dark frame and a small gold tick instead of a second ring. */
.single-product .summary .xt_woovs-swatches .swatch.swatch-image {
	position: relative;
	width: 72px !important;
	height: 72px !important;
	margin: 0 !important;
	padding: 4px !important;
	border: 1px solid var(--olv-line-light) !important;
	border-radius: 6px !important;
	background: #fff;
	box-shadow: none !important;
	outline: 0 !important;
	transition: border-color 0.2s, transform 0.2s;
}
.single-product .summary .xt_woovs-swatches .swatch.swatch-image:hover { border-color: var(--olv-muted-dark) !important; transform: translateY(-1px); }
.single-product .summary .xt_woovs-swatches .swatch .swatch-inner {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 3px !important;
	box-shadow: none !important;
	overflow: hidden;
}
.single-product .summary .xt_woovs-swatches .swatch img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
.single-product .summary .xt_woovs-swatches .swatch.xt_woovs-selected { border-color: var(--olv-text) !important; }
.single-product .summary .xt_woovs-swatches .swatch.xt_woovs-selected::after {
	content: '';
	position: absolute;
	top: -7px;
	right: -7px;
	width: 20px;
	height: 20px;
	border: 2px solid var(--olv-paper);
	border-radius: 50%;
	background: var(--olv-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f0e0c' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 12px no-repeat;
	box-sizing: border-box;
}
.single-product .summary .reset_variations {
	display: inline-block;
	margin-top: 10px;
	font-size: 12px;
	color: var(--olv-muted-dark);
}
.single-product .summary .woocommerce-variation-availability .stock { margin: 8px 0 0; font-size: 14px; font-weight: 600; color: #9a3412; }

/* Quantity, Add to cart and Buy now */
.single-product div.product .summary form.cart { margin: 0; }
.single-product .summary form.cart:not(.variations_form),
.single-product .summary .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
}
/* A clearfix ::after would otherwise be an empty flex item plus a gap. */
.single-product .summary form.cart:not(.variations_form)::before,
.single-product .summary form.cart:not(.variations_form)::after,
.single-product .summary .woocommerce-variation-add-to-cart::before,
.single-product .summary .woocommerce-variation-add-to-cart::after { display: none !important; }
.single-product .summary .woocommerce-variation-add-to-cart { margin-top: 16px; }
.single-product .summary form.cart .quantity { flex: 0 0 auto; margin: 0 !important; }
.single-product .summary form.cart .quantity .qty,
.single-product .summary form.cart .quantity input,
.single-product .summary form.cart .quantity .minus,
.single-product .summary form.cart .quantity .plus {
	height: 56px;
	border-color: var(--olv-line-light);
	background: #fff;
	color: var(--olv-text);
}
.single-product .summary form.cart .quantity .qty { width: 56px; font-size: 16px; font-weight: 600; }
.single-product .summary form.cart .single_add_to_cart_button,
.single-product .summary form.cart .olv-buy-now {
	display: flex;
	flex: 1 1 0;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	margin: 0 !important;
	padding: 0 24px;
	border-radius: 2px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	box-shadow: none;
}
.single-product .summary form.cart .single_add_to_cart_button {
	border: 1px solid var(--olv-text);
	background: transparent;
	color: var(--olv-text);
}
.single-product .summary form.cart .single_add_to_cart_button:hover {
	background: var(--olv-ink);
	color: var(--olv-ivory);
}
.single-product .summary form.cart .olv-buy-now {
	flex-basis: 100%;
	order: 5;
	border: 0;
	background: var(--olv-ink);
	color: var(--olv-ivory);
}
.single-product .summary form.cart .olv-buy-now:hover { background: #2b2722; color: #fff; }
.single-product .summary form.cart .disabled { opacity: 0.55; cursor: not-allowed; }
.olv-wa {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	margin-top: 12px;
	border: 1px solid var(--olv-line-light);
	border-radius: 2px;
	background: #fff;
	color: var(--olv-text);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.2s;
}
.olv-wa:hover { border-color: #1f8f4e; color: #1f8f4e; }

/* Trust points */
.olv-assure {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--olv-line-light);
}
.olv-assure li {
	display: grid;
	grid-template-columns: 26px 1fr;
	column-gap: 12px;
	align-content: start;
	padding: 18px 12px 18px 0;
	border-bottom: 1px solid var(--olv-line-light);
	font-size: 13px;
	line-height: 1.45;
	color: var(--olv-muted-dark);
}
.olv-assure li:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--olv-line-light); }
.olv-assure li::before {
	content: '';
	grid-row: span 2;
	width: 24px;
	height: 24px;
	background: var(--olv-bronze);
	-webkit-mask: var(--olv-icon) center / contain no-repeat;
	mask: var(--olv-icon) center / contain no-repeat;
}
.olv-assure strong { display: block; font-size: 14px; font-weight: 600; color: var(--olv-text); }
.olv-assure a { color: var(--olv-muted-dark); }

/* SKU is the supplier's code, meaningless to a buyer. */
.single-product .summary .product_meta { margin-top: 24px; font-size: 13px; color: var(--olv-muted-dark); }
.single-product .summary .product_meta .sku_wrapper { display: none; }
.single-product .summary .product_meta a { color: var(--olv-muted-dark); }

/* Description, details and reviews */
.single-product .woocommerce-tabs { margin-top: clamp(56px, 7vw, 96px); padding-top: 0; border: 0 !important; }
.single-product .woocommerce-tabs ul.tabs {
	display: flex;
	justify-content: center;
	gap: clamp(16px, 4vw, 48px);
	margin: 0 0 40px;
	padding: 0;
	border-bottom: 1px solid var(--olv-line-light);
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after { display: none; }
.single-product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
}
.single-product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 16px 2px;
	border-bottom: 2px solid transparent;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--olv-muted-dark);
}
.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--olv-text); border-bottom-color: var(--olv-text); }
.single-product .woocommerce-tabs .panel {
	max-width: 860px;
	margin: 0 auto;
	padding: 0 !important;
	border: 0 !important;
	background: transparent;
	box-shadow: none;
	font-size: 16px;
	line-height: 1.75;
}
.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; margin: 0 0 20px; }
.single-product .woocommerce-tabs .panel ul { padding-left: 1.1em; }
.single-product .woocommerce-tabs .panel li { margin-bottom: 6px; }
.single-product .woocommerce-tabs .panel img { display: block; width: 100%; height: auto; margin: 0 auto 16px; border-radius: 4px; }
.single-product .woocommerce-tabs .panel table.shop_attributes { border: 0; border-top: 1px solid var(--olv-line-light); }
.single-product .woocommerce-tabs .panel table.shop_attributes th,
.single-product .woocommerce-tabs .panel table.shop_attributes td {
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--olv-line-light);
	background: transparent;
	font-style: normal;
}
.single-product .woocommerce-tabs .panel table.shop_attributes th { width: 40%; font-weight: 500; color: var(--olv-muted-dark); }

.single-product section.related,
.single-product section.upsells { margin-top: clamp(64px, 8vw, 112px); }
.single-product section.related > h2,
.single-product section.upsells > h2 { margin: 0 0 32px; font-size: clamp(34px, 3.6vw, 48px); font-weight: 500; line-height: 1; }

/* "Added to your cart" notice: the text, then a small View cart link beside
   it, instead of a full-width button stacked above the text. */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce .woocommerce-message {
	display: flex;
	/* Kadence stacks it column-reverse on phones, button on top. */
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
	margin: 0 0 24px;
	text-align: left;
	padding: 14px 16px 14px 18px;
	border: 1px solid var(--olv-line-light);
	border-left: 3px solid var(--olv-gold);
	border-radius: 4px;
	background: #fff;
	color: var(--olv-text);
	font-size: 15px;
	line-height: 1.45;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-message::after { display: none; }
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-message .wc-forward {
	order: 2;
	flex: 0 0 auto;
	float: none;
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	margin: 0;
	padding: 0 16px;
	border-radius: 2px;
	background: var(--olv-ink);
	color: var(--olv-ivory);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}
.woocommerce .woocommerce-message .button:hover { background: #2b2722; color: #fff; }

/* ---------- Homepage: popular models and new arrivals --------------------- */

.olv-popular.olv-section,
.entry-content .wp-block-group.olv-popular.olv-section { padding-top: clamp(48px, 6vw, 80px); padding-bottom: clamp(48px, 6vw, 80px); }
/* One row of round photos with the model number under each; scrolls sideways
   when there are more than fit. */
.olv-models {
	display: flex;
	gap: clamp(16px, 2.4vw, 32px);
	margin: 0;
	padding: 4px 2px 12px;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.olv-models li { flex: 0 0 auto; margin: 0; scroll-snap-align: start; }
.olv-models a {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	width: clamp(104px, 11vw, 132px);
	color: var(--olv-text);
	text-decoration: none;
}
.olv-model-img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	margin-bottom: 8px;
	padding: 4px;
	border: 1px solid var(--olv-line-light);
	border-radius: 50%;
	background: #fff;
	transition: border-color 0.25s, box-shadow 0.25s;
}
.olv-model-img img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.olv-models a:hover .olv-model-img,
.olv-models a:focus-visible .olv-model-img { border-color: var(--olv-gold); box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.25); }
.olv-model-no { font-size: 17px; font-weight: 700; letter-spacing: 0.04em; }
.olv-model-price { font-size: 13px; color: var(--olv-muted-dark); }
.olv-model-price .amount { white-space: nowrap; }

/* ---------- Cart panel (slides in from the right) -------------------------- */

#cart-drawer .drawer-inner {
	width: min(420px, 100vw);
	max-width: 100vw;
	background: var(--olv-paper);
	color: var(--olv-text);
	box-shadow: -12px 0 40px rgba(15, 14, 12, 0.18);
}
#cart-drawer .drawer-overlay { background: rgba(15, 14, 12, 0.45); }
#cart-drawer .drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 20px;
	background: var(--olv-ink);
	border-bottom: 1px solid var(--olv-line);
}
#cart-drawer .side-cart-header {
	margin: 0;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--olv-gold);
}
#cart-drawer .cart-toggle-close { width: 40px; height: 40px; color: var(--olv-ivory); }
#cart-drawer .drawer-content { padding: 0; }
#cart-drawer .mini-cart-container { padding: 16px 20px 24px; }

/* "… added to your cart" at the top, only right after adding. */
#cart-drawer .olv-added {
	display: none;
	align-items: center;
	gap: 10px;
	margin: 16px 20px 0;
	padding: 12px 14px;
	border: 1px solid var(--olv-line-light);
	border-left: 3px solid var(--olv-gold);
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}
#cart-drawer .olv-added.is-on { display: flex; }
#cart-drawer .olv-added::before {
	content: '';
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--olv-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f0e0c' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat;
}

/* Items */
#cart-drawer ul.woocommerce-mini-cart { margin: 0; padding: 0; list-style: none; }
#cart-drawer .woocommerce-mini-cart-item {
	position: relative;
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	column-gap: 14px;
	align-items: center;
	min-height: 72px;
	margin: 0 0 10px;
	padding: 12px 40px 12px 12px;
	border: 1px solid var(--olv-line-light);
	border-radius: 6px;
	background: #fff;
	text-align: left;
}
#cart-drawer .woocommerce-mini-cart-item > a:not(.remove) {
	display: contents;
	font-family: var(--olv-serif);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--olv-text);
	text-decoration: none;
}
#cart-drawer .woocommerce-mini-cart-item img {
	grid-row: 1 / span 3;
	float: none;
	width: 72px !important;
	height: 72px;
	margin: 0 !important;
	object-fit: cover;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
}
#cart-drawer .woocommerce-mini-cart-item dl.variation { grid-column: 2; margin: 2px 0 0; font-size: 12px; color: var(--olv-muted-dark); }
#cart-drawer .woocommerce-mini-cart-item dl.variation dt,
#cart-drawer .woocommerce-mini-cart-item dl.variation dd,
#cart-drawer .woocommerce-mini-cart-item dl.variation p { display: inline; margin: 0; }
#cart-drawer .woocommerce-mini-cart-item .quantity { grid-column: 2; display: block; margin-top: 4px; font-size: 14px; color: var(--olv-muted-dark); }
#cart-drawer .woocommerce-mini-cart-item .quantity .amount { font-weight: 700; color: var(--olv-text); }
#cart-drawer .woocommerce-mini-cart-item a.remove {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	color: var(--olv-muted-dark) !important;
	font-size: 20px;
	line-height: 1;
	background: transparent;
}
#cart-drawer .woocommerce-mini-cart-item a.remove:hover { background: #f6e9e6; color: #9a3412 !important; }

/* Subtotal and the two buttons */
#cart-drawer .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin: 16px 0 14px;
	padding: 16px 0 0;
	border-top: 1px solid var(--olv-line-light);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olv-muted-dark);
}
#cart-drawer .woocommerce-mini-cart__total .amount { font-size: 22px; font-weight: 700; letter-spacing: 0; color: var(--olv-text); }
#cart-drawer .woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; }
#cart-drawer .woocommerce-mini-cart__buttons .button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 52px;
	margin: 0;
	border-radius: 2px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	text-decoration: none;
}
/* Checkout first and dark; View cart as the quieter outline. */
#cart-drawer .woocommerce-mini-cart__buttons .checkout { order: -1; background: var(--olv-ink); color: var(--olv-ivory); border: 0; }
#cart-drawer .woocommerce-mini-cart__buttons .checkout:hover { background: #2b2722; color: #fff; }
#cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent; color: var(--olv-text); border: 1px solid var(--olv-text); }
#cart-drawer .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--olv-ink); color: var(--olv-ivory); }
#cart-drawer .woocommerce-mini-cart__empty-message { margin: 24px 0; text-align: center; color: var(--olv-muted-dark); }

/* The product-page button while the item is being added. */
.single-product .summary .single_add_to_cart_button.loading { opacity: 0.6; pointer-events: none; }

/* ---------- Cart ----------------------------------------------------------- */

/* A slimmer title band on the cart and checkout. */
.woocommerce-cart .entry-hero-container-inner .entry-header,
.woocommerce-checkout .entry-hero-container-inner .entry-header { min-height: 0 !important; padding: 36px 0 !important; }
.woocommerce-cart .entry-hero .entry-title,
.woocommerce-checkout .entry-hero .entry-title { font-size: clamp(34px, 4vw, 48px); }
.woocommerce-cart .content-area,
.woocommerce-checkout .content-area { margin-top: clamp(24px, 4vw, 48px); }

/* Steps */
.olv-steps {
	display: flex;
	justify-content: center;
	gap: 0;
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
	counter-reset: none;
}
.olv-steps li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--olv-muted-dark);
}
.olv-steps li + li::before {
	content: '';
	width: clamp(24px, 6vw, 72px);
	height: 1px;
	margin: 0 clamp(8px, 1.5vw, 16px);
	background: var(--olv-line-light);
}
.olv-steps li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--olv-line-light);
	border-radius: 50%;
	background: #fff;
	font-size: 12px;
	letter-spacing: 0;
}
.olv-steps li.is-current { color: var(--olv-text); }
.olv-steps li.is-current span { border-color: var(--olv-ink); background: var(--olv-ink); color: var(--olv-gold); }
.olv-steps li.is-done span { border-color: var(--olv-gold); background: var(--olv-gold); color: var(--olv-ink); }

/* On the cart page the notice's own View cart link points at itself. */
.woocommerce-cart .woocommerce-message .wc-forward { display: none; }

/* Two columns: the items, and the order summary beside them. */
.woocommerce-cart .kadence-woo-cart-form-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}
.woocommerce-cart .kadence-woo-cart-form-wrap > * { width: auto !important; float: none !important; margin: 0 !important; }
/* Clearfix pseudo-elements would take the first grid cell. */
.woocommerce-cart .kadence-woo-cart-form-wrap::before,
.woocommerce-cart .kadence-woo-cart-form-wrap::after,
.woocommerce-cart .cart-collaterals::before,
.woocommerce-cart .cart-collaterals::after { display: none !important; }
.woocommerce-cart .woocommerce-cart-form > h2,
.woocommerce-cart .cart_totals > h2 {
	margin: 0 0 18px;
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 500;
}

/* Each item a card: photo, name and price, quantity, line total, remove. */
.woocommerce-cart table.shop_table.cart { border: 0; border-collapse: separate; border-spacing: 0; margin: 0; }
.woocommerce-cart table.shop_table.cart thead { display: none; }
.woocommerce-cart table.shop_table.cart tbody { display: grid; gap: 12px; }
.woocommerce-cart table.cart tr.cart_item {
	position: relative;
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) auto;
	grid-template-areas:
		'thumb name  name'
		'thumb price price'
		'thumb qty   sub';
	column-gap: 18px;
	row-gap: 4px;
	align-items: center;
	padding: 16px 48px 16px 16px;
	border: 1px solid var(--olv-line-light);
	border-radius: 6px;
	background: #fff;
}
.woocommerce-cart table.cart tr.cart_item td {
	display: block;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	text-align: left !important;
}
.woocommerce-cart table.cart tr.cart_item td::before { display: none !important; }
.woocommerce-cart table.cart td.product-thumbnail { grid-area: thumb; align-self: stretch; }
.woocommerce-cart table.cart td.product-thumbnail a { display: block; height: 100%; }
.woocommerce-cart table.cart td.product-thumbnail img {
	display: block;
	width: 96px !important;
	max-width: none;
	height: 96px;
	object-fit: cover;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
}
.woocommerce-cart table.cart td.product-name { grid-area: name; font-family: var(--olv-serif); font-size: 22px; line-height: 1.15; }
.woocommerce-cart table.cart td.product-name a { color: var(--olv-text); text-decoration: none; }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--olv-bronze); }
.woocommerce-cart table.cart td.product-name dl.variation { margin: 4px 0 0; font-family: inherit; font-size: 13px; color: var(--olv-muted-dark); }
.woocommerce-cart table.cart td.product-name dl.variation dt,
.woocommerce-cart table.cart td.product-name dl.variation dd,
.woocommerce-cart table.cart td.product-name dl.variation p { display: inline; margin: 0; }
.woocommerce-cart table.cart td.product-price { grid-area: price; font-size: 14px; color: var(--olv-muted-dark); }
.woocommerce-cart table.cart td.product-quantity { grid-area: qty; margin-top: 8px; }
.woocommerce-cart table.cart td.product-subtotal { grid-area: sub; margin-top: 8px; font-size: 18px; font-weight: 700; text-align: right !important; }
.woocommerce-cart table.cart td.product-remove { position: absolute; top: 12px; right: 12px; }
.woocommerce-cart table.cart td.product-remove a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: transparent;
	color: var(--olv-muted-dark) !important;
	font-size: 22px;
	font-weight: 300;
	line-height: 1;
	transition: background 0.2s, color 0.2s;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover { background: #f6e9e6; color: #9a3412 !important; }
.woocommerce-cart table.cart .quantity { display: inline-flex; align-items: stretch; margin: 0; }
.woocommerce-cart table.cart .quantity input.qty,
.woocommerce-cart table.cart .quantity .minus,
.woocommerce-cart table.cart .quantity .plus {
	height: 38px;
	border: 1px solid var(--olv-line-light);
	background: #fff;
	color: var(--olv-text);
	font-size: 15px;
}
.woocommerce-cart table.cart .quantity input.qty { width: 44px; border-left: 0; border-right: 0; font-weight: 600; }
.woocommerce-cart table.cart .quantity .minus,
.woocommerce-cart table.cart .quantity .plus { width: 36px; padding: 0; cursor: pointer; }
.woocommerce-cart table.cart .quantity .minus { border-radius: 4px 0 0 4px; }
.woocommerce-cart table.cart .quantity .plus { border-radius: 0 4px 4px 0; }

/* Coupon row; Update cart is automatic, so its button is hidden. */
.woocommerce-cart table.cart tr:not(.cart_item) { display: block; }
.woocommerce-cart table.cart td.actions { display: block; padding: 8px 0 0 !important; border: 0 !important; background: transparent !important; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; float: none; width: auto; max-width: 440px; }
.woocommerce-cart table.cart td.actions .coupon .input-text {
	flex: 1;
	min-width: 0;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
}
.woocommerce-cart table.cart td.actions .coupon .button {
	height: 46px;
	padding: 0 18px;
	border: 1px solid var(--olv-text);
	border-radius: 4px;
	background: transparent;
	color: var(--olv-text);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.woocommerce-cart table.cart td.actions .coupon .button:hover { background: var(--olv-ink); color: var(--olv-ivory); }
.woocommerce-cart table.cart td.actions > .button[name=update_cart] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
/* While the cart recalculates. */
.woocommerce-cart .blockUI.blockOverlay { background: rgba(244, 239, 230, 0.6) !important; }

/* Order summary card */
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: auto;
	padding: 24px;
	border: 1px solid var(--olv-line-light);
	border-radius: 6px;
	background: #fff;
	position: sticky;
	top: 24px;
}
.woocommerce-cart .cart_totals table.shop_table { margin: 0; border: 0; }
.woocommerce-cart .cart_totals table.shop_table tr { display: block; padding: 14px 0; border-bottom: 1px solid var(--olv-line-light); }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; text-align: left !important; }
.woocommerce-cart .cart_totals table.shop_table td::before { display: none !important; }
.woocommerce-cart .cart_totals tr.cart-subtotal,
.woocommerce-cart .cart_totals tr.order-total { display: flex !important; justify-content: space-between; align-items: baseline; }
.woocommerce-cart .cart_totals th { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--olv-muted-dark); }
.woocommerce-cart .cart_totals tr.cart-subtotal td { font-size: 16px; font-weight: 600; }
.woocommerce-cart .cart_totals tr.order-total { border-bottom: 0 !important; padding-top: 18px !important; }
.woocommerce-cart .cart_totals tr.order-total th { font-size: 14px; color: var(--olv-text); }
.woocommerce-cart .cart_totals tr.order-total td { font-size: 26px; font-weight: 700; color: var(--olv-text); }
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th { margin-bottom: 10px; }
/* Delivery choices as tappable boxes. */
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li { position: relative; display: block !important; width: 100%; margin: 0; padding: 0; text-indent: 0; }
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li input { position: absolute; top: 16px; left: 14px; margin: 0; accent-color: var(--olv-ink); }
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li label {
	display: block;
	margin: 0;
	padding: 12px 14px 12px 40px;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--olv-text);
	cursor: pointer;
	transition: border-color 0.2s, background 0.2s;
}
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li input:checked + label { border-color: var(--olv-ink); background: var(--olv-paper); }
:is(.woocommerce-cart, .woocommerce-checkout) ul#shipping_method li label .amount { font-weight: 700; white-space: nowrap; }
:is(.woocommerce-cart, .woocommerce-checkout) .woocommerce-shipping-destination { margin: 10px 0 4px; font-size: 13px; color: var(--olv-muted-dark); }
.woocommerce-cart .woocommerce-shipping-calculator { font-size: 13px; }
.woocommerce-cart .shipping-calculator-button { color: var(--olv-muted-dark); }
.woocommerce-cart .wc-proceed-to-checkout { padding: 8px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	margin: 0;
	border-radius: 2px;
	background: var(--olv-ink);
	color: var(--olv-ivory);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: #2b2722; color: #fff; }
.olv-cart-assure { display: grid; gap: 8px; margin: 16px 0 0 !important; padding: 0 !important; list-style: none; }
.olv-cart-assure li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--olv-muted-dark); }
.olv-cart-assure li::before {
	content: '';
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	background: var(--olv-bronze);
	-webkit-mask: var(--olv-icon) center / contain no-repeat;
	mask: var(--olv-icon) center / contain no-repeat;
}
.olv-continue { display: block; margin-top: 16px; text-align: center; font-size: 13px; font-weight: 600; color: var(--olv-muted-dark); }
.olv-continue:hover { color: var(--olv-text); }

@media (max-width: 1024px) {
	.woocommerce-cart .kadence-woo-cart-form-wrap { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-cart .cart-collaterals .cart_totals { position: static; }
}
@media (max-width: 781px) {
	.olv-steps li { gap: 6px; font-size: 10px; letter-spacing: 0.06em; white-space: nowrap; word-break: keep-all; }
	.olv-steps li + li::before { width: 14px; margin: 0 6px; }
	.olv-steps li span { width: 22px; height: 22px; font-size: 11px; }
	/* Phone: quantity and line total get their own row under the photo. */
	.woocommerce-cart table.cart tr.cart_item {
		grid-template-columns: 76px minmax(0, 1fr) auto;
		grid-template-areas:
			'thumb name  name'
			'thumb price price'
			'qty   qty   sub';
		column-gap: 14px;
		padding: 14px 42px 14px 14px;
	}
	.woocommerce-cart table.cart td.product-quantity,
	.woocommerce-cart table.cart td.product-subtotal { margin-top: 12px; }
	.woocommerce-cart table.cart td.product-subtotal { padding-right: 0 !important; margin-right: -28px; }
	.woocommerce-cart table.cart td.product-thumbnail img { width: 76px !important; height: 76px; }
	.woocommerce-cart table.cart td.product-name { font-size: 19px; }
	.woocommerce-cart table.cart td.product-subtotal { font-size: 16px; }
	.woocommerce-cart .cart-collaterals .cart_totals { padding: 18px; }
}

/* ---------- Checkout ------------------------------------------------------- */

.woocommerce-checkout .page-hero-section .entry-header { min-height: 0 !important; padding: 28px 0 !important; }
.woocommerce-cart .page-hero-section .entry-header { min-height: 0 !important; padding: 28px 0 !important; }
.woocommerce-checkout .entry-content-wrap,
.woocommerce-cart .entry-content-wrap { padding-top: 0 !important; }
/* Both pages carry a stray empty paragraph beside the shortcode. */
.woocommerce-checkout .entry-content > p,
.woocommerce-cart .entry-content > p { display: none; }
.woocommerce-checkout .content-area,
.woocommerce-cart .content-area { margin-top: 32px !important; }

/* "Have a coupon?" as a quiet line instead of a grey banner. */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	margin: 0 0 20px;
	padding: 12px 16px;
	border: 1px dashed var(--olv-line-light);
	border-radius: 4px;
	background: transparent;
	color: var(--olv-muted-dark);
	font-size: 14px;
}
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a { color: var(--olv-text); font-weight: 600; }
.woocommerce-checkout form.checkout_coupon {
	display: flex;
	gap: 8px;
	margin: 0 0 20px;
	padding: 16px;
	border: 1px solid var(--olv-line-light);
	border-radius: 4px;
	background: #fff;
}
.woocommerce-checkout form.checkout_coupon p:not(.form-row) { display: none; }
.woocommerce-checkout form.checkout_coupon .form-row { flex: 1; width: auto; margin: 0; padding: 0; float: none; }
.woocommerce-checkout form.checkout_coupon .form-row-last { flex: 0 0 auto; }

/* Form on the left, order summary on the right. */
@media (min-width: 1025px) {
	.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(360px, 440px);
		grid-template-rows: auto 1fr;
		column-gap: clamp(28px, 4vw, 56px);
		align-items: start;
	}
	.woocommerce-checkout form.checkout::before,
	.woocommerce-checkout form.checkout::after { display: none !important; }
	.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 2; width: auto; float: none; margin: 0; }
	.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin-top: 0 !important; }
	.woocommerce-checkout form.checkout > #order_review { grid-column: 2; grid-row: 2; width: auto; float: none; margin: 0; position: sticky; top: 24px; }
}
.woocommerce-checkout #customer_details.col2-set { display: grid; gap: 16px; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { width: auto !important; float: none !important; margin: 0; }
.woocommerce-checkout #customer_details::before,
.woocommerce-checkout #customer_details::after { display: none !important; }
.woocommerce-checkout #customer_details .col-1 {
	padding: clamp(18px, 2.4vw, 28px);
	border: 1px solid var(--olv-line-light);
	border-radius: 6px;
	background: #fff;
}
.woocommerce-checkout #customer_details .col-2 { padding: 0 4px; }
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
	margin: 0 0 18px;
	font-size: clamp(26px, 2.6vw, 32px);
	font-weight: 500;
}
/* One field per row, larger and easier to tap. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; gap: 14px; }
.woocommerce-checkout .form-row { width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.woocommerce-checkout .form-row label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--olv-text);
}
.woocommerce-checkout .form-row .required { color: #9a3412; text-decoration: none; }
.woocommerce-checkout .form-row .optional { font-weight: 400; color: var(--olv-muted-dark); }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row .select2-container .select2-selection--single {
	width: 100%;
	min-height: 50px;
	padding: 0 14px;
	border: 1px solid var(--olv-line-light) !important;
	border-radius: 4px !important;
	background: #fff;
	color: var(--olv-text);
	font-size: 16px; /* 16px keeps phones from zooming into the field */
	box-shadow: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.woocommerce-checkout .form-row textarea { min-height: 96px; padding: 12px 14px; line-height: 1.5; }
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px; padding: 0; color: var(--olv-text); }
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__arrow { height: 48px; right: 10px; }
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row .select2-container--open .select2-selection--single,
.woocommerce-checkout .form-row .select2-container--focus .select2-selection--single {
	border-color: var(--olv-ink) !important;
	box-shadow: 0 0 0 3px rgba(201, 169, 110, 0.28);
	outline: 0;
}
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text { border-color: #b4532a !important; }
/* The shop only delivers in Bangladesh; the country stays set, just not shown. */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field { display: none !important; }
.woocommerce-checkout #ship-to-different-address { margin: 8px 0 0; font-family: inherit; font-size: 15px; font-weight: 600; }
.woocommerce-checkout #ship-to-different-address label { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.woocommerce-checkout #ship-to-different-address input { width: 18px; height: 18px; margin: 0; accent-color: var(--olv-ink); }
.woocommerce-checkout .woocommerce-additional-fields { margin-top: 16px; }
.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; }

/* Order summary card */
.woocommerce-checkout #order_review_heading { width: auto !important; float: none !important; margin: 28px 0 14px; padding: 0 !important; font-size: clamp(26px, 2.6vw, 32px); font-weight: 500; }
.woocommerce-checkout #order_review {
	padding: clamp(18px, 2.4vw, 26px);
	border: 1px solid var(--olv-line-light);
	border-radius: 6px;
	background: #fff;
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table { margin: 0; border: 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead { display: none; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--olv-line-light); }
.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout table.woocommerce-checkout-review-order-table td { display: block; padding: 0 !important; border: 0 !important; background: transparent !important; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name { display: flex; align-items: center; gap: 12px; font-size: 14px; line-height: 1.35; }
.olv-ro-thumb { position: relative; flex-shrink: 0; }
.olv-ro-thumb img { display: block; width: 56px; height: 56px; object-fit: cover; border: 1px solid var(--olv-line-light); border-radius: 4px; }
.olv-ro-name { font-family: var(--olv-serif); font-size: 18px; color: var(--olv-text); }
.woocommerce-checkout td.product-name .product-quantity { margin-left: 4px; font-weight: 600; color: var(--olv-muted-dark); }
.woocommerce-checkout td.product-name dl.variation { margin: 2px 0 0; font-size: 12px; color: var(--olv-muted-dark); }
.woocommerce-checkout td.product-total { font-weight: 600; white-space: nowrap; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.cart-subtotal th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--olv-muted-dark);
}
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { display: block; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals th { margin-bottom: 10px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total { border-bottom: 0; padding-top: 18px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th { color: var(--olv-text); font-size: 14px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td { font-size: 26px; font-weight: 700; color: var(--olv-text); }

/* Payment: one method, shown as a selected box. */
.woocommerce-checkout #payment { margin-top: 8px; padding: 0; border-radius: 0; background: transparent; }
.woocommerce-checkout #payment ul.payment_methods { margin: 0 0 16px; padding: 0; border: 0; }
.woocommerce-checkout #payment ul.payment_methods li { margin: 0; padding: 14px 16px; border: 1px solid var(--olv-ink); border-radius: 4px; background: var(--olv-paper); list-style: none; }
.woocommerce-checkout #payment ul.payment_methods li > label { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 !important; background: transparent !important; font-size: 15px; font-weight: 700; color: var(--olv-text); }
.woocommerce-checkout #payment ul.payment_methods li > label::before {
	content: '';
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	background: var(--olv-bronze);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='19' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 9.5v5M18 9.5v5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='19' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M6 9.5v5M18 9.5v5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-checkout #payment div.payment_box {
	margin: 6px 0 0 32px;
	padding: 0;
	background: transparent;
	color: var(--olv-muted-dark);
	font-size: 13px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box p { margin: 0; }
.woocommerce-checkout #payment .place-order { margin: 0; padding: 0; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--olv-muted-dark); }
.woocommerce-checkout #payment #place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 58px;
	margin: 0;
	float: none;
	border-radius: 2px;
	background: var(--olv-ink);
	color: var(--olv-ivory);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.woocommerce-checkout #payment #place_order:hover { background: #2b2722; color: #fff; }

/* Checkout errors at the top, readable. */
.woocommerce-checkout .woocommerce-NoticeGroup .woocommerce-error,
.woocommerce-checkout .woocommerce-error {
	margin: 0 0 20px;
	padding: 14px 16px 14px 18px;
	border: 1px solid #e8c9bd;
	border-left: 3px solid #b4532a;
	border-radius: 4px;
	background: #fff;
	color: var(--olv-text);
	font-size: 14px;
	list-style: none;
}
.woocommerce-checkout .woocommerce-error::before { display: none; }

/* Phone: price and Buy now follow once the buttons scroll away. */
.olv-sticky { display: none; }
@media (max-width: 1024px) {
	.olv-sticky {
		position: fixed;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 90;
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: var(--olv-ink);
		border-top: 1px solid var(--olv-line);
		transform: translateY(110%);
		transition: transform 0.25s ease;
	}
	.olv-sticky.is-on { transform: none; }
	.olv-sticky-info { display: flex; flex: 1; flex-direction: column; min-width: 0; }
	.olv-sticky-name { overflow: hidden; font-family: var(--olv-serif); font-size: 17px; color: var(--olv-ivory); white-space: nowrap; text-overflow: ellipsis; }
	.olv-sticky-price { font-size: 15px; font-weight: 700; color: var(--olv-gold); }
	.olv-sticky-price del { display: none; }
	.olv-sticky-price ins { text-decoration: none; }
	.olv-sticky-btn {
		flex: 0 0 auto;
		min-height: 48px;
		padding: 0 22px;
		border: 0;
		border-radius: 2px;
		background: var(--olv-gold);
		color: var(--olv-ink);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.16em;
		text-transform: uppercase;
	}
	.single-product .site-footer { padding-bottom: 72px; }
	/* The chat button would sit on top of Buy now; lift it above the bar. */
	body:has(.olv-sticky.is-on) .chaty-widget { bottom: 88px !important; transition: bottom 0.25s ease; }
	/* On a phone Chaty's always-open "Contact us" label sits over the page;
	   the round button alone is enough. */
	.chaty-widget .chaty-tooltip .on-hover-text,
	.chaty-widget .chaty-tooltip::after,
	.chaty-widget .chaty-tooltip::before { display: none !important; }
}
@media (max-width: 1024px) {
	.single-product div.product .summary { margin-top: 28px; }
	.single-product div.product > .woocommerce-product-gallery { margin-bottom: 0; }
}
@media (max-width: 781px) {
	.single-product .summary .product_title { font-size: 34px; }
	.single-product .summary > .price { font-size: 26px; }
	.olv-assure { grid-template-columns: 1fr; }
	.olv-assure li:nth-child(even) { padding-left: 0; border-left: 0; }
	.single-product .woocommerce-tabs ul.tabs { justify-content: flex-start; overflow-x: auto; flex-direction: row; flex-wrap: nowrap; }
	.single-product .woocommerce-tabs ul.tabs li { flex: 0 0 auto; }
	.single-product .woocommerce-tabs ul.tabs li a { white-space: nowrap; }
}


/* ---------- Spotlight ----------------------------------------------------- */

.olv-spot .wp-block-columns { gap: clamp(40px, 6vw, 88px); }
.olv-spot figure { margin: 0; overflow: hidden; border-radius: 4px; }
.olv-spot figure img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.olv-spot h2 { margin: 0 0 8px; font-size: clamp(46px, 5vw, 68px); line-height: 1; }
.olv-sub { margin: 0 0 28px; font-family: var(--olv-serif); font-style: italic; font-size: 26px; color: var(--olv-gold); }
.olv-specs { margin: 0 0 28px; }
.olv-specs table { width: 100%; border-collapse: collapse; border-bottom: 1px solid var(--olv-line); }
.olv-specs td {
	padding: 16px 0;
	border: 0;
	border-top: 1px solid var(--olv-line);
	font-size: 15px;
	color: var(--olv-ivory);
	background: transparent;
}
.olv-specs td:first-child { color: var(--olv-muted); }
.olv-specs td:last-child { text-align: right; font-weight: 500; }
/* Price on its own line, then Add to cart and View details side by side. The
   price and the button come out of one shortcode paragraph, so the column
   lays them out directly (display: contents) and a zero-height break sits
   between the price and the buttons. */
.olv-spot .wp-block-column:has(.olv-buy) {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	align-content: center;
	column-gap: 12px;
}
.olv-spot .wp-block-column:has(.olv-buy) > * { flex: 0 0 100%; }
.olv-spot .wp-block-column:has(.olv-buy) > .olv-buy,
.olv-spot .olv-buy > .wp-block-group__inner-container,
.olv-spot .olv-buy .add_to_cart_inline { display: contents; }
.olv-spot .add_to_cart_inline del,
.olv-spot .add_to_cart_inline ins { flex: 0 0 auto; margin: 0 16px 20px 0; }
.olv-spot .add_to_cart_inline ins { order: 0; }
.olv-spot .add_to_cart_inline del { order: 1; }
.olv-spot .olv-buy::after { content: ''; flex: 0 0 100%; height: 0; order: 2; }
.olv-spot .add_to_cart_inline .button { order: 3; }
.olv-spot .wp-block-column:has(.olv-buy) > .wp-block-buttons { flex: 0 0 auto; order: 4; margin: 0; }
.olv-spot .wp-block-column:has(.olv-buy) .olv-btn-ghost .wp-block-button__link { min-height: 56px; display: inline-flex; align-items: center; }
/* [add_to_cart show_price="true"] prints the live price and the button in one
   paragraph, so the price here is never a stale copy of the product's. */
.olv-spot .add_to_cart_inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	font-size: 34px;
	font-weight: 700;
	color: var(--olv-ivory);
}
.olv-spot .add_to_cart_inline del { font-size: 20px; font-weight: 400; color: var(--olv-muted); }
.olv-spot .add_to_cart_inline ins { text-decoration: none; }
.olv-spot .add_to_cart_inline .button {
	display: inline-flex;
	align-items: center;
	min-height: 56px;
	padding: 0 30px;
	border-radius: 2px;
	background: var(--olv-gold);
	color: var(--olv-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
.olv-spot .add_to_cart_inline .button:hover { background: var(--olv-gold-hover); color: var(--olv-ink); }
/* Kadence puts an arrow, a spinner and a tick in every add-to-cart button and
   only hides the last two inside a product grid; this button is outside one. */
.olv-spot .add_to_cart_inline .button .kadence-svg-iconset { display: none; }

/* ---------- Help band ------------------------------------------------------ */

.olv-help { background: var(--olv-ink-2); border-top: 1px solid var(--olv-line); }
.olv-help .wp-block-columns { align-items: center; gap: 40px; }
.olv-help h2 { margin: 0 0 12px; font-size: clamp(32px, 3.4vw, 46px); line-height: 1.08; }
.olv-help p { margin: 0; font-size: 16px; line-height: 1.7; color: var(--olv-muted); }
.olv-help .wp-block-buttons { justify-content: flex-end; }

/* ---------- Footer ---------------------------------------------------------- */

#colophon,
#colophon .site-footer-row-container-inner {
	background: var(--olv-ink);
	color: var(--olv-muted);
}
#colophon .site-footer-row-container-inner { border-top: 1px solid var(--olv-line); }
#colophon .widget-title,
#colophon h2.wp-block-heading,
#colophon h3.wp-block-heading {
	margin-bottom: 16px;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--olv-gold);
}
#colophon a { color: var(--olv-soft); text-decoration: none; }
#colophon a:hover { color: var(--olv-gold-hover); }
#colophon ul { list-style: none; margin: 0; padding: 0; }
#colophon li { margin: 0 0 10px; }
#colophon .footer-html { font-size: 13px; }

/* ---------- Small screens ------------------------------------------------- */

@media (max-width: 781px) {
	.olv-arch { margin: 0 12px 12px 0; max-width: none; }
	.olv-arch::before { inset: 12px -12px -12px 12px; }
	.olv-section-head { margin-bottom: 28px !important; }
	.olv-section-head:not(:has(> .wp-block-group__inner-container)),
	.olv-section-head > .wp-block-group__inner-container { flex-direction: column; align-items: flex-start; gap: 12px; }
	/* Two-up product cards: a smaller title and tighter padding keep names
	   like "Chronograph" whole. */
	.woocommerce ul.products li.product .product-details { padding: 14px 12px 16px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; word-break: normal; overflow-wrap: break-word; }
	.woocommerce ul.products li.product .price { font-size: 15px; }
	.olv-trust .wp-block-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.olv-trust .wp-block-column { flex-direction: column; align-items: flex-start; padding: 22px 12px 22px 16px; border-left: 1px solid var(--olv-line); border-bottom: 1px solid var(--olv-line); }
	.olv-trust .wp-block-column:nth-child(odd) { border-left: 0; padding-left: 0; }
	.olv-trust .wp-block-column:nth-child(n+3) { border-bottom: 0; }
	/* The photo leads on a phone, above the headline. */
	.olv-hero .wp-block-columns > .wp-block-column:last-child { order: -1; }
	/* Categories scroll sideways on phones instead of stacking three tall tiles.
	   Core stacks columns with flex-basis:100% !important on a selector this has
	   to outrank. */
	.olv-cats .wp-block-columns { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
	.olv-cats .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column.olv-cat { flex: 0 0 62% !important; flex-basis: 62% !important; scroll-snap-align: start; }
	.olv-help .wp-block-buttons { justify-content: flex-start; }
	.wp-block-button.olv-btn-gold, .wp-block-button.olv-btn-ghost { width: 100%; }
	.wp-block-button.olv-btn-gold .wp-block-button__link, .wp-block-button.olv-btn-ghost .wp-block-button__link { width: 100%; justify-content: center; }
	.olv-spot .add_to_cart_inline .button,
	.olv-spot .wp-block-column:has(.olv-buy) > .wp-block-buttons { flex: 1 1 100%; justify-content: center; margin-bottom: 12px; }
	/* Two-up cards on a phone: a shorter button label line. */
	.woocommerce ul.products li.product .button { min-height: 44px; font-size: 11px; letter-spacing: 0.1em; }
	.woocommerce ul.products li.product .product-details { padding: 12px 0 0 !important; }
	.olv-card-meta { font-size: 10.5px; letter-spacing: 0.1em; }
	.woocommerce ul.products li.product .onsale { top: 8px; right: 8px; padding: 5px 7px; font-size: 9.5px; letter-spacing: 0.06em; }
}
