/*
Theme Name: Underground Tactical
Theme URI: https://undergroundtactical.com
Author: Underground Tactical
Description: Lightweight WooCommerce block theme for a drop-ship firearms store. Built for speed, SEO and FFL-compliant shopping with FFL Cockpit.
Version: 2.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: underground-tactical
WC requires at least: 9.0
*/

:root {
	--ut-ink: var(--wp--preset--color--ink);
	--ut-steel: var(--wp--preset--color--steel);
	--ut-gunmetal: var(--wp--preset--color--gunmetal);
	--ut-cta: var(--wp--preset--color--pink);
	--ut-cta-hover: var(--wp--preset--color--pink-light);
	--ut-accent: var(--wp--preset--color--teal);
	--ut-link: var(--wp--preset--color--teal-dark);
	--ut-sale: var(--wp--preset--color--gold);
	--ut-sale-text: var(--wp--preset--color--pink);
	--ut-mist: var(--wp--preset--color--mist);
	--ut-line: var(--wp--preset--color--line);
	--ut-muted: var(--wp--preset--color--muted);
	--ut-muted-light: var(--wp--preset--color--muted-light);
	--ut-wide: 1320px;
	--ut-radius: 8px;
}

/* ---------- Shared ---------- */
.ut-btn {
	display: inline-block;
	background: var(--ut-cta);
	color: #fff !important;
	font-weight: 800;
	font-size: .85rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none !important;
	padding: .8rem 1.3rem;
	border: 2px solid var(--ut-cta);
	border-radius: 4px;
	cursor: pointer;
	line-height: 1.2;
	transition: background .15s, border-color .15s;
}
.ut-btn:hover, .ut-btn:focus-visible { background: var(--ut-cta-hover); border-color: var(--ut-cta-hover); }
.ut-btn--ghost { background: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .55); }
.ut-btn--ghost:hover { background: rgba(255, 255, 255, .08); border-color: #fff; }
.ut-btn--sm { padding: .55rem .9rem; font-size: .75rem; }
.ut-chip {
	display: inline-block;
	background: var(--ut-accent);
	color: var(--ut-ink);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .3rem .6rem;
	border-radius: 3px;
}
.wp-site-blocks > main.ut-home { margin-block-start: 0 !important; }
.ut-home > section,
.ut-home > .wp-block-group { margin-block: 0; }
.ut-showcase, .ut-carousel, .ut-brands, .ut-posts, .ut-news, .ut-hero__panel { box-sizing: border-box; }
.ut-hp { position: absolute !important; left: -9999px !important; }
:where(.ut-showcase, .ut-carousel, .ut-brands, .ut-posts, .ut-news) {
	max-width: var(--ut-wide);
	margin-inline: auto !important;
}

/* ---------- Top bar ---------- */
.ut-topbar { font-size: .8rem; padding: .45rem 16px; }
.ut-topbar__inner {
	max-width: var(--ut-wide);
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.ut-topbar__msg { color: var(--ut-accent); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.ut-topbar a { color: #fff; text-decoration: none; font-weight: 700; }
@media (max-width: 700px) {
	.ut-topbar__hours, .ut-topbar__phone { display: none; }
	.ut-topbar__inner { justify-content: center; }
}

/* ---------- Header ---------- */
.ut-header { padding: 0 16px; position: relative; z-index: 50; }
.ut-header__main {
	max-width: var(--ut-wide);
	margin: 0 auto;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	padding: 14px 0;
}
.ut-header__brand { gap: 12px; }
.ut-header .wp-block-site-title { font-family: var(--wp--preset--font-family--heading); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 1.35rem; }
.ut-header .wp-block-site-title a { color: #fff; text-decoration: none; }
.ut-brandmark { display: flex; align-items: center; gap: 12px; text-decoration: none; color: #fff; }
.ut-brandmark img { height: 64px; width: auto; display: block; }
.ut-brandmark__text { display: flex; flex-direction: column; line-height: 1; }
.ut-brandmark__name { font-family: var(--wp--preset--font-family--heading); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 1.35rem; }
.ut-brandmark__name span { color: var(--ut-accent); }
.ut-brandmark__tag { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ut-muted-light); margin-top: .3rem; }
.ut-footer .ut-brandmark img { height: auto; width: 180px; }
@media (max-width: 520px) { .ut-brandmark img { height: 48px; } .ut-brandmark__name { font-size: 1.05rem; } .ut-brandmark__tag { display: none; } }
.ut-header__search { max-width: 620px; width: 100%; justify-self: center; margin: 0; }
.ut-header__search .wp-block-search__inside-wrapper { border: 0; padding: 0; background: #fff; border-radius: 4px; overflow: hidden; }
.ut-header__search .wp-block-search__input { border: 0; padding: .75rem 1rem; font-size: .95rem; }
.ut-header__search .wp-block-search__button { background: var(--ut-cta); color: #fff; margin: 0; border-radius: 0; padding: 0 1rem; }
.ut-header__icons { gap: 18px; color: #fff; }
.ut-header__icons a, .ut-header__icons button { color: #fff; }
@media (max-width: 780px) {
	.ut-header__main { grid-template-columns: 1fr auto; }
	.ut-header__search { grid-column: 1 / -1; grid-row: 2; max-width: none; }
}

/* Main menu */
.ut-nav {
	max-width: var(--ut-wide);
	margin: 0 auto !important;
	border-top: 1px solid rgba(255, 255, 255, .08);
	padding: .2rem 0;
}
.ut-nav .wp-block-navigation-item__content {
	color: #fff;
	text-transform: uppercase;
	font-weight: 700;
	font-size: .85rem;
	letter-spacing: .06em;
	padding: .7rem .2rem;
}
.ut-nav .wp-block-navigation-item__content:hover { color: var(--ut-accent); }
/* Core gives submenus black text; force light text on the dark dropdown. */
.ut-nav .wp-block-navigation__submenu-container,
.ut-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: #fff !important; }
.ut-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ut-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus { color: var(--ut-accent) !important; background: rgba(255, 255, 255, .04); }
.ut-nav .wp-block-navigation__submenu-icon { color: #fff; }
.ut-nav .wp-block-navigation__submenu-container {
	background: var(--ut-steel) !important;
	border: 0 !important;
	border-top: 3px solid var(--ut-accent) !important;
	min-width: 240px !important;
	padding: .4rem 0;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .35);
}
.ut-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	text-transform: none;
	letter-spacing: 0;
	font-weight: 600;
	padding: .55rem 1.1rem;
}
.ut-nav .wp-block-navigation__responsive-container-open { color: #fff; }
/* Phone menu overlay: core paints it white with dark text, which hid the white submenu
   links above. Keep it dark like the header, submenus as plain indented lists. */
.ut-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--ut-ink) !important; color: #fff !important; padding: 1.2rem 1.4rem 2rem; }
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; }
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1.4rem; align-items: stretch; }
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; padding: .35rem 0; font-size: 1rem; }
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	border: 0 !important;
	border-left: 2px solid var(--ut-accent) !important;
	box-shadow: none;
	min-width: 0 !important;
	padding: .2rem 0 .2rem 1rem !important;
	margin-top: .4rem;
	gap: .2rem;
}
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: rgba(255, 255, 255, .85) !important;
	font-size: .95rem;
	text-transform: none;
	letter-spacing: 0;
	padding: .45rem 0 !important;
	background: none;
}
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus,
.ut-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:active { color: var(--ut-accent) !important; background: none; }

/* ---------- Hero ---------- */
.ut-hero {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: clamp(300px, 34vw, 440px);
	background: var(--ut-ink);
}
.ut-hero__panel {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 1rem;
	padding: clamp(2rem, 5vw, 4rem);
	color: #fff;
	text-decoration: none;
	overflow: hidden;
	background:
		linear-gradient(90deg, rgba(17, 19, 21, .92) 0%, rgba(17, 19, 21, .6) 60%, rgba(17, 19, 21, .35) 100%),
		var(--ut-hero-img, none) center / cover no-repeat,
		radial-gradient(ellipse at 80% 30%, #3a4048 0%, var(--ut-steel) 70%);
}
.ut-hero__panel--right {
	background:
		linear-gradient(270deg, rgba(17, 19, 21, .92) 0%, rgba(17, 19, 21, .6) 60%, rgba(17, 19, 21, .35) 100%),
		var(--ut-hero-img, none) center / cover no-repeat,
		radial-gradient(ellipse at 20% 30%, #3a4048 0%, var(--ut-steel) 70%);
	align-items: flex-end;
	text-align: right;
}
.ut-hero__panel::after { /* teal stripe on hover */
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 4px;
	background: var(--ut-accent);
	transform: scaleX(0);
	transition: transform .25s;
}
.ut-hero__panel:hover::after { transform: scaleX(1); }
.ut-hero__title {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	text-transform: uppercase;
	font-size: clamp(1.7rem, 3.4vw, 2.9rem);
	line-height: 1.02;
	max-width: 16ch;
}
@media (max-width: 760px) {
	.ut-hero { grid-template-columns: 1fr; }
	.ut-hero__panel--right { align-items: flex-start; text-align: left; }
}

/* ---------- Trust bar ---------- */
.ut-trust { padding-block: 1.1rem; border-bottom: 1px solid var(--ut-line); }
.ut-trust .wp-block-column p { margin: 0; font-size: .85rem; color: var(--ut-muted); }
.ut-trust strong { display: block; color: var(--ut-ink); text-transform: uppercase; letter-spacing: .05em; font-size: .8rem; }
.ut-trust strong::before { content: "\25B8 "; color: var(--ut-accent); }
.ut-trust .wp-block-column p, .ut-trust strong { overflow-wrap: normal; word-break: normal; hyphens: none; }
@media (max-width: 760px) {
	.ut-trust .wp-block-columns { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
	.ut-trust strong { letter-spacing: .02em; }
}

/* ---------- Category showcase ---------- */
.ut-showcase {
	display: grid;
	grid-template-columns: minmax(220px, 300px) 1fr;
	gap: 24px;
	align-items: center;
	margin-block: 32px !important;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border-radius: var(--ut-radius);
	background: var(--ut-mist);
	width: calc(100% - 32px);
}
.ut-showcase.is-dark { background: var(--ut-steel); color: #fff; }
.ut-showcase__intro h2 { margin: 0 0 .5rem; }
.ut-showcase__intro p { color: var(--ut-muted); margin: 0 0 1.25rem; }
.ut-showcase.is-dark .ut-showcase__intro p { color: var(--ut-muted-light); }
.ut-showcase:not(.is-dark) .ut-btn--ghost { color: var(--ut-ink) !important; border-color: var(--ut-ink); }
.ut-showcase__tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 12px;
}
.ut-tile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6rem;
	background: #fff;
	border-radius: 6px;
	padding: .9rem .75rem 1rem;
	text-decoration: none;
	color: var(--ut-ink);
	border: 2px solid transparent;
	transition: border-color .15s, transform .15s;
}
.ut-showcase.is-dark .ut-tile { background: var(--ut-gunmetal); color: #fff; }
.ut-tile:hover { border-color: var(--ut-accent); transform: translateY(-3px); }
.ut-tile__img { width: 100%; aspect-ratio: 4 / 3; display: grid; place-items: center; }
.ut-tile__img img { width: 100%; height: 100%; object-fit: contain; background: #fff; border-radius: 4px; }
.ut-tile__ph {
	width: 64%;
	aspect-ratio: 1;
	border-radius: 50%;
	border: 2px solid var(--ut-accent);
	background:
		linear-gradient(var(--ut-accent), var(--ut-accent)) center / 2px 70% no-repeat,
		linear-gradient(var(--ut-accent), var(--ut-accent)) center / 70% 2px no-repeat;
	opacity: .55;
}
.ut-tile__name { font-weight: 700; font-size: .9rem; text-align: center; }
@media (max-width: 760px) {
	.ut-showcase { grid-template-columns: 1fr; }
}

/* ---------- Product carousel ---------- */
.ut-carousel { margin-block: 40px !important; padding-inline: 16px; }
.ut-carousel__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 1rem; }
.ut-carousel__head h2 { margin: 0 0 .25rem; }
.ut-carousel__head p { margin: 0; color: var(--ut-muted); }
.ut-carousel__nav { display: flex; gap: 8px; flex-shrink: 0; }
.ut-carousel__btn {
	width: 42px; height: 42px;
	border-radius: 50%;
	border: 2px solid var(--ut-ink);
	background: #fff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}
.ut-carousel__btn:hover { background: var(--ut-accent); border-color: var(--ut-accent); }
.ut-carousel__track {
	list-style: none;
	margin: 0;
	padding: 0 0 12px;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(210px, calc((100% - 4 * 16px) / 5));
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
@media (max-width: 1000px) { .ut-carousel__track { grid-auto-columns: minmax(200px, calc((100% - 2 * 16px) / 3)); } }
@media (max-width: 600px) { .ut-carousel__track { grid-auto-columns: 72%; } }
.ut-card {
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	border: 1px solid var(--ut-line);
	border-radius: var(--ut-radius);
	padding: .9rem;
	background: #fff;
}
.ut-card:hover { border-color: var(--ut-accent); }
.ut-card__img { position: relative; display: block; aspect-ratio: 1; }
.ut-card__img img { width: 100%; height: 100%; object-fit: contain; }
.ut-card__badge {
	position: absolute; top: 0; left: 0; z-index: 1;
	background: var(--ut-sale); color: var(--ut-ink);
	font-size: .75rem; font-weight: 800;
	padding: .25rem .5rem; border-radius: 3px;
}
.ut-card__title {
	color: var(--ut-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: .92rem;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.7em;
}
.ut-card__title:hover { color: var(--ut-link); }
.ut-card__price { font-weight: 800; font-size: 1.1rem; margin-top: auto; }
.ut-card__price del { color: var(--ut-muted); font-weight: 400; font-size: .85rem; margin-right: .35rem; }
.ut-card__price ins { text-decoration: none; color: var(--ut-sale-text); }
.ut-card .ut-btn { text-align: center; }
.ut-carousel__all { display: inline-block; margin-top: .5rem; font-weight: 700; color: var(--ut-link); text-decoration: none; }

/* ---------- Brands ---------- */
.ut-brands { margin-block: 40px !important; padding-inline: 16px; text-align: center; }
.ut-brands__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.ut-brand {
	display: grid; place-items: center;
	min-width: 140px; height: 72px;
	padding: .5rem 1rem;
	border: 1px solid var(--ut-line);
	border-radius: 6px;
	color: var(--ut-ink);
	font-weight: 800;
	text-transform: uppercase;
	text-decoration: none;
	letter-spacing: .04em;
}
.ut-brand img { max-height: 48px; width: auto; filter: grayscale(1); opacity: .8; transition: .15s; }
.ut-brand:hover { border-color: var(--ut-accent); }
.ut-brand:hover img { filter: none; opacity: 1; }

/* ---------- How it works ---------- */
.ut-steps .wp-block-column { border-top: 4px solid var(--ut-accent); padding-top: 1rem; }
.ut-step-num { font-weight: 800; font-size: 2rem; color: var(--ut-link); margin: 0; font-family: var(--wp--preset--font-family--heading); }

/* ---------- Blog posts ---------- */
.ut-posts { margin-block: 40px !important; padding-inline: 16px; }
.ut-posts__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.ut-post { border: 1px solid var(--ut-line); border-radius: var(--ut-radius); overflow: hidden; display: flex; flex-direction: column; }
.ut-post__img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.ut-post h3 { font-size: 1.1rem; margin: 1rem 1rem .4rem; }
.ut-post h3 a { color: var(--ut-ink); text-decoration: none; }
.ut-post p { margin: 0 1rem; color: var(--ut-muted); font-size: .92rem; }
.ut-post__more { margin: auto 1rem 1rem; padding-top: .75rem; font-weight: 700; color: var(--ut-link); text-decoration: none; }

/* ---------- Newsletter ---------- */
.ut-news {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 24px;
	align-items: center;
	padding: 2rem clamp(1rem, 3vw, 2.5rem);
	margin-block: 0 2.5rem !important;
	background: var(--ut-steel);
	border-left: 6px solid var(--ut-accent);
	border-radius: var(--ut-radius);
}
.ut-news h2 { color: #fff; margin: 0 0 .35rem; }
.ut-news p { margin: 0; }
.ut-news__form { display: flex; gap: 8px; flex-wrap: wrap; }
.ut-news__form input { flex: 1 1 160px; padding: .8rem 1rem; border: 0; border-radius: 4px; font: inherit; }
.ut-news__note { grid-column: 1 / -1; color: var(--ut-accent); font-weight: 700; }
.ut-news__note a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .ut-news { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.ut-footer { padding-top: 3rem; padding-bottom: 2rem; }
.ut-footer h3 { color: #fff; }
.ut-footer a { color: var(--ut-muted-light); text-decoration: none; }
.ut-footer a:hover { color: var(--ut-accent); }
.ut-footer .ut-business strong { color: #fff; }
.ut-footer .wp-block-list { list-style: none; padding: 0; }
.ut-footer .wp-block-list li { margin-bottom: .4rem; }
.ut-legal { font-size: .8rem; border-top: 1px solid rgba(255, 255, 255, .08); padding-top: 1.25rem; margin-top: 2rem; }

/* ---------- Age gate ---------- */
html.ut-age-open { overflow: hidden; }
.ut-age {
	position: fixed; inset: 0; z-index: 9999;
	display: grid; place-items: center;
	padding: 16px;
	background: rgba(10, 11, 12, .82);
	backdrop-filter: blur(6px);
}
.ut-age[hidden] { display: none; }
.ut-age__box {
	max-width: 440px; width: 100%;
	background: var(--ut-ink);
	color: #fff;
	border: 2px solid var(--ut-accent);
	border-radius: var(--ut-radius);
	padding: 2rem 1.5rem;
	text-align: center;
}
.ut-age__box img { max-width: 220px; height: auto; margin: 0 auto 1rem; display: block; }
.ut-age__brand { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 1.5rem; text-transform: uppercase; letter-spacing: .06em; }
.ut-age__box h2 { color: #fff; margin: 0 0 .5rem; }
.ut-age__box p { color: var(--ut-muted-light); }
.ut-age__actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 1.25rem; }

/* ---------- Product page compliance notice ---------- */
.ut-ffl-notice {
	border-left: 4px solid var(--ut-accent);
	background: var(--ut-mist);
	padding: .85rem 1rem;
	margin: 1rem 0;
	font-size: .92rem;
}
.ut-ffl-notice strong { display: block; margin-bottom: .2rem; }
.ut-ffl-notice__reship { display: block; margin: .4rem 0; font-weight: 600; }

/* Back-in-stock signup on out-of-stock product pages */
.ut-stock-alert { margin: 1rem 0 1.4rem; padding: 1rem 1.1rem; background: var(--ut-mist); border: 1px solid var(--ut-line); border-left: 4px solid var(--ut-cta); border-radius: 4px; }
.ut-stock-alert__title { margin: 0 0 .6rem; font-weight: 800; }
.ut-stock-alert__row { display: flex; gap: 8px; flex-wrap: wrap; }
.ut-stock-alert__row input { flex: 1 1 200px; min-width: 0; padding: .65rem .8rem; border: 1px solid var(--ut-line); border-radius: 4px; font: inherit; }
.ut-stock-alert__row input:focus { outline: 2px solid var(--ut-accent); border-color: var(--ut-accent); }
.ut-stock-alert__fine { margin: .5rem 0 0; font-size: .8rem; color: var(--ut-muted); }
.ut-stock-alert__note { margin: .6rem 0 0; font-weight: 700; color: var(--ut-link); }
.ut-stock-alert__note.is-error { color: var(--ut-cta); }

/* ---------- Contact page ---------- */
.ut-contact-info { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.ut-contact-info li { background: var(--ut-mist); border-left: 4px solid var(--ut-accent); padding: .8rem 1rem; border-radius: 4px; }
.ut-contact-info strong { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ut-muted); }
.ut-contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.ut-contact-form p { margin: 0 0 1rem; }
.ut-contact-form__full, .ut-form-note { grid-column: 1 / -1; }
.ut-contact-form label { display: block; font-weight: 700; font-size: .85rem; margin-bottom: .3rem; }
.ut-contact-form label span { font-weight: 400; color: var(--ut-muted); }
.ut-contact-form input, .ut-contact-form textarea { width: 100%; box-sizing: border-box; padding: .7rem .8rem; border: 1px solid var(--ut-line); border-radius: 4px; font: inherit; }
.ut-contact-form input:focus, .ut-contact-form textarea:focus { outline: 2px solid var(--ut-accent); border-color: var(--ut-accent); }
.ut-form-note { padding: .7rem 1rem; border-radius: 4px; background: #e6f6f5; font-weight: 700; }
.ut-form-note.is-error { background: #fde8ee; }
@media (max-width: 600px) { .ut-contact-form { grid-template-columns: 1fr; } }

/* ---------- WooCommerce catalog ---------- */
.woocommerce ul.products li.product {
	border: 1px solid var(--ut-line);
	border-radius: var(--ut-radius);
	padding: .9rem;
}
.woocommerce ul.products li.product:hover { border-color: var(--ut-accent); }
.woocommerce ul.products li.product a img { aspect-ratio: 1; object-fit: contain; background: #fff; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: .95rem; font-weight: 600; text-transform: none; letter-spacing: 0; font-family: var(--wp--preset--font-family--body); }
.woocommerce ul.products li.product .price { color: var(--ut-ink) !important; font-weight: 800; }
.woocommerce ul.products li.product .price ins { color: var(--ut-sale-text); text-decoration: none; }
.woocommerce span.onsale { color: var(--ut-ink); background: var(--ut-sale); border-radius: 3px; min-height: 0; min-width: 0; line-height: 1; padding: .35rem .55rem; }
.woocommerce a.button, .woocommerce button.button, .woocommerce .button.alt {
	background: var(--ut-cta) !important;
	color: #fff !important;
	text-transform: uppercase;
	letter-spacing: .05em;
	font-weight: 800;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--ut-cta-hover) !important; }
.woocommerce div.product p.price { color: var(--ut-ink); font-weight: 800; font-size: 1.6rem; }
.woocommerce div.product p.price ins { color: var(--ut-sale-text); text-decoration: none; }

/* ---------- Shop sidebar filters ---------- */
.ut-shop { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 32px; align-items: start; }
.ut-shop__main { min-width: 0; }
.ut-filters { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.ut-filters__toggle { display: none; }
.ut-filters__body { display: grid; gap: 10px; }
.ut-filter { background: var(--ut-mist); border: 1px solid var(--ut-line); border-radius: var(--ut-radius); }
.ut-filter__title {
	cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center;
	padding: .75rem .9rem; margin: 0; font-weight: 800; font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ut-ink);
}
.ut-filter__title::-webkit-details-marker { display: none; }
.ut-filter__title::after { content: "+"; font-size: 1.2rem; line-height: 1; color: var(--ut-accent); }
.ut-filter[open] > .ut-filter__title::after { content: "\2212"; }
.ut-filter > :not(summary) { margin: 0 .9rem .9rem; }
.ut-filter ul { list-style: none; padding: 0; margin: 0 .9rem .9rem; max-height: 260px; overflow-y: auto; scrollbar-width: thin; }
.ut-filter ul ul { margin: .2rem 0 0 .9rem; max-height: none; }
.ut-filter li { padding: .22rem 0; font-size: .9rem; }
.ut-filter li a { color: var(--ut-ink); text-decoration: none; }
.ut-filter li a:hover { color: var(--ut-link); }
.ut-filter .count { color: var(--ut-muted); font-size: .8rem; }
.ut-filter .wc-layered-nav-term a::before {
	content: ""; display: inline-block; width: 14px; height: 14px; margin-right: .5rem; vertical-align: -2px;
	border: 2px solid var(--ut-line); border-radius: 3px; background: #fff;
}
.ut-filter .wc-layered-nav-term.chosen a::before { background: var(--ut-cta); border-color: var(--ut-cta); box-shadow: inset 0 0 0 2px #fff; }
.ut-filter .current-cat > a { font-weight: 800; color: var(--ut-link); }
.ut-filter > .ut-filter__search { width: calc(100% - 1.8rem); box-sizing: border-box; margin: 0 .9rem .5rem; padding: .45rem .6rem; border: 1px solid var(--ut-line); border-radius: 4px; font: inherit; font-size: .85rem; }
/* Selected filters as removable chips */
.ut-filter li.chosen:not(.wc-layered-nav-term) { display: inline-block; margin: 0 .3rem .3rem 0; }
.ut-filter li.chosen:not(.wc-layered-nav-term) a { display: inline-block; background: var(--ut-ink); color: #fff; border-radius: 999px; padding: .25rem .7rem; font-size: .8rem; }
.ut-filter li.chosen:not(.wc-layered-nav-term) a::before { content: "\00d7"; margin-right: .35rem; }
/* Price slider */
.ut-filter .price_slider_wrapper { padding-top: .3rem; }
.ut-filter .price_slider { position: relative; height: 6px; margin: .6rem .5rem 1.1rem; border-radius: 3px; }
.ut-filter .ui-slider-range { position: absolute; top: 0; height: 100%; border-radius: 3px; }
.ut-filter .ui-slider-handle { position: absolute; top: -7px; width: 20px; height: 20px; margin-left: -10px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 1px var(--ut-cta); cursor: ew-resize; touch-action: none; }
.ut-filter .ui-slider .ui-slider-range, .ut-filter .ui-slider .ui-slider-handle { background-color: var(--ut-cta) !important; }
.ut-filter .ui-slider { background-color: var(--ut-line) !important; }
.ut-filter .price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; font-size: .85rem; }
.ut-filter .price_slider_amount .button { padding: .45rem .9rem; font-size: .75rem; }
.ut-filter br { display: none; }
/* Product grid beside the sidebar: as many columns as fit, cards equal height */
.woocommerce .ut-shop__main ul.products[class] { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; margin: 0 0 2rem; }
.woocommerce .ut-shop__main ul.products[class]::before, .woocommerce .ut-shop__main ul.products[class]::after { display: none; }
.woocommerce .ut-shop__main ul.products[class] li.product { width: auto; margin: 0; float: none; display: flex; flex-direction: column; }
.woocommerce .ut-shop__main ul.products[class] li.product .button { margin-top: auto; align-self: flex-start; }
@media (max-width: 520px) { .woocommerce .ut-shop__main ul.products[class] { grid-template-columns: 1fr 1fr; gap: 10px; } }
@media (max-width: 899px) {
	.ut-shop { grid-template-columns: 1fr; gap: 16px; }
	.ut-filters { position: static; max-height: none; overflow: visible; }
	.ut-filters__toggle {
		display: flex; align-items: center; justify-content: center; gap: .5rem; cursor: pointer; list-style: none;
		background: var(--ut-ink); color: #fff; border-radius: var(--ut-radius); padding: .8rem 1rem;
		font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .85rem;
	}
	.ut-filters__toggle::-webkit-details-marker { display: none; }
	.ut-filters__panel[open] .ut-filters__body { margin-top: 10px; }
	.ut-filters__count { background: var(--ut-cta); border-radius: 999px; min-width: 1.4em; padding: 0 .4em; font-size: .75rem; line-height: 1.4; }
}

/* ---------- Logbooks & Tools ([ut_logbooks], inc/logbooks.php) ---------- */
.ut-logbooks {
	box-sizing: border-box;
	max-width: var(--ut-wide);
	width: calc(100% - 32px);
	margin: 40px auto !important;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	border-radius: var(--ut-radius);
	background: var(--ut-steel);
	color: #fff;
}
.ut-logbooks.is-inline { width: 100%; margin: 0 0 28px !important; }
.ut-logbooks__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 1.25rem; }
.ut-logbooks__head h2 { margin: 0 0 .35rem; color: #fff; }
.ut-logbooks__head p { margin: 0; max-width: 62ch; color: var(--ut-muted-light); }
.ut-logbooks__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
@media (max-width: 1000px) { .ut-logbooks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ut-book {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .55rem;
	background: var(--ut-gunmetal);
	border: 2px solid transparent;
	border-radius: 6px;
	padding: 14px;
	transition: border-color .15s, transform .15s;
}
.ut-book:hover { border-color: var(--ut-accent); transform: translateY(-3px); }
.ut-book__cover { display: block; width: 100%; }
.ut-book__cover img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 3px;
	box-shadow: 0 10px 24px rgba(0, 0, 0, .45);
}
.ut-book--large .ut-book__cover { aspect-ratio: 2 / 3; display: flex; align-items: center; }
.ut-book--large .ut-book__cover img { aspect-ratio: 3 / 4; }
.ut-book--tool .ut-book__cover { aspect-ratio: 2 / 3; display: flex; align-items: center; justify-content: center; background: var(--ut-ink); border-radius: 3px; overflow: hidden; }
.ut-book--tool .ut-book__cover img { flex: none; aspect-ratio: auto; width: 100%; height: auto; object-fit: contain; box-shadow: none; }
.ut-book__title { font-weight: 800; font-size: 1.05rem; line-height: 1.2; color: #fff; text-decoration: none; }
.ut-book__tag { color: var(--ut-muted-light); font-size: .85rem; line-height: 1.45; }
.ut-book__price { font-weight: 800; font-size: 1.1rem; margin-top: auto; color: var(--ut-sale); }
.ut-book__prices { margin-top: auto; display: flex; flex-wrap: wrap; column-gap: .9rem; row-gap: .1rem; }
.ut-book__prices .ut-book__price { margin-top: 0; }
.ut-book__price small { font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ut-muted-light); }
.ut-book .ut-btn, .ut-book__soon { align-self: stretch; text-align: center; }
.ut-book__soon {
	display: block;
	border: 2px dashed rgba(255, 255, 255, .3);
	border-radius: 4px;
	padding: .55rem .9rem;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ut-muted-light);
}
.ut-book__price del { color: var(--ut-muted-light); font-weight: 400; font-size: .85rem; margin-right: .35rem; }
.ut-book__price ins { text-decoration: none; }
@media (max-width: 520px) {
	.ut-logbooks__grid { gap: 12px; }
	.ut-book { padding: 10px; }
	.ut-book__tag { display: none; }
	.ut-book .ut-btn, .ut-book__soon { padding: .55rem .4rem; font-size: .68rem; letter-spacing: .03em; }
	.ut-book .ut-chip { font-size: .62rem; }
	.ut-book__price { white-space: nowrap; font-size: 1rem; }
	.ut-book__price small { font-size: .6rem; letter-spacing: .03em; }
	.ut-book__on { display: none; } /* "Hardcover on Amazon" → "Hardcover" on phones */
}
