/* =============================================================================
   NorCal Corals V2 — Custom Stylesheet
   ========================================================================== */

/* --- Design Tokens -------------------------------------------------------- */
:root {
	--navy:        #072952;
	--navy-mid:    #16213E;
	--navy-dark:   #0a1628;
	--navy-border: #103460;
	--coral:       #FF7F50;
	--coral-dark:  #E5673B;
	--coral-glow:  rgba(255, 127, 80, .35);
	/* Text colour for use ON coral/ocean fills. White on #FF7F50 is only 2.5:1
	   and fails WCAG AA; this deep navy gives 7.65:1 and reads stronger. */
	--on-accent:   #04101F;
	--ocean:       #45B8DB;
	--ocean-dark:  #097EA0;
	--green:       #4a8200;
	--green-dark:  #355a00;
	--text:        #C8D6E5;
	--text-muted:  #8898aa;
	--white:       #fff;

	--shadow-sm:   0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.35);
	--shadow-md:   0 4px 16px rgba(0,0,0,.35);
	--shadow-lg:   0 8px 32px rgba(0,0,0,.45);
	--shadow-xl:   0 20px 60px rgba(0,0,0,.5);

	--radius:      8px;
	--radius-lg:   14px;
	--transition:  all .25s ease;

	--header-h:    80px;
	--container:   1400px;
}

/* --- Reset / Base --------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* html body beats Kadence Blocks inline body{} specificity */
html body {
	margin: 0;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	color: var(--text);
	background: var(--navy-dark);
}

img { max-width: 100%; height: auto; display: block; }

a {
	color: var(--ocean);
	text-decoration: none;
	transition: color .2s ease;
}
a:hover { color: var(--coral); }

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6 {
	font-weight: 700;
	color: var(--white);
	line-height: 1.2;
	margin-top: 0;
}

p { margin-top: 0; }

ul, ol { padding-left: 1.25rem; }

/* Accessibility */
.screen-reader-text,
.sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}
.skip-link:focus {
	position: fixed;
	top: 0; left: 0;
	width: auto; height: auto;
	clip: auto;
	padding: 10px 20px;
	background: var(--coral);
	color: var(--on-accent);
	font-weight: 700;
	z-index: 999999;
}

/* --- Layout --------------------------------------------------------------- */
.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 40px);
}

.site-main { padding: 40px 0 60px; }

.content-wrapper {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 32px;
	align-items: start;
}
.content-area--full { grid-column: 1 / -1; }

/* --- Buttons -------------------------------------------------------------- */
.btn,
button,
input[type="submit"],
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: .6rem 1.5rem;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-weight: 700;
	font-size: .9rem;
	border-radius: var(--radius);
	border: none;
	cursor: pointer;
	transition: var(--transition);
	text-decoration: none;
	line-height: 1.4;
	letter-spacing: .01em;
}

.btn-lg { padding: .8rem 2rem; font-size: 1rem; }

.btn-primary,
.button,
button,
input[type="submit"] {
	background: var(--coral);
	color: var(--on-accent);
}
.btn-primary:hover,
.button:hover,
button:hover,
input[type="submit"]:hover {
	background: var(--coral-dark);
	color: var(--on-accent);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px var(--coral-glow);
}

.btn-outline {
	background: transparent;
	border: 2px solid var(--ocean);
	color: var(--ocean);
}
.btn-outline:hover {
	background: var(--ocean);
	color: var(--on-accent);
	transform: translateY(-2px);
}

.btn-glass {
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.25);
	color: var(--white);
	backdrop-filter: blur(8px);
}
.btn-glass:hover {
	background: rgba(255,255,255,.22);
	color: var(--white);
	transform: translateY(-2px);
}

/* --- Forms ---------------------------------------------------------------- */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="url"],
textarea,
select {
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius);
	color: var(--text);
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: .95rem;
	padding: .65rem 1rem;
	width: 100%;
	transition: var(--transition);
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--coral);
	box-shadow: 0 0 0 3px rgba(255,127,80,.15);
	background: #0e1e38;
	color: var(--white);
}
label { color: #c8d6e5; font-weight: 500; display: block; margin-bottom: .4rem; }

/* --- Site Header ---------------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--navy);
	height: var(--header-h);
	display: flex;
	align-items: center;
	box-shadow: 0 2px 20px rgba(0,0,0,.4);
	transition: height .3s ease, background .3s ease;
}
.site-header.is-shrunk {
	height: 56px;
	background: rgba(7,41,82,.97);
	backdrop-filter: blur(12px);
}

.header-inner {
	display: flex;
	align-items: center;
	gap: 20px;
	width: 100%;
}

.site-branding { flex-shrink: 0; }
.site-branding img,
.site-branding .custom-logo { max-height: 58px; width: auto; transition: max-height .3s ease; }
.site-header.is-shrunk .site-branding img,
.site-header.is-shrunk .custom-logo { max-height: 38px; }
.site-name { color: var(--white); font-weight: 800; font-size: 1.4rem; letter-spacing: -.02em; }

/* Primary nav */
.site-nav { flex: 1; }
.nav-menu {
	display: flex;
	list-style: none;
	margin: 0; padding: 0;
	gap: 2px;
}
.nav-menu > li > a {
	display: block;
	padding: .55rem 1rem;
	color: var(--text);
	font-weight: 600;
	font-size: .9rem;
	border-radius: 6px;
	transition: var(--transition);
	position: relative;
}
.nav-menu > li > a::after {
	content: '';
	position: absolute;
	bottom: 2px; left: 50%; right: 50%;
	height: 2px;
	background: var(--coral);
	border-radius: 2px;
	transition: left .2s ease, right .2s ease;
}
.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-parent > a {
	color: var(--white);
	background: rgba(255,255,255,.06);
}
.nav-menu > li > a:hover::after,
.nav-menu > li.current-menu-item > a::after,
.nav-menu > li.current-menu-parent > a::after {
	left: 12px; right: 12px;
}

/* Dropdown */
.nav-menu .sub-menu {
	display: none;
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	min-width: 210px;
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius);
	padding: .5rem 0;
	box-shadow: var(--shadow-lg);
	list-style: none;
	margin: 0;
	z-index: 100;
}
.nav-menu li { position: relative; }
.nav-menu li:hover > .sub-menu,
.nav-menu li:focus-within > .sub-menu { display: block; }
.nav-menu .sub-menu a {
	display: block;
	padding: .5rem 1.2rem;
	color: var(--text);
	font-size: .88rem;
	font-weight: 500;
	transition: var(--transition);
}
.nav-menu .sub-menu a:hover {
	color: var(--coral);
	background: rgba(255,255,255,.05);
	padding-left: 1.5rem;
}

/* Header actions */
.header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }

.header-search { max-width: 220px; }

.cart-icon {
	position: relative;
	color: var(--text);
	display: flex;
	align-items: center;
	padding: 6px;
	border-radius: 6px;
	transition: var(--transition);
}
.cart-icon:hover { color: var(--coral); background: rgba(255,127,80,.1); }
.cart-count {
	position: absolute;
	top: -2px; right: -4px;
	background: var(--coral);
	color: var(--on-accent);
	font-size: .6rem;
	font-weight: 800;
	min-width: 18px; height: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--navy);
}

/* Mobile hamburger */
.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	background: transparent;
	border: none;
	padding: 6px;
	cursor: pointer;
	color: var(--text);
	transform: none !important;
	box-shadow: none !important;
	border-radius: 6px;
}
.nav-toggle:hover { background: rgba(255,255,255,.08); }
.burger-bar {
	display: block;
	width: 22px; height: 2px;
	background: currentColor;
	border-radius: 2px;
	transition: var(--transition);
}
.nav-toggle.is-open .burger-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open .burger-bar:nth-child(2) { opacity: 0; }
.nav-toggle.is-open .burger-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* --- Section Shared ------------------------------------------------------- */
.section-header {
	text-align: center;
	margin-bottom: 36px;
}
.section-title {
	font-size: clamp(1.5rem, 3vw, 2.2rem);
	color: var(--white);
	margin-bottom: .5rem;
}
.section-subtitle {
	color: var(--text-muted);
	font-size: .95rem;
	margin: 0;
}
.home-section { padding: 60px 0; }

/* --- Hero Section --------------------------------------------------------- */
.hero {
	position: relative;
	min-height: clamp(420px, 60vh, 720px);
	display: flex;
	align-items: center;
	overflow: hidden;
}

.hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 30%;
}
.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(7, 41, 82, .85) 0%,
		rgba(7, 41, 82, .55) 60%,
		rgba(10, 22, 40, .3) 100%
	);
}

.hero-content {
	position: relative;
	z-index: 1;
	padding-top: 60px;
	padding-bottom: 60px;
}

.hero-eyebrow {
	display: inline-block;
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--coral);
	background: rgba(255,127,80,.1);
	border: 1px solid rgba(255,127,80,.3);
	padding: 4px 12px;
	border-radius: 30px;
	margin-bottom: 16px;
}

.hero-headline {
	font-size: clamp(2rem, 5vw, 3.6rem);
	font-weight: 800;
	color: var(--white);
	line-height: 1.1;
	letter-spacing: -.03em;
	max-width: 680px;
	margin-bottom: 20px;
	text-shadow: 0 2px 20px rgba(0,0,0,.4);
}

.hero-sub {
	font-size: clamp(.95rem, 1.8vw, 1.2rem);
	color: rgba(255,255,255,.82);
	max-width: 540px;
	margin-bottom: 32px;
	line-height: 1.6;
}

.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; }

/* --- Category Grid -------------------------------------------------------- */
.home-cats { background: var(--navy-dark); }

.category-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
}

.category-card {
	display: flex;
	flex-direction: column;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.category-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow-lg);
	border-color: var(--coral);
}

.category-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--navy-mid);
	display: flex;
	align-items: center;
	justify-content: center;
}
.category-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}
.category-card:hover .category-card__media img { transform: scale(1.06); }

.category-card__icon-wrap {
	width: 80px; height: 80px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255,255,255,.06);
	color: var(--cat-color, var(--coral));
}

.category-card__body {
	padding: 14px 16px;
}
.category-card__name {
	font-size: .95rem;
	font-weight: 700;
	color: var(--white);
	margin: 0 0 4px;
}
.category-card__count {
	font-size: .8rem;
	color: var(--text-muted);
}

/* --- Product Grid --------------------------------------------------------- */
ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	list-style: none !important;
	margin: 0 !important; padding: 0 !important;
}
ul.products::before,
ul.products::after { display: none !important; }

/* Product Card */
ul.products li.product,
.product-card {
	background: var(--navy) !important;
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	overflow: visible !important;
	text-align: left;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	padding: 0 !important;
	width: auto !important;
	float: none !important;
	position: relative;
	display: flex !important;
	flex-direction: column;
}
ul.products li.product:hover,
.product-card:hover {
	transform: translateY(-5px);
	box-shadow: var(--shadow-lg);
	border-color: rgba(255,127,80,.4);
}

/* Badges */
.product-card__badges {
	position: absolute;
	top: 10px; left: 10px;
	display: flex;
	flex-direction: column;
	gap: 5px;
	z-index: 5;
}
.badge {
	display: inline-block;
	font-size: .65rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	padding: 3px 8px;
	border-radius: 4px;
	line-height: 1.4;
}
.badge--sale { background: var(--coral-dark); color: var(--on-accent); }
.badge--wysiwyg { background: #ffd700; color: #1a1000; }
.badge--oos { background: rgba(0,0,0,.6); color: #bbb; border: 1px solid #555; }

/* WooCommerce native sale badge — hide since we use ours */
.woocommerce span.onsale { display: none !important; }

/* Product media */
.product-card__media {
	position: relative;
	overflow: hidden;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.product-card__media a,
ul.products li.product > a:first-of-type {
	display: block;
	overflow: hidden;
}
.product-card__media img,
ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin: 0;
	transition: transform .4s ease;
	border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.product-card:hover .product-card__media img,
ul.products li.product:hover a img { transform: scale(1.05); }

/* Out of stock overlay */
.product-card__oos-overlay {
	position: absolute;
	inset: 0;
	background: rgba(10,22,40,.65);
	display: flex;
	align-items: center;
	justify-content: center;
}
.product-card__oos-overlay span {
	font-size: .85rem;
	font-weight: 700;
	color: #bbb;
	text-transform: uppercase;
	letter-spacing: .08em;
	background: rgba(0,0,0,.5);
	padding: 6px 14px;
	border-radius: 4px;
	border: 1px solid #555;
}

/* Product body */
.product-card__body {
	padding: 12px 14px 14px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.product-card__cat {
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--ocean);
	margin-bottom: 6px;
	display: block;
}
.product-card__title {
	font-size: .88rem;
	font-weight: 600;
	margin: 0 0 8px;
	line-height: 1.35;
}
.product-card__title a {
	color: var(--text);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.product-card__title a:hover { color: var(--white); }

.product-card__footer {
	margin-top: auto;
	padding-top: 10px;
}

/* WooCommerce native product card overrides */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h3 {
	font-size: .88rem;
	color: var(--text);
	padding: .7rem 14px 0;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}

.woocommerce ul.products li.product .price {
	display: block;
	color: var(--white);
	font-weight: 700;
	font-size: .95rem;
	padding: 6px 14px 2px;
}
.woocommerce ul.products li.product .price del {
	color: var(--text-muted);
	font-size: .8em;
	margin-right: 6px;
}
.woocommerce ul.products li.product .price ins {
	color: var(--coral);
	text-decoration: none;
}

ul.products li.product a.button,
.product-card__footer a.button {
	display: block;
	margin: 0 14px 14px;
	width: calc(100% - 28px);
	font-size: .82rem;
	padding: .5rem 1rem;
}

/* --- WooCommerce: Full-width page wrapper ---------------------------------- */
/* All WC pages (shop, single product, cart, checkout) use .woo-main        */
/* instead of .content-wrapper so there is no phantom sidebar column.        */
.woo-main {
	padding: 40px 0 64px;
}
.woo-content {
	display: block;
	width: 100%;
}

/* --- WooCommerce: Category Archive Header --------------------------------- */
.woocommerce-products-header {
	background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 28px 32px;
	margin-bottom: 28px;
}
.woocommerce-products-header__title,
.woocommerce-products-header .page-title {
	color: var(--white) !important;
	font-size: clamp(1.4rem, 3vw, 2rem) !important;
	margin-bottom: 8px !important;
}
.term-description,
.term-description p {
	color: var(--text) !important;
	font-size: .95rem;
	margin: 0;
	opacity: .9;
}

/* Shop ordering / result count bar */
.woocommerce-result-count { color: var(--text-muted); font-size: .85rem; }
.woocommerce-ordering .orderby {
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	color: var(--text);
	padding: .4rem .8rem;
	border-radius: var(--radius);
	font-size: .85rem;
}

/* --- WooCommerce: Single Product ------------------------------------------ */

/* 2-col: gallery left (~45%), summary right (~55%); tabs + related full width */
.woocommerce div.product {
	display: grid;
	grid-template-columns: 45fr 55fr;
	gap: 56px;
	align-items: start;
	width: 100%;
}
.woocommerce div.product div.images    { grid-column: 1; grid-row: 1; min-width: 0; }
.woocommerce div.product div.summary   { grid-column: 2; grid-row: 1; min-width: 0; }

/* Everything below the main 2-col section spans full width */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .clear,
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.products,
.woocommerce div.product .upsells.products { grid-column: 1 / -1; }

/* --- Gallery -------------------------------------------------------------- */
.woocommerce div.product div.images {
	position: sticky;
	top: calc(var(--header-h) + 20px);
}

.woocommerce-product-gallery { opacity: 1 !important; }

.woocommerce-product-gallery__image {
	border-radius: var(--radius-lg);
	overflow: hidden;
}
.woocommerce-product-gallery__image img {
	width: 100% !important;
	height: auto !important;
	max-height: 560px;
	object-fit: contain;
	border-radius: var(--radius-lg);
	background: var(--navy-mid);
}

/* Thumbnail strip */
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex !important;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
	padding: 0;
	list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	border-radius: var(--radius);
	overflow: hidden;
	border: 2px solid transparent;
	transition: border-color .2s ease;
	cursor: pointer;
	width: 72px;
	flex: 0 0 auto;
}
.woocommerce div.product div.images .flex-control-thumbs li:hover,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
	border-color: var(--coral);
}
.woocommerce div.product div.images .flex-control-thumbs li img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
}

/* --- Product Summary ------------------------------------------------------ */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--white);
	margin-bottom: 16px;
	display: block;
}
.woocommerce div.product span.price del {
	color: var(--text-muted);
	font-size: .65em;
	margin-right: 6px;
	font-weight: 400;
}
.woocommerce div.product span.price ins {
	color: var(--coral);
	text-decoration: none;
}

.woocommerce div.product .product_title {
	font-size: clamp(1.5rem, 2.5vw, 2.2rem);
	color: var(--white);
	margin-bottom: 12px;
	line-height: 1.15;
}

.woocommerce-product-details__short-description {
	color: var(--text);
	line-height: 1.7;
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--navy-border);
}

/* --- Cart Form (quantity + button) ---------------------------------------- */
form.cart {
	display: flex;
	align-items: stretch;
	gap: 10px;
	flex-wrap: wrap;
	margin: 20px 0 16px;
}
form.cart .quantity {
	flex: 0 0 auto;
}
form.cart .quantity input.qty {
	width: 76px;
	height: 52px;
	text-align: center;
	font-size: 1.05rem;
	font-weight: 700;
	padding: .5rem .75rem;
	border-radius: var(--radius);
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	color: var(--white);
}
form.cart .quantity input.qty:focus {
	border-color: var(--coral);
	box-shadow: 0 0 0 3px var(--coral-glow);
	outline: none;
}
button.single_add_to_cart_button.button {
	flex: 1;
	min-width: 160px;
	background: var(--coral) !important;
	color: var(--on-accent) !important;
	font-size: 1rem !important;
	font-weight: 800 !important;
	padding: 0 32px !important;
	height: 52px;
	text-transform: uppercase;
	letter-spacing: .06em;
	border-radius: var(--radius) !important;
}
button.single_add_to_cart_button.button:hover {
	background: var(--coral-dark) !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 24px var(--coral-glow) !important;
}

/* --- PayPal / PPCP buttons ------------------------------------------------ */
.ppc-button-wrapper,
.ppcp-messages {
	margin-top: 12px;
}
.ppc-button-wrapper {
	border: 1px solid var(--navy-border);
	border-radius: var(--radius);
	padding: 14px;
	background: rgba(255,255,255,.04);
}
/* "Pay with PayPal" or "or" divider text */
.ppcp-messages,
.ppcp-messages * {
	color: var(--text) !important;
	font-size: .85rem;
}

/* Product meta (category links) */
.product_meta { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--navy-border); }
.product_meta span { font-size: .875rem; color: var(--text-muted); display: block; margin-bottom: 4px; }
.product_meta a { color: var(--ocean); }
.product_meta a:hover { color: var(--coral); }

/* --- Product Tabs --------------------------------------------------------- */
.woocommerce div.product .woocommerce-tabs {
	margin-top: 40px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding-left: 0;
	margin: 0 0 0 0;
	display: flex;
	gap: 4px;
	border-bottom: 2px solid var(--navy-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	border-bottom: none;
	border-radius: var(--radius) var(--radius) 0 0;
	margin: 0;
	list-style: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--navy-dark);
	border-bottom: 2px solid var(--navy-dark);
	position: relative;
	top: 2px;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--text);
	font-weight: 600;
	font-size: .9rem;
	padding: .6rem 1.2rem;
	display: block;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--coral); }

.woocommerce div.product .woocommerce-tabs .panel {
	background: var(--navy-dark);
	border: 1px solid var(--navy-border);
	border-top: none;
	border-radius: 0 0 var(--radius-lg) var(--radius-lg);
	padding: 28px 32px;
	color: var(--text);
}

/* Review form fields */
.woocommerce div.product .woocommerce-tabs .panel h2,
.woocommerce div.product .woocommerce-tabs .panel h3,
.woocommerce div.product .woocommerce-tabs .panel .comment-reply-title {
	color: var(--white);
	font-size: 1.1rem;
	margin-bottom: 16px;
}
.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel label {
	color: var(--text);
}
.woocommerce div.product .woocommerce-tabs .panel .comment-notes,
.woocommerce div.product .woocommerce-tabs .panel .woocommerce-noreviews {
	color: var(--text-muted);
	font-size: .9rem;
}
.woocommerce div.product .woocommerce-tabs .panel .comment-form-rating label {
	color: var(--text);
}
.woocommerce div.product .woocommerce-tabs .panel select#rating {
	width: auto;
	min-width: 160px;
}

/* Review form 2-col layout */
.woocommerce div.product .woocommerce-tabs .panel .comment-form {
	max-width: 640px;
}
.woocommerce div.product .woocommerce-tabs .panel .comment-form-author,
.woocommerce div.product .woocommerce-tabs .panel .comment-form-email {
	display: inline-block;
	width: calc(50% - 8px);
}
.woocommerce div.product .woocommerce-tabs .panel .comment-form-author { margin-right: 16px; }

/* --- Related Products ----------------------------------------------------- */
.related.products {
	margin-top: 48px;
	padding-top: 40px;
	border-top: 1px solid var(--navy-border);
}
.related.products h2,
.upsells.products h2,
.up-sells.products h2 {
	color: var(--white);
	font-size: 1.4rem;
	margin-bottom: 24px;
}
.related.products ul.products { grid-template-columns: repeat(4, 1fr); }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: none; display: flex; justify-content: center; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	width: auto; height: auto;
	margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border: 1px solid var(--navy-border);
	border-radius: 6px;
	color: var(--text);
	background: var(--navy-mid);
	font-weight: 600;
	transition: var(--transition);
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--coral); color: var(--coral); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--coral); border-color: var(--coral); color: var(--on-accent) !important; }

/* --- WooCommerce: Cart ---------------------------------------------------- */
table.shop_table {
	width: 100%;
	border-collapse: collapse;
	background: transparent;
	color: var(--text);
}
table.shop_table th {
	background: var(--navy-mid);
	color: var(--white);
	padding: 14px 16px;
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	border-bottom: 2px solid var(--navy-border);
	text-align: left;
}
table.shop_table td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--navy-border);
	vertical-align: middle;
}
table.shop_table td a { color: var(--ocean); }
table.shop_table td a:hover { color: var(--coral); }
table tfoot tr td,
table tfoot tr th,
table thead tr td,
table thead tr th { color: var(--white) !important; }

.cart_totals {
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 28px;
}
.cart_totals h2 { color: var(--coral); font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; }

/* --- WooCommerce: Checkout ------------------------------------------------ */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
	background: var(--navy-mid);
	color: var(--white);
	padding: 16px 20px;
	border-radius: var(--radius) var(--radius) 0 0;
	margin: 0;
	font-size: 1.1rem;
	border: 1px solid var(--navy-border);
	border-bottom: none;
}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields,
.woocommerce-checkout .woocommerce-additional-fields {
	background: var(--navy);
	padding: 0 20px 20px;
	border-radius: 0 0 var(--radius) var(--radius);
	margin-bottom: 24px;
	border: 1px solid var(--navy-border);
	border-top: none;
}
.woocommerce-checkout label { color: #c8d6e5; }
.woocommerce-checkout label .required { color: var(--coral); }

#add_payment_method #payment,
.woocommerce-cart #payment,
.woocommerce-checkout #payment {
	background: var(--navy);
	border-radius: var(--radius-lg);
	padding: 24px;
	border: 1px solid var(--navy-border);
}
#add_payment_method #payment ul.payment_methods li,
.woocommerce-cart #payment ul.payment_methods li,
.woocommerce-checkout #payment ul.payment_methods li {
	background: var(--navy-mid);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius);
	padding: 14px;
	margin-bottom: 10px;
	transition: var(--transition);
}
#add_payment_method #payment ul.payment_methods li:hover,
.woocommerce-cart #payment ul.payment_methods li:hover,
.woocommerce-checkout #payment ul.payment_methods li:hover { border-color: var(--coral); }

.woocommerce-checkout #place_order {
	width: 100%;
	background: var(--coral);
	color: var(--on-accent);
	padding: 16px;
	font-size: 1.05rem;
	font-weight: 800;
	border-radius: var(--radius);
	text-transform: uppercase;
	letter-spacing: .06em;
}
.woocommerce-checkout #place_order:hover {
	background: var(--coral-dark);
	transform: translateY(-2px);
	box-shadow: 0 10px 28px var(--coral-glow);
}

.woocommerce-checkout-review-order {
	background: var(--navy);
	border-radius: var(--radius-lg);
	padding: 24px;
	border: 1px solid var(--navy-border);
}
.woocommerce-checkout-review-order-table th { color: var(--coral); background: var(--navy-mid); }
.woocommerce-checkout-review-order-table td { color: var(--text); background: var(--navy-mid); }
.woocommerce-checkout-review-order-table .order-total td { color: var(--coral); font-size: 1.1rem; font-weight: 700; }

/* --- WooCommerce: My Account ---------------------------------------------- */
.woocommerce-account > .woocommerce {
	display: flex;
	gap: 30px;
	align-items: flex-start;
	flex-wrap: nowrap;
}
.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 0 0 240px;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 16px 0;
	box-shadow: var(--shadow-md);
	position: sticky;
	top: calc(var(--header-h) + 20px);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid rgba(255,255,255,.07); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: none; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 13px 22px;
	color: var(--text);
	font-weight: 500;
	font-size: .9rem;
	position: relative;
	transition: var(--transition);
}
.woocommerce-account .woocommerce-MyAccount-navigation a::before {
	content: '';
	position: absolute;
	left: 0; top: 50%;
	transform: translateY(-50%);
	width: 3px; height: 0;
	background: var(--coral);
	border-radius: 0 3px 3px 0;
	transition: height .25s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	color: var(--coral);
	padding-left: 28px;
	background: rgba(255,127,80,.07);
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover::before,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a::before { height: 100%; }

.woocommerce-account .woocommerce-MyAccount-content {
	flex: 1;
	min-width: 0;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 32px;
	box-shadow: var(--shadow-md);
}
.woocommerce-account h2, .woocommerce-account h3 { color: var(--coral); }
.woocommerce-account p { color: var(--text); }
.woocommerce-account table.shop_table thead { background: var(--navy-mid); }
.woocommerce-account table.shop_table th { color: var(--coral); }

form.woocommerce-form-login,
form.woocommerce-form-register {
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 36px;
	max-width: 500px;
	margin: 0 auto 30px;
}
form.woocommerce-form-login h2,
form.woocommerce-form-register h2 { color: var(--coral); text-align: center; margin-bottom: 24px; }

/* --- WooCommerce: Messages ------------------------------------------------ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--navy-mid);
	border-radius: var(--radius);
	color: var(--text);
	padding: 14px 18px;
	margin-bottom: 20px;
}
.woocommerce-message { border-left: 4px solid #4caf50; }
.woocommerce-error   { border-left: 4px solid #f44336; }
.woocommerce-info    { border-left: 4px solid var(--ocean); }

/* WooCommerce buttons */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background: var(--green);
	color: var(--white);
	font-weight: 700;
	transition: var(--transition);
	border-radius: var(--radius);
}
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--green-dark);
	color: var(--white);
	transform: translateY(-2px);
}
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt { background: var(--coral); }
.woocommerce #respond input#submit.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover { background: var(--coral-dark); }

/* Loading spinner */
.woocommerce .blockUI.blockOverlay { background: rgba(0,0,0,.65) !important; border-radius: var(--radius); }
.woocommerce .blockUI.blockOverlay::before {
	content: '';
	display: block;
	width: 36px; height: 36px;
	position: absolute;
	top: 50%; left: 50%;
	margin: -18px 0 0 -18px;
	border: 3px solid var(--coral);
	border-top-color: transparent;
	border-radius: 50%;
	animation: ncc-spin .8s linear infinite;
}
@keyframes ncc-spin { to { transform: rotate(360deg); } }

/* --- Trust Strip ---------------------------------------------------------- */
.trust-strip {
	background: var(--navy);
	border-top: 1px solid var(--navy-border);
	border-bottom: 1px solid var(--navy-border);
	padding: 36px 0;
}

.trust-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	list-style: none;
	margin: 0; padding: 0;
}

.trust-item {
	display: flex;
	align-items: center;
	gap: 14px;
}
.trust-item svg { flex-shrink: 0; color: var(--coral); opacity: .85; }
.trust-item__text { display: flex; flex-direction: column; gap: 2px; }
.trust-item__text strong { color: var(--white); font-size: .9rem; font-weight: 700; }
.trust-item__text span,
.trust-item__text a { font-size: .8rem; color: var(--text-muted); }
.trust-item__text a:hover { color: var(--coral); }

/* --- Sidebar & Widgets ---------------------------------------------------- */
.sidebar-area { display: flex; flex-direction: column; gap: 16px; }

.widget {
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 20px;
	box-shadow: var(--shadow-sm);
}
.widget-title {
	color: var(--coral);
	font-size: .9rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	margin-bottom: 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--navy-border);
}

/* --- Footer --------------------------------------------------------------- */
.site-footer {
	background: var(--navy);
	color: var(--text);
	padding: 56px 0 0;
	border-top: 1px solid var(--navy-border);
}
.footer-inner {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 48px;
}
.footer-heading {
	color: var(--white);
	font-size: .85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: 16px;
}
.footer-site-name { color: var(--white); font-size: 1.4rem; font-weight: 800; margin: 0 0 16px; }

/* Footer logo sizing */
.footer-brand .custom-logo { max-height: 52px; width: auto; margin-bottom: 16px; }

.store-info p {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 10px;
	font-size: .875rem;
	color: var(--text-muted);
}
.store-info svg { flex-shrink: 0; margin-top: 1px; color: var(--coral); opacity: .7; }
.store-info a { color: var(--text); }
.store-info a:hover { color: var(--coral); }

.social-links {
	list-style: none;
	margin: 20px 0 0; padding: 0;
	display: flex; gap: 10px;
}
.social-links a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 50%;
	color: var(--text);
	transition: var(--transition);
}
.social-links a:hover { background: var(--coral); border-color: var(--coral); color: var(--on-accent); transform: translateY(-3px); }

.footer-menu { list-style: none; margin: 0; padding: 0; }
.footer-menu li { margin-bottom: 10px; }
.footer-menu a {
	color: var(--text-muted);
	font-size: .875rem;
	transition: color .2s ease, padding-left .2s ease;
	display: inline-block;
}
.footer-menu a:hover { color: var(--coral); padding-left: 6px; }

.footer-bottom {
	background: rgba(0,0,0,.3);
	padding: 16px 0;
	text-align: center;
	border-top: 1px solid rgba(255,255,255,.06);
}
.footer-bottom p { margin: 0; font-size: .8rem; color: var(--text-muted); }
.footer-bottom a { color: var(--text-muted); }
.footer-bottom a:hover { color: var(--coral); }

/* --- AJAX Search (FiboSearch) --------------------------------------------- */
.dgwt-wcas-search-form { position: relative !important; height: 38px !important; }
.dgwt-wcas-sf-wrapp { display: flex !important; align-items: center !important; height: 100% !important; }
.dgwt-wcas-search-input {
	flex: 1 !important;
	height: 38px !important;
	padding: 0 12px !important;
	background: rgba(255,255,255,.08) !important;
	border: 1px solid rgba(255,255,255,.15) !important;
	border-right: none !important;
	border-radius: var(--radius) 0 0 var(--radius) !important;
	color: var(--white) !important;
	font-size: .85rem !important;
}
.dgwt-wcas-search-input::placeholder { color: var(--text-muted) !important; }
.dgwt-wcas-search-submit {
	flex: 0 0 38px !important;
	width: 38px !important; height: 38px !important;
	background: var(--coral) !important;
	border: 1px solid var(--coral) !important;
	border-radius: 0 var(--radius) var(--radius) 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
.dgwt-wcas-search-submit:hover { background: var(--coral-dark) !important; }
.dgwt-wcas-suggestions-wrapp {
	background: var(--navy-mid) !important;
	border: 1px solid var(--navy-border) !important;
	border-radius: 0 0 var(--radius) var(--radius) !important;
	box-shadow: var(--shadow-lg) !important;
}
.dgwt-wcas-st { color: var(--white) !important; }
.dgwt-wcas-suggestion-selected { background: rgba(255,127,80,.12) !important; }

/* --- 404 ------------------------------------------------------------------ */
.error-404 {
	text-align: center;
	padding: 80px 20px;
}
.error-404 h1 {
	font-size: 8rem;
	font-weight: 900;
	color: var(--coral);
	line-height: 1;
	margin-bottom: 16px;
	opacity: .5;
}

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 1200px) {
	.category-grid { grid-template-columns: repeat(3, 1fr); }
	ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
	.nav-toggle { display: flex; flex-shrink: 0; }
	.header-inner { gap: 10px; }
	.header-actions { gap: 6px; min-width: 0; }
	.site-branding img,
	.site-branding .custom-logo { max-width: min(170px, 38vw); }

	.site-nav {
		position: fixed;
		top: var(--header-h); left: 0;
		width: 100%; height: calc(100vh - var(--header-h));
		background: rgba(7,41,82,.98);
		backdrop-filter: blur(12px);
		padding: 24px 20px;
		transform: translateX(-100%);
		visibility: hidden;
		transition: transform .3s cubic-bezier(.4,0,.2,1), visibility 0s linear .3s;
		overflow-y: auto;
	}
	.site-nav.is-open {
		transform: translateX(0);
		visibility: visible;
		transition-delay: 0s;
	}

	.nav-menu { flex-direction: column; gap: 0; }
	.nav-menu > li > a { font-size: 1.05rem; padding: .85rem 1rem; border-radius: 0; border-bottom: 1px solid rgba(255,255,255,.07); }
	.nav-menu > li > a::after { display: none; }
	.nav-menu > li > a:hover { background: rgba(255,255,255,.06); }

	.nav-menu .sub-menu {
		display: block;
		position: static;
		background: rgba(255,255,255,.04);
		border: none;
		border-radius: 0;
		padding: 0;
		margin-left: 16px;
		box-shadow: none;
	}

	.content-wrapper { grid-template-columns: 1fr; }
	.sidebar-area { order: -1; }
	.footer-inner { grid-template-columns: 1fr 1fr; }
	.footer-brand { grid-column: 1 / -1; }
	.trust-grid { grid-template-columns: repeat(2, 1fr); }
	.category-grid { grid-template-columns: repeat(2, 1fr); }
	ul.products { grid-template-columns: repeat(2, 1fr); }

	/* Single product stacks vertically on tablet */
	.woocommerce div.product {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.woocommerce div.product div.images { grid-column: 1; grid-row: 1; position: static; }
	.woocommerce div.product div.summary { grid-column: 1; grid-row: 2; }
	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related.products { grid-column: 1; }

	.related.products ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
	.hero-ctas { flex-direction: column; }
	.hero-ctas .btn { text-align: center; justify-content: center; }

	.footer-inner { grid-template-columns: 1fr; }
	.footer-brand { grid-column: auto; }

	.woocommerce-account > .woocommerce { flex-direction: column; }
	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
		flex: 1;
		width: 100%;
	}
	.woocommerce-account .woocommerce-MyAccount-content { padding: 20px; }
}

@media (max-width: 600px) {
	.header-inner { gap: 6px; }
	.header-search { width: 44px; height: 44px; max-width: 44px; flex: 0 0 44px; }
	.header-search .dgwt-wcas-search-wrapp { min-width: 0 !important; }
	.header-search .dgwt-wcas-search-form { display: none !important; }
	.header-search .js-dgwt-wcas-enable-mobile-form {
		display: flex !important;
		position: static !important;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
	}
	.cart-icon,
	.nav-toggle { width: 44px; height: 44px; justify-content: center; }
	.nav-toggle { align-items: center; }
	.trust-grid { grid-template-columns: 1fr; }
	.category-grid { grid-template-columns: repeat(2, 1fr); }
	ul.products { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 440px) {
	ul.products { grid-template-columns: 1fr; }
	.category-grid { grid-template-columns: 1fr; }
}

/* =============================================================================
   ADDED IN THE JULY 2026 AUDIT PASS
   Delivery panel · shipping progress · breadcrumbs · Visit page · FAQ page ·
   category copy. All colours use the existing design tokens.
   ========================================================================== */

/* --- Product page: delivery & pickup panel -------------------------------- */
.delivery-panel {
	margin: 22px 0 0;
	padding: 16px 18px;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	display: grid;
	gap: 12px;
}
.delivery-panel__row {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	font-size: .92rem;
	line-height: 1.55;
	color: var(--text);
}
.delivery-panel__row svg { flex-shrink: 0; margin-top: 3px; color: var(--coral); opacity: .85; }
.delivery-panel__row strong { color: var(--white); }
.delivery-panel__row a { color: var(--ocean); text-decoration: underline; text-underline-offset: 2px; }
.delivery-panel__row a:hover { color: var(--coral); }
.delivery-panel__row--pickup {
	padding-bottom: 12px;
	border-bottom: 1px solid var(--navy-border);
}
.delivery-panel__row--pickup svg { color: var(--ocean); opacity: 1; }

/* --- Cart / checkout: free-shipping progress ------------------------------ */
.ship-progress {
	margin: 0 0 26px;
	padding: 16px 18px;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-left: 4px solid var(--coral);
	border-radius: var(--radius);
}
.ship-progress.is-complete { border-left-color: var(--green); }
.ship-progress__text { margin: 0 0 10px; font-size: .95rem; color: var(--text); }
.ship-progress__text strong { color: var(--white); }
.ship-progress__alt { display: block; margin-top: 4px; font-size: .85rem; color: var(--text-muted); }
.ship-progress__track {
	height: 7px;
	background: rgba(255,255,255,.09);
	border-radius: 99px;
	overflow: hidden;
}
.ship-progress__bar {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--coral-dark), var(--coral));
	border-radius: 99px;
	transition: width .4s ease;
}
.ship-progress.is-complete .ship-progress__bar { background: var(--green); }

/* --- Breadcrumbs ---------------------------------------------------------- */
.ncc-breadcrumb {
	margin: 0 0 20px;
	font-size: .84rem;
	color: var(--text-muted);
}
.ncc-breadcrumb a { color: var(--text-muted); }
.ncc-breadcrumb a:hover { color: var(--coral); }
.ncc-breadcrumb__sep { margin: 0 8px; opacity: .45; }

/* --- Auto-added nav items ------------------------------------------------- */
.ncc-auto-item--highlight > a {
	color: var(--coral) !important;
	font-weight: 700;
}

/* --- Shared: NAP block ---------------------------------------------------- */
.nap-block {
	display: grid;
	gap: 3px;
	font-style: normal;
	line-height: 1.6;
	margin: 0 0 14px;
}
.nap-block__name { font-weight: 800; color: var(--white); font-size: 1.05rem; }
.nap-block__line { color: var(--text); }
.nap-block__line a { color: var(--ocean); }
.nap-block__line a:hover { color: var(--coral); }
.nap-block__hours { margin-top: 8px; color: var(--text-muted); font-size: .9rem; }

/* --- Visit page ----------------------------------------------------------- */
.visit-page { padding: 46px 0 70px; }
.visit-hero { max-width: 760px; margin: 0 0 40px; }
.visit-hero__eyebrow {
	display: inline-block;
	margin: 0 0 12px;
	padding: 5px 14px;
	border: 1px solid var(--coral);
	border-radius: 99px;
	color: var(--coral);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.visit-hero h1 { margin: 0 0 14px; font-size: clamp(2rem, 4.5vw, 3rem); line-height: 1.1; color: var(--white); }
.visit-hero__lede { font-size: 1.08rem; color: var(--text); margin: 0 0 24px; }
.visit-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.visit-hero__actions a { display: inline-block; padding: 13px 26px; border-radius: var(--radius); font-weight: 700; }

.visit-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	margin-bottom: 34px;
}
.visit-card {
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
	padding: 26px 28px;
}
.visit-card h2 { margin: 0 0 16px; font-size: 1.25rem; color: var(--coral); }
.visit-note { color: var(--text-muted); font-size: .92rem; margin: 12px 0 0; }

.hours-table { width: 100%; border-collapse: collapse; }
.hours-table th,
.hours-table td { padding: 9px 0; border-bottom: 1px solid var(--navy-border); font-weight: 400; text-align: left; }
.hours-table th { color: var(--text); }
.hours-table td { text-align: right; color: var(--text); font-variant-numeric: tabular-nums; }
.hours-table tr:last-child th,
.hours-table tr:last-child td { border-bottom: none; }
.hours-table .is-closed { color: var(--text-muted); }
.hours-table .is-today th,
.hours-table .is-today td { color: var(--white); font-weight: 700; }
.today-pill {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 8px;
	background: var(--coral);
	color: var(--on-accent);
	border-radius: 99px;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	vertical-align: middle;
}

.visit-map { margin-bottom: 40px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--navy-border); }
.visit-map iframe { display: block; }

.visit-directions, .visit-pickup { max-width: 760px; margin: 0 0 36px; }
.visit-directions h2, .visit-pickup h2 { font-size: 1.5rem; color: var(--white); margin: 0 0 14px; }
.drive-list { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 10px; }
.drive-list li {
	padding: 11px 16px;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius);
	color: var(--text);
}
.drive-list strong { color: var(--white); }
.visit-pickup .btn-primary { display: inline-block; padding: 13px 26px; border-radius: var(--radius); font-weight: 700; }

/* --- FAQ page ------------------------------------------------------------- */
.faq-page { padding: 46px 0 70px; }
.faq-hero { max-width: 720px; margin: 0 0 38px; }
.faq-hero h1 { margin: 0 0 12px; font-size: clamp(2rem, 4.5vw, 2.75rem); color: var(--white); }
.faq-hero__lede { font-size: 1.05rem; color: var(--text); margin: 0; }

.faq-list { max-width: 820px; display: grid; gap: 4px; }
.faq-item {
	padding: 24px 0;
	border-bottom: 1px solid var(--navy-border);
}
.faq-item__q { margin: 0 0 10px; font-size: 1.18rem; color: var(--coral); line-height: 1.35; }
.faq-item__a { margin: 0; color: var(--text); font-size: 1rem; line-height: 1.7; }

.faq-cta {
	max-width: 820px;
	margin: 44px 0 0;
	padding: 28px 30px;
	background: var(--navy);
	border: 1px solid var(--navy-border);
	border-radius: var(--radius-lg);
}
.faq-cta h2 { margin: 0 0 16px; font-size: 1.3rem; color: var(--white); }
.faq-cta p { display: flex; flex-wrap: wrap; gap: 12px; margin: 18px 0 0; }
.faq-cta a { display: inline-block; padding: 12px 24px; border-radius: var(--radius); font-weight: 700; }

/* --- Category archive copy ------------------------------------------------ */
.cat-copy {
	max-width: 820px;
	margin: 52px auto 0;
	padding: 30px 0 0;
	border-top: 1px solid var(--navy-border);
}
.cat-copy h2 { font-size: 1.5rem; color: var(--white); margin: 0 0 14px; }
.cat-copy h3 { font-size: 1.12rem; color: var(--coral); margin: 26px 0 10px; }
.cat-copy p { color: var(--text); line-height: 1.75; margin: 0 0 14px; }
.cat-copy__links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 18px; }
.cat-copy__links a { color: var(--ocean); text-decoration: underline; text-underline-offset: 3px; }
.cat-copy__links a:hover { color: var(--coral); }

/* --- Responsive ----------------------------------------------------------- */
@media (max-width: 640px) {
	.visit-hero__actions a,
	.faq-cta a,
	.visit-pickup .btn-primary { width: 100%; text-align: center; }
	.visit-card { padding: 20px; }
	.delivery-panel { padding: 14px; }
}

/* Respect reduced-motion preferences for the progress bar and hover lifts. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

.cat-intro { color: var(--text); font-size: 1.02rem; line-height: 1.75; max-width: 820px; margin: 12px 0 26px; }

/* --- Contrast fix: struck-through original price --------------------------
   The "was" price rendered at #617790 on #072952 — 3.14:1, below the 4.5:1 AA
   threshold for small text. It's small, greyed and easy to dismiss as decorative,
   but it carries real information (the original price), so it has to be readable.
   Explicit colour + opacity:1 so no inherited opacity can drag it back down. */
.woocommerce ul.products li.product .price del,
.woocommerce div.product span.price del,
.woocommerce div.product p.price del,
.product-card .price del {
	color: #9DB0C4;      /* 6.52:1 on --navy */
	opacity: 1;
}

/* --- Contrast: WooCommerce alt buttons ------------------------------------
   "Proceed to checkout" and other .alt buttons inherit white-on-coral from
   WooCommerce's own stylesheet (2.49:1). Same treatment as the theme buttons. */
.woocommerce a.checkout-button,
.woocommerce .checkout-button,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
	color: var(--on-accent) !important;
}

/* --- Inline links inside body copy ----------------------------------------
   Ocean-blue link text against the body grey is only a 1.55:1 difference, so
   colour alone doesn't distinguish a link (WCAG 1.4.1 Use of Colour wants 3:1,
   or a non-colour cue). Underlining inline links is the non-colour cue.
   Deliberately scoped to prose — nav, buttons and cards keep their clean look. */
.entry-content p a,
.entry-content li a,
.faq-item__a a,
.cat-copy p a,
.visit-directions a:not(.btn-primary):not(.btn-outline),
.visit-pickup p a:not(.btn-primary):not(.btn-outline),
.woocommerce-info a,
.woocommerce-message a:not(.button),
.woocommerce-error a,
.delivery-panel__row a,
.ship-progress a,
.cart-empty a,
.return-to-shop a {
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}
