/* =========================================================================
   Overbrook Members – front-end styles
   Matches the homepage: black sections, #FF4713 accent, Oswald display
   headings, Inter body, square corners, dark fields like the quote form.
   ========================================================================= */
:root {
	--obm-black: #0a0a0b;
	--obm-panel: #111113;
	--obm-line: #2a2a2d;
	--obm-line-2: #3a3a3e;
	--obm-text: #ffffff;
	--obm-muted: #a3a3a3;
	--obm-dim: #6f6f74;
	--obm-accent: #ff4713;
	--obm-accent-dark: #e03a08;
	--obm-error: #ff6b5b;
	--obm-success: #3ddc97;
	--obm-light: #f5f5f3;
	--obm-display: "Oswald", "Arial Narrow", Impact, sans-serif;
	--obm-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ---- Page shell on plugin pages (theme container goes full width) ---- */
body.obm-page { overflow-x: hidden; }
body.obm-page .site-main,
body.obm-page main#content,
body.obm-page .page-content { max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
body.obm-page .page-header { display: none; }
body.obm-page .page-content > p:empty { display: none; }

.obm-auth,
.obm-wrap {
	font-family: var(--obm-body);
	color: var(--obm-text);
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}
.obm-auth *, .obm-auth *::before, .obm-auth *::after,
.obm-wrap *, .obm-wrap *::before, .obm-wrap *::after { box-sizing: border-box; }

.obm-auth {
	background: var(--obm-black);
	position: relative;
	overflow: hidden;
	padding: 96px 24px;
}
.obm-auth::before { /* subtle orange glow like the hero */
	content: "";
	position: absolute; inset: auto -20% -60% auto;
	width: 70%; height: 120%;
	background: radial-gradient(closest-side, rgba(255,71,19,.10), transparent 70%);
	pointer-events: none;
}
.obm-auth-inner {
	position: relative;
	max-width: 1140px; margin: 0 auto;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
	gap: 72px; align-items: start;
}
.obm-auth-single { grid-template-columns: minmax(0, 1fr); gap: 40px; }
.obm-auth-wide .obm-auth-inner { max-width: 1140px; }

/* ---- Intro column ---- */
.obm-auth-intro { padding-top: 12px; position: sticky; top: 48px; }
@media (max-width: 1024px) { .obm-auth-intro { position: static; } }
.obm-eyebrow {
	display: inline-flex; align-items: center; gap: 14px;
	font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--obm-muted);
	margin-bottom: 22px;
}
.obm-eyebrow::after { content: ""; width: 48px; height: 1px; background: var(--obm-line-2); }
.obm-display {
	font-family: var(--obm-display) !important; font-weight: 700; text-transform: uppercase;
	font-size: clamp(38px, 5vw, 64px); line-height: 1.02; letter-spacing: .5px;
	color: var(--obm-text) !important; margin: 0 0 22px;
}
.obm-lead { font-size: 16px; line-height: 1.65; color: #cfcfd2; max-width: 460px; margin: 0 0 28px; }
.obm-tags { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.obm-tags li {
	border: 1px solid var(--obm-line-2); padding: 10px 14px; margin: 0;
	font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--obm-text);
}

/* ---- Card ---- */
.obm-card {
	background: var(--obm-panel);
	border: 1px solid var(--obm-line);
	border-top: 3px solid var(--obm-accent);
	padding: 40px;
}
.obm-title {
	font-family: var(--obm-display) !important; text-transform: uppercase; font-weight: 600;
	font-size: 26px; letter-spacing: .5px; line-height: 1.15; color: var(--obm-text) !important; margin: 0 0 8px;
}
.obm-subtitle { margin: 0 0 28px; color: var(--obm-muted); font-size: 14px; line-height: 1.6; }
.obm-h3 {
	font-family: var(--obm-display) !important; text-transform: uppercase; font-weight: 600; letter-spacing: .5px;
	color: var(--obm-text) !important; margin: 36px 0 14px; font-size: 20px;
}
.obm-muted { color: var(--obm-muted); }
.obm-wrap a, .obm-auth a { color: var(--obm-accent); }
.obm-wrap a:hover, .obm-auth a:hover { color: #fff; }

/* ---- Fields ---- */
.obm-form { margin: 0; }
.obm-field { margin-bottom: 20px; }
.obm-field label, .obm-roles legend {
	display: block; margin: 0 0 8px; padding: 0;
	font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--obm-muted);
}
.obm-req { color: var(--obm-accent); }
.obm-auth .obm-field input[type=text], .obm-auth .obm-field input[type=email], .obm-auth .obm-field input[type=tel],
.obm-auth .obm-field input[type=password], .obm-auth .obm-field select, .obm-auth .obm-field textarea,
.obm-wrap .obm-field textarea {
	width: 100%; min-height: 50px; padding: 12px 16px; margin: 0;
	font-family: var(--obm-body); font-size: 15px; line-height: 1.4; color: var(--obm-text);
	background: var(--obm-black); border: 1px solid var(--obm-line); border-radius: 0; box-shadow: none;
	transition: border-color .15s, box-shadow .15s, background .15s;
	-webkit-appearance: none; appearance: none;
}
.obm-auth .obm-field textarea, .obm-wrap .obm-field textarea { min-height: 110px; }
.obm-auth .obm-field input::placeholder, .obm-wrap textarea::placeholder { color: var(--obm-dim); }
.obm-auth .obm-field input:hover, .obm-auth .obm-field textarea:hover { border-color: var(--obm-line-2); }
.obm-auth .obm-field input:focus, .obm-auth .obm-field select:focus, .obm-auth .obm-field textarea:focus, .obm-wrap textarea:focus {
	outline: none; border-color: var(--obm-accent); box-shadow: 0 0 0 3px rgba(255,71,19,.18);
}
.obm-auth .obm-field input:disabled { color: var(--obm-dim); background: #0d0d0f; border-style: dashed; cursor: not-allowed; }
.obm-auth .obm-field input:-webkit-autofill {
	-webkit-text-fill-color: #fff; -webkit-box-shadow: 0 0 0 1000px var(--obm-black) inset; caret-color: #fff;
}
.obm-has-error input, .obm-has-error select, .obm-has-error textarea { border-color: var(--obm-error) !important; }
.obm-error { display: block; color: var(--obm-error); font-size: 12.5px; line-height: 1.45; margin-top: 7px; }
.obm-error:empty { display: none; }
.obm-help { display: block; color: var(--obm-dim); font-size: 12px; line-height: 1.5; margin: 7px 0 0; }
p.obm-help { margin: 0 0 20px; }

.obm-input-wrap { position: relative; }
.obm-input-wrap input[type=password], .obm-input-wrap input[data-obm-pw] { padding-right: 70px !important; }
.obm-auth .obm-toggle-pass {
	position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	color: var(--obm-muted) !important; font-family: var(--obm-body); font-size: 11px; font-weight: 700;
	letter-spacing: 1px; text-transform: uppercase; padding: 8px 10px !important; cursor: pointer; line-height: 1; min-height: 0;
}
.obm-auth .obm-toggle-pass:hover { color: #fff !important; }

.obm-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }

/* Account type tiles */
.obm-roles { border: 0; padding: 0; margin: 0 0 24px; min-width: 0; }
.obm-role-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.obm-role-option { position: relative; display: block; cursor: pointer; margin: 0 !important; }
.obm-role-option input { position: absolute; opacity: 0; pointer-events: none; }
.obm-role-option span {
	display: block; height: 100%; padding: 14px 14px 14px 40px; position: relative;
	background: var(--obm-black); border: 1px solid var(--obm-line); transition: border-color .15s, background .15s;
}
.obm-role-option span::before {
	content: ""; position: absolute; left: 14px; top: 16px; width: 14px; height: 14px;
	border: 1px solid var(--obm-line-2); border-radius: 50%; transition: all .15s;
}
.obm-role-option strong { display: block; font-size: 13px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #fff; }
.obm-role-option small { display: block; color: var(--obm-muted); font-size: 12px; line-height: 1.4; font-weight: 400; margin-top: 4px; text-transform: none; letter-spacing: 0; }
.obm-role-option:hover span { border-color: var(--obm-line-2); }
.obm-role-option input:checked + span { border-color: var(--obm-accent); background: rgba(255,71,19,.07); }
.obm-role-option input:checked + span::before { border-color: var(--obm-accent); background: var(--obm-accent); box-shadow: inset 0 0 0 3px var(--obm-black); }
.obm-role-option input:focus-visible + span { box-shadow: 0 0 0 3px rgba(255,71,19,.3); }
.obm-roles.obm-has-error .obm-role-option span { border-color: var(--obm-error); }

/* Checkbox */
.obm-check {
	display: inline-flex !important; align-items: flex-start; gap: 10px; cursor: pointer;
	font-size: 13px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; color: #cfcfd2 !important; line-height: 1.5;
}
.obm-check input {
	-webkit-appearance: none; appearance: none; flex: 0 0 auto;
	width: 18px; height: 18px; margin: 1px 0 0; border: 1px solid var(--obm-line-2); background: var(--obm-black); border-radius: 0; cursor: pointer; position: relative;
}
.obm-check input:checked { background: var(--obm-accent); border-color: var(--obm-accent); }
.obm-check input:checked::after { content: ""; position: absolute; left: 5px; top: 1px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.obm-check input:focus-visible { box-shadow: 0 0 0 3px rgba(255,71,19,.3); outline: none; }
.obm-has-error .obm-check input { border-color: var(--obm-error); }
.obm-row-between { display: flex; justify-content: space-between; align-items: center; margin: -4px 0 24px; font-size: 13px; flex-wrap: wrap; gap: 10px; }
.obm-row-between a { font-weight: 600; text-decoration: none; }

/* Buttons */
.obm-btn, .obm-auth button.obm-btn, .obm-wrap button.obm-btn, .obm-request summary.obm-btn {
	display: inline-block; cursor: pointer; text-align: center; text-decoration: none !important;
	background: var(--obm-accent); color: #fff !important; border: 1px solid var(--obm-accent); border-radius: 0;
	font-family: var(--obm-body); font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; line-height: 1;
	padding: 18px 32px; transition: background .2s, border-color .2s, color .2s; box-shadow: none;
}
.obm-btn:hover, .obm-btn:focus { background: var(--obm-accent-dark); border-color: var(--obm-accent-dark); color: #fff !important; }
.obm-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.obm-btn[disabled] { opacity: .65; cursor: wait; }
.obm-btn-block { display: block; width: 100%; }
.obm-btn-outline { background: transparent; color: #fff !important; border-color: rgba(255,255,255,.35); }
.obm-btn-outline:hover { background: #fff; color: var(--obm-black) !important; border-color: #fff; }
.obm-btn-sm { padding: 10px 16px; font-size: 11px; }
.obm-switch { text-align: center; margin: 24px 0 0; padding-top: 24px; border-top: 1px solid var(--obm-line); font-size: 13px; color: var(--obm-muted); }
.obm-switch a { font-weight: 700; text-decoration: none; letter-spacing: .3px; }

/* Alerts */
.obm-alert { padding: 14px 16px; margin-bottom: 22px; font-size: 13.5px; line-height: 1.5; border: 1px solid; border-left-width: 3px; }
.obm-alert-error { background: rgba(255,107,91,.08); border-color: rgba(255,107,91,.35); border-left-color: var(--obm-error); color: #ffb3aa; }
.obm-alert-success { background: rgba(61,220,151,.08); border-color: rgba(61,220,151,.3); border-left-color: var(--obm-success); color: #a8f0cf; }
.obm-alert-info { background: rgba(255,71,19,.08); border-color: rgba(255,71,19,.3); border-left-color: var(--obm-accent); color: #ffc2ad; }

/* Password strength */
.obm-strength { display: flex; align-items: center; gap: 12px; margin: -8px 0 8px; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--obm-muted); }
.obm-strength-bar { flex: 1; height: 3px; background: var(--obm-line); overflow: hidden; }
.obm-strength-bar i { display: block; height: 100%; width: 0; background: var(--obm-error); transition: width .25s, background .25s; }
.obm-hp { position: absolute !important; left: -9999px !important; height: 1px; overflow: hidden; }

/* ---- Account ---- */
.obm-auth-head .obm-display { margin-bottom: 0; }
.obm-tabs { display: flex; flex-wrap: wrap; gap: 0; border-bottom: 1px solid var(--obm-line); margin: 0 0 32px; }
.obm-tabs a {
	padding: 14px 18px; text-decoration: none; color: var(--obm-muted) !important; border-bottom: 2px solid transparent; margin-bottom: -1px;
	font-size: 12px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
}
.obm-tabs a:hover { color: #fff !important; }
.obm-tabs a.is-active { color: #fff !important; border-color: var(--obm-accent); }
.obm-tabs a.obm-logout { margin-left: auto; }
.obm-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--obm-line); border: 1px solid var(--obm-line); }
.obm-stats > div { background: var(--obm-black); padding: 22px; }
.obm-stats > div > span { display: block; color: var(--obm-muted); font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 10px; }
.obm-stats strong { font-family: var(--obm-display); font-size: 22px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; }
.obm-badge { display: inline-block; padding: 5px 10px; font-family: var(--obm-body); font-size: 10.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; line-height: 1; background: #26262a; color: #d4d4d8; vertical-align: middle; }
.obm-badge-pending { background: rgba(255,71,19,.15); color: #ff8a62; }
.obm-badge-paid { background: rgba(61,220,151,.13); color: var(--obm-success); }
.obm-badge-cancelled { background: #1c1c1f; color: var(--obm-dim); }
.obm-table-wrap { overflow-x: auto; border: 1px solid var(--obm-line); }
.obm-table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0; border: 0; }
.obm-table th { text-align: left; padding: 14px 16px; font-size: 11px; font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--obm-muted); background: var(--obm-black); border: 0; border-bottom: 1px solid var(--obm-line); }
.obm-table td { padding: 16px; border: 0; border-bottom: 1px solid var(--obm-line); color: #e4e4e7; background: transparent; }
.obm-table tr:last-child td { border-bottom: 0; }

/* ---- Services ---- */
.obm-wrap-flat { max-width: none; margin: 0; padding: 0; }
.obm-pricing-note { margin: 0 0 24px; color: var(--obm-muted); font-size: 14px; }
.obm-pricing-note strong { color: var(--obm-accent); }
.obm-services { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.obm-services.obm-cols-1 { grid-template-columns: 1fr; }
.obm-services.obm-cols-2 { grid-template-columns: repeat(2, 1fr); }
.obm-services.obm-cols-4 { grid-template-columns: repeat(4, 1fr); }
.obm-service { background: var(--obm-panel); border: 1px solid var(--obm-line); border-top: 3px solid var(--obm-accent); padding: 32px; display: flex; flex-direction: column; color: var(--obm-text); }
.obm-service h3 { font-family: var(--obm-display) !important; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; font-size: 22px; line-height: 1.15; margin: 0 0 12px; color: #fff !important; }
.obm-service-desc { color: var(--obm-muted); font-size: 14px; line-height: 1.6; }
.obm-service-desc p { margin: 0 0 8px; }
.obm-price { font-family: var(--obm-display); font-size: 44px; font-weight: 700; line-height: 1; margin: auto 0 22px; padding-top: 24px; color: #fff; }
.obm-price-quote { font-size: 26px; letter-spacing: .5px; text-transform: uppercase; color: #fff; }
.obm-price small { font-family: var(--obm-body); font-size: 13px; font-weight: 500; color: var(--obm-muted); letter-spacing: 0; }
.obm-price-locked { font-size: 15px; }
.obm-request summary { list-style: none; display: block; width: 100%; }
.obm-request summary::-webkit-details-marker { display: none; }
.obm-request[open] summary { margin-bottom: 16px; background: transparent; border-color: var(--obm-line-2); }
.obm-member-menu a { margin-left: 12px; }

/* Services shortcode used outside the dark page shell (e.g. a light Elementor section) */
.obm-wrap:not(.obm-wrap-flat) { max-width: 1140px; margin: 40px auto; padding: 0 16px; }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
	.obm-auth-inner { grid-template-columns: 1fr; gap: 40px; max-width: 620px; }
	.obm-auth-wide .obm-auth-inner { max-width: 1140px; }
	.obm-services { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
	.obm-auth { padding: 56px 16px; }
	.obm-card { padding: 28px 20px; }
	.obm-grid-2, .obm-role-options, .obm-stats { grid-template-columns: 1fr; }
	.obm-services { grid-template-columns: 1fr !important; }
	.obm-lead { font-size: 15px; }
	.obm-tabs a { padding: 12px 12px; }
	.obm-table thead { display: none; }
	.obm-table tr { display: block; border-bottom: 1px solid var(--obm-line); }
	.obm-table tr:last-child { border-bottom: 0; }
	.obm-table td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 10px 16px; }
	.obm-table td::before { content: attr(data-label); font-size: 11px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--obm-muted); }
}

/* Pricing-card buttons (homepage) */
.obm-card-cta { margin-top: auto; padding-top: 24px; }
.obm-card-btn {
	display: inline-block; background: #ff4713; color: #fff !important; border: 1px solid #ff4713;
	font-family: Inter, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .6px; text-transform: uppercase;
	padding: 16px 32px; border-radius: 0; text-decoration: none !important; line-height: 1; transition: background .2s, color .2s, border-color .2s;
}
.obm-card-btn:hover, .obm-card-btn:focus { background: #0a0a0b; border-color: #0a0a0b; color: #fff !important; }
.obm-card-btn--dark { background: #0a0a0b; border-color: #0a0a0b; }
.obm-card-btn--dark:hover, .obm-card-btn--dark:focus { background: #fff; border-color: #fff; color: #0a0a0b !important; }
@media (max-width: 767px) { .obm-card-btn { display: block; text-align: center; } }
.obm-service-group select { width: 100%; }
@keyframes obm-flash { 0% { box-shadow: 0 0 0 0 rgba(255,71,19,.7); } 100% { box-shadow: 0 0 0 10px rgba(255,71,19,0); } }
.obm-flash select, .obm-flash input { animation: obm-flash 1.2s ease-out 2; border-color: #ff4713 !important; }

/* =========================================================================
   v2.0 – Business registration fields
   ========================================================================= */
.obm-role-options { grid-template-columns: repeat(2, 1fr); }
.obm-b2b-only { border: 1px solid var(--obm-line); border-left: 3px solid var(--obm-accent); padding: 20px 20px 4px; margin: 0 0 22px; background: rgba(255,71,19,.03); }
.obm-b2b-only[hidden] { display: none !important; }
.obm-b2b-head { margin: 0 0 18px; }
.obm-b2b-head strong { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #fff; }
.obm-b2b-head span { display: block; font-size: 12.5px; color: var(--obm-muted); margin-top: 4px; }
.obm-file { position: relative; }
.obm-file input[type=file] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; z-index: 2; }
.obm-file-ui { display: flex; align-items: center; min-height: 50px; border: 1px dashed var(--obm-line-2); background: var(--obm-black); }
.obm-file-btn { flex: 0 0 auto; padding: 0 16px; align-self: stretch; display: flex; align-items: center; background: #1b1b1e; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; border-right: 1px solid var(--obm-line-2); }
.obm-file-name { padding: 0 14px; font-size: 13.5px; color: var(--obm-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.obm-file:hover .obm-file-ui, .obm-file input:focus + .obm-file-ui { border-color: var(--obm-accent); }
.obm-has-error .obm-file-ui { border-color: var(--obm-error); }

/* =========================================================================
   Products widget (homepage "Capabilities")
   ========================================================================= */
.obm-products { --obm-accent: #ff4713; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; font-family: "Inter", sans-serif; }
.obm-product { display: block; text-decoration: none !important; color: inherit; outline: none; }
.obm-product-media { position: relative; padding-top: 52%; overflow: hidden; background: #e7e7e4; }
.obm-product-media img, .obm-product-media .obm-product-img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.obm-product-hover {
	position: absolute; inset: 0; display: flex; align-items: flex-end;
	background: linear-gradient(180deg, rgba(10,10,11,.35) 0%, rgba(10,10,11,.92) 55%, rgba(10,10,11,.97) 100%);
	opacity: 0; transform: translateY(10px); transition: opacity .3s ease, transform .3s ease; color: #fff;
}
.obm-product-hover-in { width: 100%; padding: 16px 16px 14px; border-top: 3px solid var(--obm-accent); }
.obm-product-hover-title { display: block; font-family: "Oswald", sans-serif; font-weight: 700; font-size: 15px; letter-spacing: .4px; text-transform: uppercase; margin-bottom: 6px; }
.obm-product-short { margin: 0 0 8px; font-size: 12.5px; line-height: 1.5; color: #d9d9dc; }
.obm-product-hl { list-style: none; margin: 0 0 10px; padding: 0; }
.obm-product-hl li { position: relative; padding-left: 14px; font-size: 11.5px; line-height: 1.5; color: #fff; margin: 0; }
.obm-product-hl li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 2px; background: var(--obm-accent); }
.obm-product-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.14); padding-top: 9px; }
.obm-product-price { font-family: "Oswald", sans-serif; font-weight: 600; font-size: 17px; color: #fff; }
.obm-product-price small { font-family: "Inter", sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #a3a3a3; }
.obm-product-price del { opacity: .6; font-size: 13px; }
.obm-product-price ins { text-decoration: none; }
.obm-product-cta { font-size: 11px; font-weight: 700; letter-spacing: .8px; text-transform: uppercase; color: var(--obm-accent); white-space: nowrap; }
.obm-product:hover .obm-product-hover, .obm-product:focus-visible .obm-product-hover { opacity: 1; transform: none; }
.obm-product:hover .obm-product-media img, .obm-product:focus-visible .obm-product-media img { transform: scale(1.05); }
.obm-product:focus-visible .obm-product-media { box-shadow: 0 0 0 3px var(--obm-accent); }
.obm-product-title { font-family: "Oswald", sans-serif !important; font-weight: 700; font-size: 20px; line-height: 1.15; letter-spacing: 0; text-transform: uppercase; color: #0a0a0b; margin: 14px 0 4px; transition: color .2s; }
.obm-product:hover .obm-product-title { color: var(--obm-accent) !important; }
.obm-product-tag { margin: 0; font-size: 14px; line-height: 1.45; color: #2a2a2a; }
@media (hover: none) {
	/* Touch screens: show a compact detail strip without hover. */
	.obm-product-hover { opacity: 1; transform: none; background: linear-gradient(180deg, rgba(10,10,11,0) 40%, rgba(10,10,11,.9) 100%); }
	.obm-product-short, .obm-product-hl, .obm-product-hover-title { display: none; }
	.obm-product-hover-in { border-top: 0; padding: 10px 12px; }
	.obm-product-foot { border-top: 0; padding-top: 0; }
}
@media (max-width: 1024px) { .obm-products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .obm-products { grid-template-columns: 1fr; gap: 28px; } }

/* =========================================================================
   FAQ widget
   ========================================================================= */
.obm-faq { display: grid; gap: 10px; font-family: "Inter", sans-serif; }
.obm-faq-item { border: 1px solid #cfcfcb; background: #fff; }
.obm-faq-q { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; cursor: pointer; padding: 14px 18px; font-size: 14px; font-weight: 700; color: #0a0a0b; }
.obm-faq-q::-webkit-details-marker { display: none; }
.obm-faq-q i { flex: 0 0 auto; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; }
.obm-faq-item[open] .obm-faq-q i { transform: rotate(-135deg) translate(-2px, -2px); }
.obm-faq-q:hover { color: #ff4713; }
.obm-faq-a { padding: 0 18px 16px; font-size: 13.5px; line-height: 1.6; color: #3f3f46; }
.obm-faq-a p { margin: 0 0 6px; }

/* =========================================================================
   WooCommerce – single product, checkout, thank you (matches homepage)
   ========================================================================= */
body.obm-shop { --obm-accent: #ff4713; }
body.obm-shop .woocommerce, body.obm-shop .elementor-widget-woocommerce-product-title,
body.obm-shop [class*="elementor-widget-woocommerce"] { font-family: "Inter", sans-serif; }
body.obm-shop .product_title, body.obm-shop .elementor-widget-woocommerce-product-title .product_title {
	font-family: "Oswald", sans-serif !important; font-weight: 700 !important; text-transform: uppercase; letter-spacing: -1px; line-height: 1 !important; color: #fff;
}
body.obm-shop .price, body.obm-shop .woocommerce-Price-amount { font-family: "Oswald", sans-serif; font-weight: 600; }
body.obm-shop .elementor-widget-woocommerce-product-price .price { color: #ff4713 !important; font-size: 40px !important; }
body.obm-shop .woocommerce-product-details__short-description { color: #cfcfd2; font-size: 16px; line-height: 1.65; }
body.obm-shop .woocommerce-product-details__short-description p { margin: 0 0 12px; }
body.obm-shop form.cart { display: flex; gap: 10px; align-items: stretch; flex-wrap: wrap; margin: 0 !important; }
body.obm-shop .quantity .qty, body.obm-shop .quantity input.qty {
	height: 54px; min-width: 84px; border: 1px solid #3a3a3e !important; background: #0a0a0b !important; color: #fff !important; border-radius: 0 !important; font-size: 16px; text-align: center;
}
body.obm-shop .single_add_to_cart_button, body.obm-shop #place_order, body.obm-shop .woocommerce a.button, body.obm-shop .woocommerce button.button {
	background: #ff4713 !important; border: 1px solid #ff4713 !important; color: #fff !important; border-radius: 0 !important;
	font-family: "Inter", sans-serif !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .8px !important; text-transform: uppercase !important;
	padding: 18px 34px !important; line-height: 1 !important; min-height: 54px; transition: background .2s, border-color .2s;
}
body.obm-shop .single_add_to_cart_button:hover, body.obm-shop #place_order:hover, body.obm-shop .woocommerce a.button:hover, body.obm-shop .woocommerce button.button:hover { background: #e23b0b !important; border-color: #e23b0b !important; }
body.obm-shop .product_meta { font-size: 12px; letter-spacing: .6px; text-transform: uppercase; color: #a3a3a3; }
body.obm-shop .product_meta a { color: #fff; }
body.obm-shop .woocommerce-product-gallery { margin: 0 !important; }
body.obm-shop .woocommerce-product-gallery img { border-radius: 0; }
body.obm-shop .woocommerce-tabs ul.tabs { padding: 0 !important; margin: 0 0 24px !important; border-bottom: 1px solid #e4e4e2; display: flex; gap: 0; }
body.obm-shop .woocommerce-tabs ul.tabs::before, body.obm-shop .woocommerce-tabs ul.tabs li::before, body.obm-shop .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.obm-shop .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; }
body.obm-shop .woocommerce-tabs ul.tabs li a { display: block; padding: 14px 18px !important; font-size: 12px; font-weight: 700 !important; letter-spacing: 1px; text-transform: uppercase; color: #6b6b6b !important; border-bottom: 2px solid transparent; }
body.obm-shop .woocommerce-tabs ul.tabs li.active a { color: #0a0a0b !important; border-color: #ff4713; }
body.obm-shop .woocommerce-tabs .panel h2 { font-family: "Oswald", sans-serif; text-transform: uppercase; font-size: 28px; }
body.obm-shop .woocommerce-tabs .panel { color: #3f3f46; font-size: 15px; line-height: 1.7; }
.obm-spec-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.obm-spec-list li { position: relative; padding-left: 22px; color: #fff; font-size: 14px; line-height: 1.5; }
.obm-spec-list li::before { content: ""; position: absolute; left: 0; top: .45em; width: 10px; height: 6px; border-left: 2px solid #ff4713; border-bottom: 2px solid #ff4713; transform: rotate(-45deg); }

/* Checkout */
body.obm-shop .woocommerce form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 40px; align-items: start; }
body.obm-shop .woocommerce form.checkout > .col2-set { grid-column: 1; width: 100%; float: none; }
body.obm-shop .woocommerce form.checkout > #order_review_heading, body.obm-shop .woocommerce form.checkout > #order_review { grid-column: 2; }
body.obm-shop .woocommerce form.checkout > #order_review_heading { grid-row: 1; margin: 0; }
body.obm-shop .woocommerce form.checkout > #order_review { grid-row: 1; margin-top: 52px; background: #0a0a0b; color: #fff; padding: 28px; border-top: 3px solid #ff4713; }
body.obm-shop .woocommerce form.checkout .col2-set .col-1, body.obm-shop .woocommerce form.checkout .col2-set .col-2 { width: 100%; float: none; }
body.obm-shop .woocommerce-checkout h3, body.obm-shop #order_review_heading { font-family: "Oswald", sans-serif !important; font-weight: 700; text-transform: uppercase; font-size: 26px; letter-spacing: -.3px; color: #0a0a0b; margin: 0 0 20px; }
body.obm-shop .woocommerce form .form-row label { font-size: 11px; font-weight: 600; letter-spacing: 1.1px; text-transform: uppercase; color: #6b6b6b; margin-bottom: 6px; }
body.obm-shop .woocommerce form .form-row input.input-text, body.obm-shop .woocommerce form .form-row textarea, body.obm-shop .woocommerce form .form-row select, body.obm-shop .select2-container .select2-selection--single {
	border: 1px solid #d4d4d1 !important; border-radius: 0 !important; background: #fff; min-height: 50px; padding: 12px 14px; font-size: 15px; color: #0a0a0b; box-shadow: none;
}
body.obm-shop .select2-container .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
body.obm-shop .select2-container .select2-selection--single .select2-selection__arrow { height: 48px; }
body.obm-shop .woocommerce form .form-row textarea { min-height: 120px; }
body.obm-shop .woocommerce form .form-row input.input-text:focus, body.obm-shop .woocommerce form .form-row textarea:focus { border-color: #ff4713 !important; outline: none; box-shadow: 0 0 0 3px rgba(255,71,19,.15); }
body.obm-shop table.shop_table { border: 0 !important; border-radius: 0 !important; color: #fff; margin: 0 0 20px !important; }
body.obm-shop table.shop_table th, body.obm-shop table.shop_table td { border-color: #2a2a2d !important; padding: 12px 0 !important; background: transparent !important; }
body.obm-shop table.shop_table thead th { font-size: 11px; letter-spacing: 1.2px; text-transform: uppercase; color: #a3a3a3; }
body.obm-shop table.shop_table .order-total .woocommerce-Price-amount { color: #ff4713; font-size: 24px; }
body.obm-shop #payment { background: transparent !important; border-radius: 0 !important; }
body.obm-shop #payment ul.payment_methods { border: 0 !important; padding: 0 !important; }
body.obm-shop #payment ul.payment_methods li { list-style: none; }
body.obm-shop #payment ul.payment_methods li input { display: none; }
body.obm-shop #payment ul.payment_methods li label { font-family: "Oswald", sans-serif; text-transform: uppercase; font-size: 16px; color: #fff; }
body.obm-shop #payment div.payment_box { background: #161618 !important; color: #cfcfd2 !important; font-size: 13px; border-radius: 0; margin: 10px 0 0 !important; }
body.obm-shop #payment div.payment_box::before { display: none; }
body.obm-shop #payment div.form-row { padding: 16px 0 0 !important; }
body.obm-shop .woocommerce-privacy-policy-text { font-size: 12px; color: #a3a3a3; }
body.obm-shop #place_order { width: 100%; }
.obm-checkout-note, .obm-thankyou-note { grid-column: 1 / -1; border-left: 3px solid #ff4713; background: #f5f5f3; padding: 14px 18px; margin: 0 0 28px; font-size: 14px; color: #2a2a2a; }
body.obm-shop .woocommerce-info, body.obm-shop .woocommerce-message, body.obm-shop .woocommerce-error { border-top-color: #ff4713 !important; border-radius: 0; background: #f5f5f3; }
body.obm-shop .woocommerce-info::before, body.obm-shop .woocommerce-message::before { color: #ff4713 !important; }
body.obm-shop .woocommerce-order-overview { padding: 0 !important; display: flex; flex-wrap: wrap; gap: 0; border: 1px solid #e4e4e2; }
body.obm-shop .woocommerce-order-overview li { border: 0 !important; border-right: 1px solid #e4e4e2 !important; padding: 16px 20px !important; margin: 0 !important; font-size: 11px !important; letter-spacing: 1px; text-transform: uppercase; color: #6b6b6b; }
body.obm-shop .woocommerce-order-overview li strong { display: block; margin-top: 6px; font-family: "Oswald", sans-serif; font-size: 20px; text-transform: none; color: #0a0a0b; }
body.obm-shop .woocommerce-order-details table.shop_table, body.obm-shop .woocommerce-customer-details { color: #0a0a0b; }
body.obm-shop .woocommerce-order-details table.shop_table th, body.obm-shop .woocommerce-order-details table.shop_table td { border-color: #e4e4e2 !important; }
@media (max-width: 1024px) {
	body.obm-shop .woocommerce form.checkout { grid-template-columns: 1fr; }
	body.obm-shop .woocommerce form.checkout > #order_review_heading, body.obm-shop .woocommerce form.checkout > #order_review { grid-column: 1; grid-row: auto; margin-top: 0; }
}
body.obm-shop .product_meta > span { display: block; margin: 0 0 6px; }
body.obm-shop .woocommerce-tabs .panel { border: 0 !important; padding: 0 !important; }
body.obm-shop .woocommerce-Tabs-panel--description > h2:first-child { display: none; }
