/* ==========================================================================
   Obran Vale theme: main stylesheet
   Palette: Black #0B0B0B · Champagne gold #D8AD55 · Ivory #FAF8F3 · White
   System font stack (no external font requests, fast on mobile).
   ========================================================================== */

:root {
	--obv-black: #0b0b0b;
	--obv-gold: #d8ad55;
	--obv-gold-deep: #b88a2e;
	--obv-ivory: #faf8f3;
	--obv-white: #ffffff;
	--obv-ink: #1b1b1b;
	--obv-mute: #5f5f5f;
	--obv-line: rgba(11, 11, 11, 0.12);
	--obv-radius: 18px;
	--obv-radius-sm: 12px;
	--obv-shadow: 0 10px 30px rgba(11, 11, 11, 0.08);
	--obv-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
	--obv-gutter: 16px;
	--obv-max: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }

body {
	margin: 0;
	font-family: var(--obv-font);
	font-size: 16px;
	line-height: 1.6;
	color: var(--obv-ink);
	background: var(--obv-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--obv-gold-deep); }
h1, h2, h3, h4 { font-weight: 650; line-height: 1.12; letter-spacing: -0.02em; margin: 0 0 0.5em; color: var(--obv-black); }
h1 { font-size: clamp(2rem, 5.5vw, 3.6rem); }
h2 { font-size: clamp(1.6rem, 3.6vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
p { margin: 0 0 1em; }

:focus-visible { outline: 3px solid var(--obv-gold); outline-offset: 2px; border-radius: 4px; }

.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); height: 1px; width: 1px; overflow: hidden; word-wrap: normal; }
.skip-link:focus { clip: auto; width: auto; height: auto; left: 8px; top: 8px; z-index: 100000; background: var(--obv-black); color: var(--obv-gold); padding: 10px 16px; border-radius: 8px; }

.obv-container { width: 100%; max-width: var(--obv-max); margin: 0 auto; padding: 0 var(--obv-gutter); }
.obv-container--narrow { max-width: 860px; }
.obv-center { text-align: center; }
@media (min-width: 900px) { :root { --obv-gutter: 32px; } }

/* ---- Buttons ---------------------------------------------------------- */
.obv-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .wp-block-button__link, .woocommerce-Button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 26px; min-height: 48px;
	border: 1px solid var(--obv-black); border-radius: 999px;
	background: var(--obv-black); color: var(--obv-white);
	font: 600 15px/1 var(--obv-font); letter-spacing: 0.01em; text-decoration: none; cursor: pointer;
	transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
.obv-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black); transform: translateY(-1px); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #place_order { background: var(--obv-black); }
.obv-button--gold { background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black); }
.obv-button--gold:hover { background: var(--obv-white); border-color: var(--obv-white); }
.obv-button--ghost { background: transparent; color: inherit; border-color: currentColor; }
.obv-button--ghost-dark { background: transparent; color: var(--obv-black); }
.woocommerce button.button:disabled, .woocommerce button.button.disabled { opacity: .45; cursor: not-allowed; }
.obv-link { font-weight: 600; }

/* ---- Top bar / header -------------------------------------------------- */
/* Topbar height: 2 lines on narrow mobile, 1 line wider. Used to stack sticky elements. */
:root { --obv-topbar-h: 54px; }
@media (min-width: 480px) { :root { --obv-topbar-h: 36px; } }

.obv-topbar { position: sticky; top: 0; z-index: 999; background: var(--obv-black); color: var(--obv-gold); font-size: 12.5px; text-align: center; padding: 8px var(--obv-gutter); letter-spacing: 0.02em; }
.obv-topbar p { margin: 0; }
.admin-bar .obv-topbar { top: 32px; }
@media (max-width: 782px) { .admin-bar .obv-topbar { top: 46px; } }

.obv-header { position: sticky; top: var(--obv-topbar-h); z-index: 50; background: rgba(255, 255, 255, 0.92); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); border-bottom: 1px solid var(--obv-line); }
/* Remove backdrop-filter on mobile: it creates a containing block that breaks position:fixed children (the slide-out nav). Desktop nav is position:static so this doesn't apply there. */
@media (max-width: 959px) { .obv-header { backdrop-filter: none; -webkit-backdrop-filter: none; } }
.admin-bar .obv-header { top: calc(32px + var(--obv-topbar-h)); }
@media (max-width: 782px) { .admin-bar .obv-header { top: calc(46px + var(--obv-topbar-h)); } }
/* At 600px and below WordPress makes #wpadminbar position:absolute, so it scrolls away. */
@media (max-width: 600px) { .admin-bar .obv-topbar { top: 0; } .admin-bar .obv-header { top: var(--obv-topbar-h); } }
.obv-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; }
.obv-header__brand { flex: 1; display: flex; justify-content: center; }
.obv-header__actions { display: flex; align-items: center; gap: 2px; }
.obv-iconbtn { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border: 0; background: transparent; color: var(--obv-black); border-radius: 50%; cursor: pointer; text-decoration: none; }
.obv-iconbtn:hover { background: var(--obv-ivory); color: var(--obv-black); }
.obv-cart-count { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--obv-gold); color: var(--obv-black); font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.obv-cart-count.is-empty { display: none; }

.obv-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--obv-black); font-weight: 700; font-size: 19px; letter-spacing: 0.04em; text-transform: uppercase; }
.obv-brand:hover { color: var(--obv-black); }
.obv-brand__mark { width: 14px; height: 14px; border-radius: 4px; background: linear-gradient(135deg, var(--obv-gold), var(--obv-gold-deep)); transform: rotate(45deg); }
.custom-logo { max-height: 40px; width: auto; }

/* Mobile-first navigation: slide-down panel */
.obv-nav { position: fixed; inset: 0; top: 0; padding: 96px var(--obv-gutter) 32px; background: var(--obv-white); transform: translateY(-110%); visibility: hidden; transition: transform .3s ease, visibility .3s ease; z-index: -1; overflow-y: auto; }
body.obv-nav-open { overflow: hidden; }
body.obv-nav-open .obv-nav { transform: none; visibility: visible; z-index: 40; }
.obv-nav-toggle { order: -1; }
.obv-menu { list-style: none; margin: 0; padding: 0; }
.obv-menu a { display: block; padding: 14px 0; font-size: 22px; font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--obv-line); }
.obv-menu .sub-menu { list-style: none; padding-left: 16px; }
.obv-searchbar { border-top: 1px solid var(--obv-line); background: var(--obv-white); padding: 14px 0; }
.obv-searchform { display: flex; gap: 10px; }
.obv-searchform input[type="search"] { flex: 1; min-width: 0; padding: 12px 18px; font: inherit; border: 1px solid var(--obv-line); border-radius: 999px; }
.obv-model-nav { border-top: 1px solid var(--obv-line); }
.obv-model-nav .obv-container { padding-block: 0; }
.obv-model-nav__list { display: flex; list-style: none; margin: 0; padding: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.obv-model-nav__list::-webkit-scrollbar { display: none; }
.obv-model-nav__link { display: flex; flex-direction: column; align-items: flex-start; white-space: nowrap; padding: 7px 14px; font-size: 12.5px; font-weight: 500; letter-spacing: 0.01em; color: var(--obv-black); text-decoration: none; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.obv-model-nav__link:hover, .obv-model-nav__link.is-active { color: var(--obv-gold-deep); border-bottom-color: var(--obv-gold-deep); }
.obv-model-nav__price { font-size: 10.5px; font-weight: 400; opacity: 0.6; margin-top: 1px; }
/* Compact model nav on mobile: single-line, no price */
@media (max-width: 767px) {
	.home .obv-model-nav { display: none; }
	.obv-model-nav__link { flex-direction: row; align-items: center; gap: 6px; padding: 8px 12px; }
	.obv-model-nav__price { display: none; }
}

@media (min-width: 960px) {
	.obv-nav-toggle { display: none; }
	.obv-header__inner { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; }
	.obv-header__brand { justify-content: flex-start; flex: none; }
	.obv-nav { position: static; inset: auto; padding: 0; transform: none; visibility: visible; z-index: auto; overflow: visible; background: transparent; }
	.obv-menu { display: flex; justify-content: center; gap: 28px; }
	.obv-menu a { padding: 8px 0; font-size: 14.5px; font-weight: 500; border: 0; }
	.obv-menu a:hover { color: var(--obv-gold-deep); }
}

/* ---- Typography helpers ------------------------------------------------ */
.obv-eyebrow { margin: 0 0 12px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--obv-gold-deep); }
.obv-lede { font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.5; color: var(--obv-mute); max-width: 60ch; }

/* ---- Hero --------------------------------------------------------------- */
.obv-hero { position: relative; background: var(--obv-black); color: var(--obv-white); overflow: hidden; width: 100%; }
.obv-hero__slide { display: none; position: relative; min-height: min(78vh, 680px); align-items: center; }
.obv-hero__slide.is-active { display: flex; animation: obvFade .8s ease both; }
@keyframes obvFade { from { opacity: 0; } to { opacity: 1; } }
.obv-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.obv-hero__slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,11,11,.72), rgba(11,11,11,.15)); pointer-events: none; }
.obv-hero__slide--dark { color: var(--obv-black); }
.obv-hero__slide--dark::after { background: linear-gradient(90deg, rgba(250,248,243,.8), rgba(250,248,243,.1)); }
.obv-hero__slide--dark .obv-hero__title, .obv-hero__slide--dark .obv-lede { color: var(--obv-black); }
.obv-hero__content { position: relative; z-index: 2; padding-top: 56px; padding-bottom: 56px; max-width: 780px; }
.obv-hero__slide .obv-container.obv-hero__content { margin-left: 0; margin-right: auto; }
@media (min-width: 1240px) { .obv-hero__slide .obv-container.obv-hero__content { margin-left: calc((100vw - var(--obv-max)) / 2); } }
.obv-hero__title { color: inherit; font-size: clamp(2.2rem, 7vw, 4.6rem); margin-bottom: 18px; }
.obv-hero .obv-lede { color: rgba(255,255,255,.82); }
.obv-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.obv-hero__cta .obv-button { background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black); }
.obv-hero__cta .obv-button:hover { background: var(--obv-white); border-color: var(--obv-white); }
.obv-hero__cta .obv-button--ghost { background: transparent; border-color: currentColor; color: inherit; }
.obv-hero__controls { position: absolute; right: var(--obv-gutter); bottom: 16px; z-index: 5; display: flex; gap: 8px; }
.obv-hero__controls .obv-iconbtn { background: rgba(255,255,255,.14); color: #fff; }

.obv-hero__slide--default { background: radial-gradient(1200px 600px at 80% 20%, rgba(216,173,85,.22), transparent 60%), linear-gradient(160deg, #0b0b0b, #1a1a1a); }
.obv-hero__slide--default::after { display: none; }
.obv-hero__grid { position: relative; z-index: 2; display: grid; gap: 24px; align-items: center; padding-top: 48px; padding-bottom: 48px; }
@media (max-width: 767px) { .obv-hero__grid { padding-top: 28px; padding-bottom: 32px; } }
.obv-hero__grid .obv-hero__content { padding: 0; }
.obv-hero__art { display: none; justify-self: center; }
.obv-phone-svg { width: min(280px, 60vw); filter: drop-shadow(0 30px 50px rgba(0,0,0,.5)); }
@media (min-width: 900px) { .obv-hero__grid { grid-template-columns: 1.3fr .7fr; } .obv-hero__art { display: block; } }

/* ---- Trust strip -------------------------------------------------------- */
.obv-strip { background: var(--obv-ivory); border-bottom: 1px solid var(--obv-line); }
.obv-strip__list { list-style: none; margin: 0 auto; padding-top: 18px; padding-bottom: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.obv-strip__list li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; }
.obv-strip__list svg { flex: none; color: var(--obv-gold-deep); }
@media (min-width: 900px) { .obv-strip__list { grid-template-columns: repeat(4, 1fr); } }

/* ---- Sections ----------------------------------------------------------- */
.obv-section { padding: 64px 0; }
.obv-section--ivory { background: var(--obv-ivory); }
.obv-section--dark { background: var(--obv-black); color: var(--obv-white); }
.obv-section--dark h2, .obv-section--dark h3 { color: var(--obv-white); }
.obv-section__head { max-width: 720px; margin-bottom: 36px; }
@media (min-width: 900px) { .obv-section { padding: 96px 0; } }

.obv-cats { display: grid; gap: 20px; }
.obv-cat { padding: 32px 28px; border-radius: var(--obv-radius); border: 1px solid var(--obv-line); background: var(--obv-ivory); display: flex; flex-direction: column; align-items: flex-start; }
.obv-cat h3 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: 4px; }
.obv-cat__tag { font-weight: 600; color: var(--obv-gold-deep); }
.obv-cat--unfurbished { background: var(--obv-black); color: rgba(255,255,255,.85); border-color: var(--obv-black); }
.obv-cat--unfurbished h3 { color: var(--obv-white); }
.obv-cat--unfurbished .obv-cat__tag, .obv-cat--unfurbished .obv-eyebrow { color: var(--obv-gold); }
.obv-cat .obv-button { margin-top: auto; }
@media (min-width: 800px) { .obv-cats { grid-template-columns: 1fr 1fr; } .obv-cat { padding: 48px 40px; min-height: 380px; } }

.obv-battery__inner { display: grid; gap: 24px; align-items: center; }
.obv-battery__icon { color: var(--obv-gold); }
.obv-battery h2 { color: var(--obv-gold); max-width: 28ch; }
.obv-battery p { color: rgba(255,255,255,.78); max-width: 60ch; }
@media (min-width: 800px) { .obv-battery__inner { grid-template-columns: auto 1fr; gap: 56px; } }

.obv-series { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.obv-series a { display: flex; flex-direction: column; gap: 2px; padding: 22px 20px; border: 1px solid var(--obv-line); border-radius: var(--obv-radius-sm); text-decoration: none; transition: border-color .2s, transform .2s, box-shadow .2s; }
.obv-series a:hover { border-color: var(--obv-gold); transform: translateY(-2px); box-shadow: var(--obv-shadow); }
.obv-series span { font-weight: 650; font-size: 18px; }
.obv-series small { color: var(--obv-mute); }
@media (min-width: 800px) { .obv-series { grid-template-columns: repeat(4, 1fr); } }

.obv-steps { list-style: none; counter-reset: step; margin: 0 0 32px; padding: 0; display: grid; gap: 16px; }
.obv-steps li { counter-increment: step; padding: 24px; border: 1px solid var(--obv-line); border-radius: var(--obv-radius); display: flex; flex-direction: column; gap: 6px; }
.obv-steps li::before { content: counter(step); display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--obv-black); color: var(--obv-gold); font-weight: 700; margin-bottom: 8px; }
.obv-steps span { color: var(--obv-mute); }
@media (min-width: 800px) { .obv-steps { grid-template-columns: repeat(3, 1fr); } }

/* ---- Page header & prose ------------------------------------------------ */
.obv-main { min-height: 50vh; }
.obv-page-hero { padding: 48px 0 24px; }
.obv-page-hero--unfurbished { }
.obv-hero-battery { display: inline-flex; align-items: flex-start; gap: 8px; padding: 10px 16px; border-radius: 14px; background: var(--obv-ivory); border: 1px solid var(--obv-line); font-size: 14px; font-weight: 600; margin-top: 8px; }
.obv-hero-battery svg { flex: none; color: var(--obv-gold-deep); margin-top: 2px; }
.obv-prose { padding-bottom: 72px; font-size: 17px; }
.obv-prose h2 { margin-top: 1.6em; font-size: clamp(1.4rem, 3vw, 1.9rem); }
.obv-prose ul, .obv-prose ol { padding-left: 1.3em; }
.obv-prose li { margin-bottom: .4em; }
.obv-entry { padding: 24px 0; border-bottom: 1px solid var(--obv-line); }
.obv-entry__title { font-size: 1.5rem; margin-bottom: 4px; }
.obv-entry__title a { text-decoration: none; }
.obv-entry__meta { color: var(--obv-mute); font-size: 14px; }

/* ---- WooCommerce: loops -------------------------------------------------- */
.woocommerce ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 20px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (min-width: 560px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); gap: 28px; } }
.woocommerce ul.products li.product { position: relative; width: auto !important; margin: 0 !important; float: none !important; padding: 0 0 20px; background: var(--obv-white); border: 1px solid var(--obv-line); border-radius: var(--obv-radius); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease, border-color .25s; display: flex; flex-direction: column; }
.woocommerce ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--obv-shadow); border-color: var(--obv-gold); }
.obv-card__media { position: relative; background: var(--obv-ivory); aspect-ratio: 4 / 5; overflow: hidden; }
.woocommerce ul.products li.product .obv-card__media img { width: 100%; height: 100%; object-fit: cover; margin: 0; display: block; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 18px 20px 4px; font-size: 17px; font-weight: 650; letter-spacing: -0.01em; }
.woocommerce ul.products li.product .price { display: block; padding: 0 20px; color: var(--obv-black); font-weight: 650; font-size: 18px; margin-bottom: 8px; }
.woocommerce ul.products li.product .price del { opacity: .5; font-weight: 400; margin-right: 6px; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .obv-card-facts { padding: 0 20px; }
.woocommerce ul.products li.product .button { margin: auto 20px 0; align-self: flex-start; padding: 12px 22px; min-height: 44px; }
.woocommerce ul.products li.product .added_to_cart { margin: 8px 20px 0; font-size: 14px; }
.woocommerce span.onsale.obv-badge-sale { display: inline-block; position: absolute; top: 10px; left: 10px; background: var(--obv-gold-deep); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; padding: 3px 8px; border-radius: 4px; z-index: 2; }
.woocommerce span.onsale:not(.obv-badge-sale) { display: none; }

.woocommerce-result-count { margin: 0 0 16px; color: var(--obv-mute); font-size: 14px; }
.woocommerce-ordering { margin: 0 0 24px; }
.woocommerce-ordering select, .woocommerce .woocommerce-ordering select { padding: 10px 16px; border: 1px solid var(--obv-line); border-radius: 999px; background: #fff; font: inherit; }
@media (min-width: 700px) { .woocommerce-result-count { float: left; margin: 10px 0 0; } .woocommerce-ordering { float: right; } .woocommerce ul.products { clear: both; } }
.woocommerce-pagination { margin-top: 40px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { padding: 10px 16px; border: 1px solid var(--obv-line); border-radius: 999px; min-width: 44px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--obv-black); color: var(--obv-gold); border-color: var(--obv-black); }

/* ---- Filters ------------------------------------------------------------- */
.obv-filters { margin: 0 0 24px; border: 1px solid var(--obv-line); border-radius: var(--obv-radius-sm); background: var(--obv-ivory); }
.obv-filters > summary { display: flex; align-items: center; gap: 10px; padding: 14px 18px; font-weight: 650; cursor: pointer; list-style: none; }
.obv-filters > summary::-webkit-details-marker { display: none; }
.obv-filters__form { display: grid; gap: 20px; padding: 4px 18px 20px; }
.obv-filters fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.obv-filters legend { padding: 0; margin-bottom: 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--obv-mute); }
.obv-filters label { display: inline-flex; align-items: center; gap: 6px; margin: 0 14px 6px 0; font-size: 14.5px; cursor: pointer; }
.obv-filters input[type="checkbox"], .obv-filters input[type="radio"] { accent-color: var(--obv-black); width: 18px; height: 18px; }
.obv-filters select, .obv-filters input[type="number"] { padding: 10px 14px; border: 1px solid var(--obv-line); border-radius: 10px; font: inherit; background: #fff; width: 100%; max-width: 160px; }
.obv-filters__price { display: flex; align-items: center; gap: 8px; }
.obv-filters__actions { display: flex; align-items: center; gap: 18px; }
@media (min-width: 800px) { .obv-filters__form { grid-template-columns: repeat(3, 1fr); } .obv-filters__actions { grid-column: 1 / -1; } }

/* ---- Product badges / pills --------------------------------------------- */
.obv-card-badges { position: absolute; top: 12px; left: 12px; z-index: 3; display: flex; gap: 6px; flex-wrap: wrap; }
.single-product .obv-pill { margin-bottom: 12px; }

/* ---- Single product ------------------------------------------------------ */
.single-product .obv-main, .single-product div.product { padding-top: 24px; }
.woocommerce div.product div.images { margin-bottom: 24px; }
.woocommerce div.product div.images img { border-radius: var(--obv-radius); }
.woocommerce div.product .product_title { font-size: clamp(1.8rem, 4vw, 2.6rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.7rem; font-weight: 650; color: var(--obv-black); }
.woocommerce div.product form.cart { margin: 20px 0; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.woocommerce div.product form.cart .button { flex: 1 1 220px; }
.woocommerce .quantity .qty { padding: 12px; border: 1px solid var(--obv-line); border-radius: 10px; width: 72px; }
.woocommerce div.product .stock { font-weight: 600; }
.woocommerce div.product .stock.out-of-stock, .obv-sold { color: #8a1f1f; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 40px 0 0; display: flex; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--obv-line); overflow: visible; }
.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: transparent; border: 0; border-radius: 0; margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 16px; font-weight: 600; color: var(--obv-mute); text-decoration: none; display: block; border-bottom: 2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--obv-black); border-bottom-color: var(--obv-gold); }
.woocommerce div.product .woocommerce-tabs .panel { padding: 24px 0; margin: 0; }
.obv-list { padding-left: 1.2em; }
.obv-trust { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.obv-trust li { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; }
.obv-trust svg { flex: none; color: var(--obv-gold-deep); margin-top: 1px; }
.woocommerce div.product .product_meta { font-size: 13px; color: var(--obv-mute); }
@media (min-width: 900px) {
	.woocommerce div.product div.images { float: left; width: 52%; }
	.woocommerce div.product div.summary { float: right; width: 44%; position: sticky; top: 100px; }
	.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related, .woocommerce div.product .upsells { clear: both; }
}

/* ---- Cart / Checkout / Account ------------------------------------------- */
.woocommerce table.shop_table { border: 1px solid var(--obv-line); border-radius: var(--obv-radius-sm); border-collapse: separate; overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 14px 16px; border-color: var(--obv-line); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single { padding: 12px 14px; min-height: 48px; border: 1px solid var(--obv-line); border-radius: 10px; font: inherit; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }
.woocommerce form .form-row label { font-weight: 600; font-size: 14px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-radius: var(--obv-radius-sm); border-top-color: var(--obv-gold); background: var(--obv-ivory); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--obv-gold-deep); }
.wc-block-components-button:not(.is-link) { background: var(--obv-black) !important; color: var(--obv-white) !important; border-radius: 999px !important; }
.wc-block-components-button:not(.is-link):hover { background: var(--obv-gold) !important; color: var(--obv-black) !important; }
.woocommerce-checkout #payment { background: var(--obv-ivory); border-radius: var(--obv-radius-sm); }
.woocommerce-checkout #payment ul.payment_methods { border-color: var(--obv-line); }
.obv-order-warranty { padding: 24px; border: 1px solid var(--obv-gold); border-radius: var(--obv-radius); background: var(--obv-ivory); }

/* ---- Footer --------------------------------------------------------------- */
.obv-footer { background: var(--obv-black); color: rgba(255,255,255,.75); padding: 64px 0 24px; margin-top: 0; }
.obv-footer a { color: rgba(255,255,255,.85); text-decoration: none; }
.obv-footer a:hover { color: var(--obv-gold); }
.obv-footer h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; color: var(--obv-gold); margin-bottom: 16px; font-weight: 700; }
.obv-footer .obv-brand, .obv-footer .obv-brand:hover { color: var(--obv-white); }
.obv-footer__grid { display: grid; gap: 32px; }
.obv-footer__tag { color: var(--obv-gold); font-weight: 600; margin: 12px 0 8px; }
.obv-footer__small { font-size: 14px; }
.obv-footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15px; }
.obv-footer__legal { margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); font-size: 12.5px; color: rgba(255,255,255,.55); }
.obv-footer__legal p { margin: 0 0 4px; }
@media (min-width: 800px) { .obv-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; } }

/* ---- Plugin form + notices harmonised with theme -------------------------- */
.obv-claim .obv-button { width: auto; }
.obv-promo { margin: 24px 0; }

/* Print: policies and order warranty pages */
@media print {
	.obv-topbar, .obv-header, .obv-footer, .obv-filters, .obv-hero__controls { display: none !important; }
	body { color: #000; }
}

/* ==========================================================================
   NOIR TRUST: the black edition. Loaded last so it wins over the base above.
   bg #0B0B0B · card #141414 · gold #D8AD55 · ivory text
   ========================================================================== */
:root {
	--obv-ink: #ece8df;
	--obv-mute: #a39f95;
	--obv-line: rgba(255, 255, 255, 0.13);
	--obv-card: #141414;
	--obv-shadow: 0 14px 40px rgba(0, 0, 0, 0.55);
	--obv-gold-deep: #d8ad55;
	--obv-ok: #5fbf8a;
	--obv-err: #ff7b7b;
}
body { background: var(--obv-black); color: var(--obv-ink); }
h1, h2, h3, h4, h5 { color: var(--obv-ivory); }
a:hover { color: var(--obv-gold); }
.obv-muted { color: var(--obv-mute); }

/* Buttons: gold is the primary action on black */
.obv-button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .wp-block-button__link, .woocommerce-Button, .woocommerce #place_order {
	background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black);
}
.obv-button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--obv-ivory); border-color: var(--obv-ivory); color: var(--obv-black); }
.obv-button--ghost, .obv-button--ghost-dark { background: transparent; color: var(--obv-ivory); border-color: rgba(255, 255, 255, .4); }
.obv-button--ghost:hover, .obv-button--ghost-dark:hover { background: var(--obv-gold); color: var(--obv-black); border-color: var(--obv-gold); }
.wc-block-components-button:not(.is-link) { background: var(--obv-gold) !important; color: var(--obv-black) !important; }
.wc-block-components-button:not(.is-link):hover { background: var(--obv-ivory) !important; }

/* Header */
.obv-header { background: #0b0b0b; border-bottom-color: var(--obv-line); }
.obv-brand, .obv-brand:hover, .obv-iconbtn { color: var(--obv-ivory); }
.obv-iconbtn:hover { background: var(--obv-card); color: var(--obv-gold); }
.obv-topbar { background: #000; border-bottom: 1px solid var(--obv-line); }
.obv-nav { background: var(--obv-black); }
.obv-menu a { color: var(--obv-ivory); }
.obv-searchbar { background: var(--obv-black); border-top-color: var(--obv-line); }
.obv-searchform input[type="search"] { background: var(--obv-card); color: var(--obv-ivory); border-color: var(--obv-line); }
.obv-model-nav { border-top-color: var(--obv-line); }
.obv-model-nav__link { color: var(--obv-ink); }
.obv-model-nav__link:hover, .obv-model-nav__link.is-active { color: var(--obv-gold); border-bottom-color: var(--obv-gold); }

/* Sections */
.obv-section--ivory { background: var(--obv-card); }
.obv-section--dark { background: #000; }
.obv-strip { background: var(--obv-card); border-bottom-color: var(--obv-line); }
.obv-lede { color: var(--obv-mute); }
.obv-hero hr { display: none; }
.obv-hero__slide--default { background: radial-gradient(1100px 560px at 82% 15%, rgba(216, 173, 85, .20), transparent 60%), #0b0b0b; }
@media (max-width: 700px) {
	.obv-hero__art, .obv-hero__img { display: none; }
	.obv-hero__slide { min-height: 0; }
}

/* Explore devices */
.obv-series a { background: var(--obv-card); border-color: var(--obv-line); }
.obv-series a:hover { border-color: var(--obv-gold); }
.obv-series { margin-bottom: 32px; }
.obv-explore { margin: 0 0 24px; }
.obv-explore__radio { position: absolute; opacity: 0; pointer-events: none; }
.obv-explore__tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 20px; scrollbar-width: none; }
.obv-explore__tabs::-webkit-scrollbar { display: none; }
.obv-explore__tab { flex: none; padding: 10px 18px; border: 1px solid var(--obv-line); border-radius: 999px; font-weight: 600; font-size: 14.5px; cursor: pointer; white-space: nowrap; color: var(--obv-mute); }
.obv-explore__panel { display: none; }
#obv-tier-unfurbished:checked ~ .obv-explore__tabs .obv-explore__tab--unfurbished,
#obv-tier-refurbished:checked ~ .obv-explore__tabs .obv-explore__tab--refurbished,
#obv-tier-economic:checked ~ .obv-explore__tabs .obv-explore__tab--economic { background: var(--obv-gold); color: var(--obv-black); border-color: var(--obv-gold); }
#obv-tier-unfurbished:checked ~ .obv-explore__panel--unfurbished,
#obv-tier-refurbished:checked ~ .obv-explore__panel--refurbished,
#obv-tier-economic:checked ~ .obv-explore__panel--economic { display: block; }
.obv-explore__radio:focus-visible ~ .obv-explore__tabs .obv-explore__tab { outline: 2px solid var(--obv-gold); }
.obv-explore__note { color: var(--obv-mute); }
.obv-explore .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 12px; }
@media (min-width: 960px) { .obv-explore .woocommerce ul.products { grid-template-columns: repeat(4, 1fr); gap: 20px; } }

/* Unboxing video */
.obv-unbox__grid { display: grid; gap: 28px; align-items: center; }
.obv-unbox__video { width: 100%; border-radius: var(--obv-radius); background: #000; aspect-ratio: 16 / 9; object-fit: cover; box-shadow: var(--obv-shadow); }
@media (min-width: 900px) { .obv-unbox__grid { grid-template-columns: 1fr 1.3fr; gap: 56px; } }

/* Promises */
.obv-promises { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.obv-promises li { padding: 22px; border: 1px solid var(--obv-line); border-radius: var(--obv-radius); background: var(--obv-card); display: flex; flex-direction: column; gap: 6px; }
.obv-promises strong { color: var(--obv-gold); font-size: 1.05rem; }
.obv-promises span { color: var(--obv-mute); }
@media (min-width: 800px) { .obv-promises { grid-template-columns: repeat(4, 1fr); } }

/* Price cards */
.obv-cat { background: var(--obv-card); border-color: var(--obv-line); color: var(--obv-ink); }
.obv-cat--unfurbished { background: linear-gradient(160deg, #1d1810, #141414); border-color: rgba(216, 173, 85, .5); }
.obv-cat--unfurbished h3 { color: var(--obv-ivory); }
.obv-cats--3 { grid-template-columns: 1fr; }
@media (min-width: 900px) { .obv-cats--3 { grid-template-columns: repeat(3, 1fr); } .obv-cats--3 .obv-cat { min-height: 320px; padding: 36px 30px; } }

.obv-steps li { background: var(--obv-card); border-color: var(--obv-line); }
.obv-steps li::before { background: var(--obv-gold); color: var(--obv-black); }

/* Category tabs on shop pages */
.obv-tabs { display: flex; gap: 8px; overflow-x: auto; margin: 4px 0 20px; scrollbar-width: none; }
.obv-tabs::-webkit-scrollbar { display: none; }
.obv-tabs a { flex: none; padding: 10px 18px; border: 1px solid var(--obv-line); border-radius: 999px; text-decoration: none; font-weight: 600; font-size: 14.5px; color: var(--obv-mute); }
.obv-tabs a.is-active { background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black); }
.obv-hero-battery { background: var(--obv-card); border-color: var(--obv-line); color: var(--obv-ivory); }

/* Product cards */
.woocommerce ul.products li.product { background: var(--obv-card); border-color: var(--obv-line); }
.obv-card__media { background: #0f0f0f; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--obv-ivory); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--obv-ivory); }
.woocommerce ul.products li.product .button { background: transparent; color: var(--obv-gold); border-color: rgba(216, 173, 85, .6); }
.woocommerce ul.products li.product .button:hover { background: var(--obv-gold); color: var(--obv-black); }
.obv-card-perk { color: var(--obv-gold); font-size: 12.5px; margin: 0 20px 12px; }
.obv-pill, .obv-pill--refurbished, .obv-pill--economic { background: #000; color: var(--obv-ivory); border: 1px solid var(--obv-line); }
.obv-pill--unfurbished { background: #000; color: var(--obv-gold); border-color: var(--obv-gold); }
.obv-pill--economic { color: var(--obv-ivory); }

/* Filters, sorting, pagination */
.obv-filters { background: var(--obv-card); border-color: var(--obv-line); }
.obv-filters select, .obv-filters input[type="number"], .woocommerce-ordering select, .woocommerce .woocommerce-ordering select { background: var(--obv-black); color: var(--obv-ivory); border-color: var(--obv-line); }
.obv-filters input[type="checkbox"], .obv-filters input[type="radio"] { accent-color: var(--obv-gold); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--obv-gold); color: var(--obv-black); border-color: var(--obv-gold); }
.woocommerce nav.woocommerce-pagination ul li a { color: var(--obv-ivory); }

/* Single product */
.obv-keyfacts, .obv-breakdown, .obv-order-warranty, .obv-work-done { background: var(--obv-card); border-color: var(--obv-line); color: var(--obv-ink); }
.obv-work-done__heading { color: var(--obv-ivory); }
.obv-work-done__warranty-note { border-top-color: var(--obv-line); }
.obv-definition { background: var(--obv-card); border-left-color: var(--obv-gold); color: var(--obv-ink); }
.obv-order-warranty { border-color: var(--obv-gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; }
.woocommerce div.product .woocommerce-tabs .panel { background: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--obv-ivory); }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--obv-mute); }
.obv-spec th { color: var(--obv-mute); }
.woocommerce .quantity .qty { background: var(--obv-card); color: var(--obv-ivory); border-color: var(--obv-line); }
.woocommerce div.product .stock.out-of-stock, .obv-sold { color: var(--obv-err); }

/* Mobile: product photos swipe horizontally, one per screen */
@media (max-width: 899px) {
	.woocommerce div.product div.images { position: relative; }
	.woocommerce div.product div.images .flex-viewport { overflow: visible !important; height: auto !important; }
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { display: flex !important; width: 100% !important; transform: none !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 8px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
	.woocommerce div.product div.images .woocommerce-product-gallery__wrapper::-webkit-scrollbar { display: none; }
	.woocommerce div.product div.images .woocommerce-product-gallery__image { flex: 0 0 100%; scroll-snap-align: center; width: 100% !important; float: none !important; }
	.woocommerce div.product div.images .flex-control-thumbs { display: none; }
	.woocommerce div.product div.images::after { content: "Swipe for more photos"; display: block; text-align: center; font-size: 12.5px; color: var(--obv-mute); margin-top: 8px; }
}

/* Breakdown + keyfacts text */
.obv-breakdown dd { color: var(--obv-ivory); }

/* Cart, checkout, account */
.woocommerce table.shop_table { background: var(--obv-card); border-color: var(--obv-line); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--obv-line); color: var(--obv-ink); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .select2-container--default .select2-selection--single,
.obv-claim input[type="text"], .obv-claim input[type="tel"], .obv-claim input[type="email"], .obv-claim input[type="number"], .obv-claim select, .obv-claim textarea, .obv-msg textarea {
	background: var(--obv-card); color: var(--obv-ivory); border: 1px solid var(--obv-line); border-radius: 10px; padding: 12px 14px; min-height: 48px; font: inherit;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--obv-ivory); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { background: var(--obv-card); color: var(--obv-ink); border-top-color: var(--obv-gold); }
.woocommerce-checkout #payment { background: var(--obv-card); }
.woocommerce-checkout #payment div.payment_box { background: #0f0f0f; color: var(--obv-ink); }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 24px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 16px; border: 1px solid var(--obv-line); border-radius: 999px; text-decoration: none; font-size: 14.5px; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--obv-gold); color: var(--obv-black); border-color: var(--obv-gold); }
@media (min-width: 900px) { .woocommerce-account .woocommerce-MyAccount-navigation { float: left; width: 22%; } .woocommerce-account .woocommerce-MyAccount-navigation ul { flex-direction: column; } .woocommerce-account .woocommerce-MyAccount-content { float: right; width: 74%; } }
.obv-device-card, .obv-cert, .obv-next, .obv-slot, .obv-compare section, .obv-claim fieldset, .obv-breakdown { background: var(--obv-card); }
.obv-claim fieldset { border-color: var(--obv-line); }
.obv-cert, .obv-claim { max-width: 760px; }

/* Footer stays black */
.obv-footer { background: #000; border-top: 1px solid var(--obv-line); }

/* Public certificate page */
.obv-verify { max-width: 560px; margin: 0 auto; padding: 48px 0 72px; }

/* ==========================================================================
   PRODUCT PAGE LAYOUT (replaces the old float + sticky approach)
   Two-column grid on desktop; tabs and related items always sit below, never over.
   ========================================================================== */
:root { --obv-header-h: calc(var(--obv-topbar-h) + 72px); }
.admin-bar { --obv-header-h: calc(var(--obv-topbar-h) + 104px); }
@media (max-width: 600px) { .admin-bar { --obv-header-h: calc(var(--obv-topbar-h) + 72px); } }
.obv-header { z-index: 1000; }
html { scroll-padding-top: calc(var(--obv-header-h) + 8px); }

.single-product .obv-main > .obv-container { padding-top: 12px; padding-bottom: 64px; }
.single-product .woocommerce-breadcrumb { margin: 8px 0 18px; font-size: 13px; color: var(--obv-mute); }
.single-product .woocommerce-breadcrumb a { color: var(--obv-mute); text-decoration: none; }

.single-product div.product { display: block; }
.single-product div.product div.images,
.single-product div.product div.summary { float: none !important; width: 100% !important; position: relative; margin: 0 0 24px; }

/* Gallery: own stacking context so the zoom icon and thumbnails can never rise above the header */
.woocommerce div.product div.images { position: relative; z-index: 0; isolation: isolate; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger { z-index: 2; top: 12px; right: 12px; background: rgba(0,0,0,.6); color: var(--obv-ivory); border-radius: 50%; }
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before { border-color: var(--obv-ivory); }
.woocommerce div.product div.images .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: #0f0f0f; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.woocommerce div.product div.images .flex-control-thumbs li { float: none; width: auto; }
.woocommerce div.product div.images .flex-control-thumbs img { aspect-ratio: 1; object-fit: cover; border-radius: 10px; opacity: .6; cursor: pointer; border: 1px solid var(--obv-line); }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--obv-gold); }

/* Summary order: pill, title, price, key facts, price breakdown, add to cart, trust list */
.single-product div.product div.summary { display: flex; flex-direction: column; }
.single-product div.product div.summary > * { max-width: 100%; }
.single-product div.product .product_title { margin: 0 0 8px; }
.single-product div.product p.price { margin: 0 0 16px; }

@media (min-width: 900px) {
	.single-product div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); column-gap: 48px; align-items: start; }
	.single-product div.product > div.images { grid-column: 1; grid-row: 1 / span 2; position: sticky; top: calc(var(--obv-header-h) + 16px); align-self: start; }
	.single-product div.product > div.summary { grid-column: 2; grid-row: 1; margin-bottom: 0; }
	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .related,
	.single-product div.product > .upsells,
	.single-product div.product > section { grid-column: 1 / -1; }
	.single-product div.product > .woocommerce-tabs { margin-top: 56px; }
}

/* Make the add-to-cart row solid and obvious */
.single-product div.product form.cart { margin: 18px 0 8px; }
.single-product div.product form.cart .single_add_to_cart_button { min-height: 54px; font-size: 16px; }
.single-product .quantity { display: none; } /* one-of-a-kind devices: quantity is always 1 */

/* Tabs and related sit on their own full-width row */
.single-product .woocommerce-tabs { clear: both; position: relative; z-index: 0; }
.single-product .related.products, .single-product .upsells.products { clear: both; margin-top: 56px; }

/* Compact buy bar (appears once the main button scrolls out of view) */
.obv-buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 900; transform: translateY(110%); transition: transform .25s ease; background: rgba(11,11,11,.96); border-top: 1px solid var(--obv-line); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 10px var(--obv-gutter); padding-bottom: calc(10px + env(safe-area-inset-bottom)); }
.obv-buybar.is-visible { transform: none; }
.obv-buybar__inner { max-width: var(--obv-max); margin: 0 auto; display: flex; align-items: center; gap: 14px; }
.obv-buybar__info { flex: 1; min-width: 0; }
.obv-buybar__title { display: block; font-weight: 650; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--obv-ivory); }
.obv-buybar__price { color: var(--obv-gold); font-weight: 650; }
.obv-buybar .button { flex: none; min-height: 46px; padding: 12px 22px; }
@media print { .obv-buybar { display: none !important; } }

/* Know what each price buys: engineering blueprint (assets/js/tier-blueprint.js) */
.obv-bp { --bp-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; display: grid; grid-template-columns: minmax(0, 1fr); background: var(--obv-black); border: 1px solid #262219; border-radius: var(--obv-radius); overflow: hidden; }
.obv-bp__copy { padding: 28px 22px; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.obv-bp.is-ready .obv-bp__copy { gap: 0; }
.obv-bp__tabs { display: none; gap: 6px; flex-wrap: wrap; margin-bottom: 24px; }
.obv-bp.is-ready .obv-bp__tabs { display: flex; }
.obv-bp__tabs button { flex: 1 1 0; min-width: 96px; position: relative; overflow: hidden; background: #161513; border: 1px solid #2a261e; color: #bdb6a8; border-radius: 999px; padding: 10px 12px; font: 500 13px/1.2 var(--obv-font); cursor: pointer; }
@media (max-width: 520px) {
	.obv-bp__copy { padding: 24px 18px; }
	.obv-bp.is-ready .obv-bp__tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
	.obv-bp__tabs button { min-width: 0; padding: 9px 4px; font-size: 11px; }
}
@media (max-width: 359px) {
	.obv-header__inner { gap: 6px; }
	.obv-header__actions { gap: 0; }
	.obv-iconbtn { width: 38px; height: 38px; }
	.obv-brand { font-size: 14px; letter-spacing: 0; gap: 8px; min-width: 0; white-space: nowrap; }
}
.obv-bp__tabs button:hover { color: var(--obv-ivory); border-color: #5a4a2a; }
.obv-bp__tabs button[aria-selected="true"] { background: var(--obv-gold); border-color: var(--obv-gold); color: var(--obv-black); }
.obv-bp__tabs button:focus-visible { outline: 2px solid var(--obv-gold); outline-offset: 2px; }
.obv-bp__bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--obv-black); opacity: .35; }
.obv-bp__panel { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.obv-bp__panel[hidden] { display: none; }
.obv-bp__eye { margin: 0; font: 500 12px/1.4 var(--bp-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--obv-gold); }
.obv-bp__title { margin: 0; font-size: clamp(24px, 3.2vw, 32px); line-height: 1.15; font-weight: 600; color: var(--obv-ivory); text-wrap: balance; }
.obv-bp__desc { margin: 0; font-size: 15px; line-height: 1.65; color: #cfc8ba; max-width: 52ch; }
.obv-bp__facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.obv-bp__facts li { font: 12px/1.3 var(--bp-mono); letter-spacing: .02em; color: #ece8df; border: 1px solid #3a3326; border-radius: 6px; padding: 6px 10px; }
.obv-bp__facts li.is-warn { border-color: #5a4a2a; color: var(--obv-gold); }
.obv-bp__panel .button { margin-top: 6px; }
.obv-bp__stage { display: none; background: #0e0d0b; border-top: 1px solid #1f1c16; order: -1; }
.obv-bp.is-ready .obv-bp__stage { display: flex; align-items: center; justify-content: center; }
.obv-bp__stage { overflow: hidden; contain: paint; min-width: 0; }
.obv-bp__svg { display: block; width: 100%; height: auto; max-width: 560px; overflow: hidden; }
.obv-bp__svg .t { font-family: var(--bp-mono); font-size: 9.5px; letter-spacing: .08em; fill: #ece8df; }
.obv-bp__svg .g { fill: var(--obv-gold); }
.obv-bp__svg .m { fill: #7d766a; }
@media (min-width: 860px) {
	.obv-bp.is-ready { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); min-height: 460px; }
	.obv-bp__copy { padding: 40px 36px; justify-content: center; }
	.obv-bp__stage { order: 0; border-top: 0; border-left: 1px solid #1f1c16; }
}

/* ==========================================================================
   MOBILE COMMERCE (v2.2): swipe carousel on home, row cards in the shop,
   short product page with an always-visible buy bar
   ========================================================================== */
.obv-card__media > a { display: block; height: 100%; }

@media (max-width: 599px) {
	/* Home "Explore devices": swipe row, next card peeks */
	.obv-explore .woocommerce ul.products { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; margin: 0 calc(var(--obv-gutter) * -1); padding: 4px var(--obv-gutter) 8px; scroll-padding: 0 var(--obv-gutter); scrollbar-width: none; overscroll-behavior-x: contain; }
	.obv-explore .woocommerce ul.products::-webkit-scrollbar { display: none; }
	.obv-explore .woocommerce ul.products li.product { flex: 0 0 76%; max-width: 300px; scroll-snap-align: start; }

	/* Shared compact card content */
	.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 14px 16px 4px; font-size: 16px; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.woocommerce ul.products li.product .obv-card-facts { padding: 0 16px; margin: 0 0 8px; font-size: 13px; line-height: 1.45; color: var(--obv-mute); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.woocommerce ul.products li.product .obv-card-perk { display: none; }
	.woocommerce ul.products li.product .price { padding: 0 16px; font-size: 18px; margin-bottom: 12px; }
	.woocommerce ul.products li.product .button { margin: auto 16px 0; align-self: stretch; text-align: center; white-space: nowrap; min-height: 46px; padding: 12px 16px; }
	.woocommerce ul.products li.product { padding-bottom: 16px; }
	.obv-explore .woocommerce ul.products li.product .obv-card__media { aspect-ratio: 1 / 1; }

}

/* Shop, search, related: one row per phone, thumbnail left */
@media (max-width: 599px) {
	body.woocommerce-shop ul.products, body.tax-product_cat ul.products, body.search ul.products, .single-product .related ul.products { grid-template-columns: minmax(0, 1fr); }
	body.woocommerce-shop ul.products li.product, body.tax-product_cat ul.products li.product, body.search ul.products li.product, .single-product .related ul.products li.product {
		display: grid; grid-template-columns: 112px minmax(0, 1fr); column-gap: 0; align-items: start; padding: 0 0 14px; }
	body.woocommerce-shop ul.products li.product > *, body.tax-product_cat ul.products li.product > *, body.search ul.products li.product > *, .single-product .related ul.products li.product > * { grid-column: 2; }
	body.woocommerce-shop ul.products li.product > .obv-card__media, body.tax-product_cat ul.products li.product > .obv-card__media, body.search ul.products li.product > .obv-card__media, .single-product .related ul.products li.product > .obv-card__media { grid-column: 1; grid-row: 1 / span 5; aspect-ratio: 1 / 1; align-self: start; border-radius: 0 0 var(--obv-radius-sm, 12px) 0; }
	body.woocommerce-shop ul.products li.product .button, body.tax-product_cat ul.products li.product .button, body.search ul.products li.product .button, .single-product .related ul.products li.product .button { align-self: start; margin: 0 16px; padding: 10px 18px; min-height: 42px; }
	body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title, body.tax-product_cat ul.products li.product .woocommerce-loop-product__title, body.search ul.products li.product .woocommerce-loop-product__title, .single-product .related ul.products li.product .woocommerce-loop-product__title { padding-top: 12px; font-size: 15px; }
	body.woocommerce-shop ul.products li.product .price, body.tax-product_cat ul.products li.product .price, body.search ul.products li.product .price, .single-product .related ul.products li.product .price { margin-bottom: 10px; }
	body.woocommerce-shop .obv-card-badges, body.tax-product_cat .obv-card-badges, body.search .obv-card-badges, .single-product .related .obv-card-badges { top: 6px; left: 6px; }
	body.woocommerce-shop .obv-card-badges .obv-pill, body.tax-product_cat .obv-card-badges .obv-pill, body.search .obv-card-badges .obv-pill, .single-product .related .obv-card-badges .obv-pill { font-size: 9px; padding: 3px 7px; letter-spacing: .04em; }
}

@media (max-width: 899px) {
	/* Product page: gallery shorter, thumbnails swipe */
	.woocommerce div.product div.images .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; }
	.woocommerce div.product div.images .flex-control-thumbs { display: flex; overflow-x: auto; gap: 8px; scrollbar-width: none; }
	.woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar { display: none; }
	.woocommerce div.product div.images .flex-control-thumbs li { flex: 0 0 64px; }

	/* Summary order: what decides a purchase first, the long explanations after the button */
	.single-product div.product div.summary > * { order: 20; }
	.single-product div.product div.summary > .obv-pill { order: 1; align-self: flex-start; }
	.single-product div.product div.summary > .product_title { order: 2; font-size: 1.6rem; }
	.single-product div.product div.summary > p.price { order: 3; margin-bottom: 12px; }
	.single-product div.product div.summary > .obv-keyfacts { order: 4; }
	.single-product div.product div.summary > .obv-battery-promise { order: 5; }
	.single-product div.product div.summary > form.cart { order: 6; margin: 14px 0 4px; }
	.single-product div.product div.summary > .obv-delivery { order: 7; }
	.single-product div.product div.summary > p.stock { order: 8; }

	.single-product .obv-keyfacts { margin: 0 0 12px; padding: 0; background: transparent; border: 0; }
	.single-product .obv-keyfacts__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
	.single-product .obv-keyfacts__list li { padding: 10px 12px; border-radius: 12px; background: var(--obv-card); border: 1px solid var(--obv-line); font-size: 14px; line-height: 1.3; min-width: 0; }
	.single-product .obv-keyfacts__list strong { display: block; margin-top: 2px; overflow-wrap: anywhere; }
	.single-product .obv-battery-promise { margin: 0 0 12px; }

	.single-product .obv-delivery { padding: 14px; margin: 10px 0; }
	.single-product .obv-delivery__sub, .single-product .obv-delivery__perks { display: none; }
	.single-product .obv-delivery__head { margin-bottom: 10px; }

	/* Buy bar stays on screen the whole time (JS adds .is-visible); keep page content clear of it */
	body.single-product { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
	.obv-buybar__price { font-size: 18px; }
	.obv-buybar .button { padding: 12px 20px; }
}

@media (max-width: 599px) {
	/* Shop: products first, the intro paragraph is on the page for desktop and search engines */
	body.woocommerce-shop .obv-page-hero .obv-lede, body.tax-product_cat .obv-page-hero .obv-lede { display: none; }
	body.woocommerce-shop ul.products li.product { grid-template-columns: 120px minmax(0, 1fr); }
	body.woocommerce-shop .obv-card-badges, body.tax-product_cat .obv-card-badges, body.search .obv-card-badges, .single-product .related .obv-card-badges { right: 6px; max-width: calc(100% - 12px); }
	body.woocommerce-shop .obv-card-badges .obv-pill, body.tax-product_cat .obv-card-badges .obv-pill, body.search .obv-card-badges .obv-pill, .single-product .related .obv-card-badges .obv-pill { font-size: 8.5px; line-height: 1.25; padding: 3px 6px; white-space: normal; text-align: center; }
}
@media (max-width: 599px) {
	body.woocommerce-shop ul.products li.product .obv-badge-sale, body.tax-product_cat ul.products li.product .obv-badge-sale, body.search ul.products li.product .obv-badge-sale { top: auto; bottom: 6px; left: 6px; font-size: 10px; padding: 2px 6px; }
}

/* Tighter phone cards (closer to a one-glance size) */
@media (max-width: 599px) {
	.obv-explore .woocommerce ul.products { gap: 10px; }
	.obv-explore .woocommerce ul.products li.product { flex-basis: 62%; max-width: 250px; padding-bottom: 12px; }
	.obv-explore .woocommerce ul.products li.product .obv-card__media { aspect-ratio: 5 / 4; }
	.obv-explore .woocommerce ul.products li.product .obv-card-facts { display: none; }
	.obv-explore .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px; padding: 12px 14px 4px; }
	.obv-explore .woocommerce ul.products li.product .price { padding: 0 14px; font-size: 17px; margin-bottom: 10px; }
	.obv-explore .woocommerce ul.products li.product .button { margin: auto 14px 0; min-height: 42px; padding: 9px 14px; font-size: 14px; }
	.obv-explore .obv-card-badges { top: 8px; left: 8px; }
	.obv-explore .obv-card-badges .obv-pill { font-size: 9.5px; padding: 4px 9px; }

	body.woocommerce-shop ul.products li.product, body.tax-product_cat ul.products li.product, body.search ul.products li.product, .single-product .related ul.products li.product { padding-bottom: 12px; }
	body.woocommerce-shop ul.products li.product { grid-template-columns: 104px minmax(0, 1fr); }
	body.woocommerce-shop ul.products li.product .obv-card-facts { -webkit-line-clamp: 1; margin-bottom: 4px; }
	body.woocommerce-shop ul.products li.product .woocommerce-loop-product__title { font-size: 14.5px; padding-top: 10px; }
	body.woocommerce-shop ul.products li.product .price { font-size: 16px; margin-bottom: 8px; }
	body.woocommerce-shop ul.products li.product .button { padding: 8px 16px; min-height: 38px; font-size: 14px; }
}
@media (max-width: 599px) {
	.woocommerce ul.products li.product span.onsale.obv-badge-sale { top: auto; bottom: 6px; left: 6px; font-size: 10px; padding: 2px 6px; }
}

/* The official Shiprocket plugin adds its own pincode box (cash on delivery, no weight, so it often says "not serviceable").
   Obran Vale's delivery card replaces it, so hide the plugin's box. */
#shiprocket_pincode_check,
#check_pincode,
#pincode_response { display: none !important; }
