/* BMO Core components – colors pull from the BMO Outpost theme palette with fallbacks. */
:root {
	--bmo-black: var(--wp--preset--color--black, #0e0f10);
	--bmo-charcoal: var(--wp--preset--color--charcoal, #17191b);
	--bmo-gunmetal: var(--wp--preset--color--gunmetal, #22262a);
	--bmo-slate: var(--wp--preset--color--slate, #3a444e);
	--bmo-grey: var(--wp--preset--color--grey, #8a8d90);
	--bmo-fde: var(--wp--preset--color--fde, #b39c77);
	--bmo-coyote: var(--wp--preset--color--coyote, #7d6245);
	--bmo-bone: var(--wp--preset--color--bone, #e7e1d4);
	--bmo-line: rgba(231, 225, 212, 0.1);
	--bmo-head: var(--wp--preset--font-family--heading, "Oswald", "Arial Narrow", sans-serif);
}

/* Buttons */
.bmo-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5em;
	background: var(--bmo-fde); color: var(--bmo-black) !important; border: 1px solid var(--bmo-fde);
	font-family: var(--bmo-head); font-weight: 500; text-transform: uppercase; letter-spacing: .08em;
	font-size: .9rem; padding: .8em 1.5em; border-radius: 2px; text-decoration: none !important;
	cursor: pointer; transition: background .2s, color .2s, border-color .2s;
}
.bmo-btn:hover, .bmo-btn:focus-visible { background: var(--bmo-coyote); border-color: var(--bmo-coyote); color: var(--bmo-bone) !important; }
.bmo-btn--ghost { background: transparent; color: var(--bmo-fde) !important; }
.bmo-btn--ghost:hover { background: var(--bmo-fde); color: var(--bmo-black) !important; }
.bmo-btn--sm { font-size: .78rem; padding: .6em 1em; }

/* Grids + cards */
.bmo-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); margin-block: 2rem; }
.bmo-card {
	background: var(--bmo-charcoal); border: 1px solid var(--bmo-line); border-radius: 3px;
	display: flex; flex-direction: column; overflow: hidden; transition: transform .25s, border-color .25s;
}
.bmo-card:hover { transform: translateY(-3px); border-color: rgba(179, 156, 119, .45); }
.bmo-card__media { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--bmo-gunmetal); overflow: hidden; }
.bmo-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.bmo-card:hover .bmo-card__media img { transform: scale(1.04); }
.bmo-card__body { padding: 1.1rem 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; }
.bmo-card__title { font-family: var(--bmo-head); text-transform: uppercase; letter-spacing: .04em; font-size: 1.3rem; margin: 0 0 .25rem; }
.bmo-card__title a { color: var(--bmo-bone); text-decoration: none; }
.bmo-card__title a:hover { color: var(--bmo-fde); }
.bmo-card__tag { color: var(--bmo-grey); font-size: .92rem; margin: 0 0 .75rem; }
.bmo-card__tag + .bmo-card__blurb { margin-top: -.4rem; }
.bmo-card__blurb { color: var(--bmo-bone, #e7e1d4); font-size: .95rem; line-height: 1.45; margin: 0 0 .9rem; }
.bmo-single__content .bmo-muted { font-size: .85rem; }
.bmo-card__rating { margin: 0 0 .5rem; }
.bmo-card__foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--bmo-line); display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.bmo-card.is-sold { opacity: .6; }

.bmo-mini-specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 0 0 .5rem; }
.bmo-mini-specs div { min-width: 0; }
.bmo-mini-specs dt { font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bmo-fde); }
.bmo-mini-specs dd { margin: 0; font-size: .88rem; color: var(--bmo-bone); overflow-wrap: anywhere; }

.bmo-price { font-family: var(--bmo-head); color: var(--bmo-fde); font-size: 1.1rem; letter-spacing: .03em; }

/* Placeholder image */
.bmo-ph {
	width: 100%; height: 100%; min-height: 200px; display: flex; flex-direction: column; align-items: center; justify-content: center;
	background:
		repeating-linear-gradient(45deg, rgba(255,255,255,.015) 0 10px, transparent 10px 20px),
		linear-gradient(160deg, var(--bmo-slate), var(--bmo-gunmetal) 70%);
	color: rgba(231, 225, 212, .35);
}
.bmo-ph span { font-family: var(--bmo-head); font-size: 2.2rem; letter-spacing: .25em; }
.bmo-ph small { font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; }

/* Badges */
.bmo-badge {
	position: absolute; top: .75rem; left: .75rem; font-family: var(--bmo-head); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase;
	padding: .3em .7em; background: var(--bmo-fde); color: var(--bmo-black); border-radius: 2px;
}
.bmo-specs__head .bmo-badge { position: static; margin-left: .75rem; vertical-align: middle; }
.bmo-badge--sold, .bmo-badge--sold-out, .bmo-badge--discontinued { background: #6b2f2a; color: var(--bmo-bone); }
.bmo-badge--pending, .bmo-badge--limited-run { background: var(--bmo-coyote); color: var(--bmo-bone); }
.bmo-nfa-flag { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bmo-fde); margin: 0 0 .5rem; }

/* Spec sheet */
.bmo-specs { background: var(--bmo-charcoal); border: 1px solid var(--bmo-line); padding: 1.5rem; border-radius: 3px; }
.bmo-specs__head { margin-bottom: 1rem; }
.bmo-specs__head .bmo-price { font-size: 1.6rem; }
.bmo-spec-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.bmo-spec-table th, .bmo-spec-table td { text-align: left; padding: .6rem .5rem; border-bottom: 1px solid var(--bmo-line); vertical-align: top; }
.bmo-spec-table th { width: 42%; font-weight: 600; color: var(--bmo-fde); font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; }
.bmo-spec-table tr:last-child th, .bmo-spec-table tr:last-child td { border-bottom: 0; }
.bmo-why { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--bmo-line); }
.bmo-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.bmo-tagline { font-size: 1.15rem; color: var(--bmo-fde); margin-top: 0; }

/* Videos */
.bmo-videos { margin-block: 3rem; }
.bmo-video-row { display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: flex-start; }
.bmo-video-row > .bmo-video { flex: 1 1 460px; max-width: 680px; }
.bmo-video-row > .bmo-video--short { flex: 0 1 270px; max-width: 300px; }
.bmo-video iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; display: block; border: 0; }
.bmo-video--short iframe { aspect-ratio: 9 / 16; }
.bmo-video--link {
	display: flex; flex-direction: column; align-items: center; justify-content: center; aspect-ratio: 16 / 9;
	background: var(--bmo-gunmetal); border: 1px solid var(--bmo-line); color: var(--bmo-fde); text-decoration: none;
	font-family: var(--bmo-head); font-size: 1.3rem; letter-spacing: .08em; text-transform: uppercase;
}
.bmo-video--link small { color: var(--bmo-grey); font-family: inherit; font-size: .75rem; margin-top: .4rem; }

/* Reviews */
.bmo-stars { letter-spacing: .08em; white-space: nowrap; }
.bmo-stars .on { color: var(--bmo-fde); }
.bmo-stars .off { color: rgba(231, 225, 212, .18); }
.bmo-reviews { margin-block: 1.5rem 2.5rem; }
.bmo-reviews__summary { font-size: 1.05rem; }
.bmo-review-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.bmo-review { background: var(--bmo-charcoal); border-left: 3px solid var(--bmo-coyote); padding: 1.25rem 1.4rem; }
.bmo-review header { display: flex; justify-content: space-between; align-items: center; gap: .5rem; flex-wrap: wrap; }
.bmo-review__model { font-family: var(--bmo-head); font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bmo-fde); text-decoration: none; }
.bmo-review blockquote { margin: .75rem 0; padding: 0; border: 0; font-style: normal; color: var(--bmo-bone); }
.bmo-review blockquote p { margin: 0 0 .5rem; }
.bmo-review footer { color: var(--bmo-grey); font-size: .85rem; }

/* Forms */
.bmo-review-form, .bmo-contact-form { background: var(--bmo-charcoal); border: 1px solid var(--bmo-line); padding: 1.75rem; border-radius: 3px; margin-block: 1.5rem; }
.bmo-review-form h3 { margin-top: 0; }
.bmo-review-form form, .bmo-contact-form form { display: grid; gap: 1rem; }
.bmo-review-form label, .bmo-contact-form label { display: grid; gap: .35rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bmo-fde); }
.bmo-review-form label small, .bmo-contact-form label small { text-transform: none; letter-spacing: 0; color: var(--bmo-grey); }
.bmo-review-form input[type=text], .bmo-review-form input[type=email], .bmo-review-form select, .bmo-review-form textarea,
.bmo-contact-form input[type=text], .bmo-contact-form input[type=email], .bmo-contact-form input[type=tel], .bmo-contact-form select, .bmo-contact-form textarea {
	width: 100%; box-sizing: border-box; background: var(--bmo-black); color: var(--bmo-bone); border: 1px solid rgba(231, 225, 212, .18);
	border-radius: 2px; padding: .75em .9em; font: inherit; font-size: 1rem; text-transform: none; letter-spacing: normal;
}
.bmo-review-form :is(input, select, textarea):focus, .bmo-contact-form :is(input, select, textarea):focus { outline: 2px solid var(--bmo-fde); outline-offset: 1px; border-color: transparent; }
.bmo-form-row { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.bmo-review-form .bmo-check { display: flex; gap: .6rem; align-items: flex-start; text-transform: none; letter-spacing: 0; font-size: .9rem; color: var(--bmo-bone); }
.bmo-review-form .bmo-check input { margin-top: .2em; accent-color: var(--bmo-fde); }
.bmo-review-form button, .bmo-contact-form button { justify-self: start; }
.bmo-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.bmo-rating-input { border: 0; padding: 0; margin: 0; display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: .15rem; }
.bmo-rating-input legend { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; color: var(--bmo-fde); margin-bottom: .35rem; padding: 0; }
.bmo-rating-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bmo-rating-input label { display: inline; font-size: 2rem !important; line-height: 1; cursor: pointer; color: rgba(231, 225, 212, .2) !important; transition: color .15s; }
.bmo-rating-input label:hover, .bmo-rating-input label:hover ~ label, .bmo-rating-input input:checked ~ label { color: var(--bmo-fde) !important; }
.bmo-rating-input input:focus-visible + label { outline: 2px solid var(--bmo-fde); }

.bmo-notice { background: rgba(179, 156, 119, .12); border-left: 3px solid var(--bmo-fde); padding: .9rem 1.1rem; margin-bottom: 1rem; color: var(--bmo-bone); }
.bmo-notice--err { background: rgba(107, 47, 42, .3); border-color: #a34b42; }
.bmo-muted { color: var(--bmo-grey); }
.bmo-empty { color: var(--bmo-grey); font-style: italic; }
.bmo-empty-box { text-align: center; padding: 3rem 1.5rem; border: 1px dashed rgba(231, 225, 212, .18); margin-block: 2rem; }

.bmo-social { display: flex; gap: 1.25rem; flex-wrap: wrap; }
.bmo-social a { color: var(--bmo-grey); text-decoration: none; font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; }
.bmo-social a:hover { color: var(--bmo-fde); }

/* Photo gallery */
.bmo-gallery { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); margin: 1.75rem 0 0; }
.bmo-gallery__item { margin: 0; }
.bmo-gallery__item a { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--bmo-gunmetal); border: 1px solid var(--bmo-line); }
.bmo-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s, opacity .2s; }
.bmo-gallery__item a:hover img { transform: scale(1.05); }
.bmo-gallery__item figcaption { font-size: .78rem; color: var(--bmo-grey); margin-top: .35rem; }

/* Lightbox */
.bmo-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(8, 9, 10, .94); display: none; align-items: center; justify-content: center; padding: 3rem 4rem; }
.bmo-lb.is-open { display: flex; }
.bmo-lb figure { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.bmo-lb img { max-width: 100%; max-height: calc(100vh - 8rem); object-fit: contain; box-shadow: 0 10px 40px rgba(0, 0, 0, .6); }
.bmo-lb figcaption { color: var(--bmo-bone); font-size: .9rem; margin-top: .75rem; text-align: center; }
.bmo-lb button { position: absolute; background: none; border: 0; color: var(--bmo-bone); cursor: pointer; font-size: 3rem; line-height: 1; padding: .5rem 1rem; opacity: .75; }
.bmo-lb button:hover, .bmo-lb button:focus-visible { opacity: 1; color: var(--bmo-fde); }
.bmo-lb__close { top: .5rem; right: .5rem; }
.bmo-lb__prev { left: .25rem; top: 50%; transform: translateY(-50%); }
.bmo-lb__next { right: .25rem; top: 50%; transform: translateY(-50%); }
.bmo-lb.is-single .bmo-lb__prev, .bmo-lb.is-single .bmo-lb__next { display: none; }
@media (max-width: 640px) { .bmo-lb { padding: 3rem .5rem; } .bmo-lb__prev, .bmo-lb__next { top: auto; bottom: .5rem; transform: none; } }

/* Page banner photo */
.bmo-banner{margin:1.5rem 0 2rem;border:1px solid #22262a;border-radius:4px;overflow:hidden;background:#0e0f10}
.bmo-banner img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.bmo-banner figcaption{padding:.6rem 1rem;font-size:.85rem;color:#8a8d90;border-top:1px solid #22262a}
