/*
Theme Name: OmegaBrite
Theme URI: https://omegabrite.com
Author: WP Buddha
Description: Custom theme for OmegaBrite.com — clean rebuild, no page builder.
Version: 0.1.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: omegabrite
*/

:root {
	--ob-orange: #f7941d;       /* logo orange */
	--ob-orange-dark: #e07f0a;
	--ob-gold: #f0a73f;         /* primary button */
	--ob-gold-light: #efbe4d;   /* secondary button */
	--ob-gold-menu: #f5b537;    /* Avada primary color: dropdown bg, badges */
	--ob-teal-dark: #063c37;    /* hero backdrop tone */
	--ob-text: #333333;         /* Avada body color */
	--ob-nav: #404040;          /* Avada nav color */
	--ob-font-body: Roboto, Arial, Helvetica, sans-serif;
	--ob-font-nav: Arial, Helvetica, sans-serif;
	--ob-font-display: Georgia, 'Times New Roman', serif;
	--ob-header-h: 90px;
	--ob-header-h-mobile: 60px;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--ob-font-body);
	font-size: 17px;
	line-height: 1.5;
	color: var(--ob-text);
}

img { max-width: 100%; height: auto; }
a { color: var(--ob-orange); }

.ob-container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.screen-reader-text {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.skip-link:focus {
	position: fixed; top: 8px; left: 8px;
	width: auto; height: auto;
	clip-path: none;
	background: #fff; color: var(--ob-text);
	padding: 10px 16px;
	z-index: 9999;
}

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

.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

/* Header spans the viewport (live Avada: 3% side padding); content keeps 1200px */
.site-header .ob-container {
	display: flex;
	align-items: center;
	gap: 24px;
	min-height: var(--ob-header-h);
	max-width: none;
	padding: 0 3%;
}

.ob-logo { display: flex; align-items: center; flex-shrink: 0; }
.ob-logo img { display: block; width: 340px; height: auto; }
.ob-logo .ob-logo-mobile { display: none; }

.ob-nav { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.ob-nav-list {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 4px;
}

.ob-nav-list a {
	display: block;
	padding: 10px 12px;
	font-family: var(--ob-font-nav);
	font-size: 16px; /* live Avada nav: Arial 16px #404040 */
	letter-spacing: 0.2px;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ob-nav);
	transition: color 0.15s ease;
}
.ob-nav-list a:hover,
.ob-nav-list a:focus { color: var(--ob-orange); }

/* Squeeze zone: keep the menu on one line before the mobile breakpoint */
@media (min-width: 901px) and (max-width: 1180px) {
	.ob-nav-list a { font-size: 14px; padding: 10px 8px; }
}

/* Dropdowns (desktop) */
.ob-nav-list li { position: relative; }
/* Live Avada dropdown: gold #f5b537, white 18px text, #dcdadb dividers */
.ob-nav-list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1100;
	display: none;
	min-width: 240px;
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--ob-gold-menu);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.16);
}
.ob-nav-list li:hover > .sub-menu,
.ob-nav-list li:focus-within > .sub-menu { display: block; }
.ob-nav-list .sub-menu li { border-bottom: 1px solid #dcdadb; }
.ob-nav-list .sub-menu li:last-child { border-bottom: 0; }
.ob-nav-list .sub-menu a {
	padding: 12px 20px;
	font-size: 18px;
	text-transform: none;
	letter-spacing: 0.2px;
	white-space: nowrap;
	color: #fff;
}
.ob-nav-list .sub-menu a:hover,
.ob-nav-list .sub-menu a:focus {
	color: #fff;
	background: rgba(255, 255, 255, 0.16);
}

.ob-cart {
	position: relative;
	display: flex;
	align-items: center;
	flex-shrink: 0;
	padding: 10px 0 10px 8px;
	color: var(--ob-nav);
}
.ob-cart:hover, .ob-cart:focus { color: var(--ob-orange); }
.ob-cart svg { width: 22px; height: 22px; display: block; }

/* Item-count bubble (live site: small gold circle, white number) */
.ob-cart-count {
	position: absolute;
	top: -1px;
	right: -9px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--ob-gold-menu);
	color: #fff;
	font-family: var(--ob-font-nav);
	font-size: 11px;
	font-weight: 700;
	line-height: 17px;
	text-align: center;
}
.ob-cart-count.is-empty { display: none; }

.ob-menu-toggle {
	display: none;
	appearance: none;
	background: none;
	border: 0;
	padding: 10px;
	margin: -10px -6px -10px 0;
	cursor: pointer;
	color: var(--ob-nav);
}
.ob-menu-toggle svg { width: 28px; height: 28px; display: block; }
.ob-menu-toggle .icon-close { display: none; }
.ob-menu-toggle[aria-expanded="true"] .icon-open { display: none; }
.ob-menu-toggle[aria-expanded="true"] .icon-close { display: block; }

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

.ob-hero {
	position: relative;
	background-image: url('assets/img/omegabrite-hero-background.webp');
	background-size: cover;
	background-position: center;
	background-color: var(--ob-teal-dark);
	aspect-ratio: 2560 / 1735;
	max-height: min(86vh, 820px);
	width: 100%;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.ob-hero-inner {
	width: 100%;
	padding: 0 max(4vw, 24px);
}

/* The box artwork starts ~31% into the composite image; keep copy inside the
   teal zone to its left. */
.ob-hero-copy { max-width: min(30vw, 500px); }

.ob-hero-title {
	margin: 0 0 1.3em;
	font-family: var(--ob-font-display);
	font-weight: 400;
	font-size: clamp(2rem, 3vw, 3.4rem);
	line-height: 1.18;
	color: #fff;
}
@media (min-width: 901px) {
	.ob-hero-title .ob-line1 { white-space: nowrap; }
}
.ob-hero-title .ob-line2 { font-style: italic; }
.ob-hero-title sup { font-size: 0.35em; vertical-align: super; }

.ob-hero-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 18px;
}

.ob-btn {
	display: inline-block;
	padding: 15px 30px;
	font-family: var(--ob-font-nav);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
	color: #fff;
	background: var(--ob-gold);
	border: 0;
	transition: background 0.15s ease, transform 0.15s ease;
}
.ob-btn:hover, .ob-btn:focus { background: var(--ob-orange-dark); color: #fff; }
.ob-btn--light { background: var(--ob-gold-light); }
.ob-btn--light:hover, .ob-btn--light:focus { background: var(--ob-gold); }

/* ---------- Generic content (temporary until sections are built) ---------- */

.ob-content { padding: 48px 0; }

/* ---------- Shared section styles ---------- */

.ob-section-title {
	max-width: 980px;
	margin: 0 auto;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	line-height: 1.35;
	text-align: center;
	color: var(--ob-text);
}

.ob-section-heading {
	margin: 0 0 36px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.25rem, 1.8vw, 1.55rem);
	letter-spacing: 0.5px;
	text-align: center;
	color: #4a4a4a;
}

.ob-btn--sm { padding: 11px 24px; font-size: 12px; }
.ob-btn--red { background: #e23636; }
.ob-btn--red:hover, .ob-btn--red:focus { background: #c22525; }
.ob-btn--outline {
	background: #fff;
	color: #4a4a4a;
	border: 1px solid #bbb;
	font-weight: 400;
}
.ob-btn--outline:hover, .ob-btn--outline:focus { background: #f7f7f7; color: var(--ob-text); }

/* ---------- Benefits ---------- */

.ob-benefits { padding: 72px 0 80px; }

.ob-benefits-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin-top: 56px;
}

.ob-benefit { text-align: center; display: flex; flex-direction: column; height: 100%; }
.ob-benefit .ob-btn { margin-top: auto; align-self: center; }

.ob-benefit-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 150px;
	margin-bottom: 24px;
}
.ob-benefit-icon img { max-height: 150px; width: auto; }

.ob-benefit h3 {
	margin: 0 0 22px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 18px;
	color: var(--ob-text);
}

/* ---------- Anti-aging banner ---------- */

.ob-antiaging {
	background-image: url('assets/img/omegabrite-o3-section-background.webp');
	background-size: cover;
	background-position: right center;
	background-color: #cfe3b8;
}

.ob-antiaging-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 72px 24px 56px;
}

.ob-antiaging h2 {
	max-width: 440px;
	margin: 0 0 20px;
	font-family: var(--ob-font-body);
	font-weight: 700;
	font-size: clamp(1.7rem, 2.6vw, 2.3rem);
	line-height: 1.25;
	color: #222;
}

.ob-antiaging-lead {
	max-width: 430px;
	margin: 0 0 28px;
	font-size: 17px;
	color: #222;
}

.ob-antiaging-cite {
	max-width: 400px;
	margin: 40px 0 0;
	font-size: 11.5px;
	line-height: 1.5;
	color: #444;
	overflow-wrap: break-word;
}

/* ---------- Gold standard / values / testimonials ---------- */

.ob-goldstandard {
	padding: 64px 0 48px;
	border-bottom: 1px solid #eee;
}

.ob-goldstandard-sub {
	margin: 24px auto 0;
	max-width: 800px;
	text-align: center;
	font-size: 17px;
}

.ob-values { padding: 56px 0 72px; }
.ob-testimonials { padding: 56px 0 72px; border-top: 1px solid #eee; }

.ob-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
}

.ob-card {
	border: 1px solid #ddd;
	padding: 40px 32px;
	text-align: center;
}

.ob-card-circle {
	width: 155px;
	height: 155px;
	object-fit: cover;
	border-radius: 50%;
	margin-bottom: 26px;
}

.ob-card h3 {
	margin: 0 0 20px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 24px;
	color: var(--ob-text);
}

.ob-card p { margin: 0; font-size: 16.5px; line-height: 1.7; color: #444; }

.ob-card blockquote { margin: 0; }
.ob-card blockquote p { font-style: italic; letter-spacing: 0.3px; }
.ob-card blockquote footer { margin-top: 28px; font-size: 16px; color: var(--ob-text); }
.ob-card blockquote footer a { color: var(--ob-orange); text-decoration: none; }
.ob-card blockquote footer a:hover { text-decoration: underline; }

.ob-testimonials-more { margin: 44px 0 0; text-align: center; }

/* ---------- Approved By ---------- */

.ob-approved { padding: 40px 0 56px; }

.ob-rule-heading {
	display: flex;
	align-items: center;
	gap: 20px;
	margin: 0 0 40px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 1.55rem;
	color: var(--ob-text);
}
.ob-rule-heading::before,
.ob-rule-heading::after {
	content: "";
	flex: 1;
	border-top: 1px solid #ddd;
}

.ob-approved-logos {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: clamp(60px, 22vw, 340px);
	margin-bottom: 56px;
}
.ob-approved-logos img { max-height: 100px; width: auto; }

.ob-fda-disclaimer {
	margin: 0;
	font-size: 16px;
	color: var(--ob-text);
}

/* ---------- Omega-3 Day video series ---------- */

.ob-videoseries { padding: 56px 0 72px; background: #fff; }

.ob-videoseries-inner {
	max-width: 970px;
	margin: 0 auto;
	padding: 0 24px;
}

.ob-videoseries h2 {
	margin: 0 0 10px;
	font-family: var(--ob-font-body);
	font-weight: 700;
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	text-align: center;
	color: var(--ob-gold);
}

.ob-videoseries-sub {
	margin: 0 0 40px;
	text-align: center;
	color: #555;
}

.ob-videoseries-thumb { display: block; }
.ob-videoseries-thumb img { display: block; width: 100%; }

.ob-videoseries h3 {
	margin: 30px 0 12px;
	font-family: var(--ob-font-body);
	font-weight: 700;
	font-size: 1.25rem;
}
.ob-videoseries h3 a { color: var(--ob-gold); text-decoration: none; }
.ob-videoseries h3 a:hover { text-decoration: underline; }

.ob-videoseries p { margin: 0 0 14px; color: #333; }

.ob-videoseries-watch a {
	font-weight: 700;
	color: var(--ob-gold);
	text-decoration: none;
}
.ob-videoseries-watch a:hover { text-decoration: underline; }

/* ---------- Interior page hero + FAQ ---------- */

.ob-page-hero {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 300px;
	padding: 48px 24px;
	background-size: cover;
	background-position: center;
	background-color: var(--ob-teal-dark);
}

.ob-page-hero h1 {
	max-width: 900px;
	margin: 0;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	line-height: 1.3;
	text-align: center;
	color: #fff;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}

.ob-faq-wrap {
	max-width: 900px;
	padding-top: 24px;
	padding-bottom: 64px;
}

.ob-faq-cat-title {
	margin: 44px 0 6px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e5e5e5;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 1.5rem;
	color: var(--ob-orange);
}

.ob-faq-item {
	border-bottom: 1px solid #eee;
}

.ob-faq-item summary {
	position: relative;
	padding: 14px 8px 14px 34px;
	font-size: 17px;
	color: var(--ob-text);
	cursor: pointer;
	list-style: none;
}
.ob-faq-item summary::-webkit-details-marker { display: none; }
.ob-faq-item summary::before {
	content: "+";
	position: absolute;
	left: 6px;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	text-align: center;
	font-size: 18px;
	color: var(--ob-gold);
}
.ob-faq-item[open] summary::before { content: "\2212"; }
.ob-faq-item summary:hover { color: var(--ob-orange); }

.ob-faq-answer {
	padding: 2px 8px 18px 34px;
	font-size: 16.5px;
	line-height: 1.7;
	color: #444;
}
.ob-faq-answer p { margin: 0 0 12px; }

.ob-faq-member { margin-top: 72px; text-align: center; }
.ob-faq-member h3 {
	margin: 0 0 32px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 1.8rem;
	color: var(--ob-text);
}
.ob-faq-member .ob-approved-logos { margin-bottom: 0; }

/* ---------- Generic interior pages ---------- */

.ob-page-band {
	background: linear-gradient(#ffffff, #ebebeb);
	border-bottom: 1px solid #dcdcdc;
	padding: 26px 24px 20px;
	text-align: center;
}
.ob-page-band h1 {
	max-width: 1200px;
	margin: 0 auto;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	color: var(--ob-text);
}
/* Product page title: black & bold (per client) */
.single-product .ob-page-band h1 { color: #1a1a1a; font-weight: 700; }

.ob-breadcrumb {
	margin-top: 3px;
	font-size: 14px;
	color: #8a8a8a;
}
.ob-breadcrumb a { color: var(--ob-orange); text-decoration: none; }
.ob-breadcrumb a:hover { text-decoration: underline; }
.ob-breadcrumb .sep { margin: 0 5px; color: #b5b5b5; }

.ob-page-content {
	max-width: 900px;
	padding-top: 40px;
	padding-bottom: 64px;
	font-size: 17px; /* match live body size */
	line-height: 1.75;
	color: #3a3a3a;
	overflow-wrap: break-word;
}
.ob-page-content h1, .ob-page-content h2, .ob-page-content h3, .ob-page-content h4 {
	font-family: var(--ob-font-body);
	font-weight: 400;
	color: var(--ob-text);
	line-height: 1.35;
	margin: 1.6em 0 0.6em;
}
.ob-page-content h2 { font-size: 1.6rem; }
.ob-page-content h3 { font-size: 1.3rem; }
.ob-page-content img { height: auto; }
.ob-page-content ul, .ob-page-content ol { padding-left: 26px; }
/* Woo notices position their icon absolutely at left 1.5em — the 26px rule above
   would pull the text under it, so restore Woo's own notice padding */
.ob-page-content ul.woocommerce-error,
.ob-page-content ul.woocommerce-info,
.ob-page-content ul.woocommerce-message {
	padding: 1em 2em 1em 3.5em;
}
.ob-page-content table { border-collapse: collapse; width: 100%; display: block; overflow-x: auto; }
.ob-page-content td, .ob-page-content th { border: 1px solid #ddd; padding: 8px 12px; text-align: left; }
.ob-page-content blockquote { margin: 1em 0; padding: 4px 20px; border-left: 3px solid var(--ob-gold); color: #555; }

.ob-page-content--wide { max-width: 1240px; }

/* Break a content section out of the page container to span the viewport */
body { overflow-x: clip; }
.ob-full-bleed { width: 100vw; margin-left: calc(50% - 50vw); }

/* About Us: orange banner behind the intro headings (matches old site) */
.ob-about-hero {
	background: var(--ob-orange) url('../../uploads/2016/02/omegabrite-omega-3-hero-banner.webp') center top / cover no-repeat;
	padding: 26px 24px 30px;
	margin-bottom: 34px;
}
.ob-page-content .ob-about-hero h2.about-head-h1-h2 { font-size: clamp(2rem, 3.4vw, 2.75rem); margin: 0.4em 0 0.2em; }
.ob-page-content .ob-about-hero h1 { font-size: clamp(1.5rem, 2.4vw, 2.1rem); margin: 0.5em 0; }
.ob-page-content .ob-about-hero h3 { font-size: clamp(1.05rem, 1.6vw, 1.3rem); margin: 0.5em 0 0.6em; }

/* ---------- Testimonials page ---------- */

.ob-tst-hero {
	background: var(--ob-orange) url('../../uploads/2016/02/omegabrite-omega-3-hero-banner.webp') center top / cover no-repeat;
	padding: 22px 24px 26px;
	text-align: center;
}
.ob-tst-hero h1 {
	margin: 8px 0 4px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	color: #ffecb2;
}
.ob-tst-hero h2 {
	margin: 0 0 8px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.1rem, 1.8vw, 1.4rem);
	color: #fff;
}

/* Avatar silhouettes (male = suit + tie, female = hair) */
.ob-tst-avatar {
	display: inline-block;
	width: 30px;
	height: 30px;
	flex-shrink: 0;
	background-position: center bottom;
	background-repeat: no-repeat;
	background-size: contain;
}
.male .ob-tst-avatar,
.ob-tst-slide.male .ob-tst-avatar {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='13' r='8' fill='%23606060'/%3E%3Cpath d='M7 44c0-10 7.6-15 17-15s17 5 17 15z' fill='%23606060'/%3E%3Cpath d='M24 29l-6 4.5L21.5 44h5L30 33.5z' fill='%23fafafa'/%3E%3Cpath d='M24 33.5l-2.2 2.4L23.2 44h1.6l1.4-8.1z' fill='%23606060'/%3E%3C/svg%3E");
}
.female .ob-tst-avatar,
.ob-tst-slide.female .ob-tst-avatar {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M24 3c-8 0-12.5 5.5-12.5 13 0 4-1 8-3.5 10.5h32C37.5 24 36.5 20 36.5 16 36.5 8.5 32 3 24 3z' fill='%23606060'/%3E%3Ccircle cx='24' cy='16.5' r='7.5' fill='%23606060'/%3E%3Cpath d='M7 44c0-10 7.6-15 17-15s17 5 17 15z' fill='%23606060'/%3E%3C/svg%3E");
}
.ob-tst-avatar--lg { width: 84px; height: 84px; }

/* Rotating carousel (top of testimonials page) */
.ob-tst-carousel { padding: 30px 0 4px; }
.ob-tst-slide { display: none; text-align: center; }
.ob-tst-slide.is-active { display: block; animation: ob-fade 0.7s ease; }
@keyframes ob-fade { from { opacity: 0; } to { opacity: 1; } }

.ob-tst-slide blockquote {
	margin: 20px auto 24px;
	padding: 22px 30px;
	background: #f6f6f6;
	border: 1px solid #ececec;
}
.ob-tst-slide blockquote p {
	margin: 0 0 1em;
	font-style: italic;
	letter-spacing: 0.3px;
	color: #747474;
}
.ob-tst-slide blockquote p:last-child { margin-bottom: 0; }
.ob-tst-name { font-size: 16px; color: var(--ob-text); }
.ob-tst-name strong { color: #333; }
.ob-tst-name span { font-weight: 400; color: #747474; }

/* Single testimonial (speech bubble + author underneath) */
.ob-tst { margin: 30px 0 34px; }

/* Rotating pairs: only the active one shows (Avada carousel behavior) */
.ob-tst-rotate > .ob-tst { display: none; }
.ob-tst-rotate > .ob-tst.is-active { display: block; animation: ob-fade 0.7s ease; }
.ob-tst blockquote {
	position: relative;
	margin: 0;
	padding: 18px 26px;
	border: 0;
	background: #f6f6f6;
}
.ob-tst blockquote::after {
	content: "";
	position: absolute;
	bottom: -11px;
	left: 30px;
	border: 6px solid transparent;
	border-top-color: #f6f6f6;
	border-left-color: #f6f6f6;
}
.ob-tst blockquote p {
	margin: 0 0 1em;
	font-style: italic;
	letter-spacing: 0.3px;
	color: #747474;
}
.ob-tst blockquote p:last-child { margin-bottom: 0; }
.ob-tst blockquote strong { font-style: normal; }

.ob-tst-author {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 17px;
	font-size: 16px;
}
.ob-tst-author strong { color: #333; }

/* ---------- Benefits landing page ---------- */

.ob-ben-hero {
	background: var(--ob-orange) url('../../uploads/2017/03/omegabrite-omega-3-fish-oil-gelcaps.webp') center top / cover no-repeat;
	padding: 24px 24px 104px;
}
.ob-ben-hero-inner { max-width: 1200px; margin: 0 auto; }
.ob-ben-hero h1 {
	margin: 8px 0 20px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: clamp(1.7rem, 2.8vw, 2.3rem);
	text-align: center;
	color: #ffecb2;
}
.ob-ben-hero p {
	max-width: 1010px;
	margin: 0;
	font-size: clamp(1.2rem, 2vw, 1.7rem);
	line-height: 1.45;
	color: #fff;
}

.ob-ben-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 52px 24px 64px;
}
.ob-ben-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.ob-ben-item .ob-btn { margin-top: auto; }
.ob-ben-item .heading-link { text-decoration: none; color: inherit; display: block; }
.ob-ben-item img { width: 150px; height: 150px; }
.ob-ben-item h2 {
	margin: 14px 0 24px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 21px;
	line-height: 1.5;
	color: var(--ob-text);
}

/* Divider line with a downward notch (Avada "triangle" section separator) */
.ob-sep-triangle {
	position: relative;
	height: 1px;
	background: #aaa;
	margin: 30px 0 70px;
}
.ob-sep-triangle::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	width: 24px;
	height: 24px;
	transform: translate(-50%, -50%) rotate(45deg);
	background: #fff;
	border-right: 1px solid #aaa;
	border-bottom: 1px solid #aaa;
}

.ob-ben-members { padding: 0 24px 64px; text-align: center; }
.ob-ben-members h2 {
	margin: 0 0 34px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 1.6rem;
	color: var(--ob-text);
}
.ob-ben-logos {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: clamp(48px, 8vw, 110px);
}
.ob-ben-logos img { width: 150px; height: auto; }

@media (max-width: 900px) {
	.ob-ben-grid { grid-template-columns: repeat(2, 1fr); gap: 36px 16px; }
	.ob-ben-hero { padding-bottom: 64px; }
	.ob-ben-logos { flex-wrap: wrap; gap: 32px; }
}

/* ---------- Benefit child pages (Brighter Mood, Heart Health, ...) ---------- */

.ob-bnf-top { display: flex; gap: 44px; align-items: flex-start; margin: 6px 0 22px; }
.ob-bnf-figure { flex: 0 0 300px; }
.ob-bnf-figure img { display: block; margin: 0 auto; }
.ob-bnf-figure--framed { border: 1px solid #e8e8e8; padding: 26px; }
.ob-bnf-intro { flex: 1; }
.ob-page-content .ob-bnf-intro h1 { margin: 6px 0 18px; }
.ob-page-content h2.ob-bnf-kicker { margin: 2px 0 8px; color: var(--ob-gold); }

.ob-rule-gold { border: 0; border-top: 2px solid var(--ob-gold-light); margin: 26px 0; }
.ob-rule-grey { border: 0; border-top: 1px solid #e0e0e0; margin: 30px 0; }

/* Our Products block */
.ob-prod-sec { text-align: center; }
.ob-page-content .ob-prod-sec > h2 { font-size: 1.9rem; margin: 1.1em 0 0.9em; }
.ob-prod-sub { margin: 0 0 1em; font-size: 1.3rem; }
.ob-prod-sub2 { margin: 0 0 6px; font-size: 17px; }
.ob-prod-sub2 strong { font-weight: 700; }
.ob-prod-terms { margin: 0 0 10px; font-size: 16px; }

.ob-prod-grid {
	display: flex;
	justify-content: center;
	align-items: stretch;
	gap: 30px;
	margin: 40px 0 14px;
}
.ob-prod-card {
	display: flex;
	flex-direction: column;
	width: 264px;
	border: 1px solid #ececec;
	border-radius: 10px;
	padding: 24px 22px 26px;
	text-align: center;
	background: #fff;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.ob-prod-card:hover {
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.09);
	transform: translateY(-3px);
}
.ob-prod-img { display: block; }
.ob-prod-img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
}
.ob-prod-card h3 {
	margin: 18px 0 10px;
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-style: italic;
	font-size: 16.5px;
	line-height: 1.55;
}
.ob-prod-card h3 a { color: var(--ob-gold); text-decoration: none; }
.ob-prod-card h3 a:hover { text-decoration: underline; }
.ob-prod-price { margin: 0 0 20px; font-size: 15.5px; line-height: 1.7; color: #666; }
.ob-prod-price .amount { color: var(--ob-gold); font-weight: 700; }
.ob-prod-select { margin: auto 0 0; }
.ob-prod-select .ob-btn {
	display: block;
	width: 100%;
	padding: 13px 10px;
	border-radius: 6px;
}

/* Related testimonial pull-quote */
.ob-bnf-testimonial { padding: 6px 0 2px; text-align: center; }
.ob-page-content .ob-bnf-testimonial h3 { font-size: 1.5rem; margin: 0.6em 0 1em; }
.ob-page-content .ob-bnf-testimonial h4 { font-size: 1.25rem; margin: 0 0 18px; color: var(--ob-gold); }
.ob-bnf-testimonial p { max-width: 840px; margin: 0 auto 6px; font-style: italic; color: #555; }
.ob-bnf-cite { color: var(--ob-gold); font-weight: 700; font-style: normal; }

/* "References" heading between double rules */
.ob-rule-heading--double::before,
.ob-rule-heading--double::after { border-top: 3px double #d8d8d8; }
.ob-bnf-refs { font-size: 16px; }

/* Member logos row */
.ob-bnf-members { padding: 4px 0 8px; text-align: center; }
.ob-page-content .ob-bnf-members h2 { font-size: 1.6rem; margin: 0.8em 0 1.3em; }
.ob-bnf-logos {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: clamp(40px, 6vw, 90px);
}
.ob-bnf-logos img { max-height: 100px; width: auto; }

.ob-bnf-disclaimer { margin-top: 36px; font-size: 16px; }

@media (max-width: 900px) {
	.ob-bnf-top { flex-direction: column; gap: 24px; }
	.ob-bnf-figure { flex-basis: auto; align-self: center; }
	.ob-prod-grid { flex-wrap: wrap; }
	.ob-bnf-logos { flex-wrap: wrap; gap: 28px; }
}

/* ---------- My Account (WooCommerce login) ---------- */

.ob-account-box {
	margin: 16px 0 24px;
	padding: 34px 40px 38px;
	border: 1px solid #e6e6e6;
	background: #fff;
}
.ob-account-box h2 {
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid #e8e8e8;
	font-size: 1.55rem;
}
.ob-account-box .woocommerce-form-row label { display: block; margin-bottom: 6px; font-size: 16.5px; }
.ob-account-box .woocommerce-form-row { margin: 0 0 20px; }
.ob-account-box .input-text {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #d5d5d5;
	font-family: var(--ob-font-body);
	font-size: 16px;
	background: #fff;
}
.ob-account-box .input-text:focus { outline: 2px solid var(--ob-gold); outline-offset: -1px; }
.ob-account-box .show-password-input { cursor: pointer; }

/* Woo core wraps the login form in its own bordered box — flatten it */
.ob-account-box form.woocommerce-form-login {
	border: 0;
	border-radius: 0;
	padding: 0;
	margin: 0;
}
.ob-account-box .woocommerce-form-login p.form-row { padding: 0; }

/* LOG IN row: button, then Remember me, then Lost your password? inline */
.ob-account-box .woocommerce-form-login p.form-row:not(.form-row-wide) {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	margin: 6px 22px 0 0;
}
.ob-account-box .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 7px; margin: 0; }
.ob-account-box .woocommerce-form-login button.woocommerce-form-login__submit {
	order: -1;
	padding: 14px 28px;
	border: 0;
	border-radius: 0;
	background: var(--ob-gold-light);
	color: #fff;
	font-family: var(--ob-font-nav);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
}
.ob-account-box .woocommerce-form-login button.woocommerce-form-login__submit:hover { background: var(--ob-gold); }
.ob-account-box .lost_password { display: inline-block; margin: 6px 0 0; vertical-align: middle; }
.ob-account-box .lost_password a { color: var(--ob-orange); text-decoration: none; }
.ob-account-box .lost_password a:hover { text-decoration: underline; }

.ob-legacy-login { margin: 30px 0 0; }
.ob-btn--legacy { background: var(--ob-orange); }
.ob-btn--legacy:hover, .ob-btn--legacy:focus { background: var(--ob-orange-dark); }

@media (max-width: 700px) {
	.ob-account-box { padding: 24px 20px 28px; }
	.ob-account-box .woocommerce-form-login .form-row { flex-wrap: wrap; }
}

/* ---------- Referrals (ReferralCandy widget) ---------- */
/* Local sizing fallback — the vendor candyjar script (kept verbatim in the
   page content) resizes the iframe itself once it loads. */
#refcandy-candyjar { width: 100%; min-height: 900px; border: 0; }

/* ---------- Contact page ---------- */

.ob-contact-intro { max-width: 720px; margin: 0 auto; }
.ob-contact-intro h4 {
	font-size: 20px;
	line-height: 1.55;
	margin: 0 0 24px;
	color: var(--ob-text);
}
.ob-contact-intro p { font-size: 16px; margin: 0 0 6px; }
.ob-contact-intro p:last-child { margin-bottom: 0; }
.ob-form-note { font-size: 15px; }

.ob-contact-form { max-width: 720px; margin: 40px auto 0; }
.ob-contact-form .wpcf7 p { margin: 0 0 24px; }

/* CF7 basics */
.ob-page-content .wpcf7 input[type="text"],
.ob-page-content .wpcf7 input[type="email"],
.ob-page-content .wpcf7 input[type="tel"],
.ob-page-content .wpcf7 textarea,
.ob-page-content .wpcf7 select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #ccc;
	font-family: var(--ob-font-body);
	font-size: 15px;
	color: var(--ob-text);
	background: #fff;
}
.ob-page-content .wpcf7 textarea { height: 150px; resize: vertical; }
.ob-page-content .wpcf7 input[type="submit"] {
	display: inline-block;
	padding: 14px 30px;
	border: 0;
	background: var(--ob-gold);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
}
.ob-page-content .wpcf7 input[type="submit"]:hover { background: var(--ob-orange-dark); }

/* ---------- Blog ---------- */

.ob-blog-list { padding-top: 44px; padding-bottom: 64px; }

.ob-blog-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
}

.ob-blog-card {
	border: 1px solid #e5e5e5;
	display: flex;
	flex-direction: column;
}

.ob-blog-thumb { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.ob-blog-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ob-blog-card-body { padding: 20px 22px 24px; }
.ob-blog-card-body h2 { margin: 0 0 6px; font-size: 1.15rem; line-height: 1.4; font-weight: 400; }
.ob-blog-card-body h2 a { color: var(--ob-text); text-decoration: none; }
.ob-blog-card-body h2 a:hover { color: var(--ob-orange); }
.ob-blog-card-body p { margin: 0 0 12px; font-size: 15.5px; color: #555; line-height: 1.6; }

.ob-blog-date { font-size: 14px; color: #999; }

.ob-blog-more {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.4px;
	color: var(--ob-gold);
	text-decoration: none;
}
.ob-blog-more:hover { text-decoration: underline; }

.ob-blog-pagination { margin-top: 40px; text-align: center; }
.ob-blog-pagination .page-numbers { padding: 6px 12px; text-decoration: none; color: var(--ob-nav); }
.ob-blog-pagination .page-numbers.current { color: var(--ob-orange); font-weight: 700; }

.ob-single-thumb { margin-bottom: 28px; }
.ob-single-thumb img { width: 100%; height: auto; }

/* Prev/next post navigation under the title band */
.ob-post-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	margin: 0 0 34px;
	padding: 14px 0;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	font-size: 15px;
}
.ob-post-nav a {
	color: var(--ob-orange);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.ob-post-nav a:hover { text-decoration: underline; }
.ob-post-nav-next { margin-left: auto; }
.ob-post-nav span { font-size: 1.25em; line-height: 1; }

/* "Share This Story" bar at the end of a post */
.ob-share {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 14px 24px;
	margin-top: 48px;
	padding: 26px 30px;
	background: #f4f4f4;
}
.ob-share-title { font-size: 1.3rem; color: var(--ob-text); }
.ob-share-icons { display: flex; align-items: center; gap: 6px; }
.ob-share-icons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	color: #b7b7b7;
	transition: color 0.15s ease;
}
.ob-share-icons a:hover { color: #808080; }
.ob-share-icons svg { width: 20px; height: 20px; }

@media (max-width: 600px) {
	.ob-share { justify-content: center; text-align: center; }
}

/* ---------- WooCommerce ---------- */

.ob-woo-wrap { padding: 32px 24px 64px; }
.ob-woo-wrap .woocommerce-breadcrumb { margin-bottom: 24px; font-size: 14px; color: #777; }
.ob-woo-wrap .woocommerce-breadcrumb a { color: #777; text-decoration: none; }
.ob-woo-wrap .woocommerce-breadcrumb a:hover { color: var(--ob-orange); }

.ob-woo-wrap h1.product_title {
	font-family: var(--ob-font-body);
	font-weight: 700;
	color: #1a1a1a;
}
.ob-woo-wrap h1.page-title {
	font-family: var(--ob-font-body);
	font-weight: 400;
	color: var(--ob-text);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--ob-orange); font-size: 17px; }
.woocommerce ul.products li.product .price { color: var(--ob-text); }

/* PDP price: dark "Price:" label + dark "or subscribe" text, orange amount */
.woocommerce div.product p.price { color: var(--ob-text); }
.woocommerce div.product p.price::before { content: "Price: "; color: var(--ob-text); }
.woocommerce div.product p.price .woocommerce-Price-amount { color: var(--ob-orange); }

/* Shop archive header — larger SEO H1 + intro description (ob-shop-header.php).
   Fills the bland empty space under the title on both mobile and desktop. */
.ob-woo-wrap .page-title {
	font-size: 34px;
	line-height: 1.2;
	margin: 0 0 12px;
}
.ob-shop-intro {
	max-width: none;
	margin: 0 0 26px;
	color: #666;
	font-size: 16px;
	line-height: 1.75;
}
.ob-shop-intro p { margin: 0; }
.ob-shop-intro strong { color: var(--ob-text); font-weight: 600; }
@media (max-width: 600px) {
	.ob-woo-wrap .page-title { font-size: 27px; }
	.ob-shop-intro { font-size: 15px; margin-bottom: 20px; }
}

/* "Learn More" button spans the full card width (desktop + mobile grid) */
.woocommerce ul.products li.product .button.ob-learn-more {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

/* Add-to-cart confirmation is handled by the mini-cart drawer; hide the stray
   WooCommerce success notice on shop/product pages (it renders out of place). */
.single-product .woocommerce-message,
.post-type-archive-product .woocommerce-message,
.tax-product_cat .woocommerce-message { display: none; }

/* Uniform product-image height on the shop/category grid. A fixed-height box
   with object-fit:contain keeps every image the SAME height (tall bottles like
   the Sports Cream scale down instead of blowing out their card), aspect ratio
   preserved and centred — same treatment as the [ob_products] cards. */
.woocommerce ul.products li.product a img {
	height: 260px;
	width: 100%;
	object-fit: contain;
	margin-bottom: 1em;
}

.woocommerce .button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce button.button.alt,
.woocommerce a.button.alt {
	background: var(--ob-orange);
	color: #fff;
	border-radius: 0;
	font-family: var(--ob-font-nav);
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 14px;
	padding: 13px 26px;
}
.woocommerce .button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover { background: var(--ob-orange-dark); color: #fff; }

/* Order Now button: keep it brand-orange in EVERY state. WooCommerce's default
   paints button.alt (and the disabled "select a size" state on variable
   products) purple (#7f54b3); its .disabled rule also drops opacity to .5, so
   the unselected button reads as faded lavender. Force orange; the .disabled
   opacity stays, so the disabled state is a faded orange (still a clear cue). */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.woocommerce div.product form.cart .single_add_to_cart_button.disabled:hover {
	background: var(--ob-orange);
	color: #fff;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	background: var(--ob-orange-dark);
}

/* WooCommerce block cart/checkout buttons (Proceed to Checkout, Place Order) */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--ob-orange);
	color: #fff;
	border-radius: 0;
	font-family: var(--ob-font-nav);
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 13px;
	font-weight: 700;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--ob-orange-dark);
	color: #fff;
}

/* Cart page: normalize text to the theme's 17px body size (Gerald
   2026-07-07, "same as My Account") — the cart block otherwise sizes its
   text from the --wp--preset--font-size-- custom properties (small: 14px,
   x-small: 12.25px), not em inheritance. Secondary text scales to 15px.
   Buttons and the "Total due today" footer row keep their pinned sizes. */
.woocommerce-cart .wp-block-woocommerce-cart {
	--wp--preset--font-size--small: 17px;
	--wp--preset--font-size--x-small: 15px;
	font-size: 17px; /* plain-em components (product name, coupon panel) */
}
/* "Total due today" label + amount: original 1.25em of the 14px sidebar */
.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 17.5px;
}
.woocommerce-cart .wp-block-woocommerce-cart .wc-block-cart__submit-button,
.woocommerce-cart .wp-block-woocommerce-cart .wc-block-components-button:not(.is-link) {
	font-size: 13px;
}

/* Cart block on phones: WooCommerce is supposed to switch each item row to a
   stacked layout via a JS-toggled `is-mobile` class (it measures the block's
   container width). On subscription items the recurring price + "Save $X / N
   months" badge is wide and, when the container over-runs the viewport, WC
   keeps the desktop 3-column row and the right-hand total column gets cut off.
   Force the stacked layout with a real media query so it can't overflow:
   image on top, then product details, then the total/badge — all full width. */
@media (max-width: 600px) {
	.woocommerce-cart table.wc-block-cart-items,
	.woocommerce-cart table.wc-block-cart-items tbody,
	.woocommerce-cart .wc-block-cart-items__row {
		display: block !important;
		width: 100% !important;
	}
	.woocommerce-cart .wc-block-cart-items__row {
		padding: 18px 0;
		border-bottom: 1px solid #ececec;
	}
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image,
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__product,
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__total {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		text-align: left !important;
		justify-content: flex-start !important;
	}
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image { width: 288px !important; margin: 0 0 12px; }
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__image img { width: 288px !important; }
	.woocommerce-cart .wc-block-cart-items__row .wc-block-cart-item__total { margin-top: 10px; }
	/* let the price + Save badge wrap and left-align instead of forcing width */
	.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper {
		align-items: flex-start !important;
	}
	.woocommerce-cart .wc-block-cart-item__total .wc-block-components-sale-badge {
		white-space: normal !important;
	}
}

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

/* Column split matching live: gallery 45% (Woo Variation Gallery), summary
   takes the rest (WooCommerce's default layout.css caps it at 48%) */
@media (min-width: 769px) {
	.woocommerce div.product div.summary.entry-summary { width: 55%; }
}

/* Cap product gallery image height so tall bottle shots (e.g. Sports Cream)
   don't dominate the page — scale proportionally and center. Covers both the
   default WooCommerce gallery and the Woo Variation Gallery. */
.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product .woo-variation-product-gallery img {
	max-height: 520px;
	width: auto !important;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	display: block;
}

/* Shop-sort + product dropdowns: a little more breathing room */
#bos4w-dropdown-plan,
.bos4w-display-dropdown select,
.woocommerce .woocommerce-ordering select.orderby,
.woocommerce div.product .variations select {
	padding: 9px 14px;
}

/* bos4w (Buy Once or Subscribe) purchase box — from live custom CSS */
.bos4w-display-wrap { width: 100% !important; }
.woocommerce div.product form.cart .bos4w-display-options ul {
	padding: 10px 0;
	font-size: 14px;
	width: 100% !important;
	margin: 0 auto;
	list-style: none;
}
#bos4w-one-time,
#bos4w-subscribe-to { vertical-align: middle; margin: 0 4px 2px 0; }
.single_add_to_cart_button { margin-right: 10px !important; }

/* Hide Category/Brand lines in the product meta (live keeps SKU only) */
.product_meta span.posted_in { display: none; }

/* Add-to-cart row: subscription options full width, then qty / Order Now /
   PayPal on one line like the live page */
.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 0;
}
.woocommerce div.product form.cart .bos4w-display-wrap { flex: 0 0 100%; }
/* Variable products: same one-row layout inside the variation wrapper
   (kills WooCommerce's button float, which would jump Order Now ahead of qty) */
.woocommerce div.product form.cart .single_variation_wrap,
.woocommerce div.product form.cart .variations { flex: 0 0 100%; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 0;
}
.woocommerce div.product form.cart div.quantity { float: none; margin: 0 10px 0 0; }
#wc_braintree_paypal_container { margin: 0; }

/* Quantity stepper (- 1 +) */
.woocommerce div.product form.cart div.quantity {
	display: inline-flex;
	align-items: stretch;
}
.woocommerce .quantity input.qty {
	width: 46px;
	height: 42px;
	text-align: center;
	border: 1px solid #ccc;
	border-left: 0;
	border-radius: 0;
	-moz-appearance: textfield;
}
.woocommerce .quantity input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.ob-qty-btn {
	width: 38px;
	height: 42px;
	background: #fff;
	border: 1px solid #ccc;
	font-size: 18px;
	line-height: 1;
	color: #555;
	cursor: pointer;
}
.ob-qty-btn.ob-qty-plus { border-left: 0; }
.ob-qty-btn:hover { background: #f5f5f5; }

/* Short description headings + divider above it, matching live */
.woocommerce div.product .woocommerce-product-details__short-description {
	border-top: 1px solid #e3e3e3;
	margin-top: 22px;
	padding-top: 22px;
}

@media (max-width: 768px) {
	.woocommerce div.product form.cart { row-gap: 10px; }
	/* Stack gallery + summary cleanly on mobile. The Woo Variation Gallery
	   renders its own wrapper (not WooCommerce's .images), so WC's mobile
	   reset never unfloats it and the summary — incl. the FrontRow badge at
	   its top — wraps into the gap beside the image. Force full-width stack. */
	.woocommerce div.product .woo-variation-product-gallery,
	.woocommerce div.product .woo-variation-gallery-wrapper,
	.woocommerce div.product div.images {
		float: none !important;
		width: 100% !important;
		margin: 0 0 22px !important;
	}
	.woocommerce div.product .summary.entry-summary {
		clear: both !important;
		float: none !important;
		width: 100% !important;
		padding-left: 0 !important;
	}
	/* FrontRow "Clinician's Choice" badge: full width, never squished */
	#frontrow-badge { width: 100%; }
	#frontrow-badge .iframe-frontrow { width: 100% !important; }
}

/* ---------- Mini cart drawer ---------- */

.ob-cart-overlay {
	position: fixed;
	inset: 0;
	z-index: 2900;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}
body.ob-drawer-open .ob-cart-overlay { opacity: 1; visibility: visible; }
body.ob-drawer-open { overflow: hidden; }

.ob-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 3000;
	width: 400px;
	max-width: 92vw;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: -10px 0 30px rgba(0, 0, 0, 0.18);
	transform: translateX(105%);
	transition: transform 0.28s ease;
}
.ob-cart-drawer.is-open { transform: none; }

.ob-cart-drawer-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 22px;
	border-bottom: 1px solid #e8e8e8;
}
.ob-cart-drawer-title {
	font-family: var(--ob-font-nav);
	font-size: 16px;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--ob-text);
}
.ob-cart-drawer-title small {
	display: block;
	margin-top: 3px;
	font-size: 12.5px;
	letter-spacing: 0.2px;
	text-transform: none;
	color: #8a8a8a;
}
.ob-cart-drawer-close {
	appearance: none;
	background: none;
	border: 0;
	padding: 6px;
	margin: -2px -6px 0 0;
	color: #777;
	cursor: pointer;
}
.ob-cart-drawer-close:hover { color: var(--ob-orange); }
.ob-cart-drawer-close svg { width: 20px; height: 20px; display: block; }

.ob-cart-drawer-body {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
	padding: 0 22px 22px;
}
.ob-cart-drawer .widget_shopping_cart_content {
	flex: 1;
	min-height: 0;
	display: flex;
	flex-direction: column;
}
.ob-cart-drawer ul.woocommerce-mini-cart {
	flex: 1;
	overflow-y: auto;
	list-style: none;
	margin: 0;
	padding: 4px 0 0;
}
/* Mini-cart line items are namespaced on the drawer's ID (#ob-cart-drawer) on
   purpose: the <ul> also carries WooCommerce's shared .cart_list /
   .product_list_widget classes, so class-only rules here tie on specificity
   with woocommerce.css (and apfs/blocks CSS) and lose or win by load order —
   which is why the cart rendered differently page to page. The ID prefix wins
   authoritatively, no !important needed. Everything the item needs is set here
   so nothing leaks in from other stylesheets. */
#ob-cart-drawer li.woocommerce-mini-cart-item {
	position: relative;
	box-sizing: border-box;
	min-height: 116px;
	padding: 14px 28px 18px 104px;
	border-bottom: 1px solid #eee;
	font-size: 15px;
	line-height: 1.45;
}
/* Product name — clean medium weight (overrides Woo's default bold widget link). */
#ob-cart-drawer li.woocommerce-mini-cart-item > a:not(.remove) {
	display: block;
	margin: 0 0 2px;
	font-weight: 600;
	color: var(--ob-text);
	text-decoration: none;
}
#ob-cart-drawer li.woocommerce-mini-cart-item > a:not(.remove):hover { color: var(--ob-orange); }
/* Thumbnail in a fixed left column — capped at 100px tall (aspect preserved) so
   tall bottles can't blow out the drawer, and every text line stays clear of it
   (short images no longer let later lines wrap back under to the left). */
#ob-cart-drawer li.woocommerce-mini-cart-item img {
	position: absolute;
	left: 0;
	top: 14px;
	float: none;
	/* Uniform 84×100 box + object-fit:contain keeps aspect (no distortion) while
	   giving every thumbnail the same footprint; object-position:left hugs each
	   image to the left so they line up with each other down the column. */
	width: 84px;
	height: 100px;
	max-width: 84px;
	max-height: 100px;
	margin: 0;
	object-fit: contain;
	object-position: left center;
}
#ob-cart-drawer li.woocommerce-mini-cart-item a.remove {
	position: absolute;
	top: 14px;
	right: 0;
	left: auto;
	width: 22px;
	height: 22px;
	font-size: 20px;
	line-height: 20px;
	text-align: center;
	background: none;
	/* override WooCommerce's `color: var(--wc-red) !important` on a.remove */
	color: #b5b5b5 !important;
}
#ob-cart-drawer li.woocommerce-mini-cart-item a.remove:hover { color: #e23636 !important; background: none; }
/* Subscription "Frequency:" line — not bold, label + value inline on one line. */
#ob-cart-drawer .woocommerce-mini-cart-item dl.variation {
	margin: 5px 0 0;
	padding: 0;
	/* kill WooCommerce's `.woocommerce ul.cart_list li dl { border-left; padding-left }`
	   pipe that only appears on shop/product pages (body.woocommerce) */
	border: 0;
	overflow: hidden;
	font-size: 14px;
	line-height: 1.5;
	color: #666;
}
#ob-cart-drawer .woocommerce-mini-cart-item dl.variation dt,
#ob-cart-drawer .woocommerce-mini-cart-item dl.variation dd {
	float: left;
	margin: 0;
	padding: 0;
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
	color: #666;
}
#ob-cart-drawer .woocommerce-mini-cart-item dl.variation dt { clear: left; margin-right: 5px; }
#ob-cart-drawer .woocommerce-mini-cart-item dl.variation dd p { margin: 0; display: inline; }
/* Quantity / price line, directly under the Frequency line. */
#ob-cart-drawer .woocommerce-mini-cart-item .quantity {
	display: block;
	margin: 4px 0 0;
	font-size: 14px;
	color: #666;
}
.ob-cart-drawer .woocommerce-mini-cart__empty-message {
	margin: 40px 0 0;
	text-align: center;
	font-size: 16px;
	color: #666;
}
.ob-cart-drawer .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 16px 0;
	border-top: 2px solid #eee;
	font-size: 16px;
}
.ob-cart-drawer .woocommerce-mini-cart__buttons {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
}
.ob-cart-drawer .woocommerce-mini-cart__buttons a.button {
	display: block;
	margin: 0;
	padding: 14px 20px;
	background: #fff;
	color: var(--ob-orange);
	border: 1px solid var(--ob-orange);
	border-radius: 0;
	font-family: var(--ob-font-nav);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
}
.ob-cart-drawer .woocommerce-mini-cart__buttons a.button:hover { background: #fdf1e3; color: var(--ob-orange); }
.ob-cart-drawer .woocommerce-mini-cart__buttons a.button.checkout {
	background: var(--ob-orange);
	color: #fff;
}
.ob-cart-drawer .woocommerce-mini-cart__buttons a.button.checkout:hover { background: var(--ob-orange-dark); color: #fff; }

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

.site-footer {
	border-top: 3px solid var(--ob-gold-light);
	background: #fff;
	font-size: 16px; /* match header nav size */
	color: #555;
}

.ob-footer-cols {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 48px;
	padding-top: 48px;
	padding-bottom: 48px;
}

.ob-footer-heading {
	margin: 0 0 16px;
	font-family: var(--ob-font-nav);
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #333;
}

.ob-footer-about p {
	margin: 0 0 18px;
	color: #444;
	line-height: 1.7;
}
.ob-footer-about p:last-child { margin-bottom: 0; }

.ob-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ob-footer-links a {
	display: block;
	padding: 7px 0;
	color: #444;
	text-decoration: none;
}
.ob-footer-links a::before {
	content: "\203A";
	margin-right: 9px;
	color: #888;
}
.ob-footer-links a:hover { color: var(--ob-orange); }

.ob-footer-contact {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ob-footer-contact li { padding: 6px 0; }
.ob-footer-contact a { color: #444; text-decoration: none; }
.ob-footer-contact a:hover { color: var(--ob-orange); }

.ob-footer-bar {
	background: var(--ob-gold-light);
	color: #fff;
	text-align: center;
	padding: 16px 24px;
	font-size: 17px; /* live copyright bar: 17px */
}

/* ---------- Mobile ---------- */

@media (max-width: 900px) {
	/* Header stays white like desktop; icons go dark so they read on white */
	.site-header .ob-container { min-height: var(--ob-header-h-mobile); }

	.ob-logo img.ob-logo-desktop { display: none; }
	.ob-logo .ob-logo-mobile { display: block; width: 260px; height: auto; }

	.ob-menu-toggle { display: block; }

	/* Cart icon stays in the bar, left of the hamburger */
	.ob-cart { margin-left: auto; }
	.ob-menu-toggle { order: 2; }

	.ob-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		background: #fff;
		box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
	}
	.ob-nav.is-open { display: block; }

	.ob-nav-list { display: block; }
	.ob-nav-list a {
		padding: 15px 24px;
		font-size: 16px;
		border-bottom: 1px solid #f0f0f0;
	}

	/* Mobile: sub-menus render inline, indented */
	.ob-nav-list .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		padding: 0;
		box-shadow: none;
		background: #fafafa;
	}
	.ob-nav-list .sub-menu li { border-bottom: 0; }
	.ob-nav-list .sub-menu a { padding-left: 44px; font-size: 15px; color: var(--ob-nav); }
	.ob-nav-list .sub-menu a:hover,
	.ob-nav-list .sub-menu a:focus { color: var(--ob-orange); background: none; }

	/* Mobile hero: same image, box kept in frame, text overlaid on a teal
	   gradient so it stays legible — no awkward stacking. */
	.ob-hero {
		aspect-ratio: auto;
		min-height: 72vh;
		max-height: none;
		background-position: 66% center;
		align-items: flex-start;
	}
	.ob-hero::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(
			to bottom,
			rgba(6, 60, 55, 0.9) 0%,
			rgba(6, 60, 55, 0.72) 42%,
			rgba(6, 60, 55, 0.38) 62%,
			rgba(6, 60, 55, 0) 80%
		);
	}
	.ob-hero-inner { position: relative; padding-top: 40px; }
	.ob-hero-copy { max-width: 100%; text-align: center; }
	.ob-hero-title { font-size: clamp(1.9rem, 8vw, 2.6rem); margin-bottom: 1em; }
	.ob-hero-actions { align-items: center; }
	.ob-btn { width: min(320px, 100%); text-align: center; }

	/* Sections: stack */
	.ob-benefits { padding: 48px 0 56px; }
	.ob-benefits-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 36px 16px;
		margin-top: 36px;
	}
	.ob-benefit-icon { height: 110px; margin-bottom: 16px; }
	.ob-benefit-icon img { max-height: 110px; }
	.ob-benefit h3 { font-size: 16px; margin-bottom: 16px; }

	/* Anti-aging: keep the text readable — light overlay over the green side */
	.ob-antiaging { position: relative; background-position: 76% center; }
	.ob-antiaging::before {
		content: "";
		position: absolute;
		inset: 0;
		background: rgba(255, 255, 255, 0.55);
	}
	.ob-antiaging-inner { position: relative; padding: 48px 24px 40px; }

	.ob-cards { grid-template-columns: 1fr; gap: 24px; }
	.ob-card { padding: 32px 24px; }
	.ob-card-circle { width: 130px; height: 130px; }

	.ob-testimonials-more .ob-btn { width: 100%; padding-left: 12px; padding-right: 12px; font-size: 11px; }

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

	.ob-approved-logos { gap: 40px; margin-bottom: 36px; }
	.ob-approved-logos img { max-height: 72px; }
	.ob-fda-disclaimer { font-size: 13px; }
	.ob-videoseries { padding: 40px 0 52px; }

	/* Footer: single column, tight spacing (old site wasted huge gaps) */
	.ob-footer-cols {
		grid-template-columns: 1fr;
		gap: 28px;
		padding-top: 28px;
		padding-bottom: 28px;
	}
	.ob-footer-logo { margin-bottom: 18px; }
	.ob-footer-heading { margin-bottom: 10px; }
	.ob-footer-search { margin-bottom: 18px; max-width: none; }
	.ob-footer-links a { padding: 9px 0; border-bottom: 1px solid #f2f2f2; }
	.ob-footer-links li:last-child a { border-bottom: 0; }
	.ob-footer-bar { padding: 13px 20px; font-size: 15px; }
}

/* Testimonials: 3-column masonry wall for the individual quotes below the top carousel */
.ob-tst-grid {
	column-count: 3;
	column-gap: 26px;
	margin-top: 8px;
}
.ob-tst-grid > .ob-tst,
.ob-tst-grid > .ob-tst-rotate {
	display: inline-block;
	width: 100%;
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0 0 26px;
}
@media (max-width: 900px) { .ob-tst-grid { column-count: 2; } }
@media (max-width: 600px) { .ob-tst-grid { column-count: 1; } }

/* ---------- Checkout (multi-step flow — see functions.php + checkout-steps.js) ---------- */

/* Checkout gets the full-width column (default page column is 900px) */
body.woocommerce-checkout .ob-page-content { max-width: 1200px; }

/* Core notice icon renders as a broken glyph without Woo's icon font */
.woocommerce-form-login-toggle .woocommerce-info::before { display: none; }

/* Info bar: greeting / phone / email / view cart */
.ob-chk-bar {
	display: flex;
	flex-wrap: wrap;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	margin: 0 0 26px;
}
.ob-chk-bar-cell {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 16px 26px;
	font-size: 15.5px;
	color: var(--ob-text);
	border-right: 1px solid #e5e5e5;
}
.ob-chk-bar-cell:first-child { padding-left: 2px; }
.ob-chk-bar-cell:last-child { border-right: 0; margin-left: auto; }
.ob-chk-bar-cell a { color: var(--ob-text); text-decoration: none; }
.ob-chk-bar-cell a:hover { color: var(--ob-orange); }
.ob-chk-viewcart {
	color: var(--ob-orange) !important;
	font-family: var(--ob-font-nav);
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	text-decoration: none;
}
.ob-chk-viewcart:hover { color: var(--ob-orange-dark) !important; }

/* Returning-customer notice (core login toggle) */
.woocommerce-form-login-toggle .woocommerce-info {
	background: none;
	border: 0;
	border-bottom: 1px solid #e5e5e5;
	padding: 0 0 18px 2px;
	margin: 0 0 24px;
	color: var(--ob-text);
	font-size: 15.5px;
}
.woocommerce-form-login-toggle .woocommerce-info a { color: var(--ob-orange); text-decoration: none; }
.woocommerce-form-login-toggle .woocommerce-info a:hover { text-decoration: underline; }
form.woocommerce-form-login.login {
	border: 1px solid #e5e5e5;
	padding: 22px 26px;
	margin: 0 0 26px;
}

.ob-chk-legacy-login { margin: 0 0 26px; }

/* Legacy Nexternal login button — two-line, button-like (main label + small note) */
.ob-chk-legacy-login, .ob-btn--legacy { text-align: center; line-height: 1.2; }
.ob-legacy-main { display: block; }
.ob-legacy-note {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.3px;
	text-transform: none;
	opacity: 0.85;
}

/* Promo-code box */
.ob-chk-coupon {
	display: flex;
	align-items: center;
	gap: 24px;
	border: 1px solid #e5e5e5;
	padding: 26px 30px;
	margin: 0 0 34px;
}
.ob-chk-coupon h3 { margin: 0; font-weight: 400; font-size: 24px; }
.ob-chk-coupon form.checkout_coupon {
	display: flex !important;
	gap: 14px;
	margin-left: auto;
}
.ob-chk-coupon .input-text {
	width: 200px;
	padding: 11px 12px;
	border: 1px solid #ccc;
	font-family: var(--ob-font-body);
	font-size: 14.5px;
}

/* Step progress bar: numbered circles on a connecting line */
.ob-chk-steps {
	display: flex;
	list-style: none;
	margin: 6px 0 40px;
	padding: 0;
	counter-reset: none;
}
.ob-chk-step {
	position: relative;
	flex: 1;
	text-align: center;
	padding-bottom: 26px;
}
.ob-chk-step::before,
.ob-chk-step::after {
	content: '';
	position: absolute;
	top: 17px;
	height: 3px;
	width: 50%;
	background: #f3c99a;
}
.ob-chk-step::before { left: 0; }
.ob-chk-step::after { right: 0; }
.ob-chk-step.is-done::before,
.ob-chk-step.is-done::after,
.ob-chk-step.is-active::before { background: var(--ob-orange); }
.ob-chk-step-num {
	position: relative;
	z-index: 1;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: var(--ob-orange);
	color: #fff;
	font-family: var(--ob-font-nav);
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.15s ease, box-shadow 0.15s ease;
}
.ob-chk-step.is-active .ob-chk-step-num {
	background: var(--ob-orange-dark);
	box-shadow: 0 0 0 4px rgba(247, 148, 29, 0.25);
}
.ob-chk-step-num:hover { background: var(--ob-orange-dark); }
.ob-chk-step-label {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	font-family: var(--ob-font-nav);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: #999;
}
.ob-chk-step.is-active .ob-chk-step-label { color: var(--ob-orange-dark); }

/* Steps: show only the active section (JS adds .ob-msc + .ob-step-N; without
   JS nothing is hidden and checkout stays single-page) */
form.woocommerce-checkout.ob-msc #customer_details .col-1,
form.woocommerce-checkout.ob-msc #customer_details .col-2,
form.woocommerce-checkout.ob-msc #order_review_heading,
form.woocommerce-checkout.ob-msc #order_review { display: none; }
form.woocommerce-checkout.ob-step-1 #customer_details .col-1 { display: block; }
form.woocommerce-checkout.ob-step-2 #customer_details .col-2 { display: block; }
form.woocommerce-checkout.ob-step-3 #order_review_heading,
form.woocommerce-checkout.ob-step-3 #order_review { display: block; }

/* Form panels */
form.woocommerce-checkout #customer_details .col-1,
form.woocommerce-checkout #customer_details .col-2,
form.woocommerce-checkout #order_review {
	background: #fafafa;
	border: 1px solid #eee;
	padding: 30px 34px 34px;
}
form.woocommerce-checkout #customer_details { width: 100%; }
form.woocommerce-checkout #customer_details .col-1,
form.woocommerce-checkout #customer_details .col-2 {
	float: none;
	width: 100%;
}
form.woocommerce-checkout h3 {
	font-family: var(--ob-font-body);
	font-weight: 400;
	font-size: 26px;
	margin: 0 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid #e5e5e5;
}
form.woocommerce-checkout .woocommerce-additional-fields > h3 { display: none; }
form.woocommerce-checkout h3#order_review_heading {
	background: #fafafa;
	border: 1px solid #eee;
	border-bottom: 1px solid #e5e5e5;
	margin: 0;
	padding: 26px 34px 18px;
}
form.woocommerce-checkout.ob-step-3 #order_review { border-top: 0; }

/* Fields */
form.woocommerce-checkout .form-row label {
	display: block;
	margin: 0 0 6px;
	font-size: 15.5px;
	font-weight: 600;
}
form.woocommerce-checkout .form-row input.input-text,
form.woocommerce-checkout .form-row select,
form.woocommerce-checkout .form-row textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #ccc;
	background: #fff;
	font-family: var(--ob-font-body);
	font-size: 15px;
}
form.woocommerce-checkout .form-row textarea { min-height: 96px; }
/* Native country/state selects (select2 is disabled site-wide): center the
   selected text vertically. With only vertical padding and no set height,
   mobile browsers render the text at the bottom of the box; an explicit
   height + zero vertical padding lets the browser center the single line. */
form.woocommerce-checkout .form-row select {
	height: 44px;
	padding-top: 0;
	padding-bottom: 0;
	line-height: 1.4;
}
form.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
form.woocommerce-checkout .form-row.woocommerce-invalid select { border-color: #c0392b; }
form.woocommerce-checkout .select2-container .select2-selection--single {
	height: 43px;
	border: 1px solid #ccc;
	border-radius: 0;
}
form.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 41px; }

/* Ship-to-different-address heading checkbox */
#ship-to-different-address {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 22px;
}
#ship-to-different-address label { display: inline; font-weight: 400; margin: 0; }

/* Prev / Next nav */
.ob-chk-nav {
	display: flex;
	justify-content: flex-end;
	gap: 12px;
	margin-top: 22px;
}
.ob-chk-nav .button {
	background: var(--ob-orange);
	color: #fff;
	border: 0;
	border-radius: 0;
	padding: 13px 30px;
	font-family: var(--ob-font-nav);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
}
.ob-chk-nav .button:hover { background: var(--ob-orange-dark); }
.ob-chk-nav .ob-chk-prev { background: #b5b5b5; }
.ob-chk-nav .ob-chk-prev:hover { background: #999; }

/* Order review table + payment */
form.woocommerce-checkout table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	margin: 0 0 26px;
}
form.woocommerce-checkout table.shop_table th,
form.woocommerce-checkout table.shop_table td {
	padding: 13px 8px;
	border-bottom: 1px solid #e5e5e5;
	font-size: 15.5px;
	text-align: left;
}
form.woocommerce-checkout table.shop_table td:last-child,
form.woocommerce-checkout table.shop_table th:last-child { text-align: right; }
form.woocommerce-checkout table.shop_table tfoot .order-total td,
form.woocommerce-checkout table.shop_table tfoot .order-total .amount { color: var(--ob-orange); font-weight: 700; }

#payment.woocommerce-checkout-payment { background: #fff; border-radius: 0; }
#payment.woocommerce-checkout-payment ul.payment_methods {
	border-bottom: 1px solid #e5e5e5;
	padding: 0 0 14px;
	margin: 0 0 14px;
	list-style: none;
}
#payment.woocommerce-checkout-payment ul.payment_methods li { padding: 10px 0; }
#payment.woocommerce-checkout-payment div.payment_box {
	background: #f2f2f2;
	border-radius: 0;
	margin: 12px 0 0;
	padding: 18px 20px;
}
#payment.woocommerce-checkout-payment div.payment_box::before { display: none; }
#payment .place-order { padding: 10px 0 0; text-align: right; }

@media (max-width: 760px) {
	.ob-chk-bar { border: 0; gap: 0; }
	.ob-chk-bar-cell { border-right: 0; padding: 6px 2px; width: 100%; }
	.ob-chk-bar-cell:last-child { margin-left: 0; }
	.ob-chk-coupon { flex-direction: column; align-items: stretch; gap: 16px; padding: 20px; }
	.ob-chk-coupon form.checkout_coupon { margin-left: 0; flex-direction: column; gap: 12px; }
	.ob-chk-coupon .input-text { flex: 1; width: auto; }
	.ob-chk-coupon form.checkout_coupon .button { width: 100%; }
	form.woocommerce-checkout #customer_details .col-1,
	form.woocommerce-checkout #customer_details .col-2,
	form.woocommerce-checkout #order_review { padding: 20px 16px 24px; }
	form.woocommerce-checkout h3#order_review_heading { padding: 20px 16px 14px; }
	.ob-chk-step-label { font-size: 10.5px; }
}

/* Checkout: normalize text to the 17px body size, same as My Account
   (Gerald 2026-07-07). Labels/table text inherit 17px; form fields match
   the account boxes' 16px inputs. Buttons keep their existing sizes. */
body.woocommerce-checkout form.woocommerce-checkout,
body.woocommerce-checkout form.checkout_coupon,
body.woocommerce-checkout form.woocommerce-form-login,
body.woocommerce-checkout table.shop_table {
	font-size: 17px;
}
body.woocommerce-checkout form.woocommerce-checkout .input-text,
body.woocommerce-checkout form.woocommerce-checkout select,
body.woocommerce-checkout form.woocommerce-checkout textarea,
body.woocommerce-checkout form.checkout_coupon .input-text,
body.woocommerce-checkout form.woocommerce-form-login .input-text {
	font-family: var(--ob-font-body);
	font-size: 16px;
}

/* ------------------------------------------------------------------
   OmegaBrite Wellness front page (matches live OBW home, June-2026 copy)
   ------------------------------------------------------------------ */
.obw-hero {
	display: flex;
	align-items: stretch;
	background: #fff;
}
.obw-hero-copy {
	flex: 1 1 50%;
	padding: 9% 3% 6% 7%;
}
.obw-hero-line1,
.obw-hero-line2 {
	font-family: Garamond, "EB Garamond", Georgia, serif;
	color: #71803f !important;
	font-size: clamp(40px, 4.4vw, 68px);
	font-weight: 400;
	line-height: normal;
	margin: 0 0 5px;
	letter-spacing: 2px;
	white-space: nowrap;
}
.obw-hero-line2 {
	font-style: italic;
	letter-spacing: 4px;
	margin-bottom: 28px;
}
.obw-hero-line2 sup { font-size: 40px; }
.obw-hero-actions .obw-btn-shop {
	font-size: 20px;
	padding: 14px 36px;
	background: var(--ob-gold, #f5b537);
	color: #fff;
	margin-bottom: 14px;
}
.obw-hero-actions .obw-btn-intl {
	font-size: 13px;
	padding: 9px 22px;
	background: var(--ob-gold, #f5b537);
	color: #fff;
}
.obw-hero-media { flex: 1 1 50%; }
.obw-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.obw-quote {
	padding: 52px 0 44px;
	background: #fff;
	border-top: 1px solid #e9eaee;
	border-bottom: 1px solid #e9eaee;
}
.obw-quote .ob-container { max-width: 1060px; }
.obw-quote-text,
.obw-quote-attr {
	font-family: Garamond, "EB Garamond", Georgia, serif;
	font-size: 31px;
	color: #676767;
	line-height: 1.45;
	margin: 0;
}
.obw-quote-attr {
	font-weight: 600;
	text-align: center;
	margin-top: 6px;
}

.obw-intro { padding: 55px 0 35px; }
.obw-intro .ob-section-heading { margin-bottom: 44px; }
.obw-intro-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
	text-align: center;
}
.obw-intro-col img {
	height: 120px;
	width: auto;
	margin: 0 auto 22px;
	display: block;
}
.obw-intro-col p { font-size: 14px; line-height: 1.6; }
.obw-intro-fine { font-size: 12px; color: #777; }

.ob-featured-products { padding: 30px 0 56px; }
.ob-featured-products .ob-prod-card h3,
.ob-featured-products .ob-prod-card h3 a {
	font-family: Garamond, "EB Garamond", Georgia, serif;
	font-style: italic;
	font-size: 21px;
}

.ob-founder {
	background: #faf7f2;
	padding: 56px 0;
}
.ob-founder-grid {
	display: flex;
	gap: 40px;
	align-items: center;
	flex-wrap: wrap;
}
.ob-founder-photo {
	flex: 0 0 280px;
	max-width: 280px;
	height: auto;
}
.ob-founder-bio { flex: 1 1 380px; }
.ob-founder-bio h2 { margin-top: 0; }

.obw-testimonials { padding: 48px 0 30px; }
.obw-testimonials .ob-container { max-width: 1000px; }
.obw-testimonial {
	font-family: Garamond, "EB Garamond", Georgia, serif;
	font-size: 22px;
	color: #676767;
	line-height: 1.55;
	margin-bottom: 30px;
}
.obw-tst-vary {
	display: block;
	text-align: center;
	font-weight: 700;
	font-style: italic;
	font-size: 17px;
	margin-top: 8px;
}

.obw-cta {
	background: var(--ob-gold, #f5b537);
	padding: 64px 20px 28px;
	text-align: center;
}
.obw-cta-kicker {
	color: #fff;
	letter-spacing: 3px;
	font-weight: 700;
	font-size: 13px;
	margin-bottom: 10px;
}
.obw-cta h2 {
	font-family: Garamond, "EB Garamond", Georgia, serif;
	font-style: italic;
	font-weight: 700;
	color: #3f3f3f;
	font-size: 30px;
	margin-bottom: 26px;
}
.obw-cta-btn {
	display: inline-block;
	border: 1px solid #fff;
	color: #fff;
	padding: 12px 30px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.obw-cta-btn:hover { background: #fff; color: var(--ob-gold, #f5b537); }
.obw-cta-fda {
	margin-top: 56px;
	font-size: 12px;
	color: #3f3f3f;
}

@media (max-width: 980px) {
	.obw-hero-line1, .obw-hero-line2 { font-size: 38px; }
	.obw-hero-line2 sup { font-size: 26px; }
	.obw-hero-actions .obw-btn-shop { font-size: 20px; padding: 14px 34px; width: 100%; }
	.obw-hero-actions .obw-btn-intl { width: 100%; }
}
@media (max-width: 760px) {
	.obw-hero { flex-direction: column-reverse; }
	.obw-hero-copy { padding: 32px 6% 40px; }
	/* Keep "Feel your strongest." on one line — shrink to fit the phone width */
	.obw-hero-line1, .obw-hero-line2 { white-space: nowrap; font-size: clamp(20px, 6.4vw, 30px); letter-spacing: 1px; }
	/* Hero CTAs span the full width on mobile */
	.obw-hero-actions br { display: none; }
	.obw-hero-actions .ob-btn { display: block; width: 100%; box-sizing: border-box; text-align: center; }
	.obw-quote-text, .obw-quote-attr { font-size: 22px; }
	.obw-intro-grid { grid-template-columns: 1fr; }
	.ob-founder-grid { flex-direction: column; text-align: center; }
	.ob-founder-photo { flex-basis: auto; }
	.obw-testimonial { font-size: 19px; }
}
