/*
Theme Name: OBRA
Description: OBRA child theme based on Twenty Twenty-Five
Template: twentytwentyfive
Version: 1.0.0
*/

/* ── Brand variables ───────────────────────────────────────── */
:root {
	--obra-navy:       #062B57;
	--obra-blue:       #1F5A95;
	--obra-red-dark:   #7B0D28;
	--obra-red:        #BB133D;
	--obra-red-hover:  #A81137;
	--obra-navy-hover: #3C5B81;

	/* Remove parent theme root padding */
	--wp--style--root--padding-top:    0px;
	--wp--style--root--padding-right:  0px;
	--wp--style--root--padding-bottom: 0px;
	--wp--style--root--padding-left:   0px;
}

/* ── Fonts ──────────────────────────────────────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700&family=Open+Sans:wght@400;700&family=Roboto:wght@400;700&display=swap');

/* ── Global layout ──────────────────────────────────────────── */
body {
	padding: 0 !important;
	margin: 0;
	font-family: 'Roboto', sans-serif;
}

.wp-site-blocks {
	padding-left:  0 !important;
	padding-right: 0 !important;
}

/* Full-width blocks break out of container */
.wp-block-group.alignfull,
.wp-block-cover.alignfull {
	max-width: 100% !important;
	width: 100vw !important;
	margin-left:  50% !important;
	transform: translateX(-50%) !important;
}

/* ── Header / navigation stacking ──────────────────────────── */

header.wp-block-template-part,
.wp-block-template-part[class*="header"] {
	position: relative;
	z-index: 100;
}

.wp-block-navigation__submenu-container {
	z-index: 101;
}

/* ── Header layout ──────────────────────────────────────────── */

.obra-header {
	background: #fff !important;
}

/* ── Secondary nav (Results | Schedule | Competitions) ──────── */

.obra-secondary-nav .wp-block-navigation__container {
	gap: 0 !important;
}

.obra-secondary-nav .wp-block-navigation-item__content {
	color: var(--obra-navy) !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	text-transform: uppercase !important;
	letter-spacing: normal !important;
	line-height: 22px !important;
	padding: 0 14px 5px !important;
	text-decoration: none !important;
	transition: all 0.4s ease !important;
	-webkit-font-smoothing: antialiased !important;
}

.obra-secondary-nav .wp-block-navigation-item + .wp-block-navigation-item {
	border-left: 1px solid var(--obra-navy) !important;
}

.obra-secondary-nav .wp-block-navigation-item__content:hover {
	border-bottom: 4px solid var(--obra-navy) !important;
	color: var(--obra-navy) !important;
}

/* ── Primary nav ────────────────────────────────────────────── */

.obra-primary-nav .wp-block-navigation__container {
	gap: 0 !important;
	margin: 0 !important;
}

.obra-primary-nav .wp-block-navigation-item {
	padding: 4px 0.99em !important;
}

.obra-primary-nav .wp-block-navigation-item__content {
	color: var(--obra-navy) !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	text-transform: uppercase !important;
	letter-spacing: normal !important;
	line-height: 22px !important;
	padding: 0 0 5px 0 !important;
	border-bottom: 4px solid transparent !important;
	text-decoration: none !important;
	transition: all 0.4s ease !important;
	-webkit-font-smoothing: antialiased !important;
}

.obra-primary-nav .wp-block-navigation-item__content:hover {
	border-bottom: 4px solid var(--obra-navy) !important;
	color: var(--obra-navy) !important;
}

.obra-primary-nav .wp-block-navigation__submenu-container {
	background: #fff !important;
	border: 1px solid #ddd !important;
	border-top: 3px solid var(--obra-navy) !important;
	min-width: 220px !important;
}

.obra-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 13px !important;
	font-weight: 600 !important;
	padding: 8px 16px !important;
	display: block !important;
	color: var(--obra-navy) !important;
	text-transform: uppercase !important;
	border-bottom: 4px solid transparent !important;
}

.obra-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	border-bottom: 4px solid var(--obra-navy) !important;
	text-decoration: none !important;
}

/* ── Mini Cart (WooCommerce) ────────────────────────────────── */

.obra-header__top-row .wp-block-woocommerce-mini-cart,
.obra-header__top-bar .wp-block-woocommerce-mini-cart {
	display: inline-flex;
	align-items: center;
	margin-left: auto;
}

.obra-header {
	max-width: 1630px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.obra-header .wp-block-site-logo {
	margin: 0;
	line-height: 0;
	flex-shrink: 0;
}

.obra-header__right {
	flex: 1;
}

.obra-header__top-row {
	gap: 16px;
	margin-bottom: 4px;
}

.obra-header__nav-bar .wp-block-navigation {
	margin: 0;
}

.wc-block-mini-cart__button {
	color: var(--obra-navy) !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px;
}

.wc-block-mini-cart__button:hover,
.wc-block-mini-cart__button:focus {
	color: var(--obra-navy) !important;
	border-bottom: none !important;
	background: transparent !important;
}

.wc-block-mini-cart__quantity-badge {
	display: inline-flex !important;
	align-items: center;
	gap: 2px;
	overflow: visible !important;
}

.wc-block-mini-cart__icon {
	width: 22px;
	height: 22px;
}

.wc-block-mini-cart__icon,
.wp-block-woocommerce-mini-cart svg {
	fill: var(--obra-navy) !important;
}

/* Inline badge (matches live site) — not absolute overlay */
.wc-block-mini-cart__badge,
.wc-block-mini-cart .wc-block-mini-cart__badge {
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	margin: 0 0 0 2px !important;
	transform: none !important;
	background-color: var(--obra-navy) !important;
	color: #fff !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	min-width: 20px !important;
	height: 20px !important;
	line-height: 20px !important;
	border-radius: 10px !important;
	padding: 0 5px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	z-index: auto !important;
}

/* Always show count, even when cart is empty (matches live site "0") */
.wc-block-mini-cart__badge[hidden] {
	display: inline-flex !important;
}

.wc-block-mini-cart__amount {
	color: var(--obra-navy) !important;
	font-weight: 600 !important;
}

/* Drawer header / footer accents */
.wc-block-mini-cart__drawer .wc-block-mini-cart__title {
	color: var(--obra-navy) !important;
	font-family: 'Montserrat', sans-serif !important;
}

.wc-block-mini-cart__footer-actions .wc-block-components-button.contained {
	background-color: var(--obra-red-dark) !important;
}

.wc-block-mini-cart__footer-actions .wc-block-components-button.contained:hover {
	background-color: var(--obra-red-hover) !important;
}

/* ── Hero sections ──────────────────────────────────────────── */

.wp-block-group.home-hero {
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: stretch !important;
	min-height: 300px;
	max-width: 100% !important;
	width: 100vw !important;
	margin-left: 50% !important;
	margin-bottom: 40px !important;
	transform: translateX(-50%) !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.wp-block-group.home-hero h1,
.wp-block-group.home-hero h3 {
	color: #fff !important;
	background-color: rgba(3, 26, 52, 0.65) !important;
	max-width: 850px;
	margin: 0 !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	text-align: left;
}

.wp-block-group.home-hero h1 {
	border-radius: 3px 3px 0 0;
	padding: 50px 50px 10px !important;
	font-size: 42px !important;
	letter-spacing: 3.75px;
}

.wp-block-group.home-hero h1:last-child {
	border-radius: 3px;
	padding: 50px !important;
}

.wp-block-group.home-hero h3 {
	border-radius: 0 0 3px 3px;
	padding: 0 50px 50px !important;
	font-size: 20px !important;
	letter-spacing: 2px;
}

/* ── White hero headings (e.g. "Oregon Bicycle Racing Association Junior Racing Series") ── */
.wp-block-group.home-hero.white h2,
.wp-block-group.home-hero .white h2 {
	color: #fff !important;
	font-family: 'Open Sans', sans-serif;
	font-size: 36px !important;
	font-weight: 900 !important;
	letter-spacing: 3.75px;
	text-transform: uppercase;
	text-align: center;
	margin: 0 0 32px !important;
	background: none !important;
}

/* ── Image captions inside white hero (Junior Cyclocross / Junior Mountain Biking) ── */
.wp-block-group.home-hero h2.wpb_singleimage_heading {
	color: #fff !important;
	font-family: 'Open Sans', sans-serif;
	font-size: 24px !important;
	font-weight: 900 !important;
	letter-spacing: normal;
	text-transform: uppercase;
	text-align: center;
	margin: 0 0 12px !important;
	background: none !important;
}

/* Make home-hero inner columns span full viewport width so right-alignment
   actually reaches the right edge (the constrained parent caps them at 1630px). */
.wp-block-group.home-hero .wp-block-columns {
	max-width: 100% !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 40px !important;
}

/* Right-align image + button inside the content column of the home hero */
.wp-block-group.home-hero .wp-block-column figure.wp-block-image img {
	margin-left: auto !important;
	display: block !important;
}

/* ── Icon circles (Bike Racing 101 cards) ───────────────────── */

.obra-icon {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background-color: var(--obra-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 12px;
	font-size: 24px;
	color: #fff;
}

.obra-icon i {
	color: #fff;
}

/* Sponsors page section icons — large solid navy icons (no circle) */
.obra-stat-icon {
	margin: 0 0 16px;
	line-height: 1;
}

.obra-stat-icon i {
	color: var(--obra-navy);
	font-size: 80px;
	line-height: 1;
}

/* ── Column headings under icons (matches www2.obra.org .home-columns h3) ── */
.home-columns h3 {
	color: var(--obra-navy);
	font-family: 'Open Sans', sans-serif;
	font-size: 30px;
	font-weight: 700;
	text-transform: uppercase;
	margin-bottom: 32px;
}
.home-columns h3 a,
.home-columns h3 a:hover,
.home-columns h3 a:focus {
	color: var(--obra-navy);
	text-decoration: none;
}
.home-columns p,
.home-columns {
	font-family: 'Roboto', sans-serif;
	font-size: 16px;
	line-height: 1.7;
	font-weight: 400;
	color: #555;
	letter-spacing: 0.01rem;
}

/* ── Typography baseline (match live VCS theme) ────────────── */
html {
	font-size: 16px;
}

body,
p,
li {
	font-family: 'Roboto', sans-serif;
	font-size: 16px;
	line-height: 1.7;
	color: #555;
	letter-spacing: 0.01rem;
}

h1, h2, h3, h4, h5, h6 {
	font-family: 'Montserrat', sans-serif;
	font-weight: 500;
	line-height: 1.1;
}

/* Heading colors match the live VCS theme customizer values. */
h1, h2, h3, h4 { color: var(--obra-navy); }
h5, h6        { color: #424242; }

h1 { font-size: 42px; }
h2 { font-size: 36px; }
h3 { font-size: 30px; }
h4 { font-size: 24px; }
h5 { font-size: 18px; }
h6 { font-size: 16px; }

/* ── Small Read More buttons ────────────────────────────────── */

.wp-block-button.home-donate-button.small .wp-block-button__link {
	background-color: #5472D2 !important;
	color: #fff !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	padding: 14px 20px !important;
	border-radius: 4px !important;
	border: none !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
}

.wp-block-button.home-donate-button.small .wp-block-button__link:hover {
	background-color: #3c5ecc !important;
}

/* ── Buttons ────────────────────────────────────────────────── */

/* Begin Racing in Oregon / Donate — navy */
.wp-block-button.obra-hero-btn .wp-block-button__link,
.wp-block-button.home-donate-button .wp-block-button__link {
	background-color: #062B57 !important;
	color: #fff !important;
	text-transform: uppercase !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 30px !important;
	font-weight: 700 !important;
	line-height: 28px !important;
	padding: 12px 40px !important;
	border: 6px solid #062B57 !important;
	border-radius: 4px !important;
	text-decoration: none !important;
}

.wp-block-button.obra-hero-btn .wp-block-button__link:hover,
.wp-block-button.home-donate-button .wp-block-button__link:hover {
	background-color: #3C5B81 !important;
	border-color: #3C5B81 !important;
}

/* View Race Results / Register — red gradient */
.wp-block-button.home-hero-button.red .wp-block-button__link {
	background: linear-gradient(180deg, #7B0D28 0%, #BB133D 100%) !important;
	color: #fff !important;
	text-transform: uppercase !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 30px !important;
	font-weight: 700 !important;
	padding: 20px 60px !important;
	border: 10px solid #fff !important;
	border-radius: 0 !important;
	text-decoration: none !important;
}

.wp-block-button.home-hero-button.red .wp-block-button__link:hover {
	background: linear-gradient(180deg, #AF435E 0%, #7B0D28 100%) !important;
}

/* ── Interactive banners ─────────────────────────────────────── */

.wp-block-cover.obra-banner {
	overflow: hidden;
	cursor: pointer;
	position: relative;
}

.wp-block-cover.obra-banner .wp-block-cover__image-background {
	opacity: 0.35 !important;
	transition: opacity 0.3s ease !important;
}

.wp-block-cover.obra-banner:hover .wp-block-cover__image-background {
	opacity: 1 !important;
}

.wp-block-cover.obra-banner .wp-block-heading {
	font-weight: 700 !important;
	text-align: center !important;
	padding: 25px !important;
	text-shadow: 2px 2px 5px #333 !important;
	line-height: 34px !important;
	width: 100%;
	transition: background-color 0.3s ease;
}

.wp-block-cover.obra-banner:hover .wp-block-heading {
	background-color: rgba(6, 43, 87, 0.65) !important;
}

/* ── Hero "light" / "thick" emphasis spans ──────────────────── */

.wp-block-group.home-hero h1 .light,
.wp-block-group.home-hero h2 .light,
.wp-block-group.home-hero h3 .light {
	font-weight: 300 !important;
}

.thick {
	font-weight: 700 !important;
}

/* ── Promoters page pricing schedule (matches VCS layout) ───── */

.wp-block-group.pricing-schedule {
	margin-top: 0 !important;
	margin-bottom: 40px !important;
	padding-top: 30px !important;
}

.wp-block-group.pricing-schedule > .wp-block-columns {
	gap: 0 !important;
	margin: 0 !important;
}

.wp-block-group.pricing-schedule .wp-block-column {
	padding: 0 !important;
}

/* All data cells: light gray bg, thin border, centered, no margin */
.wp-block-group.pricing-schedule p,
.wp-block-group.pricing-schedule .wp-block-html {
	margin: 0 !important;
	padding: 10px 12px !important;
	text-align: center;
	background-color: #f8f8f8;
	border: 1px solid #e1e1e1;
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	line-height: 1.4;
	color: #333;
}

/* Left (labels) column: right-aligned, transparent bg, bottom border per row */
.wp-block-group.pricing-schedule .wp-block-column:first-child p,
.wp-block-group.pricing-schedule .wp-block-column:first-child .wp-block-html {
	text-align: right !important;
	background-color: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid #e1e1e1 !important;
	padding-right: 25px !important;
}

/* Header row of each value column: white text on OBRA red */
.wp-block-group.pricing-schedule p.ps-header {
	background-color: var(--obra-red-hover) !important;
	color: #fff !important;
	font-weight: 700 !important;
	border-color: #e1e1e1 !important;
	text-transform: uppercase;
}

/* ── DEI statement / "Who We Are" blue gradient block ──────── */

.wp-block-group.dei-statement,
.wp-block-group.mission {
	background: linear-gradient(180deg, #062B57 0%, #1F5A95 100%) !important;
}

.wp-block-group.dei-statement h2,
.wp-block-group.mission h2 {
	color: #fff !important;
	margin-bottom: 32px !important;
}

.wp-block-group.dei-statement p,
.wp-block-group.dei-statement ul,
.wp-block-group.dei-statement li,
.wp-block-group.dei-statement li:before,
.wp-block-group.dei-statement a,
.wp-block-group.dei-statement a:hover {
	color: #fff !important;
}

.wp-block-group.dei-statement a {
	border-bottom-color: #fff;
}

/* ── "Principles" sections (Power Behind / stats blocks) ───── */

.wp-block-group.principles h2 {
	color: var(--obra-navy) !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 36px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-transform: uppercase !important;
	letter-spacing: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 40px !important;
}

.wp-block-group.principles ul {
	list-style: none;
	padding-left: 0;
}

.wp-block-group.principles ul li {
	position: relative;
	padding-left: 1.2em;
	margin-top: 0.4em;
}

.wp-block-group.principles ul li:before {
	content: '\203A';
	position: absolute;
	left: 0;
	top: 0;
	line-height: 22px;
	font-weight: 700;
	color: var(--obra-navy);
}

/* In the DEI block, principles bullets stay white */
.wp-block-group.dei-statement .wp-block-group.principles ul li:before,
.wp-block-group.dei-statement ul li:before {
	color: #fff;
}

/* ── Team / board member cards ─────────────────────────────── */

.wp-block-column.obra-team-profile {
	padding: 0 12px;
}

.wp-block-column.obra-team-profile .wp-block-image {
	margin-bottom: 16px;
	display: block !important;
	width: 100% !important;
	max-width: 350px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.wp-block-column.obra-team-profile .wp-block-image img {
	width: 100% !important;
	height: auto;
	display: block;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.wp-block-heading.team-member-name {
	color: var(--obra-navy) !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	margin: 0 0 12px !important;
	text-align: center;
}

.team-member-name .team-member-role {
	display: block;
	font-size: 16px;
	font-weight: 400;
	color: #555;
	margin-top: 4px;
	font-family: 'Open Sans', sans-serif;
	text-transform: none;
}

.wp-block-heading.team-member-job-title {
	color: #555 !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	font-style: italic !important;
	margin: 0 0 16px !important;
	text-align: center;
}

p.team-member-description {
	font-family: 'Roboto', sans-serif;
	font-size: 14px;
	line-height: 1.6;
	color: #555;
}

/* ── Sponsors stripe ────────────────────────────────────────── */

.wp-block-group.blue-stripe {
	background-color: #062B57 !important;
	padding: 20px 0 !important;
}

.wp-block-group.blue-stripe h2 {
	text-transform: uppercase;
	color: #fff !important;
	font-weight: 200;
}

.wp-block-group.blue-stripe h2 .thick {
	font-weight: 700;
}

/* ── Sponsor logos ──────────────────────────────────────────── */

.wp-block-image.sponsor figcaption {
	background-color: #2C2C2C;
	color: #fff;
	text-transform: uppercase;
	font-size: 20px;
	padding: 30px 0 22px;
	text-align: center;
}

/* ── Email sign-up form ─────────────────────────────────────── */

.obra-email-signup {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.obra-form-row {
	display: flex;
	align-items: center;
	gap: 10px;
}

.obra-form-row label {
	color: #fff;
	font-family: 'Open Sans', sans-serif;
	font-size: 15px;
	min-width: 90px;
	text-align: right;
}

.obra-form-row input {
	flex: 1;
	padding: 6px 8px;
	border: 1px solid #fff;
	background: #fff;
	font-size: 14px;
	color: #333;
}

.obra-email-signup button[type="submit"] {
	margin-top: 8px;
	background-color: var(--obra-red);
	color: #fff;
	border: none;
	padding: 10px 0;
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	font-weight: 600;
	cursor: pointer;
	width: 100%;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.obra-email-signup button[type="submit"]:hover {
	background-color: var(--obra-red-hover);
}

/* ── Member Benefits list (matches www2.obra.org) ──────────── */

.obra-benefits {
	font-family: 'Open Sans', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #333;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 15px;
}

.obra-benefits .wp-block-image {
	text-align: left;
	margin: 10px 0;
}

.obra-benefits .wp-block-image img {
	max-width: 300px;
	height: auto;
	display: block;
	margin: 0;
}

.obra-benefits .wp-block-separator {
	border: none !important;
	background: 0 repeat-x url("data:image/svg+xml;utf-8,<?xml version=\"1.0\" encoding=\"utf-8\"?><svg width=\"14px\" height=\"12px\" viewBox=\"0 0 18 15\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><polygon fill=\"%23ebebeb\" points=\"8.98762301 0 0 9.12771969 0 14.519983 9 5.40479869 18 14.519983 18 9.12771969\"/></svg>") !important;
	height: 14px;
	min-height: 14px;
	opacity: 1 !important;
	margin: 30px 0 !important;
	max-width: none !important;
}

.obra-benefits p {
	margin: 0 0 1em;
}

.obra-benefits a {
	color: var(--obra-navy);
}

.obra-benefits a:hover {
	text-decoration: underline;
}

/* ── Content tables (match live VCS theme) ─────────────────── */

.entry-content table {
	table-layout: fixed;
	width: 100%;
	margin: 0 0 1.5rem 0;
	border-collapse: collapse;
	border-spacing: 0;
	background-color: transparent;
}

.entry-content table tr td,
.entry-content table tr th {
	padding: 0.4375rem;
	border: 1px solid #555;
}

/* ── Creative link blocks (rules page, etc.) ───────────────── */

.creative_link_wrapper {
	margin: 0 0 1.625rem 0;
}

.creative_link_wrapper a {
	position: relative;
	display: inline-block;
	margin: 0;
	outline: none;
	color: #000;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-weight: 400;
	text-shadow: 0 0 1px rgba(255, 255, 255, 0.3);
	font-size: 1.35em;
	text-align: center;
}

.cl-effect-1 a::before,
.cl-effect-1 a::after {
	display: inline-block;
	opacity: 0;
	-webkit-transition: -webkit-transform 0.3s, opacity 0.2s;
	transition: transform 0.3s, opacity 0.2s;
}

.cl-effect-1 a::before {
	margin-right: 10px;
	content: '[';
	-webkit-transform: translateX(20px);
	transform: translateX(20px);
}

.cl-effect-1 a::after {
	margin-left: 10px;
	content: ']';
	-webkit-transform: translateX(-20px);
	transform: translateX(-20px);
}

.cl-effect-1 a:hover::before,
.cl-effect-1 a:hover::after,
.cl-effect-1 a:focus::before,
.cl-effect-1 a:focus::after {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

/* ── WooCommerce buttons (match VCS theme on production) ─────
   .alt and .product_type_* variants are already .button, so the
   single `.button` selector covers them; same for input#submit.alt. */

.woocommerce :is(a, button, input).button,
.woocommerce #respond input#submit,
.wc-block-components-button.contained,
.wp-block-button .wp-element-button.wc-block-components-button,
.wc-block-components-product-button__button,
.wp-block-button__link.wc-block-components-product-button__button,
:is(a, button).add_to_cart_button {
	background-color: var(--obra-red-dark) !important;
	color: #fff !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 22px !important;
	letter-spacing: 0 !important;
	padding: 12px 24px !important;
	border: 0 !important;
	border-radius: 0 !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	-webkit-font-smoothing: unset !important;
}

.woocommerce :is(a, button, input).button:is(:hover, :focus),
.woocommerce #respond input#submit:is(:hover, :focus),
.wc-block-components-product-button__button:is(:hover, :focus),
:is(a, button).add_to_cart_button:is(:hover, :focus) {
	background-color: var(--obra-red-hover) !important;
	color: #fff !important;
}

/* Disabled state (matches production muted gray) */
.woocommerce button.button[name="update_cart"],
.woocommerce .button[name="apply_coupon"],
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
	color: #4e4e4e !important;
}

/* ── WooCommerce form fields (match VCS) ───────────────────── */

.woocommerce form .form-row label {
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	color: #333;
	display: block;
	margin-bottom: 4px;
}

.woocommerce form .form-row .required {
	visibility: visible;
	color: var(--obra-red);
	text-decoration: none;
}

.woocommerce form .form-row input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 3px;
	font-family: 'Open Sans', sans-serif;
	font-size: 14px;
	font-weight: 300;
	background: #fff;
	box-sizing: border-box;
}

.woocommerce form .form-row textarea {
	resize: none;
	min-height: 100px;
}

.woocommerce form .form-row input:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	border-color: var(--obra-navy);
	outline: 0;
}

.woocommerce form .form-row.woocommerce-validated .select2-container,
.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select {
	border-color: rgba(0, 0, 0, 0.1);
}

/* Select2 dropdowns (country/state) */
.woocommerce .select2-container .select2-selection--single {
	height: 40px;
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 3px;
	font-size: 14px;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 38px;
	padding-left: 12px;
	padding-right: 38px;
	font-weight: 300;
	color: #333;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 38px;
	width: 38px;
}

.woocommerce .select2-dropdown {
	border-color: rgba(0, 0, 0, 0.1);
	font-size: 14px;
}

/* Checkbox alignment (terms, ship-to-different, etc.) */
.woocommerce form .form-row label.checkbox,
.woocommerce-form__label-checkbox {
	display: flex;
	align-items: center;
	gap: 8px;
	font-weight: 300;
}

.woocommerce form .form-row input[type="checkbox"],
.woocommerce form .form-row input[type="radio"] {
	width: auto;
	margin: 0;
}

/* ── WooCommerce page width (cart, checkout, account) ──────── */

.woocommerce-cart main.wp-block-group,
.woocommerce-checkout main.wp-block-group,
.woocommerce-account main.wp-block-group,
main[data-block-name="woocommerce/page-content-wrapper"] {
	width: auto !important;
	max-width: 1630px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 15px !important;
	padding-right: 15px !important;
	box-sizing: border-box;
}

.woocommerce-cart main.wp-block-group > *,
.woocommerce-checkout main.wp-block-group > *,
.woocommerce-account main.wp-block-group > *,
main[data-block-name="woocommerce/page-content-wrapper"] > * {
	max-width: 100% !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* .woocommerce wrapper, everything inside it, and the top-level WC forms
   all fill the full container width. Note: don't set `display` here — the
   hidden coupon/login forms rely on inline `style="display:none"` to stay
   collapsed until their toggle is clicked. */
:is(.woocommerce-cart, .woocommerce-checkout) .entry-content,
:is(.woocommerce-cart, .woocommerce-checkout) .entry-content > .woocommerce,
:is(.woocommerce-cart, .woocommerce-checkout) .entry-content > .woocommerce > *,
:is(.woocommerce-cart, .woocommerce-checkout) .entry-content .woocommerce-notices-wrapper,
form.checkout_coupon,
form.login.woocommerce-form-login,
form.checkout.woocommerce-checkout {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	float: none !important;
	box-sizing: border-box;
}

/* Banner toggles always visible as block */
.woocommerce-form-login-toggle,
.woocommerce-form-coupon-toggle {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

/* ── Checkout layout (matches live VCS — main left 70% / summary right 30% / payment 70% below) ── */

.woocommerce-checkout form.checkout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;

	.vct-main-form-content {
		order: 1;
		flex: 0 0 70%;
		max-width: 70%;
		padding-right: 50px;
		box-sizing: border-box;
	}

	.vct-side-summary {
		order: 2;
		flex: 0 0 30%;
		max-width: 30%;
		box-sizing: border-box;
	}

	#payment.woocommerce-checkout-payment {
		order: 3;
		flex: 0 0 70%;
		max-width: 70%;
		padding-right: 50px;
		box-sizing: border-box;
		background: transparent;
	}

	.vct-main-form-content h3 {
		margin-top: 20px;
	}

	.woocommerce-billing-fields h3:first-child {
		margin-top: 0;
	}

	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.form-row {
		flex-basis: 100%;
	}

	.form-row-first,
	.form-row-last {
		flex-basis: 47%;
	}

	/* Payment block styling (matches VCS) */
	.wc_payment_methods,
	#payment ul.payment_methods,
	#payment div.payment_box,
	#payment div.form-row {
		padding: 1em 0;
	}

	#payment ul.payment_methods li {
		padding: 7px 15px;
		border: 1px solid rgba(0, 0, 0, 0.1);
		margin-bottom: 10px;
		border-radius: 3px;
		list-style: none;
	}

	#payment div.payment_box {
		background-color: transparent;
	}

	#payment div.payment_box::before {
		display: none;
	}

	#payment #place_order {
		float: none;
	}

	/* Stack columns on tablet / mobile */
	@media (max-width: 900px) {
		.vct-main-form-content,
		.vct-side-summary,
		#payment.woocommerce-checkout-payment {
			flex: 0 0 100%;
			max-width: 100%;
			padding-right: 0;
		}
	}
}

/* ── Order summary box (matches live VCS) ──────────────────── */

.woocommerce-checkout .vct-side-summary {
	float: none;
	padding: 22px;
	box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.13);
	border-radius: 5px;
	background: #fff;
}

.woocommerce-checkout .vct-side-summary h3#order_review_heading {
	font-family: 'Open Sans', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--obra-navy);
	text-transform: none;
	letter-spacing: 0;
	margin: 0 0 16px;
	padding: 0;
}

/* Order review totals table. #order_review is nested in .vct-side-summary
   (see woocommerce/checkout/form-checkout.php), so one selector covers both. */
.woocommerce-checkout .vct-side-summary table.shop_table {
	font-family: 'Open Sans', sans-serif;
	font-size: 15px;
	border: none;
	border-radius: 0;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	background: transparent;
	margin: 0;
	width: 100%;
	border-collapse: collapse;
}

/* Hide the "Product / Subtotal" thead — production omits it entirely */
.woocommerce-checkout .vct-side-summary table.shop_table thead {
	display: none;
}

.woocommerce-checkout .vct-side-summary table.shop_table td,
.woocommerce-checkout .vct-side-summary table.shop_table th {
	width: 50%;
	border: none;
	padding: 22px 12px;
	font-weight: 300;
	background: transparent;
}

.woocommerce-checkout .vct-side-summary table.shop_table th {
	padding-left: 0;
	text-align: left;
	color: #333;
}

.woocommerce-checkout .vct-side-summary table.shop_table td {
	text-align: right;
	padding-right: 0;
	color: #333;
}

.woocommerce-checkout .vct-side-summary table.shop_table .cart-subtotal th,
.woocommerce-checkout .vct-side-summary table.shop_table .cart-subtotal td {
	padding-bottom: 10px;
}

.woocommerce-checkout .vct-side-summary table.shop_table .tax-rate th,
.woocommerce-checkout .vct-side-summary table.shop_table .tax-rate td {
	padding-top: 10px;
}

.woocommerce-checkout .vct-side-summary table.shop_table .order-total th,
.woocommerce-checkout .vct-side-summary table.shop_table .order-total td {
	border: none;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
	font-weight: 700;
	color: var(--obra-navy);
}

/* Cart-page totals box uses the same look (matches live `.cart_totals`) */
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	padding: 22px;
	box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.13);
	border-radius: 5px;
	background: #fff;
	box-sizing: border-box;
}

.woocommerce-cart .cart-collaterals .cart_totals h2 {
	font-family: 'Open Sans', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: var(--obra-navy);
	margin: 0 0 16px;
}

/* ── WooCommerce form layout (match VCS field-pair grid) ───── */

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-account-fields {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0;
}

.woocommerce form .form-row {
	flex: 0 0 100%;
	max-width: 100%;
	margin: 0 0 14px 0;
	padding: 0;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	flex: 0 0 49%;
	max-width: 49%;
}

.woocommerce form .form-row-wide {
	flex: 0 0 100%;
	max-width: 100%;
}

/* Section headings inside billing/shipping panels */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
	color: var(--obra-navy);
	font-family: 'Open Sans', sans-serif;
	font-size: 22px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0;
	margin: 24px 0 16px;
}

.woocommerce-billing-fields h3:first-child {
	margin-top: 0;
}

/* Login / register / lost-password form layout */
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password,
.woocommerce form.checkout_coupon,
.woocommerce form.woocommerce-form-login,
.woocommerce form.edit-account {
	border: 1px solid rgba(0, 0, 0, 0.1);
	border-radius: 3px;
	padding: 24px;
	background: #fff;
}

/* My-account two-column billing/shipping cards */
.woocommerce-MyAccount-content .col2-set .col-1,
.woocommerce-MyAccount-content .col2-set .col-2,
.woocommerce-MyAccount-content .u-columns .col-1,
.woocommerce-MyAccount-content .u-columns .col-2 {
	flex: 0 0 49%;
	max-width: 49%;
	float: none;
	padding: 0;
}

.woocommerce-MyAccount-content .col2-set,
.woocommerce-MyAccount-content .u-columns {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0;
	width: 100%;
}

@media (max-width: 768px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last,
	.woocommerce-MyAccount-content .col2-set .col-1,
	.woocommerce-MyAccount-content .col2-set .col-2 {
		flex: 0 0 100%;
		max-width: 100%;
	}
}

/* ── WooCommerce notices (match VCS empty-cart yellow) ─────── */

.woocommerce div.woocommerce-info,
.woocommerce div.woocommerce-message,
.woocommerce-info,
.wc-block-components-notice-banner.is-info {
	display: flex !important;
	align-items: center !important;
	width: 100%;
	padding: 23px !important;
	border: none !important;
	border-left: 0 !important;
	border-radius: 5px !important;
	font-family: 'Open Sans', sans-serif !important;
	font-size: 13px !important;
	color: #fff !important;
	background: #FBD137 !important;
}

.woocommerce div.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	background: #2B4B80 !important;
	color: #fff !important;
}

.woocommerce div.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	background: #F6424C !important;
	color: #fff !important;
}

.woocommerce div.woocommerce-info::before,
.woocommerce div.woocommerce-message::before,
.woocommerce div.woocommerce-error::before,
.wc-block-components-notice-banner.is-info > svg,
.wc-block-components-notice-banner.is-success > svg,
.wc-block-components-notice-banner.is-error > svg {
	display: none !important;
}

.wc-block-components-notice-banner__content {
	color: #fff !important;
	font-size: 13px;
	font-family: 'Open Sans', sans-serif;
}

/* Empty cart layout — center notice + return-to-shop button */
.wc-empty-cart-message,
.woocommerce .cart-empty {
	display: flex;
	justify-content: center;
	align-items: center;
	flex: 1 0 100%;
	margin: 0 0 20px;
}

.woocommerce .return-to-shop {
	display: flex;
	justify-content: center;
	align-items: center;
	flex: 1 0 100%;
	margin: 0;
}

/* ── Footer ─────────────────────────────────────────────────── */

.wp-block-template-part footer,
.wp-site-blocks footer {
	background: linear-gradient(180deg, #062B57 0%, #1F5A95 100%) !important;
	color: #fff !important;
	padding-top: 60px !important;
	padding-bottom: 27px !important;
}

.wp-block-template-part footer h3 {
	text-transform: uppercase;
	text-decoration: underline;
	font-size: 20px;
	color: #fff !important;
}

.wp-block-template-part footer a {
	color: #fff !important;
	text-decoration: none;
	font-size: 20px;
	line-height: 41px;
}

.wp-block-template-part footer .copyright {
	text-align: right;
	text-transform: uppercase;
	font-size: 16px;
	letter-spacing: 0.96px;
	color: #fff;
}
