/* Handwritten font, self-hosted so caching/optimiser plugins can't break it */
@font-face { font-family: 'Obs Hand'; src: url('../fonts/caveat-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Obs Hand'; src: url('../fonts/caveat-latin-700-normal.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
/* =========================================================
   Obsidian Sections: Hero + Quote Form, Trust & Logos, About
   Everything is scoped to .obs-scope components.
   ========================================================= */

/* ---------- Shared: reset inside our sections ---------- */
.obs-hero, .obs-trust, .obs-about { position: relative; width: 100%; overflow: hidden; isolation: isolate; font-size: 16px; line-height: 1.6; }
.obs-hero *, .obs-trust *, .obs-about * { box-sizing: border-box; }
/* Resets use :where() = zero specificity, so they beat theme rules (via !important)
   but never override our own component padding/margins. */
:where(.obs-hero, .obs-trust, .obs-about) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-hero, .obs-trust, .obs-about) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-hero, .obs-trust, .obs-about) :where(li)::before { content: none !important; }
.obs-hero h1, .obs-hero h2, .obs-hero h3, .obs-trust h2, .obs-trust h3, .obs-about h2, .obs-about h3 { margin: 0; padding: 0; text-transform: none; }
.obs-hero p, .obs-trust p, .obs-about p { margin: 0; }
.obs-hero img, .obs-trust img, .obs-about img { max-width: 100%; height: auto; border: 0; box-shadow: none; }
.obs-hero i, .obs-trust i, .obs-about i { line-height: 1; }

/* Focus: hide the theme/browser outline on click, show a green ring for keyboard users */
.obs-hero :is(a, button, input, select, textarea):focus,
.obs-trust :is(a, button):focus,
.obs-about :is(a, button):focus { outline: none !important; }
.obs-hero :is(a, button):focus-visible,
.obs-trust :is(a, button):focus-visible,
.obs-about :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

/* Container */
.obs-wrap { position: relative; z-index: 2; width: 100%; max-width: var(--obs-container, 1320px); margin: 0 auto; padding: 0 32px; }

/* Eyebrow pill */
.obs-pill {
	align-self: flex-start; width: max-content; max-width: 100%;
	display: inline-flex; align-items: center; gap: 10px;
	padding: 7px 16px;
	border-radius: 8px;
	background: rgba(255, 255, 255, .06);
	color: #cfd6d2;
	font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; line-height: 1.3;
}
.obs-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--obs-green); box-shadow: 0 0 0 4px rgba(46, 232, 96, .15); flex-shrink: 0; }

/* Section title */
.obs-scope .obs-sec-title {
	margin: 22px 0 22px;
	color: #fff;
	font-size: clamp(34px, 4.2vw, 64px);
	font-weight: 800; line-height: 1.08; letter-spacing: -.025em;
}
.obs-scope .obs-sec-title .obs-hl { color: var(--obs-green); }
.obs-scope .obs-sec-text { color: #d5ddd9; font-size: 17px; line-height: 1.65; max-width: 560px; }

.obs-btn--lg { padding: 18px 34px; font-size: 16px; min-height: 58px; }

/* =========================================================
   HERO
   ========================================================= */
.obs-hero {
	--obs-hero-overlay: 85%;
	min-height: 720px;
	display: flex; align-items: center;
	padding: 90px 0;
	background: #050806 var(--obs-hero-bg) center / cover no-repeat;
	color: #fff;
}
.obs-hero::before {
	content: '';
	position: absolute; inset: 0; z-index: 0;
	background:
		linear-gradient(90deg, rgba(5, 8, 6, calc(var(--obs-hero-overlay) / 100%)) 0%, rgba(5, 8, 6, .55) 45%, rgba(5, 8, 6, .2) 75%, rgba(5, 8, 6, .35) 100%),
		linear-gradient(0deg, rgba(5, 8, 6, .7) 0%, transparent 35%);
}
/* Optional thin green accent line (off by default: add class "has-accent" to show) */
.obs-hero.has-accent::after {
	content: ''; position: absolute; top: 0; right: 0; height: 4px; width: 38%;
	background: var(--obs-green); z-index: 1;
}
.obs-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 430px); gap: 60px; align-items: center; }
.obs-hero .obs-sec-title { font-size: clamp(38px, 4.6vw, 70px); }
.obs-hero .obs-sec-title .obs-hl,
.obs-hero .obs-sec-title .obs-after { display: block; }
.obs-hero .obs-sec-text { max-width: 470px; }

/* Badges */
.obs-scope .obs-hero__badges { display: flex !important; flex-wrap: wrap; align-items: center; gap: 0; margin-top: 30px !important; }
.obs-hero__badges li { display: flex; align-items: center; gap: 12px; padding: 0 22px !important; border-left: 1px solid rgba(255, 255, 255, .15); font-size: 14px; font-weight: 600; line-height: 1.3; max-width: 190px; }
.obs-hero__badges li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-hero__badge-ic {
	width: 50px; height: 50px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .1); color: var(--obs-green);
	font-size: 20px;
}
.obs-hero__badge-ic svg { width: 20px; height: 20px; fill: currentColor; }

/* Buttons */
.obs-hero__btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.obs-hero__btns .obs-btn { min-width: 230px; }
.obs-hero__btns .obs-btn--outline { border: 2px solid rgba(255, 255, 255, .85); }

/* Stats */
.obs-scope .obs-hero__stats { display: flex !important; flex-wrap: wrap; margin-top: 40px !important; }
.obs-hero__stats li { display: flex; flex-direction: column; padding: 0 26px !important; border-left: 1px solid rgba(255, 255, 255, .15); }
.obs-hero__stats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-hero__stats strong { display: flex; align-items: center; gap: 8px; color: var(--obs-green); font-size: 30px; font-weight: 800; line-height: 1.1; }
.obs-hero__stats span { color: #e3e9e6; font-size: 15px; margin-top: 4px; }
.obs-stars { display: inline-flex; gap: 3px; color: #ffc93c; }
.obs-stars i { font-size: 15px; }

/* ---------- Quote card ---------- */
.obs-quote {
	/* form tokens — every value is editable from Elementor > Style */
	--obs-field-h: 48px;
	--obs-field-r: 8px;
	--obs-field-gap: 14px;
	--obs-field-bg: rgba(255, 255, 255, .02);
	--obs-field-bg-focus: rgba(255, 255, 255, .05);
	--obs-field-text: #ffffff;
	--obs-field-ph: #a9b3ae;
	--obs-field-border: rgba(255, 255, 255, .2);
	--obs-field-focus: var(--obs-green);
	--obs-submit-h: 54px;
	--obs-submit-r: 8px;
	--obs-submit-bg: var(--obs-green);
	--obs-submit-bg-hover: var(--obs-green-dark);
	--obs-submit-text: #06100a;
	--obs-submit-text-hover: #06100a;

	position: relative;
	padding: 30px;
	background: rgba(16, 22, 20, .92);
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 16px;
	box-shadow: 0 30px 70px -25px rgba(0, 0, 0, .8);
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	scroll-margin-top: 120px;
}
.obs-quote__head { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 24px; }
.obs-quote__icon { color: var(--obs-green); font-size: 42px; line-height: 1; flex-shrink: 0; }
.obs-quote__icon svg { width: 42px; height: 42px; fill: currentColor; }
.obs-scope .obs-quote__title { color: #fff; font-size: 24px; font-weight: 800; line-height: 1.25; margin: 0 0 8px; }
.obs-scope .obs-quote__title .obs-hl { color: var(--obs-green); }
.obs-quote__text { color: #cfd6d2; font-size: 14px; line-height: 1.55; }

/* Built-in form */
.obs-qform { display: grid; gap: var(--obs-field-gap); margin: 0; }
.obs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.obs-field { position: relative; display: block !important; margin: 0 !important; }
.obs-field > i:first-child {
	position: absolute; left: 16px; top: 50%; transform: translateY(-50%);
	color: var(--obs-field-ph); font-size: 15px; pointer-events: none;
	transition: color var(--obs-speed) var(--obs-ease);
}
.obs-field__chev { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--obs-field-ph); font-size: 12px; pointer-events: none; }
.obs-field:focus-within > i { color: var(--obs-field-focus); }

/* Fields: built-in AND shortcode forms (WPForms, CF7, Fluent Forms, Gravity…) */
.obs-quote__form :where(input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]), select, textarea) {
	width: 100% !important; max-width: 100% !important;
	height: var(--obs-field-h) !important;
	margin: 0 !important;
	padding: 0 16px;
	background: var(--obs-field-bg) !important;
	border: 1px solid var(--obs-field-border) !important;
	border-radius: var(--obs-field-r) !important;
	box-shadow: none !important;
	color: var(--obs-field-text) !important;
	font-family: var(--obs-font); font-size: 15px; line-height: 1.3;
	outline: none !important;
	-webkit-appearance: none; appearance: none;
	transition: border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease), background-color var(--obs-speed) var(--obs-ease);
}
.obs-quote__form textarea { height: auto !important; min-height: 110px; padding-top: 14px; padding-bottom: 14px; resize: vertical; }
.obs-quote__form select { padding-right: 40px !important; cursor: pointer; background-image: none !important; }
.obs-quote__form select option { color: #111; }
.obs-qform .obs-field input,
.obs-qform .obs-field select { padding-left: 46px !important; }
.obs-quote__form ::placeholder { color: var(--obs-field-ph) !important; opacity: 1; }
.obs-qform select:invalid { color: var(--obs-field-ph) !important; }

/* Focus state */
.obs-quote__form input:not([type=submit]):not([type=checkbox]):not([type=radio]):focus,
.obs-quote__form select:focus,
.obs-quote__form textarea:focus {
	border-color: var(--obs-field-focus) !important;
	background-color: var(--obs-field-bg-focus) !important;
	box-shadow: 0 0 0 3px rgba(46, 232, 96, .15) !important;
}
/* Autofill (Chrome yellow background fix) */
.obs-quote__form input:-webkit-autofill {
	-webkit-text-fill-color: var(--obs-field-text) !important;
	-webkit-box-shadow: 0 0 0 1000px #121a17 inset !important;
	caret-color: var(--obs-field-text);
}

/* Submit buttons (all common form plugins) */
.obs-quote__form button[type=submit],
.obs-quote__form input[type=submit],
.obs-quote__form .wpforms-submit,
.obs-quote__form .wpcf7-submit,
.obs-quote__form .ff-btn-submit {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
	width: 100%;
	height: var(--obs-submit-h) !important; min-height: 0 !important;
	margin: 4px 0 0 !important; padding: 0 24px !important;
	background: var(--obs-submit-bg) !important;
	border: 0 !important; border-radius: var(--obs-submit-r) !important;
	color: var(--obs-submit-text) !important;
	font-family: var(--obs-font); font-size: 16px !important; font-weight: 700 !important; text-transform: none !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease);
}
.obs-quote__form button[type=submit]:hover,
.obs-quote__form input[type=submit]:hover,
.obs-quote__form .wpforms-submit:hover,
.obs-quote__form .wpcf7-submit:hover,
.obs-quote__form .ff-btn-submit:hover {
	background: var(--obs-submit-bg-hover) !important;
	color: var(--obs-submit-text-hover) !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px -10px rgba(46, 232, 96, .6) !important;
}
.obs-quote__form button[type=submit]:focus-visible,
.obs-quote__form .wpforms-submit:focus-visible { outline: 2px solid #fff !important; outline-offset: 3px; }
.obs-qform__submit i { transition: transform var(--obs-speed) var(--obs-ease); }
.obs-qform__submit:hover i { transform: translateX(4px); }

/* WPForms layout clean-up inside the card */
.obs-quote__form .wpforms-container { margin: 0 !important; }
.obs-quote__form .wpforms-field-container { display: grid; gap: var(--obs-field-gap); }
.obs-quote__form .wpforms-field { padding: 0 !important; margin: 0 !important; }
.obs-quote__form .wpforms-field-label { color: #e3e9e6 !important; font-size: 14px !important; font-weight: 500 !important; margin-bottom: 6px !important; }
.obs-quote__form .wpforms-required-label { color: var(--obs-green) !important; }
.obs-quote__form .wpforms-submit-container { padding: 0 !important; margin-top: var(--obs-field-gap) !important; }
.obs-quote__form label.wpforms-error,
.obs-quote__form .wpcf7-not-valid-tip { color: #ff7a7a !important; font-size: 13px !important; margin-top: 4px; }
.obs-quote__form .wpforms-confirmation-container-full,
.obs-quote__form .wpcf7-response-output { background: rgba(46, 232, 96, .1) !important; border: 1px solid rgba(46, 232, 96, .4) !important; color: #fff !important; border-radius: 8px; padding: 14px !important; margin: 0 !important; }
/* Contact Form 7 */
.obs-quote__form .wpcf7-form p { margin: 0 0 var(--obs-field-gap) !important; }
.obs-quote__form .wpcf7-form-control-wrap { display: block; }
.obs-quote__form .wpcf7-spinner { position: absolute; }

/* Messages */
.obs-form-msg { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; padding: 12px 14px; border-radius: 8px; font-size: 14px; }
.obs-form-msg.is-success { background: rgba(46, 232, 96, .1); border: 1px solid rgba(46, 232, 96, .45); color: #dfffe8; }
.obs-form-msg.is-success i { color: var(--obs-green); }
.obs-form-msg.is-error { background: rgba(255, 90, 90, .1); border: 1px solid rgba(255, 90, 90, .45); color: #ffdede; }

/* Ticks */
.obs-scope .obs-quote__ticks { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 10px 16px; margin-top: 18px !important; }
.obs-quote__ticks li { display: flex; align-items: center; gap: 8px; color: #dfe6e2; font-size: 13px; }
.obs-quote__ticks i { color: var(--obs-green); font-size: 16px; }

/* =========================================================
   TRUST & LOGOS
   ========================================================= */
.obs-trust {
	--obs-marquee-speed: 35s;
	--obs-logo-w: 236px;
	padding: 70px 0;                              /* compact top/bottom spacing */
	background: #f6f7f6;
	color: #1a1f1c;
}
/* faded roof watermark behind the content */
.obs-trust::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: var(--obs-trust-wm, none) center top / cover no-repeat;
	opacity: .08; pointer-events: none;
}
.obs-trust__house {
	position: absolute; right: 0; bottom: 0; z-index: 1;
	width: min(24vw, 400px); height: auto; max-height: 100%;
	object-fit: contain; object-position: right bottom;
	pointer-events: none;
}
.obs-trust.has-house .obs-wrap { padding-right: min(18vw, 330px); }

.obs-trust__top { display: grid; grid-template-columns: minmax(0, 470px) minmax(0, 1fr); gap: 50px; align-items: center; }
.obs-trust__head { padding-right: 50px; border-right: 1px solid rgba(0, 0, 0, .08); }
.obs-trust .obs-pill { background: rgba(0, 0, 0, .05); color: #1a1f1c; }
.obs-trust .obs-sec-title { color: #0b0f0d; font-size: clamp(32px, 3.2vw, 52px); margin: 20px 0 18px; }
.obs-trust .obs-sec-text { color: #4a524e; font-size: 17px; }

/* Marquee */
.obs-trust__logos { display: grid; gap: 18px; min-width: 0; }
.obs-marquee {
	position: relative; overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.obs-marquee__track { display: flex; width: max-content; will-change: transform; }
.obs-marquee--ltr .obs-marquee__track { animation: obs-marquee-ltr var(--obs-marquee-speed) linear infinite; }
.obs-marquee--rtl .obs-marquee__track { animation: obs-marquee-rtl var(--obs-marquee-speed) linear infinite; }
.obs-trust.is-pausable .obs-marquee:hover .obs-marquee__track { animation-play-state: paused; }
@keyframes obs-marquee-rtl { from { transform: translateX(0); }    to { transform: translateX(-50%); } }
@keyframes obs-marquee-ltr { from { transform: translateX(-50%); } to { transform: translateX(0); } }

.obs-logo {
	flex: 0 0 var(--obs-logo-w);
	height: 134px;
	margin-right: 18px;                           /* margin (not gap) keeps the -50% loop seamless */
	display: flex !important; align-items: center; justify-content: center;
	padding: 20px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .07);
	border-radius: 12px;
	box-shadow: 0 6px 18px -12px rgba(0, 0, 0, .18);
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease);
}
.obs-logo img { max-height: 64px; width: auto; max-width: 100%; object-fit: contain; transition: filter var(--obs-speed) var(--obs-ease), opacity var(--obs-speed) var(--obs-ease); }
.obs-logo:hover { transform: translateY(-3px); border-color: rgba(46, 232, 96, .5); box-shadow: 0 14px 28px -16px rgba(0, 0, 0, .3); }
.obs-trust.is-gray .obs-logo img { filter: grayscale(1); opacity: .75; }
.obs-trust.is-gray .obs-logo:hover img { filter: none; opacity: 1; }

/* Features strip */
.obs-scope .obs-trust__feats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 54px !important; }
.obs-tfeat { display: flex; align-items: flex-start; gap: 22px; padding: 0 30px !important; border-left: 1px solid rgba(0, 0, 0, .1); }
.obs-tfeat:first-child { padding-left: 0 !important; border-left: 0; }
.obs-tfeat__icon {
	width: 64px; height: 64px; flex-shrink: 0; border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--obs-green); color: #06100a; font-size: 26px;
	transition: transform var(--obs-speed) var(--obs-ease);
}
.obs-tfeat__icon svg { width: 26px; height: 26px; fill: currentColor; }
.obs-tfeat:hover .obs-tfeat__icon { transform: translateY(-3px) rotate(-4deg); }
.obs-tfeat__body { display: flex; flex-direction: column; gap: 4px; padding-top: 4px; }
.obs-tfeat__body strong { color: #0b0f0d; font-size: 20px; font-weight: 700; line-height: 1.25; }
.obs-tfeat__body span { color: #4a524e; font-size: 16px; line-height: 1.5; }

/* =========================================================
   ABOUT
   ========================================================= */
.obs-about { padding: 80px 0; background: #0a0e0c; color: #fff; }
/* Background vectors (soft diagonal planes, as in the design) */
.obs-about__shape { position: absolute; z-index: 0; pointer-events: none; }
.obs-about__shape--1 { top: -10%; right: 18%; width: 46%; height: 70%; background: linear-gradient(135deg, rgba(46, 232, 96, .06), transparent 60%); transform: skewX(-32deg); }
.obs-about__shape--2 { top: 0; left: -8%; width: 40%; height: 100%; background: linear-gradient(160deg, rgba(255, 255, 255, .03), transparent 55%); transform: skewX(24deg); }
.obs-about__shape--3 { bottom: -20%; left: -6%; width: 26%; height: 60%; background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .025) 0 2px, transparent 2px 14px); transform: rotate(-12deg); border-radius: 30px; }

.obs-about__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, .6fr); gap: 18px; align-items: stretch; }
.obs-about__content { padding-right: 30px; align-self: center; }
.obs-about .obs-sec-title { font-size: clamp(32px, 3.3vw, 54px); }
.obs-about .obs-sec-title .obs-hl { display: block; }
.obs-about .obs-sec-text { font-size: 17px; }

.obs-scope .obs-about__feats { display: grid !important; gap: 16px; margin-top: 30px !important; }
.obs-about__feats li { display: flex; align-items: center; gap: 20px; }
.obs-about__ficon {
	width: 64px; height: 64px; flex-shrink: 0; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1.5px solid rgba(46, 232, 96, .55);
	background: rgba(46, 232, 96, .05);
	color: var(--obs-green); font-size: 24px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease);
}
.obs-about__ficon svg { width: 24px; height: 24px; fill: currentColor; }
.obs-about__feats li:hover .obs-about__ficon { background: var(--obs-green); color: #06100a; }
.obs-about__feats strong { display: block; font-size: 18px; font-weight: 700; line-height: 1.3; }
.obs-about__feats small { display: block; color: #cfd6d2; font-size: 15px; margin-top: 2px; }

/* Main image + video card */
.obs-about__main { position: relative; border-radius: 14px; overflow: hidden; min-height: 520px; }
.obs-about__main > img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: transform 1.2s var(--obs-ease); }
.obs-about__main:hover > img { transform: scale(1.04); }
.obs-vcard {
	all: unset; box-sizing: border-box;
	position: absolute; left: 6%; right: 6%; bottom: 24px;
	display: flex; align-items: center; gap: 18px;
	padding: 18px 22px;
	background: rgba(10, 14, 12, .82);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 12px;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
	color: #fff;
	cursor: pointer;
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease);
}
div.obs-vcard { cursor: default; }
.obs-vcard:hover { transform: translateY(-3px); border-color: rgba(46, 232, 96, .45); }
.obs-vcard:focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-vcard__play {
	position: relative;
	width: 58px; height: 58px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--obs-green); color: #06100a; font-size: 18px;
}
.obs-vcard__play i { margin-left: 3px; }
.obs-vcard__play::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--obs-green); animation: obs-pulse 2s var(--obs-ease) infinite; }
@keyframes obs-pulse { from { transform: scale(1); opacity: .8; } to { transform: scale(1.6); opacity: 0; } }
.obs-vcard__text strong { display: block; font-size: 18px; font-weight: 700; }
.obs-vcard__text small { display: block; color: #cfd6d2; font-size: 14px; margin-top: 2px; }

/* Side images */
.obs-about__side { display: grid; grid-template-rows: 1fr 1fr; gap: 18px; }
.obs-about__sidecard { position: relative; margin: 0; border-radius: 14px; overflow: hidden; min-height: 250px; }
.obs-about__sidecard > img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; transition: transform 1.2s var(--obs-ease); }
.obs-about__sidecard:hover > img { transform: scale(1.05); }
.obs-caption {
	position: absolute; left: 16px; right: 16px; bottom: 18px;
	display: flex; align-items: center; gap: 16px;
	padding: 16px 18px;
	background: #fff; color: #0b0f0d;
	border-radius: 10px;
	box-shadow: 0 10px 30px -12px rgba(0, 0, 0, .5);
}
.obs-caption__icon { font-size: 24px; color: #0b0f0d; flex-shrink: 0; }
.obs-caption__icon svg { width: 24px; height: 24px; }
.obs-caption strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; }
.obs-caption small { display: block; color: #4a524e; font-size: 13px; line-height: 1.4; }

/* Stats bar */
.obs-scope .obs-about__stats {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
	margin-top: 34px !important; padding: 30px 0 !important;
	background: rgba(255, 255, 255, .025);
	border: 1px solid rgba(255, 255, 255, .08);
	border-radius: 14px;
}
.obs-about__stats li { display: flex; align-items: center; justify-content: center; gap: 22px; padding: 4px 24px !important; border-left: 1px solid rgba(255, 255, 255, .12); }
.obs-about__stats li:first-child { border-left: 0; }
.obs-about__sicon { color: var(--obs-green); font-size: 40px; flex-shrink: 0; }
.obs-about__sicon svg { width: 40px; height: 40px; fill: currentColor; }
.obs-about__stats strong { display: block; color: var(--obs-green); font-size: 32px; font-weight: 800; line-height: 1.1; }
.obs-about__stats small { display: block; color: #e3e9e6; font-size: 17px; margin-top: 4px; }

/* Buttons row (uses the global .obs-btn system defined in global.css) */
.obs-about__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 34px; }
.obs-about__btns .obs-btn--lg { padding: 16px 30px; }

/* Handwritten signature line */
.obs-about__sign { margin: 28px 0 0; font-family: 'Caveat', cursive; font-size: 26px; line-height: 1.35; font-weight: 600; color: rgba(255, 255, 255, .5); }
.obs-about__sign span { display: block; position: relative; width: max-content; max-width: 100%; }
.obs-about__sign span::after { content: ''; position: absolute; left: 0; right: -6%; bottom: -4px; height: 8px; border-bottom: 2px solid var(--obs-green); border-radius: 50%; transform: rotate(-1deg); opacity: .7; }

/* ---------- Media layout: overlap (photos stacked over the main image + floating stats card) ---------- */
.obs-about__grid--overlap { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 50px; align-items: center; }
.obs-about__grid--overlap .obs-about__content { padding-right: 0; }
.obs-about__grid--overlap .obs-about__media { position: relative; padding-bottom: 110px; }
/* Title keeps the green word on the same line ("Built on Trust, / Driven by People") */
.obs-about__grid--overlap .obs-sec-title .obs-hl { display: inline; }
.obs-about__grid--overlap .obs-sec-title { font-size: clamp(34px, 3.6vw, 58px); }
.obs-about__grid--overlap .obs-sec-text { max-width: 540px; }

.obs-about__grid--overlap .obs-about__main { min-height: 540px; border-radius: 18px; }
/* Diagonal left edge, like the design */
.obs-about.has-angle .obs-about__grid--overlap .obs-about__main {
	-webkit-clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
	clip-path: polygon(9% 0, 100% 0, 100% 100%, 0 100%);
	border-radius: 0 18px 18px 0;
}

/* Two small photos, overlapping the bottom of the main image */
.obs-about__grid--overlap .obs-about__side {
	position: absolute; left: 4%; right: 14%; bottom: 0; z-index: 2;
	display: flex; flex-direction: row; align-items: flex-end; gap: 18px;
}
.obs-about__grid--overlap .obs-about__sidecard {
	flex: 1 1 0; min-height: 0; aspect-ratio: 4 / 3; border-radius: 14px;
	border: 5px solid var(--obs-dark, #0a0e0c);
	box-shadow: 0 26px 46px -20px rgba(0, 0, 0, .75);
	transition: transform var(--obs-speed) var(--obs-ease);
}
.obs-about__grid--overlap .obs-about__sidecard:nth-child(1) { transform: rotate(-1.5deg); }
.obs-about__grid--overlap .obs-about__sidecard:nth-child(2) { transform: rotate(1.5deg) translateY(26px); }
.obs-about__grid--overlap .obs-about__sidecard:hover { transform: none; }
/* Compact captions so they never overflow the small cards */
.obs-about__grid--overlap .obs-caption { left: 10px; right: 10px; bottom: 10px; padding: 10px 12px; gap: 10px; border-radius: 8px; }
.obs-about__grid--overlap .obs-caption__icon { font-size: 17px; }
.obs-about__grid--overlap .obs-caption__icon svg { width: 17px; height: 17px; }
.obs-about__grid--overlap .obs-caption strong { font-size: 13.5px; }
.obs-about__grid--overlap .obs-caption small { font-size: 11.5px; }

/* ---------- Media layout: classic (original side-by-side columns) ---------- */
.obs-about__grid--classic { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, .6fr); align-items: stretch; }
.obs-about__grid--classic .obs-about__content { padding-right: 30px; align-self: center; }
.obs-about__grid--classic .obs-about__media { display: contents; }

/* Floating stats card (top-right corner of the media block) */
.obs-scope .obs-about__statscard {
	position: absolute; top: 26px; right: 26px; z-index: 3; width: clamp(224px, 21vw, 272px);
	display: flex !important; flex-direction: column; margin: 0 !important; padding: 6px 24px !important;
	background: rgba(8, 20, 12, .9); border: 1px solid rgba(255, 255, 255, .12); border-radius: 16px;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 24px 44px -18px rgba(0, 0, 0, .6);
}
.obs-about__statscard li { display: flex; align-items: center; gap: 14px; padding: 16px 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.obs-about__statscard li:last-child { border-bottom: 0; }
.obs-about__statscard .obs-about__sicon {
	width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%; font-size: 18px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: var(--obs-green);
}
.obs-about__statscard .obs-about__sicon svg { width: 18px; height: 18px; fill: currentColor; }
.obs-about__statscard strong { display: block; color: var(--obs-green); font-size: 21px; font-weight: 800; line-height: 1.15; }
.obs-about__statscard small { display: block; color: #e3e9e6; font-size: 13.5px; line-height: 1.3; margin-top: 2px; }

/* ---------- Video lightbox ---------- */
.obs-lightbox { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0, 0, 0, .85); opacity: 0; transition: opacity .3s var(--obs-ease); }
.obs-lightbox.is-open { opacity: 1; }
.obs-lightbox__box { position: relative; width: min(1100px, 100%); aspect-ratio: 16 / 9; background: #000; border-radius: 12px; overflow: hidden; transform: scale(.96); transition: transform .3s var(--obs-ease); }
.obs-lightbox.is-open .obs-lightbox__box { transform: scale(1); }
.obs-lightbox iframe, .obs-lightbox video { width: 100%; height: 100%; border: 0; display: block; }
.obs-lightbox__close {
	all: unset; position: absolute; top: 16px; right: 16px; z-index: 2;
	width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .12); color: #fff; font-size: 18px; cursor: pointer;
	transition: background-color .3s, transform .3s;
}
.obs-lightbox__close:hover { background: var(--obs-green); color: #06100a; transform: rotate(90deg); }
.obs-lightbox__close:focus-visible { outline: 2px solid var(--obs-green); outline-offset: 2px; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1360px) {
	.obs-trust.has-house .obs-wrap { padding-right: 32px; }
	.obs-trust__house { opacity: .15; }
	.obs-tfeat { padding: 0 18px !important; gap: 16px; }
	.obs-about__grid--classic { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.obs-about__grid--classic .obs-about__content { grid-column: 1 / -1; padding-right: 0; }
	.obs-about__grid--classic .obs-about__side { grid-template-rows: none; grid-template-columns: 1fr; }
	.obs-about__grid--overlap { gap: 36px; }
	.obs-about__grid--overlap .obs-about__side { left: -4%; width: 76%; }
	.obs-scope .obs-about__statscard { width: 210px; }
}
@media (max-width: 1100px) {
	.obs-hero__grid { grid-template-columns: 1fr; gap: 44px; }
	.obs-quote { max-width: 620px; }
	.obs-trust__top { grid-template-columns: 1fr; gap: 34px; }
	.obs-trust__head { padding-right: 0; border-right: 0; }
	.obs-scope .obs-trust__feats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 30px; }
	.obs-tfeat:nth-child(odd) { padding-left: 0 !important; border-left: 0; }
	.obs-scope .obs-about__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 26px; }
	.obs-about__stats li:nth-child(odd) { border-left: 0; }
	.obs-about__stats li { justify-content: flex-start; }

	.obs-about__grid--overlap { grid-template-columns: 1fr; }
	.obs-about__grid--overlap .obs-about__main { min-height: 420px; }
	.obs-about__grid--overlap .obs-about__side {
		position: static; width: 100%; margin-top: 18px; transform: none;
	}
	.obs-about__grid--overlap .obs-about__sidecard:nth-child(2) { margin-top: 0; }
	.obs-scope .obs-about__statscard {
		position: static; width: 100%; margin-top: 18px !important; flex-direction: row;
	}
	.obs-about__statscard li { flex: 1; flex-direction: column; text-align: center; gap: 8px; border-bottom: 0; border-left: 1px solid rgba(255, 255, 255, .1); }
	.obs-about__statscard li:first-child { border-left: 0; }
}
@media (max-width: 767px) {
	.obs-wrap { padding: 0 18px; }
	.obs-hero { min-height: 0; padding: 60px 0; }
	.obs-hero::before { background: linear-gradient(180deg, rgba(5, 8, 6, .55) 0%, rgba(5, 8, 6, .85) 60%, rgba(5, 8, 6, .95) 100%); }
	.obs-scope .obs-sec-text { font-size: 16px; }
	.obs-scope .obs-hero__badges { flex-wrap: nowrap; }
	.obs-hero__badges li { flex: 1; flex-direction: column; text-align: center; padding: 0 8px !important; font-size: 13px; gap: 8px; }
	.obs-hero__btns .obs-btn { flex: 1 1 100%; min-width: 0; }
	.obs-scope .obs-hero__stats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.obs-hero__stats li { padding: 0 12px !important; }
	.obs-hero__stats strong { font-size: 24px; flex-wrap: wrap; gap: 4px; }
	.obs-hero__stats span { font-size: 13px; line-height: 1.35; }
	.obs-stars i { font-size: 11px; }
	.obs-scope .obs-quote__ticks { justify-content: center; }
	.obs-quote { padding: 22px; }
	.obs-quote__icon { font-size: 34px; }
	.obs-scope .obs-quote__title { font-size: 21px; }

	.obs-trust { padding: 50px 0; }
	.obs-trust__house { display: none; }
	.obs-trust { --obs-logo-w: 170px; }
	.obs-logo { height: 100px; padding: 14px; margin-right: 12px; }
	.obs-logo img { max-height: 48px; }
	.obs-scope .obs-trust__feats { grid-template-columns: 1fr; row-gap: 22px; margin-top: 40px !important; }
	.obs-tfeat { padding: 0 !important; border-left: 0; }
	.obs-tfeat__icon { width: 54px; height: 54px; font-size: 22px; }
	.obs-tfeat__body strong { font-size: 18px; }

	.obs-about { padding: 56px 0; }
	.obs-about__grid--classic { grid-template-columns: 1fr; }
	.obs-about__main { min-height: 380px; }
	.obs-about__grid--classic .obs-about__side { grid-template-columns: 1fr 1fr; gap: 12px; }
	.obs-about__grid--overlap .obs-about__side { flex-direction: column; }
	.obs-about__grid--overlap .obs-about__sidecard:nth-child(2) { margin-top: 0; }
	.obs-about__sidecard { min-height: 220px; }
	.obs-caption { left: 8px; right: 8px; bottom: 8px; padding: 10px; gap: 10px; }
	.obs-caption__icon { font-size: 18px; }
	.obs-caption strong { font-size: 14px; }
	.obs-caption small { font-size: 12px; }
	.obs-vcard { padding: 14px; gap: 14px; }
	.obs-vcard__play { width: 48px; height: 48px; }
	.obs-scope .obs-about__stats { grid-template-columns: 1fr 1fr; padding: 22px 0 !important; }
	.obs-about__stats li { flex-direction: column; text-align: center; gap: 10px; padding: 4px 10px !important; justify-content: center; }
	.obs-about__sicon { font-size: 30px; }
	.obs-about__stats strong { font-size: 24px; }
	.obs-about__stats small { font-size: 14px; }

	.obs-about__btns { gap: 12px; }
	.obs-about__btns .obs-btn { flex: 1 1 100%; }
	.obs-about__sign { font-size: 22px; }
	.obs-scope .obs-about__statscard { flex-direction: column; }
	.obs-about__statscard li { flex-direction: row; text-align: left; border-left: 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .1); }
	.obs-about__statscard li:last-child { border-bottom: 0; }
}
@media (max-width: 420px) {
	.obs-about__grid--classic .obs-about__side { grid-template-columns: 1fr; }
	.obs-hero__stats li { padding: 0 8px !important; }
}

@media (prefers-reduced-motion: reduce) {
	.obs-marquee__track { animation-duration: 120s !important; }
	.obs-vcard__play::after { animation: none; }
}

/* =========================================================
   Shared additions for v1.4 sections
   ========================================================= */
.obs-why, .obs-svc, .obs-sol, .obs-proj { position: relative; width: 100%; overflow: hidden; isolation: isolate; font-size: 16px; line-height: 1.6; }
.obs-why *, .obs-svc *, .obs-sol *, .obs-proj * { box-sizing: border-box; }
:where(.obs-why, .obs-svc, .obs-sol, .obs-proj, .obs-process, .obs-emg, .obs-areas) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-why, .obs-svc, .obs-sol, .obs-proj, .obs-process, .obs-emg, .obs-areas) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-why, .obs-svc, .obs-sol, .obs-proj, .obs-process, .obs-emg, .obs-areas) :where(li)::before { content: none !important; }
.obs-why :is(h2, h3, p), .obs-svc :is(h2, h3, p), .obs-sol :is(h2, h3, p), .obs-proj :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-why img, .obs-svc img, .obs-sol img, .obs-proj img { max-width: 100%; border: 0; box-shadow: none; }
.obs-why :is(a, button):focus, .obs-svc :is(a, button):focus, .obs-sol :is(a, button):focus, .obs-proj :is(a, button):focus { outline: none !important; }
.obs-why :is(a, button):focus-visible, .obs-svc :is(a, button):focus-visible, .obs-sol :is(a, button):focus-visible, .obs-proj :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

/* One sub-heading style everywhere: pill with a green dot.
   Light sections get a soft grey pill, dark sections a translucent one. */
.obs-trust .obs-pill, .obs-svc .obs-pill, .obs-sol .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-hero .obs-pill, .obs-about .obs-pill, .obs-why .obs-pill, .obs-proj .obs-pill { background: rgba(255, 255, 255, .07); color: #e3e9e6; }

/* Centred heading */
.obs-center { text-align: center; }
.obs-center .obs-sec-text { margin-left: auto; margin-right: auto; max-width: 760px; }

/* Light-section heading colours */
.obs-svc .obs-sec-title, .obs-sol .obs-sec-title { color: #0b0f0d; }
.obs-svc .obs-sec-text, .obs-sol .obs-sec-text { color: #4a524e; }

/* Image wrappers: whatever image is uploaded fills the shape */
.obs-cover { position: relative; overflow: hidden; }
.obs-why__media img, .obs-svc__img img, .obs-scard__img img, .obs-solcard__img img, .obs-pcard__img img {
	width: 100%; height: 100% !important; object-fit: cover; display: block;
	transition: transform 1s var(--obs-ease);
}

/* =========================================================
   WHY CHOOSE US
   ========================================================= */
.obs-why { padding: 80px 0; background: #0a0e0c; color: #fff; }
.obs-why__line { position: absolute; z-index: 0; height: 2px; width: 340px; background: linear-gradient(90deg, transparent, rgba(46, 232, 96, .7), transparent); transform: rotate(-38deg); pointer-events: none; }
.obs-why__line--1 { top: 60px; left: -110px; }
.obs-why__line--2 { top: 70px; right: -60px; opacity: .5; }

/* Right image: slanted shape with a green edge.
   The wrapper is green and clipped; the image is clipped with the same
   shape but inset 2px, so a thin green edge shows on the slanted sides. */
.obs-why__glow {
	position: absolute; z-index: 1; top: 12%; bottom: 3%; right: 0; width: 40%;
	filter: drop-shadow(0 0 10px rgba(46, 232, 96, .55));
	pointer-events: none;
}
.obs-why__media {
	position: absolute; inset: 0;
	background: var(--obs-green);
	-webkit-clip-path: polygon(9% 12%, 100% 0, 100% 100%, 0 82%); clip-path: polygon(9% 12%, 100% 0, 100% 100%, 0 82%);
}
.obs-why__media img {
	position: absolute; top: 3px; right: 0; bottom: 3px; left: 3px;
	width: calc(100% - 3px); height: calc(100% - 6px) !important;
	-webkit-clip-path: polygon(9% 12%, 100% 0, 100% 100%, 0 82%); clip-path: polygon(9% 12%, 100% 0, 100% 100%, 0 82%);
}

.obs-why__content { position: relative; z-index: 3; width: 60%; padding-right: 30px; }
.obs-why .obs-sec-title { font-size: clamp(32px, 3.4vw, 54px); margin: 20px 0 18px; }
.obs-why .obs-sec-title .obs-hl { display: block; }
.obs-why .obs-sec-text { max-width: 680px; }

.obs-scope .obs-why__cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 32px !important; }
.obs-why .obs-wcard {
	position: relative;
	display: flex; flex-direction: column;
	padding: 18px !important;
	background: linear-gradient(180deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .015));
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 12px;
	transition: border-color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease), background-color var(--obs-speed) var(--obs-ease);
}
.obs-wcard:hover { border-color: rgba(46, 232, 96, .5); transform: translateY(-4px); }
.obs-wcard__icon {
	width: 46px; height: 46px; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid rgba(255, 255, 255, .18); background: rgba(0, 0, 0, .3);
	color: var(--obs-green); font-size: 20px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease);
}
.obs-wcard__icon svg { width: 20px; height: 20px; fill: currentColor; }
.obs-wcard:hover .obs-wcard__icon { background: var(--obs-green); color: #06100a; border-color: var(--obs-green); }
.obs-scope .obs-wcard__title { margin: 16px 0 6px; color: #fff; font-size: 17px; font-weight: 700; line-height: 1.3; }
.obs-wcard__foot { display: flex; align-items: flex-end; gap: 12px; margin-top: auto; }
.obs-wcard__foot p { flex: 1; color: #c5cdc9; font-size: 13.5px; line-height: 1.5; }
.obs-wcard__arrow {
	width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: #fff; font-size: 13px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease);
}
.obs-wcard:hover .obs-wcard__arrow { background: var(--obs-green); color: #06100a; transform: translateX(2px); }

/* =========================================================
   SERVICES
   ========================================================= */
.obs-svc { padding: 70px 0; background: #f6f7f6; color: #0b0f0d; }
.obs-svc__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 40px; align-items: center; }
.obs-svc .obs-sec-title { font-size: clamp(30px, 3.1vw, 50px); margin: 20px 0 18px; }
.obs-svc .obs-sec-text { max-width: 540px; }

.obs-scope .obs-svc__mini { display: flex !important; flex-wrap: wrap; gap: 14px 26px; margin: 30px 0 34px !important; }
.obs-svc__mini li { display: flex; align-items: center; gap: 12px; max-width: 170px; color: #1a1f1c; font-size: 14px; font-weight: 500; line-height: 1.35; }
.obs-svc__mini-ic {
	width: 42px; height: 42px; flex-shrink: 0; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .18); color: #12a53a; font-size: 18px;
}
.obs-svc__mini-ic svg { width: 18px; height: 18px; fill: currentColor; }

/* Visual collage */
.obs-svc__visual { position: relative; min-height: 470px; }
.obs-svc__img {
	position: absolute; left: 4%; top: 0; width: 74%; height: 84%;
	-webkit-clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%); clip-path: polygon(20% 0, 100% 0, 80% 100%, 0 100%);   /* parallelogram */
	border-radius: 18px;
	overflow: hidden;
}
.obs-svc__img img { position: absolute; inset: 0; }
.obs-svc__visual:hover .obs-svc__img img { transform: scale(1.05); }
.obs-svc__slash {                                         /* green brush slash */
	position: absolute; left: 0; top: 34%; width: 16px; height: 30%;
	background: var(--obs-green);
	border-radius: 30px 6px 30px 6px;
	transform: rotate(32deg);
}
.obs-svc__frame {                                         /* thin outline parallelogram */
	position: absolute; left: 30%; bottom: 0; width: 34%; height: 40%;
	border: 1.5px solid rgba(0, 0, 0, .14);
	border-radius: 10px;
	transform: skewX(-28deg);
}
.obs-svc__card {
	position: absolute; right: 0; top: 10%; width: 52%;
	padding: 34px 30px 34px 60px;
	background: #10201a;
	color: #fff;
	-webkit-clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%); clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%);
	border-radius: 16px;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .5);
}
.obs-svc__card-in { max-width: 260px; }
.obs-svc__card-ic { color: var(--obs-green); font-size: 38px; }
.obs-svc__card-ic svg { width: 38px; height: 38px; fill: currentColor; }
.obs-scope .obs-svc__card h3 { margin: 12px 0 14px; padding-bottom: 14px; position: relative; color: #fff; font-size: 21px; font-weight: 700; line-height: 1.3; }
.obs-scope .obs-svc__card h3::after { content: ''; position: absolute; left: 0; bottom: 0; width: 38px; height: 2px; background: var(--obs-green); }
.obs-svc__card p { color: #d5ddd9; font-size: 14px; line-height: 1.55; }
.obs-scope .obs-svc__tagline {
	position: absolute; right: 2%; bottom: 6%;
	font-family: 'Obs Hand', 'Segoe Script', 'Bradley Hand', cursive !important; font-weight: 600 !important; letter-spacing: 0 !important;
	font-size: 30px; line-height: 1.15; color: #0b0f0d;
	transform: rotate(-8deg);
	text-align: left;
}
.obs-svc__tagline svg { display: block; width: 100%; height: 14px; margin-top: 4px; color: var(--obs-green); }

/* Cards */
.obs-scope .obs-svc__cards { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 18px; margin-top: 50px !important; }
.obs-scard {
	display: flex; flex-direction: column;
	background: #fff;
	border-radius: 12px; overflow: hidden;
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .28);
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease);
}
.obs-scard:hover { transform: translateY(-6px); box-shadow: 0 24px 40px -22px rgba(0, 0, 0, .4); }
.obs-scard__img { position: relative; aspect-ratio: 16 / 11; overflow: hidden; }
.obs-scard__img img { position: absolute; inset: 0; }
.obs-scard:hover .obs-scard__img img { transform: scale(1.07); }
.obs-scard__body { display: flex; flex-direction: column; flex: 1; padding: 20px 20px 22px; }
.obs-scard__icon { color: #12a53a; font-size: 26px; }
.obs-scard__icon svg { width: 26px; height: 26px; fill: currentColor; }
.obs-scope .obs-scard__title { margin: 14px 0 10px; color: #0b0f0d; font-size: 17px; font-weight: 700; line-height: 1.3; }
.obs-scard__body p { color: #59615d; font-size: 14px; line-height: 1.55; margin-bottom: 18px; }
.obs-scard__link, .obs-solcard__link {
	display: inline-flex; align-items: center; gap: 8px; margin-top: auto;
	color: #12a53a !important; font-size: 14px; font-weight: 600; text-decoration: none !important;
	transition: gap var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease);
}
.obs-scard__link:hover, .obs-solcard__link:hover { gap: 12px; color: #0b0f0d !important; }

/* =========================================================
   SOLUTIONS
   ========================================================= */
.obs-sol { padding: 70px 0; background: #f4f6f5; color: #0b0f0d; }
.obs-sol__bg { position: absolute; z-index: 0; top: 0; width: 22%; height: 100%; pointer-events: none; }
.obs-sol__bg--l { left: 0; background: linear-gradient(120deg, rgba(46, 232, 96, .09), transparent 45%); -webkit-clip-path: polygon(0 0, 50% 0, 0 70%); clip-path: polygon(0 0, 50% 0, 0 70%); }
.obs-sol__bg--r { right: 0; background: linear-gradient(240deg, rgba(46, 232, 96, .1), transparent 45%); -webkit-clip-path: polygon(100% 0, 100% 50%, 30% 0); clip-path: polygon(100% 0, 100% 50%, 30% 0); }
.obs-sol .obs-sec-title { font-size: clamp(32px, 3.3vw, 52px); margin: 18px 0 14px; }
.obs-sol .obs-sec-title .obs-hl { display: block; }
.obs-sol__rule { display: block; width: 130px; height: 3px; margin: 18px auto 0; border-radius: 3px; background: linear-gradient(90deg, transparent, var(--obs-green), transparent); }

.obs-scope .obs-sol__cards { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 30px !important; }
.obs-solcard {
	display: grid; grid-template-columns: 52% 1fr; align-items: stretch;
	min-height: 240px;
	background: #fff;
	border-radius: 14px; overflow: hidden;
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .25);
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease);
}
.obs-solcard:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -22px rgba(0, 0, 0, .35); }
.obs-solcard__img { position: relative; overflow: hidden; -webkit-clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%); clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%); }
.obs-solcard__img img { position: absolute; inset: 0; }
.obs-solcard:hover .obs-solcard__img img { transform: scale(1.06); }
.obs-solcard__img::after {                      /* green slanted edge strip */
	content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 22%;
	background: linear-gradient(180deg, var(--obs-green), rgba(46, 232, 96, .55));
	-webkit-clip-path: polygon(90% 0, 100% 0, 54% 100%, 44% 100%); clip-path: polygon(90% 0, 100% 0, 54% 100%, 44% 100%);
}
.obs-solcard__body { display: flex; flex-direction: column; justify-content: center; padding: 26px 30px 26px 20px; }
.obs-solcard__icon { color: #0b0f0d; font-size: 40px; }
.obs-solcard__icon svg { width: 40px; height: 40px; }
.obs-solcard__icon i { background: linear-gradient(135deg, #0b0f0d 55%, var(--obs-green) 56%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.obs-scope .obs-solcard h3 { margin: 14px 0 10px; color: #0b0f0d; font-size: 21px; font-weight: 700; line-height: 1.3; }
.obs-solcard p { color: #59615d; font-size: 15px; line-height: 1.55; margin-bottom: 16px; }
.obs-solcard__link { font-size: 16px; margin-top: 0; }

.obs-sol__bar {
	display: flex; align-items: center; gap: 26px;
	margin-top: 22px; padding: 18px 24px 18px 32px;
	background: #fff; border-radius: 14px;
	box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .25);
}
.obs-scope .obs-sol__feats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); flex: 1; }
.obs-sol__feats li { display: flex; align-items: center; gap: 22px; padding: 0 28px !important; border-left: 1px solid rgba(0, 0, 0, .1); }
.obs-sol__feats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-sol__ficon {
	width: 72px; height: 72px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: #0b0f0d; font-size: 28px;
}
.obs-sol__ficon svg { width: 28px; height: 28px; }
.obs-sol__feats strong { display: block; font-size: 16px; font-weight: 700; color: #0b0f0d; }
.obs-sol__feats small { display: block; color: #59615d; font-size: 14px; line-height: 1.45; margin-top: 2px; }
.obs-sol__btns { display: grid; gap: 10px; flex-shrink: 0; padding-left: 26px; border-left: 1px solid rgba(0, 0, 0, .1); }
.obs-sol__btns .obs-btn { min-width: 250px; }

/* =========================================================
   PROJECTS
   ========================================================= */
.obs-proj { padding: 70px 0; background: #0b0f0d; color: #fff; }
.obs-proj__line { position: absolute; z-index: 0; top: -40px; width: 1px; height: 360px; background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .18), transparent); transform: rotate(40deg); pointer-events: none; }
.obs-proj__line--l { left: 120px; }
.obs-proj__line--r { right: 160px; }
.obs-proj .obs-sec-title { font-size: clamp(32px, 3.4vw, 56px); margin: 18px 0 14px; }

.obs-scope .obs-proj__cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; align-items: center; margin-top: 40px !important; }
.obs-pcard {
	display: flex; flex-direction: column;
	background: #141a17;
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 14px; overflow: hidden;
	transition: transform .45s var(--obs-ease), border-color .45s var(--obs-ease), box-shadow .45s var(--obs-ease);
}
/* Highlighted card: green border, lifted. With hover-follow, the hovered card takes over. */
.obs-pcard.is-featured,
.obs-proj.is-hover-feature .obs-proj__cards:hover .obs-pcard:hover { border-color: var(--obs-green); transform: translateY(-14px); box-shadow: 0 30px 60px -30px rgba(46, 232, 96, .45); }
.obs-proj.is-hover-feature .obs-proj__cards:hover .obs-pcard.is-featured:not(:hover) { border-color: rgba(255, 255, 255, .1); transform: none; box-shadow: none; }
.obs-pcard__img { position: relative; aspect-ratio: 16 / 8.2; overflow: hidden; }
.obs-pcard__img img { position: absolute; inset: 0; }
.obs-pcard:hover .obs-pcard__img img { transform: scale(1.06); }
.obs-pcard__loc {
	position: absolute; left: 14px; top: 14px;
	display: inline-flex; align-items: center; gap: 6px;
	padding: 5px 11px; border-radius: 30px;
	background: rgba(10, 14, 12, .78); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	color: #fff; font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; line-height: 1.4;
}
.obs-pcard__loc i { font-size: 10px; }
.obs-pcard__body { padding: 24px 30px 28px; }
.obs-pcard__cat {
	display: inline-block; padding: 3px 10px; border-radius: 30px;
	border: 1px solid rgba(46, 232, 96, .6);
	color: var(--obs-green); font-size: 9.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.5;
}
.obs-scope .obs-pcard h3 { margin: 16px 0 10px; color: #fff; font-size: 25px; font-weight: 700; line-height: 1.28; }
.obs-pcard p { color: #aab3ae; font-size: 16px; line-height: 1.6; }
.obs-pcard__link {
	position: relative;
	display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; padding-bottom: 8px;
	color: #fff !important; font-size: 17px; font-weight: 600; text-decoration: none !important;
}
.obs-pcard__link::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--obs-green); transform-origin: left; transition: transform var(--obs-speed) var(--obs-ease); }
.obs-pcard__link i { color: var(--obs-green); transition: transform var(--obs-speed) var(--obs-ease); }
.obs-pcard__link:hover i { transform: translateX(4px); }
.obs-pcard__link:hover::after { transform: scaleX(.7); }

.obs-scope .obs-proj__stats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 44px !important; }
.obs-proj__stats li { display: flex; align-items: center; gap: 22px; padding: 0 26px !important; border-left: 1px solid rgba(255, 255, 255, .12); }
.obs-proj__stats li:first-child { padding-left: 20px !important; border-left: 0; }
.obs-proj__sicon {
	width: 72px; height: 72px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1.5px solid rgba(255, 255, 255, .22);
	color: var(--obs-green); font-size: 26px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease);
}
.obs-proj__sicon svg { width: 26px; height: 26px; fill: currentColor; }
.obs-proj__stats li:hover .obs-proj__sicon { background: var(--obs-green); color: #06100a; border-color: var(--obs-green); }
.obs-proj__stats strong { display: block; color: #fff; font-size: 19px; font-weight: 700; line-height: 1.3; }
.obs-proj__stats small { display: block; color: #aab3ae; font-size: 15px; }

/* =========================================================
   Responsive (v1.4 sections)
   ========================================================= */
@media (max-width: 1360px) {
	.obs-scope .obs-svc__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.obs-sol__bar { flex-direction: column; align-items: stretch; }
	.obs-sol__btns { padding-left: 0; border-left: 0; grid-template-columns: 1fr 1fr; }
	.obs-proj__stats li { gap: 14px; padding: 0 16px !important; }
	.obs-proj__sicon { width: 58px; height: 58px; font-size: 22px; }
}
@media (max-width: 1100px) {
	.obs-why { display: flex; flex-direction: column; }
	.obs-why__glow { position: relative; order: 2; top: auto; bottom: auto; width: 100%; height: 340px; margin-top: 40px; }
	.obs-why__media, .obs-why__media img { -webkit-clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%); clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%); }
	.obs-why__content { width: 100%; padding-right: 0; }
	.obs-svc__top { grid-template-columns: 1fr; }
	.obs-svc__visual { min-height: 440px; max-width: 720px; width: 100%; margin: 0 auto; }
	.obs-scope .obs-sol__cards { grid-template-columns: 1fr; }
	.obs-scope .obs-proj__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
	.obs-scope .obs-proj__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
	.obs-proj__stats li:nth-child(odd) { border-left: 0; padding-left: 0 !important; }
}
@media (max-width: 767px) {
	.obs-why, .obs-svc, .obs-sol, .obs-proj { padding: 54px 0; }
	.obs-scope .obs-why__cards { grid-template-columns: 1fr 1fr !important; gap: 12px; }
	.obs-wcard { padding: 14px !important; }
	.obs-scope .obs-wcard__title { font-size: 15px; }
	.obs-wcard__foot { flex-direction: column; align-items: flex-start; }
	.obs-why__glow { height: 240px; }

	.obs-scope .obs-svc__mini { display: grid !important; grid-template-columns: 1fr 1fr; }
	.obs-svc__visual { min-height: 0; display: grid; gap: 0; }
	.obs-svc__img { position: relative; left: auto; top: auto; width: 100%; height: 260px; -webkit-clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%); clip-path: polygon(14% 0, 100% 0, 86% 100%, 0 100%); }
	.obs-svc__card { position: relative; right: auto; top: auto; width: 92%; margin: -40px 0 0 auto; padding: 24px 26px 24px 40px; }
	.obs-svc__slash, .obs-svc__frame { display: none; }
	.obs-svc__tagline { position: relative; right: auto; bottom: auto; margin: 22px auto 0; font-size: 26px; }
	.obs-scope .obs-svc__cards { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 36px !important; }
	.obs-scard__body { padding: 14px; }
	.obs-scope .obs-scard__title { font-size: 15px; }
	.obs-scard__body p { font-size: 13px; }

	.obs-solcard { grid-template-columns: 1fr; }
	.obs-solcard__img { aspect-ratio: 16 / 9; -webkit-clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%); clip-path: polygon(0 0, 100% 0, 100% 88%, 0 100%); }
	.obs-solcard__img::after { display: none; }
	.obs-solcard__body { padding: 20px 22px 24px; }
	.obs-scope .obs-sol__feats { grid-template-columns: 1fr; row-gap: 16px; }
	.obs-sol__feats li { padding: 0 !important; border-left: 0; }
	.obs-sol__ficon { width: 56px; height: 56px; font-size: 22px; }
	.obs-sol__bar { padding: 20px; }
	.obs-sol__btns { grid-template-columns: 1fr; }
	.obs-sol__btns .obs-btn { min-width: 0; width: 100%; }

	.obs-scope .obs-proj__cards { grid-template-columns: 1fr; gap: 18px; }
	.obs-pcard.is-featured, .obs-proj.is-hover-feature .obs-proj__cards:hover .obs-pcard:hover { transform: none; }
	.obs-pcard__body { padding: 20px 22px 24px; }
	.obs-scope .obs-pcard h3 { font-size: 21px; }
	.obs-scope .obs-proj__stats { grid-template-columns: 1fr; row-gap: 18px; }
	.obs-proj__stats li { border-left: 0; padding: 0 !important; }
}
@media (max-width: 420px) {
	.obs-scope .obs-why__cards, .obs-scope .obs-svc__cards { grid-template-columns: 1fr !important; }
}

/* =========================================================
   v1.5 sections: Process, Emergency CTA, Areas & Map
   ========================================================= */
.obs-process, .obs-emg, .obs-areas { position: relative; width: 100%; overflow: hidden; isolation: isolate; font-size: 16px; line-height: 1.6; }
.obs-process *, .obs-emg *, .obs-areas * { box-sizing: border-box; }
.obs-process :is(h2, h3, p), .obs-emg :is(h2, h3, p), .obs-areas :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-process img, .obs-emg img, .obs-areas img { max-width: 100%; border: 0; box-shadow: none; }
.obs-process :is(a, button, input):focus, .obs-emg :is(a, button):focus, .obs-areas :is(a, button, input):focus { outline: none !important; }
.obs-process :is(a, button):focus-visible, .obs-emg :is(a, button):focus-visible, .obs-areas :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

.obs-process .obs-pill, .obs-areas .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-emg .obs-pill { background: rgba(46, 232, 96, .1); color: var(--obs-green); border: 1px solid rgba(46, 232, 96, .4); }
.obs-process .obs-sec-title, .obs-areas .obs-sec-title { color: #0b0f0d; }
.obs-process .obs-sec-text, .obs-areas .obs-sec-text { color: #4a524e; }

/* ---------- PROCESS ---------- */
.obs-process { padding: 70px 0 80px; background: #f6f7f6; color: #0b0f0d; }
.obs-process__shape { position: absolute; z-index: 0; right: -6%; top: 18%; width: 30%; height: 80%; background: linear-gradient(160deg, rgba(46, 232, 96, .08), transparent 60%); -webkit-clip-path: polygon(100% 0, 100% 100%, 0 100%); clip-path: polygon(100% 0, 100% 100%, 0 100%); pointer-events: none; }
.obs-process__img {
	position: absolute; z-index: 0; right: 0; bottom: 0; width: 34%; height: 58%;
	-webkit-clip-path: polygon(46% 0, 100% 0, 100% 100%, 0 100%); clip-path: polygon(46% 0, 100% 0, 100% 100%, 0 100%);
}
.obs-process__img img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.obs-process .obs-sec-title { font-size: clamp(32px, 3.6vw, 60px); margin: 18px 0 14px; }

.obs-scope .obs-steps { position: relative; z-index: 1; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 52px; margin-top: 46px !important; counter-reset: none; }
.obs-step {
	position: relative;
	padding: 30px 30px 32px !important;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .06);
	border-radius: 16px;
	box-shadow: 0 14px 34px -22px rgba(0, 0, 0, .3);
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease);
}
.obs-step:hover { transform: translateY(-6px); border-color: rgba(46, 232, 96, .45); box-shadow: 0 26px 44px -24px rgba(0, 0, 0, .35); }
.obs-step:not(:last-child)::after {             /* arrow between cards */
	content: '\f061'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
	position: absolute; top: 50%; right: -38px; transform: translateY(-50%);
	color: #12a53a; font-size: 20px;
}
.obs-step__top { display: flex; align-items: flex-start; justify-content: space-between; }
.obs-step__icon {
	width: 76px; height: 76px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: #12a53a; font-size: 30px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease);
}
.obs-step__icon svg { width: 30px; height: 30px; fill: currentColor; }
.obs-step:hover .obs-step__icon { background: var(--obs-green); color: #06100a; }
.obs-step__num {
	width: 40px; height: 40px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: #12a53a; font-size: 15px; font-weight: 700;
}
.obs-scope .obs-step h3 { margin: 22px 0 10px; color: #0b0f0d; font-size: 26px; font-weight: 700; line-height: 1.2; }
.obs-step p { color: #59615d; font-size: 17px; line-height: 1.55; }

.obs-scope .obs-process__feats { position: relative; z-index: 1; display: flex !important; flex-wrap: wrap; margin-top: 60px !important; max-width: 72%; }
.obs-process__feats li { flex: 1; display: flex; align-items: center; gap: 20px; padding: 0 28px !important; border-left: 1px solid rgba(0, 0, 0, .1); }
.obs-process__feats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-process__ficon {
	width: 72px; height: 72px; flex-shrink: 0; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: #12a53a; font-size: 28px;
}
.obs-process__ficon svg { width: 28px; height: 28px; fill: currentColor; }
.obs-process__feats strong { display: block; color: #0b0f0d; font-size: 19px; font-weight: 700; line-height: 1.3; }
.obs-process__feats small { display: block; color: #59615d; font-size: 15px; line-height: 1.55; margin-top: 4px; }

/* ---------- EMERGENCY CTA ---------- */
.obs-emg {
	--obs-emg-overlay: 92%;
	padding: 70px 0;
	background-color: #050806; background-size: cover; background-position: right center; background-repeat: no-repeat;
	color: #fff;
}
.obs-emg.is-rounded { border-radius: 18px; }
.obs-emg::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: linear-gradient(90deg, rgba(5, 8, 6, calc(var(--obs-emg-overlay) / 100%)) 0%, rgba(5, 8, 6, .82) 35%, rgba(5, 8, 6, .2) 65%, rgba(5, 8, 6, .1) 100%);
}
.obs-emg__grid { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; }
.obs-emg__content { max-width: 680px; }
.obs-emg .obs-sec-title { font-size: clamp(34px, 4vw, 64px); margin: 22px 0 18px; }
.obs-emg .obs-sec-title .obs-hl { display: block; }
.obs-emg .obs-sec-text { max-width: 560px; color: #dbe2de; }
.obs-emg__btns { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 34px; }
.obs-emg__btns .obs-btn--outline { border: 1.5px solid rgba(255, 255, 255, .45); background: rgba(10, 14, 12, .5); }
.obs-btn--glow { box-shadow: 0 0 30px -4px rgba(46, 232, 96, .6); }
.obs-btn--glow:hover { box-shadow: 0 0 40px -2px rgba(46, 232, 96, .8); }
.obs-scope .obs-emg__feats { display: flex !important; flex-wrap: wrap; row-gap: 14px; margin-top: 34px !important; }
@media (min-width: 1101px) { .obs-scope .obs-emg__feats { flex-wrap: nowrap; } .obs-emg__feats li { white-space: nowrap; } }
.obs-emg__feats li { display: flex; align-items: center; gap: 14px; padding: 0 22px !important; border-left: 1px solid rgba(255, 255, 255, .15); }
.obs-emg__feats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-emg__ficon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .14); color: var(--obs-green); font-size: 18px; }
.obs-emg__ficon svg { width: 18px; height: 18px; fill: currentColor; }
.obs-emg__feats strong { display: block; font-size: 15px; font-weight: 700; }
.obs-emg__feats small { display: block; color: #c5cdc9; font-size: 12.5px; }

.obs-emg__card {
	display: flex; align-items: center; gap: 18px; flex-shrink: 0;
	padding: 22px 26px;
	background: rgba(20, 26, 23, .78);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .12);
	border-radius: 14px;
	color: #fff !important; text-decoration: none !important;
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease);
}
a.obs-emg__card:hover { transform: translateY(-3px); border-color: rgba(46, 232, 96, .5); }
.obs-emg__ring { position: relative; width: 64px; height: 64px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 2px solid var(--obs-green); background: rgba(46, 232, 96, .12); color: var(--obs-green); font-size: 24px; box-shadow: 0 0 22px -4px rgba(46, 232, 96, .7); }
.obs-emg__ring::after { content: ''; position: absolute; inset: -2px; border-radius: 50%; border: 2px solid var(--obs-green); animation: obs-pulse 2s var(--obs-ease) infinite; }
.obs-emg__card-body small { display: block; color: #c5cdc9; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.obs-emg__card-body strong { display: block; font-size: 24px; font-weight: 800; line-height: 1.2; }
.obs-emg__card-body > span { display: block; color: #c5cdc9; font-size: 13px; }
.obs-emg__card-body em { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-style: normal; font-size: 13px; font-weight: 600; }
.obs-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--obs-green); box-shadow: 0 0 0 0 rgba(46, 232, 96, .6); animation: obs-live 1.6s infinite; }
@keyframes obs-live { 70% { box-shadow: 0 0 0 8px rgba(46, 232, 96, 0); } 100% { box-shadow: 0 0 0 0 rgba(46, 232, 96, 0); } }

/* ---------- Responsive (v1.5) ---------- */
@media (max-width: 1360px) {
	.obs-scope .obs-steps { gap: 40px; }
	.obs-step { padding: 24px !important; }
	.obs-scope .obs-step h3 { font-size: 21px; }
	.obs-step p { font-size: 15px; }
	.obs-step:not(:last-child)::after { right: -30px; font-size: 16px; }
}
@media (max-width: 1100px) {
	.obs-scope .obs-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.obs-step:nth-child(2)::after { display: none; }
	.obs-scope .obs-process__feats { max-width: 100%; }
	.obs-process__img { opacity: .25; width: 50%; }
	.obs-emg__grid { flex-direction: column-reverse; }
	.obs-emg::before { background: linear-gradient(180deg, rgba(5, 8, 6, .55), rgba(5, 8, 6, .9) 55%); }
}
@media (max-width: 767px) {
	.obs-process, .obs-emg { padding: 54px 0; }
	.obs-scope .obs-steps { grid-template-columns: 1fr; gap: 34px; margin-top: 34px !important; }
	.obs-step:not(:last-child)::after { display: block !important; content: '\f063'; top: auto; right: 50%; bottom: -30px; transform: translateX(50%); }
	.obs-step__icon { width: 60px; height: 60px; font-size: 24px; }
	.obs-scope .obs-process__feats { flex-direction: column; gap: 18px; margin-top: 40px !important; }
	.obs-process__feats li { padding: 0 !important; border-left: 0; }
	.obs-process__ficon { width: 56px; height: 56px; font-size: 22px; }
	.obs-process__img { display: none; }

	.obs-emg__btns .obs-btn { flex: 1 1 100%; }
	.obs-scope .obs-emg__feats { flex-direction: column; gap: 14px; }
	.obs-emg__feats li { padding: 0 !important; border-left: 0; }
	.obs-emg__card { width: 100%; }

}

/* =========================================================
   v1.6: Areas live map, Reviews, Blog, FAQ
   ========================================================= */
.obs-cov, .obs-rev, .obs-blog, .obs-faq { position: relative; width: 100%; overflow: hidden; isolation: isolate; font-size: 16px; line-height: 1.6; }
:where(.obs-cov, .obs-rev, .obs-blog, .obs-faq) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-cov, .obs-rev, .obs-blog, .obs-faq) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-cov, .obs-rev, .obs-blog, .obs-faq) :where(li)::before { content: none !important; }
.obs-cov *, .obs-rev *, .obs-blog *, .obs-faq * { box-sizing: border-box; }
.obs-cov :is(h2, h3, p, blockquote), .obs-rev :is(h2, h3, p, blockquote), .obs-blog :is(h2, h3, p), .obs-faq :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; border: 0; }
.obs-rev blockquote { background: none; quotes: none; font-style: normal; }
.obs-rev blockquote::before, .obs-rev blockquote::after { content: none !important; }
.obs-cov img, .obs-rev img, .obs-blog img, .obs-faq img { max-width: 100%; border: 0; box-shadow: none; }
:is(.obs-cov, .obs-rev, .obs-blog, .obs-faq) :is(a, button, input):focus { outline: none !important; }
:is(.obs-cov, .obs-rev, .obs-blog, .obs-faq) :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

.obs-cov .obs-pill, .obs-blog .obs-pill, .obs-faq .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-rev--dark .obs-pill, .obs-rev--light .obs-pill { background: rgba(255, 255, 255, .08); color: #e3e9e6; }
:is(.obs-cov, .obs-blog, .obs-faq) .obs-sec-title { color: #0b0f0d; }
:is(.obs-cov, .obs-blog, .obs-faq) .obs-sec-text { color: #4a524e; }
.obs-cov .obs-sec-title .obs-hl, .obs-blog .obs-sec-title .obs-hl, .obs-faq .obs-sec-title .obs-hl { color: #12a53a; }

/* Shared UI */
.obs-btn--ghost { background: #fff; color: #0b0f0d; border: 1.5px solid rgba(18, 165, 58, .45); }
.obs-btn--ghost:hover { background: #fff; color: #0b0f0d; border-color: #12a53a; box-shadow: 0 10px 24px -14px rgba(18, 165, 58, .6); }
.obs-sbtn {
	all: unset; box-sizing: border-box;
	width: 48px; height: 48px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: #fff; color: #0b0f0d; border: 1px solid rgba(0, 0, 0, .1);
	box-shadow: 0 6px 18px -10px rgba(0, 0, 0, .35);
	cursor: pointer; font-size: 15px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease), opacity var(--obs-speed);
}
.obs-sbtn.is-primary { background: #12a53a; color: #fff; border-color: #12a53a; }
.obs-sbtn:hover { transform: scale(1.06); background: var(--obs-green); color: #06100a; border-color: var(--obs-green); }
.obs-sbtn[disabled] { opacity: .45; pointer-events: none; }
.obs-sbtn:focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-dots { display: flex; justify-content: center; gap: 8px; margin-top: 22px; }
.obs-dots button { all: unset; width: 10px; height: 6px; border-radius: 6px; background: rgba(0, 0, 0, .18); cursor: pointer; transition: width .35s var(--obs-ease), background-color .35s var(--obs-ease); }
.obs-dots button.is-active { width: 34px; background: var(--obs-green); }
.obs-rev--dark .obs-dots button { background: rgba(255, 255, 255, .3); }
.obs-rev--dark .obs-dots button.is-active { background: var(--obs-green); }

/* ---------- AREAS: live map ---------- */
.obs-cov { padding: 70px 0; background: #f6f7f6; color: #0b0f0d; }
.obs-cov__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.1fr); gap: 44px; align-items: center; }
.obs-cov .obs-sec-title { font-size: clamp(30px, 3.2vw, 52px); margin: 18px 0 18px; }
.obs-cov .obs-sec-title .obs-after { color: #0b0f0d; }
.obs-cov .obs-sec-text { max-width: 640px; }

.obs-scope .obs-cov__chips { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 30px !important; }
.obs-chip {
	all: unset; box-sizing: border-box;
	width: 100%; min-height: 54px;
	display: flex; align-items: center; gap: 14px;
	padding: 12px 18px;
	background: rgba(255, 255, 255, .7);
	border: 1px solid rgba(0, 0, 0, .06);
	border-radius: 10px;
	color: #0b0f0d !important; font-size: 17px; font-weight: 500; line-height: 1.25;
	cursor: pointer; text-decoration: none !important;
	transition: background-color .3s var(--obs-ease), border-color .3s var(--obs-ease), transform .3s var(--obs-ease), box-shadow .3s var(--obs-ease);
}
.obs-chip i { color: #12a53a; font-size: 18px; transition: transform .3s var(--obs-ease); }
.obs-chip:hover, .obs-chip.is-hot, .obs-chip.is-active, .obs-chip.is-main {
	background: rgba(46, 232, 96, .16); border-color: rgba(18, 165, 58, .45);
}
.obs-chip:hover, .obs-chip.is-hot { transform: translateY(-2px); box-shadow: 0 10px 22px -16px rgba(18, 165, 58, .8); }
.obs-chip:hover i, .obs-chip.is-hot i { transform: translateY(-2px) scale(1.12); }
.obs-chip.is-main { font-weight: 700; }
.obs-chip:focus-visible { outline: 2px solid #12a53a !important; outline-offset: 2px; }

/* Postcode checker */
.obs-cov__pc { margin-top: 26px; padding: 22px 24px; background: #121a17; border-radius: 14px; color: #fff; }
.obs-scope .obs-cov__pc h3 { color: #fff; font-size: 20px; font-weight: 700; margin-bottom: 14px; }
.obs-cov__pc-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; margin: 0; }
.obs-cov__pc-field { display: flex !important; align-items: center; gap: 12px; height: 54px; margin: 0; padding: 0 16px; background: #fff; border-radius: 10px; border: 2px solid transparent; transition: border-color .3s, box-shadow .3s; }
.obs-cov__pc-field:focus-within { border-color: var(--obs-green); box-shadow: 0 0 0 4px rgba(46, 232, 96, .22); }
.obs-cov__pc-field i { color: #59615d; }
.obs-cov__pc-field input[type="text"] { flex: 1; min-width: 0; height: 100% !important; margin: 0 !important; padding: 0 !important; border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; color: #0b0f0d !important; font-size: 16px; text-transform: uppercase; }
.obs-cov__pc-field input::placeholder { text-transform: none; color: #8a938e; }
.obs-cov__pc-form .obs-btn { height: 54px; padding: 0 24px; white-space: nowrap; }
.obs-cov__pc.is-loading .obs-btn span::after { content: '…'; }
.obs-cov__pc.is-loading .obs-btn i { animation: obs-spin 1s linear infinite; }
@keyframes obs-spin { to { transform: rotate(360deg); } }
.obs-cov__pc-msg { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; font-size: 14px; line-height: 1.5; min-height: 0; }
.obs-cov__pc-msg:empty { display: none; }
.obs-cov__pc-msg.is-yes { color: var(--obs-green); }
.obs-cov__pc-msg.is-no { color: #ffd27a; }
.obs-cov__pc-msg.is-info { color: #ffb4b4; }
.obs-cov__pc-msg i { margin-top: 3px; }
.obs-cov__pc-cta { margin-top: 10px; }
.obs-cov__pc-cta[hidden] { display: none !important; }

/* Map card */
.obs-cov__mapwrap { position: relative; padding: 12px; background: #fff; border-radius: 22px; box-shadow: 0 24px 60px -30px rgba(0, 0, 0, .35); }
.obs-cov__map { position: relative; z-index: 0; width: 100%; height: 620px; border-radius: 16px; overflow: hidden; background: #e8efe9; }
.obs-cov__mapwrap.is-tinted .obs-cov__map .leaflet-tile-pane { filter: sepia(.25) hue-rotate(60deg) saturate(1.25) brightness(1.02); }
.obs-cov__noscript { padding: 20px; }
.obs-cov__map .leaflet-control-attribution { font-size: 10px; background: rgba(255, 255, 255, .75); }
.obs-cov__map .leaflet-control-zoom { border: 0 !important; box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .35) !important; margin: 0 14px 96px 0 !important; }
.obs-cov__map .leaflet-control-zoom a { width: 36px !important; height: 36px !important; line-height: 36px !important; color: #0b0f0d !important; }
.obs-cov__map .leaflet-control-zoom a:hover { background: var(--obs-green) !important; }
.obs-cov__map path.obs-cov-area { stroke-dashoffset: 0; animation: obs-dash 30s linear infinite; }
@keyframes obs-dash { to { stroke-dashoffset: -280; } }

/* Markers */
.obs-mk-wrap { background: none !important; border: 0 !important; }
.obs-mk { position: absolute; left: 0; top: 0; display: flex; align-items: center; transform: translate(-14px, -34px); opacity: 0; pointer-events: auto; }
.obs-cov__map.is-ready .obs-mk { animation: obs-mk-drop .7s var(--obs-ease) var(--d, 0ms) forwards; }
@keyframes obs-mk-drop { 0% { opacity: 0; transform: translate(-14px, -70px); } 60% { opacity: 1; transform: translate(-14px, -30px); } 100% { opacity: 1; transform: translate(-14px, -34px); } }
.obs-mk__pin { position: relative; width: 28px; height: 34px; display: inline-flex; align-items: flex-end; justify-content: center; color: #12a53a; font-size: 30px; filter: drop-shadow(0 4px 4px rgba(0, 0, 0, .25)); transition: transform .3s var(--obs-ease); }
.obs-mk__label {
	margin-left: 6px; padding: 5px 11px;
	background: #fff; color: #0b0f0d;
	border-radius: 8px; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .4);
	font-size: 13px; font-weight: 600; white-space: nowrap;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), transform .3s var(--obs-ease);
}
.obs-mk-wrap:hover .obs-mk__pin, .obs-mk-wrap.is-hot .obs-mk__pin { transform: translateY(-5px) scale(1.15); }
.obs-mk-wrap:hover .obs-mk__label, .obs-mk-wrap.is-hot .obs-mk__label { background: #12a53a; color: #fff; transform: translateY(-3px); }
.obs-mk.is-main { flex-direction: column; transform: translate(-30px, -66px); }
.obs-cov__map.is-ready .obs-mk.is-main { animation-name: obs-mk-drop-main; }
@keyframes obs-mk-drop-main { 0% { opacity: 0; transform: translate(-30px, -110px); } 60% { opacity: 1; transform: translate(-30px, -60px); } 100% { opacity: 1; transform: translate(-30px, -66px); } }
.obs-mk.is-main .obs-mk__pin { width: 60px; height: 60px; font-size: 58px; color: #16b442; }
.obs-mk__dot { position: absolute; top: 15px; left: 50%; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: #fff; }
.obs-mk.is-main .obs-mk__label { margin: 6px 0 0; padding: 8px 16px; font-size: 18px; font-weight: 700; border-radius: 10px; }
.obs-mk__pulse { position: absolute; left: 50%; top: 56px; width: 120px; height: 120px; margin: -60px 0 0 -60px; border-radius: 50%; background: rgba(46, 232, 96, .35); animation: obs-mk-pulse 2.6s ease-out infinite; pointer-events: none; }
.obs-mk__pulse--2 { animation-delay: 1.3s; }
@keyframes obs-mk-pulse { 0% { transform: scale(.2); opacity: .9; } 100% { transform: scale(2.2); opacity: 0; } }
.obs-mk--user { opacity: 1 !important; animation: none !important; }
.obs-mk--user .obs-mk__pin { color: #0b0f0d; font-size: 22px; width: 36px; height: 36px; align-items: center; background: #fff; border-radius: 50%; border: 3px solid var(--obs-green); }
.obs-mk--user.is-out .obs-mk__pin { border-color: #f0a500; }
.obs-mk--user .obs-mk__label { background: #0b0f0d; color: #fff; }

/* Popup */
.obs-pop .leaflet-popup-content-wrapper { border-radius: 12px; box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45); }
.obs-pop .leaflet-popup-content { margin: 12px 16px; font-family: var(--obs-font); display: grid; gap: 2px; min-width: 150px; }
.obs-pop strong { font-size: 15px; color: #0b0f0d; }
.obs-pop span { font-size: 12.5px; color: #59615d; }
.obs-pop a { margin-top: 6px; color: #12a53a !important; font-weight: 600; font-size: 13px; text-decoration: none !important; display: inline-flex; gap: 6px; align-items: center; }

/* Features bar floating at the bottom of the map */
.obs-scope .obs-cov__feats {
	position: absolute; z-index: 500; left: 34px; right: 34px; bottom: 30px;
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr));
	padding: 16px 20px !important;
	background: rgba(255, 255, 255, .96);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	border-radius: 14px; box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .35);
}
.obs-cov__feats li { display: flex; align-items: center; gap: 14px; padding: 0 16px !important; border-left: 1px solid rgba(0, 0, 0, .1); }
.obs-cov__feats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-cov__ficon { width: 52px; height: 52px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .16); color: #12a53a; font-size: 21px; }
.obs-cov__ficon svg { width: 21px; height: 21px; fill: currentColor; }
.obs-cov__feats strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; color: #0b0f0d; }
.obs-cov__feats small { display: block; font-size: 13.5px; color: #59615d; }

/* ---------- REVIEWS ---------- */
.obs-rev { padding: 70px 0; color: #fff; background: #0a0e0c var(--obs-rev-bg, none) center / cover no-repeat; }
.obs-rev::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.obs-rev--dark::before { background: linear-gradient(90deg, rgba(5, 8, 6, .96) 0%, rgba(5, 8, 6, .85) 38%, rgba(5, 8, 6, .35) 70%, rgba(5, 8, 6, .5) 100%); }
.obs-rev--light { background-color: #eef1ef; }
.obs-rev--light::before { background: rgba(238, 241, 239, .9); }
/* Dark panel behind the left column, bleeding to the screen edge */
.obs-rev--light .obs-rev__left { position: relative; z-index: 1; }
.obs-rev--light .obs-rev__left::before { content: ''; position: absolute; z-index: -1; top: -200px; bottom: -200px; right: -30px; left: -100vw; background: linear-gradient(90deg, rgba(5, 8, 6, .98), rgba(5, 8, 6, .9)), var(--obs-rev-bg, none) center / cover; }
.obs-rev__grid { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(0, 1.75fr); gap: 50px; align-items: center; }
.obs-rev--light .obs-rev__grid { grid-template-columns: minmax(320px, .85fr) minmax(0, 2fr); gap: 60px; }
.obs-rev .obs-sec-title { font-size: clamp(30px, 3.2vw, 52px); margin: 18px 0 16px; }
.obs-rev--dark .obs-sec-title .obs-hl { display: block; }
.obs-rev .obs-sec-text { color: #d5ddd9; max-width: 460px; }
.obs-rev--light .obs-sec-title { font-size: clamp(28px, 2.6vw, 40px); }
.obs-rev--light .obs-sec-text { font-size: 15px; }

.obs-glogo { width: 28px; height: 28px; flex-shrink: 0; display: block; }
.obs-grate { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 30px; padding: 20px 24px; border-radius: 14px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); max-width: 470px; }
.obs-grate .obs-glogo { width: 50px; height: 50px; }
.obs-grate__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.obs-grate__label { font-size: 14px; font-weight: 500; }
.obs-grate__score { display: inline-flex; align-items: center; gap: 8px; }
.obs-grate__score b { font-size: 26px; font-weight: 800; line-height: 1.1; }
.obs-grate small { color: #b9c2bd; font-size: 12.5px; }
.obs-grate .obs-btn { flex-shrink: 0; border-radius: 30px; }
.obs-grate__label, .obs-grate small { white-space: nowrap; }
.obs-rev--light .obs-grate { background: #fff; color: #0b0f0d; border-color: transparent; max-width: 300px; padding: 16px 18px; }
.obs-rev--light .obs-grate .obs-glogo { width: 40px; height: 40px; }
.obs-rev--light .obs-grate__score b { font-size: 15px; }
.obs-rev--light .obs-grate small { color: #59615d; }
.obs-rstars { display: inline-flex; gap: 3px; color: #ffbe1a; }
.obs-rstars i { font-size: 15px; }

.obs-scope .obs-rev__stats { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 18px; margin-top: 30px !important; }
.obs-rev--light .obs-rev__stats { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); margin-top: 24px !important; }
.obs-rev__stats li { display: flex; flex-direction: column; gap: 12px; }
.obs-rev--light .obs-rev__stats li { flex-direction: row; align-items: center; gap: 10px; }
.obs-rev__sicon { width: 46px; height: 46px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid var(--obs-green); color: var(--obs-green); font-size: 18px; }
.obs-rev--light .obs-rev__sicon { width: 40px; height: 40px; font-size: 15px; flex-shrink: 0; }
.obs-rev__sicon svg { width: 18px; height: 18px; fill: currentColor; }
.obs-rev__stats strong { display: block; font-size: 19px; font-weight: 800; line-height: 1.2; }
.obs-rev__stats small { display: block; color: #c5cdc9; font-size: 14px; line-height: 1.35; }
.obs-rev--light .obs-rev__stats strong { font-size: 16px; }
.obs-rev--light .obs-rev__stats small { font-size: 11.5px; }

.obs-rev__right { position: relative; min-width: 0; }
.obs-rev__note { position: absolute; right: 30px; top: -86px; font-family: 'Obs Hand', 'Segoe Script', 'Bradley Hand', cursive !important; font-weight: 600 !important; letter-spacing: 0 !important; font-size: 30px; line-height: 1.05; color: #fff; transform: rotate(-8deg); text-align: center; }
.obs-rev__note i { display: block; margin: 4px auto 0; font-size: 22px; transform: rotate(-20deg); }
.obs-rev__top { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-bottom: 16px; }
.obs-rev__all { margin-right: 14px; color: #12a53a !important; font-size: 14px; font-weight: 600; text-decoration: none !important; display: inline-flex; gap: 8px; align-items: center; }
.obs-rev__all:hover { color: #0b0f0d !important; }

/* Slider (native scroll-snap = smooth swipe on touch) */
.obs-slider { position: relative; --per: 3; --gap: 18px; }
.obs-slider__viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 6px 4px 14px; margin: -6px -4px -14px; }
.obs-slider__viewport::-webkit-scrollbar { display: none; }
.obs-scope .obs-slider__track { display: flex !important; gap: var(--gap); }
.obs-slide { flex: 0 0 calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); scroll-snap-align: start; min-width: 0; }
.obs-sbtn--side { position: absolute; z-index: 3; top: 50%; margin-top: -40px; }
.obs-sbtn--l { left: -24px; }
.obs-sbtn--r { right: -24px; }

.obs-rcard { height: 100%; display: flex; flex-direction: column; gap: 16px; padding: 22px; background: #fff; color: #0b0f0d; border-radius: 14px; box-shadow: 0 18px 40px -26px rgba(0, 0, 0, .55); transition: transform .35s var(--obs-ease), box-shadow .35s var(--obs-ease); }
.obs-rcard:hover { transform: translateY(-4px); box-shadow: 0 26px 46px -26px rgba(0, 0, 0, .6); }
.obs-rcard__top { display: flex; align-items: center; gap: 12px; }
.obs-rcard__top time { margin-left: auto; color: #6b746f; font-size: 13px; }
.obs-rcard blockquote { color: #3a423e; font-size: 15.5px; line-height: 1.6; }
.obs-rcard__q { color: #16b442; font-size: 32px; }
.obs-rcard__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.obs-rcard__imgs.is-single { grid-template-columns: 1fr; }
.obs-rcard__imgs img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; display: block; }
.obs-rcard__imgs.is-single img { aspect-ratio: 16 / 9; }
.obs-rcard__author { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(0, 0, 0, .08); }
.obs-rev--light .obs-rcard__author { border-top: 0; padding-top: 0; margin-top: 0; }
.obs-rev--light .obs-rcard__author .obs-glogo { margin-left: auto; }
.obs-rcard__av { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.obs-rcard__av--txt { display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .18); color: #12a53a; font-weight: 800; font-size: 20px; }
.obs-rcard__author strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.25; }
.obs-rcard__author small { display: block; color: #59615d; font-size: 13.5px; }
.obs-rcard__author small i { color: #16b442; }
.obs-rev--light .obs-rcard { box-shadow: 0 14px 34px -24px rgba(0, 0, 0, .35); }
.obs-rev__shortcode { background: #fff; border-radius: 14px; padding: 20px; color: #0b0f0d; }

/* ---------- BLOG ---------- */
.obs-blog { padding: 60px 0; background: #f6f7f6; color: #0b0f0d; }
.obs-blog::before { content: ''; position: absolute; inset: 0 0 auto auto; width: 60%; height: 70%; z-index: 0; background: var(--obs-blog-wm, none) right top / cover no-repeat; opacity: .12; -webkit-mask-image: linear-gradient(90deg, transparent, #000 40%); mask-image: linear-gradient(90deg, transparent, #000 40%); pointer-events: none; }
.obs-blog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 30px; }
.obs-blog .obs-sec-title { font-size: clamp(30px, 3vw, 48px); margin: 16px 0 12px; }
.obs-blog .obs-sec-title .obs-hl { display: inline; }
.obs-blog .obs-sec-text { max-width: 600px; font-size: 16px; }
.obs-blog__head > .obs-btn { margin-top: 18px; flex-shrink: 0; }

.obs-blog__tabs { display: flex; gap: 12px; margin-top: 28px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.obs-blog__tabs::-webkit-scrollbar { display: none; }
.obs-tab {
	all: unset; box-sizing: border-box; flex-shrink: 0;
	display: inline-flex; align-items: center; gap: 10px;
	padding: 11px 22px; min-height: 44px;
	background: #fff; color: #1a1f1c; border: 1px solid rgba(0, 0, 0, .08); border-radius: 10px;
	font-size: 14px; font-weight: 500; cursor: pointer; white-space: nowrap;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), border-color .3s var(--obs-ease), transform .3s var(--obs-ease);
}
.obs-tab i, .obs-tab svg { font-size: 16px; width: 16px; color: #1a1f1c; fill: currentColor; transition: color .3s; }
.obs-tab:hover { border-color: rgba(18, 165, 58, .5); transform: translateY(-1px); }
.obs-tab.is-active { background: #16b442; color: #fff; border-color: #16b442; font-weight: 600; }
.obs-tab.is-active i, .obs-tab.is-active svg { color: #fff; }
.obs-tab:focus-visible { outline: 2px solid #12a53a !important; outline-offset: 2px; }

.obs-blog__body { position: relative; display: flex; gap: 18px; align-items: center; margin-top: 22px; }
.obs-blog__viewport { flex: 1; min-width: 0; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding: 6px 4px 14px; margin: -6px -4px -14px; }
.obs-blog__viewport::-webkit-scrollbar { display: none; }
.obs-scope .obs-blog__track { display: flex !important; gap: 18px; }
.obs-post { flex: 0 0 calc((100% - 36px) / 3.6); scroll-snap-align: start; display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 14px 34px -24px rgba(0, 0, 0, .35); transition: transform .35s var(--obs-ease), box-shadow .35s var(--obs-ease), opacity .35s; }
.obs-post.is-featured { flex-basis: calc((100% - 36px) / 1.65); }
.obs-post[hidden] { display: none !important; }
.obs-post:hover { transform: translateY(-5px); box-shadow: 0 24px 40px -24px rgba(0, 0, 0, .4); }
.obs-post__img { position: relative; display: block; aspect-ratio: 16 / 10.5; overflow: hidden; background: #e3e9e6; }
.obs-post.is-featured .obs-post__img { aspect-ratio: auto; height: 240px; }
.obs-post__img img { width: 100%; height: 100% !important; object-fit: cover; display: block; transition: transform 1s var(--obs-ease); }
.obs-post:hover .obs-post__img img { transform: scale(1.06); }
.obs-post__noimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #b6c2bb; font-size: 44px; }
.obs-post__cat { position: absolute; left: 14px; top: 14px; padding: 5px 12px; border-radius: 30px; background: #16b442; color: #fff; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.obs-post__badge { position: absolute; right: 14px; top: 14px; padding: 5px 12px; border-radius: 6px; background: #fff; color: #0b0f0d; font-size: 12px; font-weight: 600; }
.obs-post__body { display: flex; flex-direction: column; flex: 1; padding: 18px 22px 22px; }
.obs-post__meta { display: flex; flex-wrap: wrap; gap: 16px; color: #59615d; font-size: 12.5px; }
.obs-post__meta i { margin-right: 4px; }
.obs-scope .obs-post__title { margin: 12px 0 8px; font-size: 18px; font-weight: 700; line-height: 1.3; }
.obs-post.is-featured .obs-post__title { font-size: 24px; }
.obs-post__title a { color: #0b0f0d !important; text-decoration: none !important; background: linear-gradient(currentColor, currentColor) 0 100% / 0 2px no-repeat; transition: background-size .4s var(--obs-ease); }
.obs-post__title a:hover { background-size: 100% 2px; }
.obs-post__body p { color: #59615d; font-size: 14px; line-height: 1.55; margin-bottom: 16px; }
.obs-post__more { margin-top: auto; display: inline-flex; align-items: center; gap: 12px; color: #0b0f0d !important; font-weight: 600; font-size: 15px; text-decoration: none !important; }
.obs-post__more-ic { width: 32px; height: 32px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #16b442; color: #fff; font-size: 13px; transition: transform .3s var(--obs-ease); }
.obs-post__more:hover .obs-post__more-ic { transform: translateX(4px); }
.obs-blog__nav { display: flex; flex-direction: column; gap: 14px; flex-shrink: 0; }
.obs-blog__empty { margin-top: 24px; color: #59615d; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- FAQ ---------- */
.obs-faq { padding: 70px 0; background: #f6f8f7; color: #0b0f0d; }
.obs-faq__img { position: absolute; z-index: 0; left: 0; bottom: 0; width: 50%; height: 62%; pointer-events: none; -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 30%), linear-gradient(90deg, #000 70%, transparent); mask-image: linear-gradient(180deg, transparent 0%, #000 30%); }
.obs-faq__img img { width: 100%; height: 100% !important; object-fit: cover; object-position: center top; display: block; }
.obs-faq__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: 50px; align-items: start; }
.obs-faq__left { position: relative; display: flex; flex-direction: column; min-height: 100%; }
.obs-faq .obs-sec-title { font-size: clamp(32px, 3.4vw, 56px); margin: 18px 0 16px; }
.obs-faq .obs-sec-title .obs-hl { display: block; }
.obs-scope .obs-faq__feats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 30px !important; }
.obs-faq__feats li { display: flex; flex-direction: column; }
.obs-faq__ficon { width: 64px; height: 64px; margin-bottom: 14px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .18); color: #12a53a; font-size: 24px; }
.obs-faq__ficon svg { width: 24px; height: 24px; fill: currentColor; }
.obs-faq__feats strong { font-size: 18px; font-weight: 700; line-height: 1.3; }
.obs-faq__feats small { color: #4a524e; font-size: 15px; line-height: 1.45; }
.obs-faq__call {
	display: flex; align-items: center; gap: 20px;
	margin-top: auto; padding: 24px;
	background: rgba(14, 22, 18, .94); color: #fff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	border-radius: 16px; box-shadow: 0 24px 50px -24px rgba(0, 0, 0, .6);
	position: relative; top: 0;
}
.obs-faq.has-img .obs-faq__call { margin-top: 280px; }
.obs-faq__call-ic { width: 64px; height: 64px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #16b442; color: #fff; font-size: 24px; }
.obs-faq__call-text { flex: 1; min-width: 0; }
.obs-faq__call-text strong { display: block; font-size: 22px; font-weight: 700; line-height: 1.25; }
.obs-faq__call-text span { display: block; color: #cfd6d2; font-size: 14.5px; line-height: 1.5; margin-top: 4px; }
.obs-faq__call-act { display: flex; flex-direction: column; gap: 10px; padding-left: 20px; border-left: 1px solid rgba(255, 255, 255, .14); }
.obs-faq__call-act .obs-btn { border-radius: 30px; }
.obs-faq__phone { color: #fff !important; font-weight: 700; font-size: 17px; text-decoration: none !important; white-space: nowrap; }
.obs-faq__phone i { color: var(--obs-green); margin-right: 6px; }

.obs-acc { display: grid; gap: 12px; }
.obs-acc__item { background: #fff; border: 1px solid rgba(0, 0, 0, .06); border-radius: 14px; transition: background-color .35s var(--obs-ease), border-color .35s var(--obs-ease), box-shadow .35s var(--obs-ease); }
.obs-acc__item:hover { border-color: rgba(18, 165, 58, .35); }
.obs-acc__item.is-open { background: #edf9f0; border-color: rgba(18, 165, 58, .25); box-shadow: 0 12px 28px -20px rgba(18, 165, 58, .6); }
.obs-scope .obs-acc__h { margin: 0; font-size: inherit; }
.obs-acc__btn { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: 18px; padding: 18px 22px; cursor: pointer; }
.obs-acc__btn:focus-visible { outline: 2px solid #12a53a !important; outline-offset: -2px; border-radius: 14px; }
.obs-acc__num { width: 42px; height: 42px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #16b442; color: #fff; font-size: 14px; font-weight: 700; }
.obs-acc__q { flex: 1; color: #0b0f0d; font-size: 18px; font-weight: 700; line-height: 1.35; }
.obs-acc__sign { position: relative; width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; background: rgba(46, 232, 96, .16); transition: background-color .35s var(--obs-ease), transform .35s var(--obs-ease); }
.obs-acc__sign::before, .obs-acc__sign::after { content: ''; position: absolute; left: 50%; top: 50%; width: 14px; height: 2px; margin: -1px 0 0 -7px; background: #0b0f0d; border-radius: 2px; transition: transform .35s var(--obs-ease); }
.obs-acc__sign::after { transform: rotate(90deg); }
.obs-acc__item.is-open .obs-acc__sign { background: rgba(46, 232, 96, .35); }
.obs-acc__item.is-open .obs-acc__sign::after { transform: rotate(0deg); }
.obs-acc__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .45s var(--obs-ease); }
.obs-acc__item.is-open .obs-acc__panel { grid-template-rows: 1fr; }
.obs-acc__clip { min-height: 0; overflow: hidden; }
.obs-acc__a { padding: 0 24px 22px 82px; color: #4a524e; font-size: 15.5px; line-height: 1.65; }
.obs-acc__a p { margin: 0 0 10px; }
.obs-acc__a p:last-child { margin-bottom: 0; }

.obs-faq__help { display: flex; align-items: center; gap: 18px; margin-top: 22px; padding: 22px 24px; background: #edf9f0; border: 1px solid rgba(18, 165, 58, .15); border-radius: 14px; }
.obs-faq__help-ic { width: 60px; height: 60px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .2); color: #12a53a; font-size: 24px; }
.obs-faq__help-text { flex: 1; min-width: 0; }
.obs-faq__help-text strong { display: block; font-size: 17px; font-weight: 700; }
.obs-faq__help-text small { display: block; color: #4a524e; font-size: 14px; }
.obs-faq__help .obs-btn { flex-shrink: 0; border-color: #0b0f0d; }

/* ---------- Responsive (v1.6) ---------- */
@media (max-width: 1360px) {
	.obs-cov__grid { gap: 30px; }
	.obs-chip { font-size: 15px; padding: 10px 14px; gap: 10px; }
	.obs-rev__grid, .obs-rev--light .obs-rev__grid { grid-template-columns: 1fr; gap: 50px; }
	.obs-rev--light .obs-rev__left::before { left: -100vw; right: -100vw; top: -200px; bottom: -30px; }
	.obs-rev__note { display: none; }
	.obs-sbtn--l { left: -10px; } .obs-sbtn--r { right: -10px; }
	.obs-post { flex-basis: calc((100% - 36px) / 2.6); }
	.obs-post.is-featured { flex-basis: calc((100% - 18px) / 1.4); }
}
@media (max-width: 1100px) {
	.obs-cov__grid { grid-template-columns: 1fr; }
	.obs-cov__map { height: 520px; }
	.obs-slider { --per: 2; }
	.obs-faq__grid { grid-template-columns: 1fr; }
	.obs-faq.has-img .obs-faq__call { margin-top: 30px; }
	.obs-faq__img { position: relative; display: block; width: 100%; height: 300px; order: 3; -webkit-mask-image: linear-gradient(180deg, transparent, #000 25%); mask-image: linear-gradient(180deg, transparent, #000 25%); }
	.obs-faq { display: flex; flex-direction: column; }
	.obs-blog__head { flex-direction: column; gap: 6px; }
	.obs-blog__head > .obs-btn { margin-top: 6px; }
	.obs-blog__nav { display: none; }
	.obs-post, .obs-post.is-featured { flex-basis: calc((100% - 18px) / 1.8); }
	.obs-post.is-featured .obs-post__img { height: auto; aspect-ratio: 16 / 10.5; }
}
@media (max-width: 767px) {
	.obs-cov, .obs-rev, .obs-blog, .obs-faq { padding: 54px 0; }
	.obs-scope .obs-cov__chips { grid-template-columns: 1fr 1fr; gap: 10px; }
	.obs-chip { min-height: 48px; font-size: 14px; padding: 10px 12px; }
	.obs-cov__pc { padding: 20px; }
	.obs-cov__pc-form { grid-template-columns: 1fr; }
	.obs-cov__mapwrap { padding: 8px; border-radius: 18px; }
	.obs-cov__map { height: 420px; }
	.obs-scope .obs-cov__feats { position: relative; left: auto; right: auto; bottom: auto; margin-top: 10px !important; grid-template-columns: 1fr; gap: 12px; box-shadow: none; padding: 10px 6px !important; }
	.obs-cov__feats li { padding: 0 !important; border-left: 0; }
	.obs-cov__map .leaflet-control-zoom { margin-bottom: 14px !important; }
	.obs-mk__label { font-size: 11px; padding: 3px 8px; }
	.obs-mk.is-main .obs-mk__label { font-size: 15px; }

	.obs-slider { --per: 1.1; --gap: 14px; }
	.obs-sbtn--side { display: none; }
	.obs-rev__top .obs-sbtn { display: none; }
	.obs-rev__top { justify-content: flex-start; }
	.obs-grate { flex-wrap: wrap; }
	.obs-grate .obs-btn { width: 100%; }
	.obs-scope .obs-rev__stats, .obs-rev--light .obs-rev__stats { grid-template-columns: 1fr 1fr; }

	.obs-post, .obs-post.is-featured { flex-basis: 86%; }
	.obs-scope .obs-post__title, .obs-post.is-featured .obs-post__title { font-size: 18px; }

	.obs-scope .obs-faq__feats { grid-template-columns: 1fr; gap: 16px; }
	.obs-faq__feats li { flex-direction: row; align-items: center; gap: 14px; flex-wrap: wrap; }
	.obs-faq__feats li strong { flex: 1; }
	.obs-faq__feats li small { flex-basis: 100%; padding-left: 78px; margin-top: -14px; }
	.obs-faq__ficon { width: 56px; height: 56px; margin-bottom: 0; font-size: 20px; }
	.obs-faq__call { flex-wrap: wrap; }
	.obs-faq__call-act { width: 100%; padding: 14px 0 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, .14); flex-direction: row; align-items: center; justify-content: space-between; }
	.obs-acc__btn { gap: 12px; padding: 14px 16px; }
	.obs-acc__num { width: 34px; height: 34px; font-size: 12px; }
	.obs-acc__q { font-size: 15.5px; }
	.obs-acc__sign { width: 30px; height: 30px; }
	.obs-acc__a { padding: 0 16px 18px 62px; font-size: 14.5px; }
	.obs-faq__help { flex-wrap: wrap; }
	.obs-faq__help .obs-btn { width: 100%; }
}
@media (max-width: 420px) {
	.obs-chip { font-size: 13.5px; gap: 8px; padding: 9px 10px; }
	.obs-acc__a { padding-left: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.obs-mk__pulse, .obs-cov__map path.obs-cov-area { animation: none !important; }
	.obs-slider__viewport, .obs-blog__viewport { scroll-behavior: auto; }
}

/* =========================================================
   v1.7 fixes
   ========================================================= */
/* Roofix styles button:hover / :focus with a black background.
   Neutralise it on every plain button we use, then re-apply our own states. */
.obs-scope :is(.obs-acc__btn, .obs-chip, .obs-tab, .obs-sbtn, .obs-vcard, .obs-fcol__toggle, .obs-lightbox__close),
.obs-scope :is(.obs-acc__btn, .obs-chip, .obs-tab, .obs-sbtn, .obs-vcard, .obs-fcol__toggle, .obs-lightbox__close):is(:hover, :focus, :active),
.obs-scope .obs-dots button:is(:hover, :focus, :active) {
	background-image: none !important; box-shadow: none; text-shadow: none !important;
}
.obs-scope .obs-acc__btn,
.obs-scope .obs-acc__btn:is(:hover, :focus, :active) { background-color: transparent !important; color: inherit !important; }
.obs-scope .obs-acc__btn:hover .obs-acc__q { color: #12a53a; }
.obs-acc__q { transition: color .3s var(--obs-ease); }
.obs-scope .obs-chip:is(:hover, :focus, :active) { color: #0b0f0d !important; }
.obs-scope .obs-chip:not(.is-hot):not(.is-active):not(.is-main):not(:hover) { background-color: rgba(255, 255, 255, .7) !important; }
.obs-scope .obs-chip:is(:hover, .is-hot, .is-active, .is-main) { background-color: rgba(46, 232, 96, .16) !important; }
.obs-scope .obs-tab:not(.is-active):is(:hover, :focus, :active) { background-color: #fff !important; color: #1a1f1c !important; }
.obs-scope .obs-tab.is-active:is(:hover, :focus, :active) { background-color: #16b442 !important; color: #fff !important; }
.obs-scope .obs-sbtn:not(.is-primary):is(:focus, :active):not(:hover) { background-color: #fff !important; color: #0b0f0d !important; }
.obs-scope .obs-sbtn.is-primary:is(:focus, :active):not(:hover) { background-color: #12a53a !important; color: #fff !important; }
.obs-scope .obs-sbtn:hover { background-color: var(--obs-green) !important; color: #06100a !important; }
.obs-scope .obs-dots button:not(.is-active) { background-color: rgba(0, 0, 0, .18) !important; }
.obs-rev--dark .obs-dots button:not(.is-active) { background-color: rgba(255, 255, 255, .3) !important; }
.obs-scope .obs-dots button.is-active { background-color: var(--obs-green) !important; }
.obs-scope .obs-vcard:is(:hover, :focus, :active) { background-color: rgba(10, 14, 12, .82) !important; color: #fff !important; }
.obs-scope .obs-fcol__toggle:is(:hover, :focus, :active) { background-color: transparent !important; color: #fff !important; }

/* Hero quote form: icons must not overlap the text.
   Same selector weight as the field rule + extra class so it wins. */
.obs-quote__form .obs-qform .obs-field input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
.obs-quote__form .obs-qform .obs-field select { padding-left: 48px !important; }
.obs-quote__form .obs-qform .obs-field > i:first-child { left: 17px; width: 16px; text-align: center; z-index: 1; }

/* Map: tint for OpenStreetMap tiles + label density + Google embed */
.obs-cov__mapwrap.is-tinted .obs-cov__map .leaflet-tile-pane { filter: grayscale(.85) sepia(.35) hue-rotate(70deg) saturate(1.6) brightness(1.06) contrast(.92) !important; }
.obs-cov__map.is-compact .obs-mk:not(.is-main):not(.obs-mk--user) .obs-mk__label { opacity: 0; transform: translateX(-6px) scale(.9); pointer-events: none; }
.obs-cov__map.is-compact .obs-mk-wrap:hover .obs-mk__label,
.obs-cov__map.is-compact .obs-mk-wrap.is-hot .obs-mk__label { opacity: 1 !important; transform: translateY(-3px) !important; }
.obs-mk__label { transition: opacity .3s var(--obs-ease), transform .3s var(--obs-ease), background-color .3s, color .3s; }
.obs-cov__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.obs-cov__mapwrap.is-tinted .obs-cov__frame { filter: grayscale(.6) sepia(.25) hue-rotate(70deg) saturate(1.4); }
.obs-cov__feats li { min-width: 0; }
.obs-cov__feats strong { font-size: 15px; }
.obs-cov__feats small { font-size: 12.5px; line-height: 1.35; }
.obs-cov__ficon { width: 46px; height: 46px; font-size: 18px; }

/* =========================================================
   Obsidian Form widget
   ========================================================= */
.obs-form-w {
	--f-h: 52px; --f-r: 10px; --f-gap: 16px;
	--f-bg: #fff; --f-border: rgba(0, 0, 0, .14); --f-text: #0b0f0d; --f-ph: #8a938e; --f-icon: #6b746f; --f-focus: #16b442; --f-label: #1a1f1c;
	--b-bg: var(--obs-green); --b-text: #06100a; --b-bg-h: var(--obs-green-dark); --b-text-h: #06100a; --b-h: 56px; --b-r: 10px;
	position: relative; width: 100%;
}
.obs-form-w.is-dark { --f-bg: rgba(255, 255, 255, .03); --f-border: rgba(255, 255, 255, .2); --f-text: #fff; --f-ph: #a9b3ae; --f-icon: #a9b3ae; --f-label: #e3e9e6; }
.obs-form-w * { box-sizing: border-box; }
.obs-form-w__grid { display: flex; flex-wrap: wrap; gap: var(--f-gap); margin: 0; }
.obs-ff { position: relative; flex: 1 1 100%; min-width: 0; margin: 0; }
.obs-ff--50 { flex: 1 1 calc(50% - var(--f-gap) / 2); }
.obs-ff--33 { flex: 1 1 calc(33.333% - var(--f-gap) * 2 / 3); }
.obs-ff__label { display: block; margin: 0 0 6px; color: var(--f-label); font-size: 14px; font-weight: 600; }
.obs-ff__label em { color: #e04848; font-style: normal; margin-left: 2px; }
.obs-ff__wrap { position: relative; display: block; }
.obs-ff__wrap > .obs-ff__ic { position: absolute; left: 17px; top: calc(var(--f-h) / 2); transform: translateY(-50%); width: 16px; text-align: center; color: var(--f-icon); font-size: 15px; pointer-events: none; z-index: 1; transition: color .3s; }
.obs-ff__wrap:focus-within > .obs-ff__ic { color: var(--f-focus); }
.obs-ff__chev { position: absolute; right: 16px; top: calc(var(--f-h) / 2); transform: translateY(-50%); color: var(--f-icon); font-size: 12px; pointer-events: none; }
.obs-form-w .obs-ff__input {
	display: block; width: 100% !important; max-width: none !important;
	height: var(--f-h) !important; margin: 0 !important;
	padding: 0 16px !important;
	background: var(--f-bg) !important; color: var(--f-text) !important;
	border: 1px solid var(--f-border) !important; border-radius: var(--f-r) !important;
	box-shadow: none !important; outline: none !important;
	font-family: var(--obs-font); font-size: 15px; line-height: 1.3;
	-webkit-appearance: none; appearance: none;
	transition: border-color .3s var(--obs-ease), box-shadow .3s var(--obs-ease), background-color .3s;
}
.obs-form-w .obs-ff.has-icon .obs-ff__input { padding-left: 46px !important; }
.obs-form-w select.obs-ff__input { padding-right: 40px !important; cursor: pointer; background-image: none !important; }
.obs-form-w select.obs-ff__input:invalid { color: var(--f-ph) !important; }
.obs-form-w select.obs-ff__input option { color: #111; }
.obs-form-w textarea.obs-ff__input { height: auto !important; min-height: 130px; padding-top: 14px !important; padding-bottom: 14px !important; resize: vertical; }
.obs-form-w .obs-ff.has-icon textarea + .obs-ff__ic, .obs-form-w .obs-ff--textarea .obs-ff__ic { top: 25px; }
.obs-form-w .obs-ff__input::placeholder { color: var(--f-ph) !important; opacity: 1; }
.obs-form-w .obs-ff__input:focus { border-color: var(--f-focus) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--f-focus) 18%, transparent) !important; }
.obs-form-w .obs-ff__input:-webkit-autofill { -webkit-text-fill-color: var(--f-text) !important; -webkit-box-shadow: 0 0 0 1000px var(--f-autofill, #f4f8f5) inset !important; }
.obs-form-w.is-dark .obs-ff__input:-webkit-autofill { --f-autofill: #121a17; }
.obs-ff.is-invalid .obs-ff__input { border-color: #e04848 !important; }
.obs-ff__err { display: block; margin-top: 5px; color: #e04848; font-size: 12.5px; }
.obs-ff__err:empty { display: none; }
.obs-ff--check { display: flex; align-items: flex-start; gap: 10px; color: var(--f-label); font-size: 14px; }
.obs-ff--check input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--f-focus); flex-shrink: 0; }
.obs-form-w__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.obs-form-w__submit {
	display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
	width: 100%; height: var(--b-h) !important; margin: 4px 0 0 !important; padding: 0 26px !important;
	background: var(--b-bg) !important; color: var(--b-text) !important;
	border: 0 !important; border-radius: var(--b-r) !important;
	font-family: var(--obs-font); font-size: 16px !important; font-weight: 700 !important; text-transform: none !important;
	cursor: pointer; box-shadow: none !important;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), transform .3s var(--obs-ease), box-shadow .3s var(--obs-ease);
}
.obs-form-w__submit:hover, .obs-form-w__submit:focus { background: var(--b-bg-h) !important; color: var(--b-text-h) !important; }
.obs-form-w__submit:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(46, 232, 96, .6) !important; }
.obs-form-w__submit:focus-visible { outline: 2px solid var(--f-focus) !important; outline-offset: 3px; }
.obs-form-w__submit i { transition: transform .3s var(--obs-ease); }
.obs-form-w__submit:hover i { transform: translateX(4px); }
.obs-form-w__submit[disabled] { opacity: .7; pointer-events: none; }
.obs-form-w.is-sending .obs-form-w__submit i { animation: obs-spin 1s linear infinite; }
.obs-form-w__msg { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 13px 16px; border-radius: 10px; font-size: 14.5px; line-height: 1.5; }
.obs-form-w__msg:empty, .obs-form-w__msg[hidden] { display: none; }
.obs-form-w__msg.is-ok { background: rgba(46, 232, 96, .12); border: 1px solid rgba(18, 165, 58, .45); color: #0d6e2a; }
.obs-form-w.is-dark .obs-form-w__msg.is-ok { color: #dfffe8; }
.obs-form-w__msg.is-err { background: rgba(224, 72, 72, .1); border: 1px solid rgba(224, 72, 72, .4); color: #a32020; }
.obs-form-w.is-dark .obs-form-w__msg.is-err { color: #ffd6d6; }
.obs-form-w__msg i { margin-top: 3px; }
.obs-form-w__note { margin: 10px 0 0; font-size: 12.5px; color: var(--f-ph); text-align: center; }
@media (max-width: 767px) {
	.obs-ff--50, .obs-ff--33 { flex-basis: 100%; }
}
.obs-form-w .obs-ff__input::placeholder { text-transform: none; }
/* Hero form: message field */
.obs-quote__form .obs-qform .obs-field--msg textarea { min-height: 96px; padding-left: 48px !important; padding-top: 13px !important; }
.obs-quote__form .obs-qform .obs-field--msg > i:first-child { top: 24px; transform: none; margin-top: -8px; }

/* =========================================================
   Default description / check-list style (any Obsidian widget)
   ========================================================= */
.obs-desc { color: var(--obs-desc, #4a524e); font-size: 17px; line-height: 1.7; max-width: 640px; }
.obs-desc p { margin: 0 0 14px !important; }
.obs-desc p:last-child { margin-bottom: 0 !important; }
.obs-desc a { color: #12a53a; text-decoration: underline; }
.obs-desc strong { color: var(--obs-desc-strong, #0b0f0d); }
.obs-scope .obs-desc ul { list-style: none !important; margin: 16px 0 !important; padding: 0 !important; column-gap: 28px; }
.obs-scope .obs-desc ul li { position: relative; break-inside: avoid; padding: 0 0 10px 34px !important; margin: 0 !important; list-style: none !important; }
.obs-scope .obs-desc ul li::before {
	content: '\f00c' !important; display: inline-flex !important; align-items: center; justify-content: center;
	position: absolute; left: 0; top: 3px; width: 22px; height: 22px; border-radius: 50%;
	background: #16b442; color: #fff; font: 900 11px/1 'Font Awesome 6 Free';
}
.obs-scope .obs-desc ol { margin: 16px 0 !important; padding-left: 22px !important; }
.obs-scope .obs-desc ol li { margin-bottom: 8px !important; }

/* =========================================================
   SERVICE SPLIT
   ========================================================= */
.obs-split { --sp-bg: #f6f7f6; --sp-title: #0b0f0d; --sp-text: #4a524e; --sp-card: rgba(255,255,255,.75); --sp-line: rgba(0,0,0,.09); --sp-ic-bg: rgba(46,232,96,.16); --sp-ic: #12a53a;
	position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 80px 0; background: var(--sp-bg); color: var(--sp-title); font-size: 16px; line-height: 1.6; }
.obs-split.is-dark { --sp-bg: #0a0e0c; --sp-title: #fff; --sp-text: #c5cdc9; --sp-card: rgba(255,255,255,.04); --sp-line: rgba(255,255,255,.12); --sp-ic-bg: rgba(46,232,96,.12); --sp-ic: var(--obs-green); --obs-desc: #c5cdc9; --obs-desc-strong: #fff; }
.obs-split * { box-sizing: border-box; }
:where(.obs-split) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-split) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-split) :where(li)::before { content: none; }
.obs-split :is(h2, h3, p) { text-transform: none; }
.obs-split .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-split.is-dark .obs-pill { background: rgba(255, 255, 255, .07); color: #e3e9e6; }
.obs-split .obs-sec-title { color: var(--sp-title); font-size: clamp(32px, 3.6vw, 58px); margin: 18px 0 18px; }
.obs-split .obs-sec-title .obs-hl { display: block; color: #12a53a; }
.obs-split.is-dark .obs-sec-title .obs-hl { color: var(--obs-green); }
.obs-split :is(a, button):focus { outline: none !important; }
.obs-split :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

.obs-split__content { position: relative; z-index: 2; width: 53%; }
.obs-split.img-left .obs-split__content { margin-left: auto; }

/* Image: curved edge facing the content + green swoosh */
.obs-split__media { position: absolute; z-index: 1; top: 0; bottom: 0; width: 42%; }
.obs-split.img-right .obs-split__media { right: 0; }
.obs-split.img-left  .obs-split__media { left: 0; }
.obs-split:not(.is-bleed) .obs-split__media { top: 40px; bottom: 40px; }
.obs-split__img { position: absolute; inset: 0; overflow: hidden; }
.obs-split.img-right .obs-split__img { border-radius: 320px 0 0 320px / 50% 0 0 50%; -webkit-clip-path: polygon(14% 0, 100% 0, 100% 100%, 22% 100%, 0 50%); clip-path: polygon(14% 0, 100% 0, 100% 100%, 22% 100%, 0 50%); }
.obs-split.img-left  .obs-split__img { -webkit-clip-path: polygon(0 0, 86% 0, 100% 50%, 78% 100%, 0 100%); clip-path: polygon(0 0, 86% 0, 100% 50%, 78% 100%, 0 100%); }
.obs-split__img img { width: 100%; height: 100% !important; object-fit: cover; display: block; transition: transform 1.2s var(--obs-ease); }
.obs-split:hover .obs-split__img img { transform: scale(1.04); }
.obs-split__edge { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, #16b442, var(--obs-green)); }
.obs-split.img-right .obs-split__edge { -webkit-clip-path: polygon(10% 0, 14% 0, 0 50%, 22% 100%, 18% 100%, -4% 50%); clip-path: polygon(11% 0, 14% 0, 0 50%, 22% 100%, 19% 100%, -3% 50%); transform: translateX(-14px); }
.obs-split.img-left  .obs-split__edge { -webkit-clip-path: polygon(86% 0, 89% 0, 103% 50%, 81% 100%, 78% 100%, 100% 50%); clip-path: polygon(86% 0, 89% 0, 103% 50%, 81% 100%, 78% 100%, 100% 50%); transform: translateX(14px); }

/* Before / After */
.obs-ba { position: absolute; z-index: 3; bottom: 9%; display: flex; align-items: center; gap: 4px; }
.obs-split.img-right .obs-ba { left: 2%; }
.obs-split.img-left  .obs-ba { right: 2%; }
.obs-ba__card { position: relative; width: 230px; margin: 0; padding: 6px; background: #fff; border-radius: 16px; box-shadow: 0 20px 40px -18px rgba(0,0,0,.5); transform: rotate(-4deg); transition: transform .4s var(--obs-ease); }
.obs-ba__card.is-after { transform: rotate(3deg) translateY(-26px); }
.obs-ba__card:hover { transform: rotate(0) translateY(-6px); }
.obs-ba__card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 11px; display: block; }
.obs-ba__card figcaption { position: absolute; left: 16px; bottom: 16px; display: flex; align-items: center; gap: 8px; }
.obs-ba__ic { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #16b442; color: #fff; font-size: 17px; border: 3px solid #fff; }
.obs-ba__card b { padding: 5px 16px; border-radius: 30px; background: #0b0f0d; color: #fff; font-size: 14px; font-weight: 700; }
.obs-ba__card.is-after b { background: #16b442; }
.obs-ba__arrow { width: 70px; height: 36px; margin-bottom: 40px; flex-shrink: 0; }

/* Features */
.obs-scope .obs-split__feats { display: grid !important; grid-template-columns: 1fr 1fr; gap: 26px 0; margin-top: 32px !important; max-width: 820px; }
.obs-split__feats li { display: flex; align-items: center; gap: 18px; padding-right: 26px !important; }
.obs-split__feats li:nth-child(even) { padding: 0 0 0 34px !important; border-left: 1px solid var(--sp-line); }
.obs-split__ficon { width: 74px; height: 74px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--sp-ic-bg); color: var(--sp-ic); font-size: 28px; transition: background-color .3s, color .3s, transform .3s var(--obs-ease); }
.obs-split__ficon svg { width: 28px; height: 28px; fill: currentColor; }
.obs-split__feats li:hover .obs-split__ficon { background: #16b442; color: #fff; transform: translateY(-3px); }
.obs-split__feats strong { display: block; color: var(--sp-title); font-size: 19px; font-weight: 700; line-height: 1.3; }
.obs-split__feats small { display: block; color: var(--sp-text); font-size: 15px; line-height: 1.5; margin-top: 4px; }

/* CTA row */
.obs-split__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 22px 46px; margin-top: 34px; }
.obs-btn--pill { border-radius: 50px; background: #16b442; color: #fff; min-width: 300px; justify-content: space-between; padding: 20px 34px; font-size: 19px; }
.obs-btn--pill:hover { background: #12a53a; color: #fff; }
.obs-split__call { display: flex; align-items: center; gap: 18px; color: var(--sp-title) !important; text-decoration: none !important; }
.obs-split__callic { width: 64px; height: 64px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--sp-ic-bg); color: var(--sp-ic); font-size: 24px; transition: transform .3s var(--obs-ease); }
.obs-split__call:hover .obs-split__callic { transform: rotate(-12deg) scale(1.06); }
.obs-split__call small { display: block; font-size: 15px; color: var(--sp-title); }
.obs-split__call strong { display: block; font-size: 26px; font-weight: 800; line-height: 1.2; }

/* Stats bar */
.obs-scope .obs-split__stats { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 34px !important; padding: 16px 20px !important; background: var(--sp-card); border: 1px solid var(--sp-line); border-radius: 12px; max-width: 920px; }
.obs-split__stats li { display: flex; align-items: center; gap: 14px; padding: 0 18px !important; border-left: 1px solid var(--sp-line); }
.obs-split__stats li:first-child { padding-left: 0 !important; border-left: 0; }
.obs-split__sicon { width: 54px; height: 54px; flex-shrink: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #12a53a; font-size: 22px; box-shadow: 0 6px 14px -10px rgba(0,0,0,.4); }
.obs-split.is-dark .obs-split__sicon { background: rgba(46,232,96,.12); color: var(--obs-green); box-shadow: none; }
.obs-split__sicon svg { width: 22px; height: 22px; fill: currentColor; }
.obs-split__stats strong { display: block; color: var(--sp-title); font-size: 16px; font-weight: 700; line-height: 1.3; }
.obs-split__stats small { display: block; color: var(--sp-text); font-size: 14px; }

@media (max-width: 1360px) {
	.obs-ba__card { width: 180px; }
	.obs-split__content { width: 55%; }
	.obs-split__media { width: 40%; }
}
@media (max-width: 1100px) {
	.obs-split { display: flex; flex-direction: column; padding: 60px 0 0; }
	.obs-split__content { width: 100%; margin: 0 !important; }
	.obs-split__media { position: relative; order: 2; width: 100%; height: 440px; margin-top: 44px; top: auto !important; bottom: auto !important; }
	.obs-split .obs-split__img, .obs-split.img-left .obs-split__img { border-radius: 0; -webkit-clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%); clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%); }
	.obs-split .obs-split__edge { display: none; }
	.obs-split .obs-ba { left: 16px !important; right: auto !important; bottom: 20px; }
}
@media (max-width: 767px) {
	.obs-split { padding-top: 50px; }
	.obs-desc { font-size: 15.5px; }
	.obs-scope .obs-desc ul { columns: 1 !important; }
	.obs-scope .obs-split__feats { grid-template-columns: 1fr; gap: 18px; }
	.obs-split__feats li, .obs-split__feats li:nth-child(even) { padding: 0 !important; border-left: 0; }
	.obs-split__ficon { width: 58px; height: 58px; font-size: 22px; }
	.obs-split__feats strong { font-size: 17px; }
	.obs-split__cta { gap: 18px; }
	.obs-btn--pill { width: 100%; min-width: 0; font-size: 17px; padding: 17px 26px; }
	.obs-split__call strong { font-size: 22px; }
	.obs-scope .obs-split__stats { grid-template-columns: 1fr; gap: 14px; }
	.obs-split__stats li { padding: 0 !important; border-left: 0; }
	.obs-split__media { height: 340px; }
	.obs-ba__card { width: 140px; padding: 4px; border-radius: 12px; }
	.obs-ba__card figcaption { left: 8px; bottom: 8px; gap: 4px; }
	.obs-ba__ic { width: 28px; height: 28px; font-size: 12px; border-width: 2px; }
	.obs-ba__card b { font-size: 11px; padding: 3px 10px; }
	.obs-ba__arrow { width: 40px; margin-bottom: 24px; }
}

/* Elementor Pro form inside the hero card: select icon spacing */
.obs-quote__form .elementor-field-group-service .elementor-select-wrapper select,
.elementor-form .elementor-field-group-service .elementor-select-wrapper select.elementor-field { padding-left: 46px !important; padding-inline-start: 46px !important; text-indent: 0 !important; }

/* =========================================================
   v1.9: consistent, smaller icons across all Obsidian widgets
   (circles ~48-56px, glyphs ~18-22px)
   ========================================================= */
.obs-scope :is(.obs-split__ficon, .obs-process__ficon, .obs-sol__ficon, .obs-proj__sicon, .obs-tfeat__icon, .obs-about__ficon, .obs-faq__ficon, .obs-step__icon) { width: 54px !important; height: 54px !important; font-size: 21px !important; }
.obs-scope :is(.obs-split__ficon, .obs-process__ficon, .obs-sol__ficon, .obs-proj__sicon, .obs-tfeat__icon, .obs-about__ficon, .obs-faq__ficon, .obs-step__icon) svg { width: 21px !important; height: 21px !important; }
.obs-scope :is(.obs-split__callic, .obs-faq__call-ic, .obs-faq__help-ic, .obs-cov__ficon, .obs-agroup__icon, .obs-areas__shield) { width: 48px !important; height: 48px !important; font-size: 19px !important; }
.obs-scope :is(.obs-split__sicon, .obs-hero__badge-ic, .obs-rev__sicon, .obs-emg__ficon) { width: 42px !important; height: 42px !important; font-size: 17px !important; }
.obs-scope .obs-about__sicon { font-size: 30px !important; }
.obs-scope .obs-quote__icon, .obs-scope .obs-svc__card-ic { font-size: 32px !important; }
.obs-scope .obs-solcard__icon { font-size: 30px !important; }
.obs-scope .obs-split__feats li { gap: 16px; }
.obs-scope .obs-split__call strong { font-size: 22px; }
.obs-scope .obs-btn--pill { min-width: 0; padding: 16px 30px; font-size: 16px; border-radius: 8px; background: var(--obs-green); color: #06100a; }
.obs-scope .obs-btn--pill:hover { background: var(--obs-green-dark); color: #06100a; }
@media (max-width: 767px) {
	.obs-scope :is(.obs-split__ficon, .obs-process__ficon, .obs-sol__ficon, .obs-proj__sicon, .obs-tfeat__icon, .obs-about__ficon, .obs-faq__ficon, .obs-step__icon) { width: 46px !important; height: 46px !important; font-size: 18px !important; }
}

/* =========================================================
   CTA BAR
   ========================================================= */
.obs-ctabar-wrap { width: 100%; padding: 20px 0; }
.obs-ctabar {
	display: flex; align-items: center; gap: 26px;
	padding: 16px 16px 16px 20px;
	background: #0d1411; color: #fff;
	border: 1px solid rgba(46, 232, 96, .28); border-radius: 60px;
	box-shadow: 0 18px 40px -24px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .02);
	font-family: var(--obs-font);
}
.obs-ctabar * { box-sizing: border-box; }
:where(.obs-ctabar) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-ctabar) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.obs-ctabar.is-square { border-radius: 14px; }
.obs-ctabar__lead { display: flex; align-items: center; gap: 14px; flex-shrink: 0; color: #fff !important; text-decoration: none !important; }
.obs-ctabar__lead-ic { position: relative; width: 46px; height: 46px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--obs-green); color: #06100a; font-size: 17px; }
.obs-ctabar__lead-ic::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--obs-green); animation: obs-pulse 2s var(--obs-ease) infinite; }
.obs-ctabar__lead strong { display: block; font-size: 16px; font-weight: 700; line-height: 1.3; }
.obs-ctabar__lead small { display: block; color: #aab3ae; font-size: 13px; line-height: 1.35; }
.obs-scope .obs-ctabar__feats { flex: 1; display: flex !important; justify-content: center; min-width: 0; }
.obs-ctabar__feats li { display: flex; align-items: center; gap: 12px; padding: 0 22px !important; border-left: 1px solid rgba(255, 255, 255, .12); min-width: 0; }
.obs-ctabar__feats li:first-child { border-left: 0; }
.obs-ctabar__fic { width: 36px; height: 36px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 1.5px solid rgba(46, 232, 96, .5); color: var(--obs-green); font-size: 15px; }
.obs-ctabar__fic svg { width: 15px; height: 15px; fill: currentColor; }
.obs-ctabar__feats strong { display: block; font-size: 14px; font-weight: 700; line-height: 1.3; white-space: nowrap; }
.obs-ctabar__feats small { display: block; color: #aab3ae; font-size: 12px; white-space: nowrap; }
.obs-ctabar .obs-btn { flex-shrink: 0; border-radius: 40px; padding: 15px 28px; white-space: nowrap; }
.obs-ctabar :is(a):focus { outline: none !important; }
.obs-ctabar :is(a):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
@media (max-width: 1200px) {
	.obs-ctabar { flex-wrap: wrap; border-radius: 20px; padding: 20px; gap: 18px; }
	.obs-scope .obs-ctabar__feats { order: 3; flex-basis: 100%; justify-content: space-between; padding-top: 16px !important; border-top: 1px solid rgba(255, 255, 255, .1); }
	.obs-ctabar__feats li:first-child { padding-left: 0 !important; }
	.obs-ctabar .obs-btn { margin-left: auto; }
}
@media (max-width: 767px) {
	.obs-ctabar { flex-direction: column; align-items: stretch; text-align: left; }
	.obs-scope .obs-ctabar__feats { flex-direction: column; gap: 12px; }
	.obs-ctabar__feats li { padding: 0 !important; border-left: 0; }
	.obs-ctabar .obs-btn { width: 100%; margin: 0; justify-content: center; order: 4; }
}

/* =========================================================
   v1.9.1 mobile fixes
   ========================================================= */
/* Ordered lists (process steps) also need the reset; Roofix adds left padding */
:where(.obs-scope) :where(ol) { list-style: none !important; margin: 0 !important; padding: 0 !important; }

@media (max-width: 767px) {
	/* Services visual: image, then card, then tagline (no overlap) */
	.obs-svc__visual { display: flex !important; flex-direction: column; min-height: 0 !important; }
	.obs-svc__img { position: relative !important; inset: auto !important; width: 100% !important; height: 230px !important; }
	.obs-svc__card { position: relative !important; inset: auto !important; width: 94% !important; margin: -34px 0 0 auto !important; padding: 22px 24px 22px 36px !important; }
	.obs-scope .obs-svc__tagline { position: relative !important; inset: auto !important; align-self: center; margin: 26px 0 4px !important; font-size: 26px !important; transform: rotate(-6deg); }

	/* 2 cards per row */
	.obs-scope .obs-why__cards,
	.obs-scope .obs-svc__cards,
	.obs-scope .obs-sol__cards,
	.obs-scope .obs-steps { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }

	/* Why cards: compact */
	.obs-why .obs-wcard { padding: 14px !important; }
	.obs-why .obs-wcard__icon { width: 38px; height: 38px; font-size: 16px; }
	.obs-scope .obs-wcard__title { font-size: 14.5px; margin: 12px 0 4px; }
	.obs-wcard__foot { flex-direction: column; align-items: flex-start; gap: 8px; }
	.obs-wcard__foot p { font-size: 12.5px; }
	.obs-wcard__arrow { width: 30px; height: 30px; font-size: 12px; }

	/* Service cards: compact */
	.obs-scard__body { padding: 12px 12px 14px; }
	.obs-scard__icon { font-size: 20px; }
	.obs-scope .obs-scard__title { font-size: 14.5px; margin: 8px 0 6px; }
	.obs-scard__body p { font-size: 12.5px; margin-bottom: 10px; }
	.obs-scard__link { font-size: 13px; }

	/* Solutions: image on top, compact body */
	.obs-solcard { grid-template-columns: 1fr !important; min-height: 0; }
	.obs-solcard__img { aspect-ratio: 4 / 3; }
	.obs-solcard__body { padding: 14px 14px 16px !important; }
	.obs-scope .obs-solcard__icon { font-size: 22px !important; }
	.obs-scope .obs-solcard h3 { font-size: 15px; margin: 8px 0 6px; }
	.obs-solcard p { font-size: 12.5px; margin-bottom: 10px; }
	.obs-solcard__link { font-size: 13px; }

	/* Process: 2 per row, arrows hidden (grid already shows order) */
	.obs-step { padding: 16px !important; }
	.obs-step::after { display: none !important; }
	.obs-scope .obs-step__icon { width: 42px !important; height: 42px !important; font-size: 17px !important; }
	.obs-step__num { width: 30px; height: 30px; font-size: 12px; }
	.obs-scope .obs-step h3 { font-size: 15.5px; margin: 12px 0 6px; }
	.obs-step p { font-size: 13px; }
}
@media (max-width: 420px) {
	.obs-scope .obs-why__cards, .obs-scope .obs-svc__cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 1100px) {
	/* FAQ: image sits flush at the bottom, no empty space */
	.obs-faq.has-img { padding-bottom: 0 !important; }
	.obs-faq__img { margin-bottom: 0 !important; }
}

/* =========================================================
   MISSION & VALUES  (light section)
   Same tokens as every other section: --obs-speed / --obs-ease
   hover = lift + green border + icon fills green.
   ========================================================= */
.obs-mission { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 80px 0; background: #fff; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-mission * { box-sizing: border-box; }
:where(.obs-mission) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-mission) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-mission) :where(li)::before { content: none !important; }
.obs-mission :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-mission img { max-width: 100%; border: 0; box-shadow: none; }
.obs-mission :is(a, button):focus { outline: none !important; }
.obs-mission :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

/* Same sub-heading pill as the light sections */
.obs-mission .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-mission .obs-sec-title { color: #0b0f0d; font-size: clamp(32px, 3.3vw, 54px); margin: 18px 0 16px; }
.obs-mission .obs-sec-title .obs-after { display: block; }
.obs-mission .obs-sec-text { color: #4a524e; max-width: 520px; }

/* Soft dotted decorations */
.obs-mission__dots { position: absolute; z-index: 0; pointer-events: none; width: 160px; height: 120px; opacity: .5;
	background-image: radial-gradient(var(--obs-green) 1.6px, transparent 1.6px); background-size: 16px 16px; }
.obs-mission__dots--1 { top: 40px; right: 40px; }
.obs-mission__dots--2 { bottom: 40px; left: 24px; width: 120px; height: 90px; opacity: .35; }

.obs-mission__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.obs-mission__left { display: flex; flex-direction: column; gap: 28px; }

/* Mission card */
.obs-mcard { position: relative; overflow: hidden; border-radius: 16px; background: #0b100d; color: #fff; min-height: 340px; }
/* Photo = CSS background, so no theme/plugin img rule can shrink or stretch it */
.obs-mcard__img { position: absolute; top: 0; right: 0; bottom: 0; left: 40%; z-index: 0; overflow: hidden;
	-webkit-clip-path: polygon(26% 0, 100% 0, 100% 100%, 0 100%); clip-path: polygon(26% 0, 100% 0, 100% 100%, 0 100%); }
.obs-mcard__photo { position: absolute; inset: 0; display: block;
	background-position: center center; background-size: cover; background-repeat: no-repeat;
	transition: transform 1.2s var(--obs-ease); }
.obs-mcard:hover .obs-mcard__photo { transform: scale(1.05); }
/* Thin green diagonal along the photo edge */
.obs-mcard__edge { position: absolute; top: 0; bottom: 0; left: 40%; width: 28%; z-index: 1; pointer-events: none;
	background: var(--obs-green);
	-webkit-clip-path: polygon(93% 0, 100% 0, 7% 100%, 0 100%); clip-path: polygon(93% 0, 100% 0, 7% 100%, 0 100%);
	opacity: .9; }
/* Soft fade so the text never sits on a busy photo */
.obs-mcard::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(90deg, #0b100d 0%, #0b100d 38%, rgba(11, 16, 13, 0) 62%); }
.obs-mcard__body { position: relative; z-index: 2; width: 58%; padding: 30px; display: flex; flex-direction: column; align-items: flex-start; }
.obs-mcard__icon { flex: 0 0 auto; width: 54px !important; height: 54px !important; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1px solid rgba(255, 255, 255, .18); background: rgba(0, 0, 0, .3); color: var(--obs-green); font-size: 21px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease); }
.obs-mcard__icon svg { width: 21px; height: 21px; fill: currentColor; }
.obs-mcard:hover .obs-mcard__icon { background: var(--obs-green); color: #06100a; border-color: var(--obs-green); }
.obs-mcard__label { flex: 0 0 auto; display: block; margin-top: 18px; color: #9fb0a7; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.obs-scope .obs-mcard__title { flex: 0 0 auto; margin: 6px 0 12px; color: #fff; font-size: clamp(22px, 2vw, 30px); font-weight: 800; line-height: 1.18; }
.obs-mcard__title .obs-hl { display: block; color: var(--obs-green); }
.obs-mcard__text { flex: 0 0 auto; color: #bcc5c0 !important; font-size: 14.5px; font-weight: 400 !important; line-height: 1.6; max-width: 330px; }
.obs-mcard .obs-btn { flex: 0 0 auto; margin-top: 24px; }

/* Value cards */
.obs-scope .obs-mission__cards { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.obs-mvcard { display: flex; flex-direction: column; padding: 24px !important; background: #fff; border: 1px solid #e8ecea; border-radius: 14px;
	box-shadow: 0 18px 40px -30px rgba(0, 0, 0, .45);
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-mvcard:hover { transform: translateY(-4px); border-color: rgba(46, 232, 96, .55); box-shadow: 0 26px 50px -28px rgba(0, 0, 0, .5); }
.obs-mvcard__icon { flex: 0 0 auto; width: 54px !important; height: 54px !important; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .12); color: var(--obs-green-dark); font-size: 21px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-mvcard__icon svg { width: 21px; height: 21px; fill: currentColor; }
.obs-mvcard:hover .obs-mvcard__icon { background: var(--obs-green); color: #06100a; transform: translateY(-2px); }
.obs-scope .obs-mvcard__title { margin: 16px 0 8px; color: #0b0f0d; font-size: 19px; font-weight: 700; line-height: 1.3; }
.obs-mvcard p { color: #4a524e; font-size: 14.5px; line-height: 1.55; }
.obs-mvcard__arrow { width: 36px !important; height: 36px !important; margin-top: 18px; flex: 0 0 auto; border-radius: 50%; align-self: flex-start;
	display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .12); color: var(--obs-green-dark); font-size: 13px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-mvcard:hover .obs-mvcard__arrow { background: var(--obs-green); color: #06100a; transform: translateX(3px); }

@media (max-width: 1100px) {
	.obs-mission__grid { grid-template-columns: 1fr; gap: 26px; }
	.obs-mission .obs-sec-text { max-width: none; }
}
@media (max-width: 767px) {
	.obs-mission { padding: 56px 0; }
	.obs-scope .obs-mission__cards { grid-template-columns: 1fr !important; }
	.obs-mcard__img { left: 0; opacity: .22; -webkit-clip-path: none; clip-path: none; }
	.obs-mcard__edge { display: none; }
	.obs-mcard::after { background: linear-gradient(180deg, rgba(11,16,13,.86), rgba(11,16,13,.94)); }
	.obs-mcard__body { width: 100%; padding: 24px; }
	.obs-mcard__text { max-width: none; }
	.obs-mcard .obs-btn { width: 100%; }
	.obs-mission__dots { display: none; }
}

/* =========================================================
   CTA + CALLBACK FORM
   ========================================================= */
.obs-cta2 { position: relative; width: 100%; overflow: hidden; isolation: isolate; background: #0a0e0c; color: #fff; font-size: 16px; line-height: 1.6; }
.obs-cta2 * { box-sizing: border-box; }
:where(.obs-cta2) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-cta2) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-cta2) :where(li)::before { content: none !important; }
.obs-cta2 :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-cta2 :is(a, button):focus { outline: none !important; }
.obs-cta2 :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

.obs-cta2__bg { position: absolute; inset: 0; z-index: 0; }
.obs-cta2__bg img { width: 100%; height: 100% !important; object-fit: cover; display: block; }
.obs-cta2__bg::after { content: ''; position: absolute; inset: 0;
	background: linear-gradient(100deg, rgba(8, 12, 10, .97) 0%, rgba(8, 12, 10, .95) 34%, rgba(8, 12, 10, .55) 52%, rgba(8, 12, 10, .25) 100%); }
.obs-cta2__top { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); gap: 50px; align-items: center; padding: 74px 0; }
.obs-cta2 .obs-sec-title { font-size: clamp(34px, 3.8vw, 58px); }
.obs-cta2 .obs-sec-title .obs-hl { display: block; }
.obs-cta2 .obs-sec-text { max-width: 520px; }

.obs-scope .obs-cta2__badges { display: flex !important; flex-wrap: wrap; gap: 14px 30px; margin: 28px 0 30px !important; }
.obs-cta2__badges li { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 600; line-height: 1.25; }
.obs-cta2__bic { width: 48px !important; height: 48px !important; flex: 0 0 auto; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .12); border: 1px solid rgba(46, 232, 96, .3); color: var(--obs-green); font-size: 18px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-cta2__bic svg { width: 18px; height: 18px; fill: currentColor; }
.obs-cta2__badges li:hover .obs-cta2__bic { background: var(--obs-green); color: #06100a; }
.obs-cta2__btns { display: flex; flex-wrap: wrap; gap: 16px; }

/* White callback card */
.obs-cta2__card { background: #fff; color: #0b0f0d; border-radius: 16px; padding: 28px; box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .75); }
.obs-scope .obs-cta2__card h3 { color: #0b0f0d; font-size: 26px; font-weight: 800; line-height: 1.2; margin: 0 0 8px; }
.obs-cta2__card > p { color: #4a524e; font-size: 14.5px; margin-bottom: 18px; }

/* Bottom feature strip */
.obs-cta2__strip { position: relative; z-index: 2; border-top: 1px solid rgba(255, 255, 255, .1); background: rgba(6, 10, 8, .72); }
.obs-scope .obs-cta2__feats { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 22px 0 !important; }
.obs-cta2__feats li { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 6px 22px !important; border-left: 1px solid rgba(255, 255, 255, .12); }
.obs-cta2__feats li:first-child { border-left: 0; }
.obs-cta2__fic { color: var(--obs-green); font-size: 34px; flex-shrink: 0; transition: transform var(--obs-speed) var(--obs-ease); }
.obs-cta2__fic svg { width: 34px; height: 34px; fill: currentColor; }
.obs-cta2__feats li:hover .obs-cta2__fic { transform: translateY(-3px); }
.obs-cta2__feats strong { display: block; font-size: 16.5px; font-weight: 700; line-height: 1.25; }
.obs-cta2__feats small { display: block; color: #c5cdc9; font-size: 13.5px; margin-top: 3px; }

@media (max-width: 1100px) {
	.obs-cta2__top { grid-template-columns: 1fr; gap: 34px; padding: 56px 0; }
	.obs-cta2__card { max-width: 620px; }
	.obs-cta2__bg::after { background: linear-gradient(180deg, rgba(8, 12, 10, .92) 0%, rgba(8, 12, 10, .96) 100%); }
	.obs-scope .obs-cta2__feats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
	.obs-cta2__feats li:nth-child(odd) { border-left: 0; }
	.obs-cta2__feats li { justify-content: flex-start; }
}
@media (max-width: 767px) {
	.obs-cta2__top { padding: 48px 0; }
	.obs-cta2__btns .obs-btn { flex: 1 1 100%; }
	.obs-cta2__card { padding: 22px; }
	.obs-scope .obs-cta2__card h3 { font-size: 22px; }
	.obs-scope .obs-cta2__badges { gap: 12px 18px; }
	.obs-cta2__badges li { font-size: 13.5px; gap: 10px; }
	.obs-cta2__bic { width: 40px; height: 40px; font-size: 15px; }
	.obs-scope .obs-cta2__feats { grid-template-columns: 1fr 1fr; }
	.obs-cta2__feats li { flex-direction: column; text-align: center; gap: 8px; padding: 6px 10px !important; }
	.obs-cta2__fic { font-size: 26px; }
	.obs-cta2__feats strong { font-size: 14.5px; }
	.obs-cta2__feats small { font-size: 12.5px; }
}

/* Light form card (CTA callback) — same field CSS, only the tokens change */
.obs-quote__form.is-light {
	--obs-field-bg: #f4f6f5;
	--obs-field-bg-focus: #fff;
	--obs-field-border: #e2e7e4;
	--obs-field-text: #0b0f0d;
	--obs-field-ph: #8a938e;
	--obs-field-focus: var(--obs-green-dark);
}
.obs-quote__form.is-light input:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px #f4f6f5 inset !important; }
.obs-quote__form.is-light select option { color: #0b0f0d; }
.obs-qform--2col { grid-template-columns: 1fr 1fr; }
.obs-qform--2col .obs-field--wide, .obs-qform--2col .obs-qform__submit { grid-column: 1 / -1; }
.obs-quote__form.is-light .obs-field--msg textarea { min-height: 92px; }
@media (max-width: 420px) { .obs-qform--2col { grid-template-columns: 1fr; } }

/* Light variant of the hero quote card (CTA widget, "White card" option) */
.obs-quote.is-light-card { background: #fff; border-color: #e6ebe8; }
.obs-quote.is-light-card .obs-scope .obs-quote__title,
.obs-scope .obs-quote.is-light-card .obs-quote__title { color: #0b0f0d; }
.obs-quote.is-light-card .obs-quote__text { color: #4a524e; }
.obs-quote.is-light-card .obs-quote__ticks li { color: #4a524e; }

/* =========================================================
   SERVICES HERO (page banner)
   ========================================================= */
.obs-svch { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 76px 0; background: #070b09; color: #fff; font-size: 16px; line-height: 1.6; }
.obs-svch * { box-sizing: border-box; }
:where(.obs-svch) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-svch) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-svch) :where(li)::before { content: none !important; }
.obs-svch :is(h1, h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-svch :is(a, button):focus { outline: none !important; }
.obs-svch :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-svch .obs-pill { background: rgba(255, 255, 255, .07); color: #e3e9e6; }
.obs-svch .obs-sec-title { font-size: clamp(34px, 3.8vw, 60px); margin: 20px 0 18px; }
.obs-svch .obs-sec-title .obs-hl, .obs-svch .obs-sec-title .obs-after { display: block; }
.obs-svch .obs-sec-text { max-width: 560px; }

.obs-svch__v { position: absolute; z-index: 0; pointer-events: none; }
.obs-svch__v--1 { top: -15%; left: -6%; width: 46%; height: 130%; background: linear-gradient(140deg, rgba(46, 232, 96, .07), transparent 60%); transform: skewX(-18deg); }
.obs-svch__v--2 { top: 0; right: 24%; width: 26%; height: 100%; background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .022) 0 2px, transparent 2px 15px); transform: skewX(-14deg); }

.obs-svch__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 46px; align-items: center; }
.obs-svch__btns { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; }

.obs-scope .obs-svch__badges { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 34px !important; }
.obs-svch__badges li { display: flex; align-items: center; gap: 12px; padding: 4px 18px !important; border-left: 1px solid rgba(255, 255, 255, .13); font-size: 14.5px; line-height: 1.3; }
.obs-svch__badges li:first-child { border-left: 0; padding-left: 0 !important; }
.obs-svch__bic { flex: 0 0 auto; width: 48px !important; height: 48px !important; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1.5px solid rgba(46, 232, 96, .5); background: rgba(46, 232, 96, .06); color: var(--obs-green); font-size: 18px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-svch__bic svg { width: 18px; height: 18px; fill: currentColor; }
.obs-svch__badges li:hover .obs-svch__bic { background: var(--obs-green); color: #06100a; }

.obs-svch__media { position: relative; min-height: 560px; border-radius: 14px; overflow: hidden; background: var(--obs-green); }
.obs-svch__photo { position: absolute; inset: 2px; display: block; background-size: cover; background-position: center; background-repeat: no-repeat;
	transition: transform 1.2s var(--obs-ease); }
.obs-svch__media:hover .obs-svch__photo { transform: scale(1.04); }
.obs-svch.shape-arrow .obs-svch__media,
.obs-svch.shape-arrow .obs-svch__photo {
	-webkit-clip-path: polygon(14% 0, 100% 0, 100% 78%, 72% 100%, 14% 100%, 0 62%, 0 16%);
	clip-path: polygon(14% 0, 100% 0, 100% 78%, 72% 100%, 14% 100%, 0 62%, 0 16%);
	border-radius: 0;
}
.obs-svch.shape-slant .obs-svch__media,
.obs-svch.shape-slant .obs-svch__photo {
	-webkit-clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); border-radius: 0;
}

@media (max-width: 1100px) {
	.obs-svch__grid { grid-template-columns: 1fr; gap: 34px; }
	.obs-svch__media { min-height: 380px; order: 2; }
	.obs-svch .obs-sec-text { max-width: none; }
}
@media (max-width: 767px) {
	.obs-svch { padding: 52px 0; }
	.obs-svch__btns .obs-btn { flex: 1 1 100%; }
	.obs-scope .obs-svch__badges { grid-template-columns: 1fr 1fr; row-gap: 18px; }
	.obs-svch__badges li:nth-child(odd) { border-left: 0; padding-left: 0 !important; }
	.obs-svch__bic { width: 42px !important; height: 42px !important; font-size: 16px !important; }
	.obs-svch__media { min-height: 300px; }
}

/* =========================================================
   SERVICES GRID
   ========================================================= */
.obs-svcg { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 76px 0; background: #f4f9f6; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-svcg * { box-sizing: border-box; }
:where(.obs-svcg) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-svcg) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-svcg) :where(li)::before { content: none !important; }
.obs-svcg :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-svcg :is(a, button):focus { outline: none !important; }
.obs-svcg :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-svcg.has-pattern::before { content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .5;
	background-image: repeating-linear-gradient(135deg, rgba(46, 232, 96, .05) 0 2px, transparent 2px 22px); }
.obs-svcg .obs-wrap { position: relative; z-index: 2; }
.obs-svcg .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-svcg .obs-sec-title { color: #0b0f0d; font-size: clamp(30px, 3.1vw, 50px); margin: 16px 0 0; }
.obs-svcg .obs-sec-title .obs-hl { display: block; }

.obs-svcg__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 30px; align-items: start; margin-bottom: 34px; }
.obs-svcg__intro { color: #4a524e; font-size: 15.5px; line-height: 1.65; padding-top: 34px; }
.obs-svcg__cta { padding-top: 34px; }
.obs-svcg__cta .obs-btn { white-space: nowrap; }

.obs-scope .obs-svcg__cards { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.obs-scard2 { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid #e8ecea; border-radius: 14px; overflow: hidden;
	box-shadow: 0 18px 40px -32px rgba(0, 0, 0, .5);
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-scard2:hover { transform: translateY(-6px); border-color: rgba(46, 232, 96, .55); box-shadow: 0 30px 56px -30px rgba(0, 0, 0, .55); }
.obs-scard2__img { position: relative; height: 170px; overflow: hidden; flex: 0 0 auto; }
.obs-scard2__photo { position: absolute; inset: 0; display: block; background-size: cover; background-position: center; background-repeat: no-repeat;
	transition: transform 1.1s var(--obs-ease); }
.obs-scard2:hover .obs-scard2__photo { transform: scale(1.07); }
.obs-scard2__badge { position: absolute; top: 12px; left: 12px; z-index: 2; padding: 6px 12px; border-radius: 999px;
	background: var(--obs-green); color: #06100a; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.obs-scard2__body { position: relative; display: flex; align-items: flex-start; gap: 14px; padding: 18px; flex: 1 1 auto; }
.obs-scard2__icon { flex: 0 0 auto; width: 50px !important; height: 50px !important; border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .12); color: var(--obs-green-dark); font-size: 20px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-scard2__icon svg { width: 20px; height: 20px; fill: currentColor; }
.obs-scard2:hover .obs-scard2__icon { background: var(--obs-green); color: #06100a; transform: translateY(-2px); }
.obs-scard2__txt { flex: 1 1 auto; min-width: 0; }
.obs-scope .obs-scard2__txt h3 { margin: 2px 0 5px; color: #0b0f0d; font-size: 16.5px; font-weight: 700; line-height: 1.3; }
.obs-scard2__txt p { color: #4a524e; font-size: 13.5px; line-height: 1.5; }
.obs-scope .obs-scard2__points { display: grid !important; gap: 5px; margin-top: 9px !important; }
.obs-scard2__points li { display: flex; align-items: flex-start; gap: 7px; color: #4a524e; font-size: 12.5px; line-height: 1.4; }
.obs-scard2__points i { color: var(--obs-green-dark); font-size: 10px; margin-top: 4px; }
.obs-scard2__price { display: inline-block; margin-top: 10px; padding: 4px 10px; border-radius: 6px; background: rgba(46, 232, 96, .12); color: #11833a; font-size: 12.5px; font-weight: 700; }
.obs-scard2__arrow { flex: 0 0 auto; align-self: center; width: 38px !important; height: 38px !important; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; background: var(--obs-green); color: #06100a; font-size: 13px;
	transition: background-color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-scard2:hover .obs-scard2__arrow { transform: translateX(3px); box-shadow: 0 10px 22px -10px rgba(46, 232, 96, .8); }
/* Whole card clickable, but the real links stay on top */
.obs-scard2__cover { position: absolute; inset: 0; z-index: 1; }
.obs-scard2__arrow, .obs-scard2__badge { position: relative; z-index: 2; }

@media (max-width: 1360px) { .obs-scope .obs-svcg__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 1100px) {
	.obs-svcg__top { grid-template-columns: 1fr; gap: 16px; }
	.obs-svcg__intro, .obs-svcg__cta { padding-top: 0; }
	.obs-scope .obs-svcg__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.obs-svcg { padding: 52px 0; }
	.obs-svcg__cta .obs-btn { width: 100%; }
	.obs-scard2__img { height: 150px; }
}
@media (max-width: 480px) { .obs-scope .obs-svcg__cards { grid-template-columns: 1fr; } }

/* Respect reduced motion across the new sections */
@media (prefers-reduced-motion: reduce) {
	.obs-mcard__photo, .obs-scard2__photo, .obs-svch__photo,
	.obs-mvcard, .obs-scard2, .obs-scard2__arrow, .obs-mvcard__arrow { transition: none !important; transform: none !important; }
}

/* =========================================================
   PROJECT GALLERY
   ========================================================= */
.obs-gal { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 70px 0 0; background: #fff; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-gal * { box-sizing: border-box; }
:where(.obs-gal) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-gal) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-gal) :where(li)::before { content: none !important; }
.obs-gal :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-gal :is(a, button):focus { outline: none !important; }
.obs-gal :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-gal .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-gal .obs-sec-title { color: #0b0f0d; font-size: clamp(30px, 3.2vw, 52px); margin: 16px 0 14px; }
.obs-gal .obs-sec-title .obs-after { display: block; }
.obs-gal .obs-sec-text { color: #4a524e; max-width: 520px; }
.obs-gal__head { max-width: 620px; }

/* Dark angled stats panel, top-right */
.obs-gal__panel { position: absolute; top: 0; right: 0; width: 56%; height: 300px; z-index: 1; background: #0d2016; color: #fff;
	-webkit-clip-path: polygon(16% 0, 100% 0, 100% 100%, 30% 100%); clip-path: polygon(16% 0, 100% 0, 100% 100%, 30% 100%); }
.obs-gal__panelphoto { position: absolute; top: 0; right: 0; bottom: 0; left: 46%; display: block;
	background-size: cover; background-position: center; background-repeat: no-repeat;
	-webkit-clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%); clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
	transition: transform 1.4s var(--obs-ease); }
.obs-gal__panel:hover .obs-gal__panelphoto { transform: scale(1.04); }
.obs-scope .obs-gal__stats { position: absolute; top: 50%; left: 22%; transform: translateY(-50%); z-index: 2;
	display: grid !important; grid-template-columns: repeat(3, auto); }
.obs-gal__stats li { padding: 0 22px !important; text-align: center; border-left: 1px solid rgba(255, 255, 255, .18); }
.obs-gal__stats li:first-child { border-left: 0; }
.obs-gal__sicon { display: block; color: var(--obs-green); font-size: 28px; margin-bottom: 8px; }
.obs-gal__sicon svg { width: 28px; height: 28px; fill: currentColor; }
.obs-gal__stats strong { display: block; color: #fff; font-size: 26px; font-weight: 800; line-height: 1.1; }
.obs-gal__stats small { display: block; color: #cfd6d2; font-size: 12.5px; margin-top: 3px; }

/* Filter tabs */
.obs-gal__tabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 26px 0 20px; position: relative; z-index: 3; }
.obs-gtab { all: unset; box-sizing: border-box; cursor: pointer;
	display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 20px;
	border: 1px solid #e2e7e4; border-radius: 8px; background: #fff; color: #0b0f0d;
	font-family: var(--obs-font); font-size: 14.5px; font-weight: 600; line-height: 1;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-gtab:hover { border-color: var(--obs-green); transform: translateY(-2px); }
.obs-gtab.is-active { background: var(--obs-green); border-color: var(--obs-green); color: #06100a; }

/* Grid: big featured card + list */
.obs-gal__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; align-items: stretch; }
.obs-scope .obs-gal__list { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }

.obs-gcard { position: relative; overflow: hidden; border-radius: 14px; height: 210px; isolation: isolate;
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease), opacity .35s var(--obs-ease); }
.obs-gcard--feat { height: auto; min-height: 436px; }
.obs-gcard__photo { position: absolute; inset: 0; display: block; background-size: cover; background-position: center; background-repeat: no-repeat;
	transition: transform 1.2s var(--obs-ease); }
.obs-gcard::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(180deg, rgba(6, 12, 8, 0) 38%, rgba(6, 12, 8, .55) 64%, rgba(6, 12, 8, .9) 100%); }
.obs-gcard:hover { transform: translateY(-4px); box-shadow: 0 28px 54px -26px rgba(0, 0, 0, .55); }
.obs-gcard:hover .obs-gcard__photo { transform: scale(1.07); }
.obs-gcard__body { position: absolute; left: 18px; right: 70px; bottom: 16px; z-index: 2; color: #fff; }
.obs-gcard--feat .obs-gcard__body { left: 26px; bottom: 24px; }
.obs-gcard__label { display: block; color: #d7ded9; font-size: 11.5px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; margin-bottom: 6px; }
.obs-scope .obs-gcard__body h3 { color: #fff; font-size: 17px; font-weight: 700; line-height: 1.3; margin: 0 0 5px; }
.obs-scope .obs-gcard--feat .obs-gcard__body h3 { font-size: clamp(20px, 1.8vw, 26px); }
.obs-gcard__place { display: inline-flex; align-items: center; gap: 7px; color: #d7ded9; font-size: 13px; }
.obs-gcard__place i { color: var(--obs-green); font-size: 12px; }
.obs-gcard__arrow { position: absolute; right: 16px; bottom: 16px; z-index: 3;
	width: 40px !important; height: 40px !important; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #0b0f0d; font-size: 14px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-gcard__arrow.is-green { width: 52px !important; height: 52px !important; right: 24px; bottom: 24px; background: var(--obs-green); color: #06100a; font-size: 16px; }
.obs-gcard:hover .obs-gcard__arrow { background: var(--obs-green); color: #06100a; transform: translateX(3px); }
/* Filtering */
.obs-gcard.is-hidden { display: none; }
.obs-gcard.is-in { animation: obs-gfade .4s var(--obs-ease) both; }
@keyframes obs-gfade { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
.obs-gal__empty { margin: 26px 0 0; color: #4a524e; }

/* Bottom CTA band */
.obs-gal__band { position: relative; margin-top: 46px; padding: 34px 0; background: #0d2016; color: #fff; overflow: hidden; }
.obs-gal__band::before { content: ''; position: absolute; inset: 0; pointer-events: none;
	background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .02) 0 2px, transparent 2px 16px); }
.obs-gal__bandin { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 26px; align-items: center; }
.obs-gal__cicon { flex: 0 0 auto; width: 74px !important; height: 74px !important; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1.5px solid rgba(46, 232, 96, .45); color: var(--obs-green); font-size: 28px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-gal__cicon svg { width: 28px; height: 28px; fill: currentColor; }
.obs-gal__band:hover .obs-gal__cicon { background: rgba(46, 232, 96, .12); }
.obs-gal__ceyebrow { display: block; color: #9fb0a7; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 6px; }
.obs-scope .obs-gal__ctxt h3 { color: #fff; font-size: clamp(22px, 2.1vw, 30px); font-weight: 800; line-height: 1.2; margin: 0 0 8px; }
.obs-gal__ctxt h3 .obs-hl { color: var(--obs-green); }
.obs-gal__ctxt p { color: #c5cdc9; font-size: 14.5px; max-width: 520px; }
.obs-gal__thumbs { display: flex; align-items: center; }
.obs-gal__thumb { display: block; width: 92px; height: 68px; margin-left: -14px; flex: 0 0 auto;
	border: 3px solid #0d2016; border-radius: 10px; background-size: cover; background-position: center;
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-gal__thumb:first-child { margin-left: 0; }
.obs-gal__thumb:nth-child(2) { transform: translateY(-10px) scale(1.06); z-index: 2; position: relative; }
.obs-gal__thumbs:hover .obs-gal__thumb { transform: none; }
.obs-gal__thumb:hover { transform: translateY(-8px) scale(1.08) !important; box-shadow: 0 18px 34px -16px rgba(0, 0, 0, .7); z-index: 3; position: relative; }
.obs-gal__thumbarrow { width: 46px !important; height: 46px !important; margin-left: 16px; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	border: 1.5px solid rgba(255, 255, 255, .25); color: #fff; font-size: 14px;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease); }
.obs-gal__thumbarrow:hover { background: var(--obs-green); border-color: var(--obs-green); color: #06100a; }

@media (max-width: 1360px) {
	.obs-gal__panel { width: 60%; height: 260px; }
	.obs-gal__bandin { grid-template-columns: auto minmax(0, 1fr) auto; }
	.obs-gal__thumbs { display: none; }
}
@media (max-width: 1100px) {
	.obs-gal__panel { position: relative; width: 100%; height: 220px; margin-bottom: 26px; -webkit-clip-path: none; clip-path: none; border-radius: 14px; }
	.obs-gal__panelphoto { left: 52%; }
	.obs-scope .obs-gal__stats { left: 20px; transform: translateY(-50%); grid-template-columns: repeat(3, auto); }
	.obs-gal__grid { grid-template-columns: 1fr; }
	.obs-gcard--feat { min-height: 300px; }
	.obs-scope .obs-gal__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.obs-gal__bandin { grid-template-columns: auto minmax(0, 1fr); row-gap: 18px; }
	.obs-gal__cbtn { grid-column: 2; }
}
@media (max-width: 767px) {
	.obs-gal { padding-top: 52px; }
	.obs-gal__panelphoto { display: none; }
	.obs-scope .obs-gal__stats { position: static; transform: none; padding: 24px 0; grid-template-columns: repeat(3, 1fr); }
	.obs-gal__panel { height: auto; }
	.obs-gal__stats li { padding: 0 8px !important; }
	.obs-gal__sicon { font-size: 22px; }
	.obs-gal__stats strong { font-size: 20px; }
	.obs-gal__stats small { font-size: 11px; }
	.obs-gtab { min-height: 42px; padding: 0 14px; font-size: 13.5px; }
	.obs-scope .obs-gal__list { grid-template-columns: 1fr; }
	.obs-gal__bandin { grid-template-columns: 1fr; text-align: left; }
	.obs-gal__cicon { width: 58px !important; height: 58px !important; font-size: 22px !important; }
	.obs-gal__cbtn { grid-column: 1; }
	.obs-gal__cbtn .obs-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.obs-gcard, .obs-gcard__photo, .obs-gal__panelphoto, .obs-gal__thumb { transition: none !important; }
	.obs-gcard.is-in { animation: none !important; }
}

/* =========================================================
   ONE BUTTON SIZE EVERYWHERE
   Base, large and form submit buttons all share the header height.
   ========================================================= */
:root { --obs-btn-h: 46px; }
.obs-scope .obs-btn,
.obs-scope .obs-btn--primary,
.obs-scope .obs-btn--lg,
.obs-scope .obs-btn--dark,
.obs-scope .obs-btn--outline {
	min-height: var(--obs-btn-h);
	height: auto;
	padding: 12px 26px;
	font-size: 15px;
}
.obs-scope .obs-btn--sm { min-height: 40px; padding: 10px 18px; font-size: 14px; }
.obs-quote__form { --obs-submit-h: var(--obs-btn-h); }

/* ---------- Gallery fixes: tab states + filtered layout ---------- */
/* Themes often style button:hover globally — lock our own colours down */
.obs-scope .obs-gtab,
.obs-scope .obs-gtab:link,
.obs-scope .obs-gtab:visited { background: #fff !important; color: #0b0f0d !important; border: 1px solid #e2e7e4 !important; }
.obs-scope .obs-gtab:hover,
.obs-scope .obs-gtab:focus,
.obs-scope .obs-gtab:focus-visible { background: #fff !important; color: #0b0f0d !important; border-color: var(--obs-green) !important; }
.obs-scope .obs-gtab.is-active,
.obs-scope .obs-gtab.is-active:hover,
.obs-scope .obs-gtab.is-active:focus { background: var(--obs-green) !important; color: #06100a !important; border-color: var(--obs-green) !important; }

/* When the featured card is filtered out, the grid uses the full width */
.obs-gal__grid.is-nofeat { grid-template-columns: minmax(0, 1fr); }
.obs-gal__grid.is-nofeat .obs-gcard--feat { display: none; }

/* Card text must never slide under the arrow */
.obs-gcard__body { right: 16px; padding-right: 54px; }
.obs-gcard--feat .obs-gcard__body { padding-right: 74px; }
.obs-gcard__place { max-width: 100%; }
.obs-scope .obs-gcard__body h3 { overflow-wrap: anywhere; }

/* =========================================================
   CONTACT (form card + info card)
   ========================================================= */
.obs-ctc { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 70px 0; background: #fafbfa; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-ctc * { box-sizing: border-box; }
:where(.obs-ctc) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-ctc) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-ctc) :where(li)::before { content: none !important; }
.obs-ctc :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-ctc :is(a, button):focus { outline: none !important; }
.obs-ctc :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

.obs-ctc__grid { display: grid; grid-template-columns: 56% minmax(0, 1fr); gap: 26px; align-items: start; }

/* ---------- Left: white form card ---------- */
.obs-ctc__card { background: #fff; border: 1px solid #ebefed; border-radius: 16px; padding: 34px; box-shadow: 0 24px 60px -40px rgba(0, 0, 0, .4); }
.obs-ctc__eyebrow { display: inline-flex; align-items: center; gap: 12px; color: #1a1f1c; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.obs-ctc__line { width: 44px; height: 3px; border-radius: 2px; background: var(--obs-green); display: inline-block; }
.obs-scope .obs-ctc__title { margin: 14px 0 10px; color: #0b1120; font-size: clamp(26px, 2.6vw, 40px); font-weight: 800; line-height: 1.15; }
.obs-ctc__title .obs-hl { color: var(--obs-green); }
.obs-ctc__text { color: #4a524e; font-size: 15px; margin-bottom: 22px !important; }

/* ---------- Form styling: works for the built-in form AND any plugin
   (Elementor Forms, WPForms, CF7, Fluent, Gravity) ---------- */
.obs-cform {
	--obs-cf-h: 52px;
	--obs-cf-r: 10px;
	--obs-cf-bg: #fbfcfb;
	--obs-cf-border: #e2e7e4;
	--obs-cf-text: #0b0f0d;
	--obs-cf-ph: #9aa39e;
}
.obs-cform__hint { color: #8a938e; font-size: 14px; }
.obs-cform :where(label, .elementor-field-label, .wpforms-field-label, .frm_primary_label) {
	display: block !important; margin: 0 0 7px !important;
	color: #0b1120 !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0; text-transform: none;
}
.obs-cform :where(input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]), select, textarea) {
	width: 100% !important; max-width: 100% !important;
	height: var(--obs-cf-h) !important;
	margin: 0 !important; padding: 0 16px !important;
	background: var(--obs-cf-bg) !important;
	border: 1px solid var(--obs-cf-border) !important;
	border-radius: var(--obs-cf-r) !important;
	box-shadow: none !important;
	color: var(--obs-cf-text) !important;
	font-family: var(--obs-font) !important; font-size: 15px !important; line-height: 1.3;
	outline: none !important; -webkit-appearance: none; appearance: none;
	transition: border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease), background-color var(--obs-speed) var(--obs-ease);
}
.obs-cform textarea { height: auto !important; min-height: 130px !important; padding-top: 14px !important; padding-bottom: 14px !important; resize: vertical; }
.obs-cform select { cursor: pointer; padding-right: 40px !important;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%234a524e'%3E%3Cpath d='M8 11.5 2.5 6h11z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important; background-position: right 16px center !important; background-size: 13px !important; }
.obs-cform ::placeholder { color: var(--obs-cf-ph) !important; opacity: 1; }
.obs-cform :where(input, select, textarea):focus {
	border-color: var(--obs-green-dark) !important; background: #fff !important;
	box-shadow: 0 0 0 3px rgba(46, 232, 96, .16) !important;
}
.obs-cform input:-webkit-autofill { -webkit-text-fill-color: var(--obs-cf-text) !important; -webkit-box-shadow: 0 0 0 1000px var(--obs-cf-bg) inset !important; }
/* Submit button — same green button as everywhere else */
.obs-cform :where(button[type=submit], input[type=submit], .elementor-button[type=submit], .wpforms-submit, .frm_button_submit) {
	width: 100% !important; min-height: var(--obs-btn-h, 46px) !important; height: auto !important;
	display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
	margin-top: 6px !important; padding: 14px 26px !important;
	background: var(--obs-green) !important; border: 0 !important; border-radius: 8px !important;
	color: #06100a !important; font-family: var(--obs-font) !important; font-size: 15px !important; font-weight: 700 !important;
	cursor: pointer; box-shadow: none !important;
	transition: background-color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease);
}
.obs-cform :where(button[type=submit], input[type=submit], .wpforms-submit):hover {
	background: var(--obs-green-dark) !important; transform: translateY(-2px);
	box-shadow: 0 10px 24px -8px rgba(46, 232, 96, .55) !important;
}
/* Two-column rows for the built-in form and for plugins that use rows */
.obs-cform__form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.obs-cform__form .obs-cfield { margin: 0 !important; }
.obs-cform__form .obs-cfield--wide,
.obs-cform__form > button { grid-column: 1 / -1; }
.obs-cform :where(.elementor-form-fields-wrapper, .wpforms-field-container) { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.obs-cform :where(.elementor-field-group, .wpforms-field) { width: 100% !important; max-width: 100% !important; padding: 0 !important; margin: 0 !important; }
.obs-cform :where(.elementor-field-group.elementor-field-type-textarea, .elementor-field-group.elementor-field-type-submit,
	.wpforms-field-textarea, .wpforms-submit-container) { grid-column: 1 / -1; }

/* ---------- Right: dark info card ---------- */
.obs-ctc__info { position: relative; overflow: hidden; border-radius: 16px; background: #0b100d; color: #fff; padding: 34px; isolation: isolate; }
.obs-ctc__photo { position: absolute; inset: 0; z-index: 0; display: block; background-size: cover; background-position: center; opacity: .12; }
.obs-ctc__info::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(160deg, rgba(11, 16, 13, .9), rgba(11, 16, 13, .72)); }
.obs-ctc__infoin { position: relative; z-index: 2; }
.obs-scope .obs-ctc__ititle { color: #fff; font-size: clamp(24px, 2.2vw, 32px); font-weight: 800; line-height: 1.2; margin: 0 0 10px; }
.obs-ctc__itext { color: #c5cdc9; font-size: 14.5px; margin-bottom: 24px !important; }
.obs-scope .obs-ctc__rows { display: grid !important; gap: 18px; }
.obs-ctc__rows li { display: flex; align-items: flex-start; gap: 16px; }
.obs-ctc__icon { flex: 0 0 auto; width: 56px !important; height: 56px !important; border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .14); color: var(--obs-green); font-size: 21px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-ctc__icon svg { width: 21px; height: 21px; fill: currentColor; }
.obs-ctc__rows li:hover .obs-ctc__icon { background: var(--obs-green); color: #06100a; transform: translateY(-2px); }
.obs-ctc__rtxt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.obs-ctc__rtxt strong { color: #fff; font-size: 16.5px; font-weight: 700; line-height: 1.3; }
.obs-ctc__rtxt small { color: #c5cdc9; font-size: 14px; line-height: 1.45; }
.obs-ctc__val { color: var(--obs-green) !important; font-size: 16px; font-weight: 700; text-decoration: none; overflow-wrap: anywhere;
	transition: color var(--obs-speed) var(--obs-ease); }
a.obs-ctc__val:hover { color: #fff !important; }

@media (max-width: 1100px) {
	.obs-ctc__grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 767px) {
	.obs-ctc { padding: 52px 0; }
	.obs-ctc__card, .obs-ctc__info { padding: 22px; }
	.obs-cform__form,
	.obs-cform :where(.elementor-form-fields-wrapper, .wpforms-field-container) { grid-template-columns: 1fr; }
	.obs-ctc__icon { width: 48px !important; height: 48px !important; font-size: 18px !important; }
}

/* ---------- Sticky header: no extra gap under the bar ---------- */
.obs-header-fixed { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.obs-header-fixed > .e-con-inner { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ---------- Gallery: keep the stats readable over the photo ---------- */
.obs-scope .obs-gal__stats {
	padding: 18px 10px !important; border-radius: 14px;
	background: rgba(8, 20, 12, .82);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	box-shadow: 0 20px 40px -22px rgba(0, 0, 0, .8);
}
.obs-gal__stats small { color: #e3e9e6; }
@media (max-width: 767px) {
	.obs-scope .obs-gal__stats { background: none; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; }
}

/* =========================================================
   PAGE HERO — full background photo mode (homepage style)
   ========================================================= */
.obs-svch.is-bg { --obs-svch-ov: .72; --obs-svch-ovw: 52%; padding: 86px 0; }
.obs-svch__bg { position: absolute; inset: 0; z-index: 0; display: block;
	background-size: cover; background-position: center; background-repeat: no-repeat; }
.obs-svch__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg,
			rgba(7, 12, 9, calc(var(--obs-svch-ov) + .22)) 0%,
			rgba(7, 12, 9, calc(var(--obs-svch-ov) + .16)) calc(var(--obs-svch-ovw) - 22%),
			rgba(7, 12, 9, calc(var(--obs-svch-ov) * .5)) var(--obs-svch-ovw),
			rgba(7, 12, 9, .12) 100%),
		linear-gradient(180deg, rgba(7, 12, 9, .35), rgba(7, 12, 9, .15) 45%, rgba(7, 12, 9, .5)); }
.obs-svch.is-bg .obs-svch__grid { grid-template-columns: minmax(0, 1fr); }
.obs-svch.is-bg .obs-svch__content { max-width: var(--obs-svch-cw, 780px); width: 100%; }
.obs-svch.is-bg .obs-sec-text { max-width: 100%; }
.obs-svch.is-bg .obs-sec-title { font-size: clamp(34px, 4vw, 62px); }
.obs-svch.is-bg .obs-svch__badges { max-width: var(--obs-svch-cw, 780px); }
@media (max-width: 1100px) {
	.obs-svch.is-bg { padding: 60px 0; }
	.obs-svch.is-bg .obs-svch__grid { grid-template-columns: 1fr; }
	.obs-svch__scrim { background: linear-gradient(180deg, rgba(7, 12, 9, .9), rgba(7, 12, 9, .82)); }
}

/* =========================================================
   BLOG ARCHIVE (cards + sidebar)
   ========================================================= */
.obs-barch { position: relative; width: 100%; overflow: hidden; isolation: isolate; padding: 70px 0; background: #f7faf8; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-barch * { box-sizing: border-box; }
:where(.obs-barch) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-barch) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-barch) :where(li)::before { content: none !important; }
.obs-barch :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-barch img { max-width: 100%; height: auto; border: 0; box-shadow: none; }
.obs-barch :is(a, button):focus { outline: none !important; }
.obs-barch :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-barch .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
.obs-barch .obs-sec-title { color: #0b0f0d; font-size: clamp(28px, 2.9vw, 46px); margin: 14px 0 12px; }
.obs-barch .obs-sec-text { color: #4a524e; max-width: 620px; }
.obs-barch__wm { position: absolute; top: 0; right: 0; width: 34%; height: 300px; z-index: 0; pointer-events: none; opacity: .18;
	background-image: var(--obs-barch-wm); background-size: cover; background-position: center;
	-webkit-mask-image: linear-gradient(240deg, #000, transparent 70%); mask-image: linear-gradient(240deg, #000, transparent 70%); }
.obs-barch .obs-wrap { position: relative; z-index: 2; }

/* Tabs + sort row */
.obs-barch__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin: 24px 0 22px; }
.obs-barch__tabs { display: flex; flex-wrap: wrap; gap: 10px; }
.obs-barch__sort { position: relative; display: inline-flex; align-items: center; gap: 10px; color: #4a524e; font-size: 14px; }
.obs-barch__sort select { -webkit-appearance: none; appearance: none; cursor: pointer;
	min-height: 42px; padding: 0 38px 0 14px; border: 1px solid #e2e7e4 !important; border-radius: 8px; background: #fff !important;
	color: #0b0f0d !important; font-family: var(--obs-font); font-size: 14px; outline: none !important;
	transition: border-color var(--obs-speed) var(--obs-ease); }
.obs-barch__sort select:focus { border-color: var(--obs-green-dark) !important; }
.obs-barch__sort > i { position: absolute; right: 14px; color: #8a938e; font-size: 11px; pointer-events: none; }

/* Layout */
.obs-barch__body { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.obs-barch__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }

/* Cards */
.obs-bcard { display: flex; flex-direction: column; background: #fff; border: 1px solid #e9edeb; border-radius: 14px; overflow: hidden;
	box-shadow: 0 16px 38px -32px rgba(0, 0, 0, .5);
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-bcard:hover { transform: translateY(-5px); border-color: rgba(46, 232, 96, .5); box-shadow: 0 28px 52px -30px rgba(0, 0, 0, .5); }
.obs-bcard.is-featured { grid-column: 1 / -1; }
.obs-bcard__img { position: relative; display: block; height: 180px; overflow: hidden; background: #eef2f0; }
.obs-bcard.is-featured .obs-bcard__img { height: 240px; }
.obs-bcard__img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform 1.1s var(--obs-ease); }
.obs-bcard:hover .obs-bcard__img img { transform: scale(1.06); }
.obs-bcard__noimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #b9c2bd; font-size: 34px; }
.obs-bcard__cat { position: absolute; top: 12px; left: 12px; padding: 5px 12px; border-radius: 999px; background: var(--obs-green); color: #06100a;
	font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.obs-bcard__badge { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px;
	background: rgba(255, 255, 255, .94); color: #0b0f0d; font-size: 11.5px; font-weight: 700; }
.obs-bcard__body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; flex: 1 1 auto; }
.obs-bcard__meta { display: flex; flex-wrap: wrap; gap: 16px; color: #8a938e; font-size: 12.5px; }
.obs-bcard__meta i { color: var(--obs-green-dark); margin-right: 5px; }
.obs-scope .obs-bcard__body h3 { font-size: 17px; font-weight: 700; line-height: 1.32; margin: 0; }
.obs-bcard.is-featured .obs-bcard__body h3 { font-size: 20px; }
.obs-bcard__body h3 a { color: #0b0f0d; text-decoration: none; transition: color var(--obs-speed) var(--obs-ease); }
.obs-bcard:hover .obs-bcard__body h3 a { color: var(--obs-green-dark); }
.obs-bcard__body p { color: #4a524e; font-size: 13.5px; line-height: 1.55; }
.obs-bcard__more { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 6px;
	color: #0b0f0d; font-size: 14px; font-weight: 700; text-decoration: none; }
.obs-bcard__moreic { width: 32px !important; height: 32px !important; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; background: var(--obs-green); color: #06100a; font-size: 12px;
	transition: transform var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-bcard__more:hover .obs-bcard__moreic { transform: translateX(3px); box-shadow: 0 10px 20px -10px rgba(46, 232, 96, .8); }
.obs-bcard.is-hidden { display: none; }
.obs-bcard.is-in { animation: obs-gfade .4s var(--obs-ease) both; }
.obs-barch__empty { margin-top: 22px; color: #4a524e; }

/* Sidebar */
.obs-barch__side { display: grid; gap: 18px; position: sticky; top: 110px; }
.obs-barch__search { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; position: relative;
	background: #fff; border: 1px solid #e9edeb; border-radius: 14px; padding: 12px; box-shadow: 0 16px 38px -34px rgba(0, 0, 0, .5); }
.obs-barch__sic { position: absolute; left: 26px; top: 50%; transform: translateY(-50%); color: #9aa39e; font-size: 13px; pointer-events: none; }
.obs-barch__search input[type=search] { width: 100% !important; min-height: 44px; margin: 0 !important; padding: 0 14px 0 38px !important;
	background: #f6f8f7 !important; border: 1px solid #e9edeb !important; border-radius: 9px !important; box-shadow: none !important;
	color: #0b0f0d !important; font-family: var(--obs-font); font-size: 14px; outline: none !important;
	transition: border-color var(--obs-speed) var(--obs-ease), background-color var(--obs-speed) var(--obs-ease); }
.obs-barch__search input[type=search]:focus { background: #fff !important; border-color: var(--obs-green-dark) !important; }
.obs-barch__box { background: #fff; border: 1px solid #e9edeb; border-radius: 14px; padding: 20px; box-shadow: 0 16px 38px -34px rgba(0, 0, 0, .5); }
.obs-scope .obs-barch__box h3 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: #0b0f0d; font-size: 17px; font-weight: 800; }
.obs-barch__line { width: 26px; height: 3px; border-radius: 2px; background: var(--obs-green); display: inline-block; }
.obs-scope .obs-barch__cats { display: grid !important; }
.obs-barch__cats li + li { border-top: 1px solid #f0f3f1; }
.obs-barch__cats a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0 !important;
	color: #3c443f; font-size: 14.5px; text-decoration: none; transition: color var(--obs-speed) var(--obs-ease), padding-left var(--obs-speed) var(--obs-ease); }
.obs-barch__cats a i { color: #b9c2bd; font-size: 11px; transition: transform var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-barch__cats a:hover { color: var(--obs-green-dark); padding-left: 4px !important; }
.obs-barch__cats a:hover i { color: var(--obs-green-dark); transform: translateX(3px); }
.obs-scope .obs-barch__pop { display: grid !important; gap: 12px; }
.obs-barch__pop a { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.obs-barch__popimg { width: 56px; height: 48px; flex: 0 0 auto; border-radius: 8px; overflow: hidden; background: #eef2f0; display: block; }
.obs-barch__popimg img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }
.obs-barch__poptxt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.obs-barch__poptxt strong { color: #0b0f0d; font-size: 13.5px; font-weight: 700; line-height: 1.35; transition: color var(--obs-speed) var(--obs-ease); }
.obs-barch__poptxt small { color: #8a938e; font-size: 12px; }
.obs-barch__pop a:hover .obs-barch__poptxt strong { color: var(--obs-green-dark); }
.obs-barch__pop a > i { color: #b9c2bd; font-size: 11px; flex: 0 0 auto; transition: transform var(--obs-speed) var(--obs-ease); }
.obs-barch__pop a:hover > i { transform: translateX(3px); color: var(--obs-green-dark); }

@media (max-width: 1100px) {
	.obs-barch__body { grid-template-columns: 1fr !important; }
	.obs-barch__side { position: static; grid-template-columns: 1fr 1fr; }
	.obs-barch__search { grid-column: 1 / -1; }
	.obs-barch__wm { display: none; }
}
@media (max-width: 767px) {
	.obs-barch { padding: 52px 0; }
	.obs-barch__grid { grid-template-columns: 1fr !important; }
	.obs-barch__side { grid-template-columns: 1fr; }
	.obs-barch__bar { flex-direction: column; align-items: stretch; }
	.obs-barch__sort { justify-content: space-between; }
	.obs-barch__sort select { flex: 1 1 auto; }
	.obs-bcard__img, .obs-bcard.is-featured .obs-bcard__img { height: 180px; }
}

/* ---------- Contact: sub-heading pill (same as every section) + form feel ---------- */
.obs-ctc .obs-pill { background: rgba(10, 14, 12, .06); color: #1a1f1c; }
/* Icon-inside fields, matching the quote forms on the services pages */
.obs-cform.is-icons :where(label, .elementor-field-label, .wpforms-field-label) { display: none !important; }
.obs-cform.is-icons .obs-cfield { position: relative; }
.obs-cform.is-icons .obs-cfield > i { position: absolute; left: 16px; top: 26px; color: #9aa39e; font-size: 15px; pointer-events: none;
	transition: color var(--obs-speed) var(--obs-ease); }
.obs-cform.is-icons .obs-cfield:focus-within > i { color: var(--obs-green-dark); }
.obs-cform.is-icons :where(input:not([type=submit]), select, textarea) { padding-left: 46px !important; }
.obs-cform.is-icons .obs-cfield--msg > i { top: 20px; }

/* =========================================================
   ARTICLE BODY (single post / single service)
   Everything scoped to .obs-art — no other page is affected.
   ========================================================= */
.obs-art { position: relative; width: 100%; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-art * { box-sizing: border-box; }
:where(.obs-art) :where(ul, ol) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-art) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-art) :where(li)::before { content: none !important; }
.obs-art :is(h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-art img { max-width: 100%; height: auto; border: 0; box-shadow: none; }
.obs-art :is(a, button):focus { outline: none !important; }
.obs-art :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }

/* Table of contents */
.obs-art__toc { background: #f4f8f5; border: 1px solid #e6ece8; border-radius: 14px; padding: 22px 24px; margin-bottom: 26px; }
.obs-scope .obs-art__toctitle { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; color: #0b0f0d; font-size: 19px; font-weight: 800; }
.obs-art__tocic { width: 34px !important; height: 34px !important; flex: 0 0 auto; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .16); color: var(--obs-green-dark); font-size: 15px !important; }
.obs-scope .obs-art__toclist { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 28px; }
.obs-art__toclist a { display: flex; align-items: center; gap: 10px; padding: 8px 0 !important; color: #3c443f; font-size: 14.5px; text-decoration: none;
	transition: color var(--obs-speed) var(--obs-ease), padding-left var(--obs-speed) var(--obs-ease); }
.obs-art__tocnum { color: #8a938e; font-weight: 700; flex: 0 0 auto; }
.obs-art__toclabel { flex: 1 1 auto; min-width: 0; }
.obs-art__toclist a i { color: #b9c2bd; font-size: 11px; flex: 0 0 auto; transition: transform var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-art__toclist a:hover { color: var(--obs-green-dark); padding-left: 4px !important; }
.obs-art__toclist a:hover i { color: var(--obs-green-dark); transform: translateX(3px); }

/* Featured image */
.obs-art__hero { position: relative; margin: 0 0 26px; height: 300px; border-radius: 14px; overflow: hidden; background: #eef2f0; }
.obs-art__hero img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }

/* Sections */
.obs-art__sec { margin-bottom: 30px; scroll-margin-top: 120px; }
.obs-scope .obs-art__sec > h2 { display: block; margin: 0 0 12px; color: #0b0f0d; font-size: 26px; font-weight: 800; line-height: 1.25; }
.obs-art__num { color: inherit; }
.obs-art__sec > h2 .obs-hl { color: var(--obs-green); }
.obs-art__row { display: block; }
.obs-art__row.has-img { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 260px); gap: 22px; align-items: start; }
.obs-art__row.has-img.img-left { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); }
.obs-art__row.has-img.img-left .obs-art__txt { order: 2; }
.obs-art__row.has-img.img-left .obs-art__sideimg { order: 1; }
.obs-art__sideimg { margin: 0; border-radius: 12px; overflow: hidden; }
.obs-art__sideimg img { width: 100% !important; display: block; }

/* Body text + green check list (scoped: plugin and theme lists stay untouched) */
.obs-art__txt { color: #4a524e; font-size: 15.5px; line-height: 1.68; }
.obs-art__txt p { margin: 0 0 12px !important; }
.obs-art__txt p:last-child { margin-bottom: 0 !important; }
.obs-art__txt :where(h3, h4) { margin: 18px 0 8px !important; color: #0b0f0d; font-size: 18px; font-weight: 700; }
.obs-art__txt a { color: var(--obs-green-dark); text-decoration: none; border-bottom: 1px solid rgba(31, 201, 76, .35); }
.obs-art__txt a:hover { border-color: var(--obs-green-dark); }
.obs-art__txt :where(ul) { display: grid !important; grid-template-columns: 1fr; gap: 10px 26px; margin: 14px 0 !important; }
.obs-art__txt.cols-2 :where(ul) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.obs-art__txt :where(ul) > li { position: relative; display: flex !important; align-items: flex-start; gap: 10px; padding-left: 0 !important; color: #3c443f; font-size: 14.5px; line-height: 1.5; }
.obs-art__txt :where(ul) > li::before {
	content: '\f00c'; font-family: 'Font Awesome 6 Free'; font-weight: 900;
	flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; border-radius: 50%;
	display: inline-flex !important; align-items: center; justify-content: center;
	background: var(--obs-green); color: #06100a; font-size: 10px;
}
.obs-art__txt :where(ol) { display: grid !important; gap: 10px; margin: 14px 0 !important; counter-reset: obsol; }
.obs-art__txt :where(ol) > li { display: flex !important; gap: 10px; color: #3c443f; font-size: 14.5px; counter-increment: obsol; }
.obs-art__txt :where(ol) > li::before { content: counter(obsol) '.'; color: var(--obs-green-dark); font-weight: 800; flex: 0 0 auto; }

/* Two info cards */
.obs-art__cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.obs-art__card { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; background: #fff; border: 1px solid #e9edeb; border-radius: 12px;
	transition: transform var(--obs-speed) var(--obs-ease), border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-art__card:hover { transform: translateY(-3px); border-color: rgba(46, 232, 96, .5); box-shadow: 0 20px 40px -30px rgba(0, 0, 0, .5); }
.obs-art__cardic { flex: 0 0 auto; width: 46px !important; height: 46px !important; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .12); color: var(--obs-green-dark); font-size: 18px !important;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-art__card:hover .obs-art__cardic { background: var(--obs-green); color: #06100a; }
.obs-art__cardtxt { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.obs-art__cardtxt strong { color: #0b0f0d; font-size: 15.5px; font-weight: 700; }
.obs-art__cardtxt small { color: #4a524e; font-size: 13.5px; line-height: 1.5; }

@media (max-width: 767px) {
	.obs-scope .obs-art__toclist { grid-template-columns: 1fr; }
	.obs-art__toc { padding: 18px; }
	.obs-art__row.has-img, .obs-art__row.has-img.img-left { grid-template-columns: 1fr; }
	.obs-art__row.has-img.img-left .obs-art__txt, .obs-art__row.has-img.img-left .obs-art__sideimg { order: 0; }
	.obs-art__txt.cols-2 :where(ul) { grid-template-columns: 1fr; }
	.obs-art__cards { grid-template-columns: 1fr; }
	.obs-scope .obs-art__sec > h2 { font-size: 21px; }
}

/* =========================================================
   POST SIDEBAR (sticky)
   ========================================================= */
.obs-pside { --obs-pside-top: 110px; display: flex; flex-direction: column; gap: 18px; width: 100%; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-pside * { box-sizing: border-box; }
:where(.obs-pside) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-pside) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-pside) :where(li)::before { content: none !important; }
.obs-pside :is(h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-pside img { max-width: 100%; height: auto; border: 0; }
.obs-pside :is(a, button):focus { outline: none !important; }
.obs-pside :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-pside.is-sticky { position: sticky; top: var(--obs-pside-top); align-self: start; }

/* Form card */
.obs-pform { background: #fff; border: 1px solid #e9edeb; border-radius: 14px; padding: 20px; box-shadow: 0 20px 44px -36px rgba(0, 0, 0, .5); }
.obs-pform.is-dark { background: rgba(16, 22, 20, .96); border-color: rgba(255, 255, 255, .12); }
.obs-pform__head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.obs-pform__ic { flex: 0 0 auto; width: 46px !important; height: 46px !important; border-radius: 10px;
	display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .14); color: var(--obs-green-dark); font-size: 19px !important; }
.obs-pform.is-dark .obs-pform__ic { color: var(--obs-green); }
.obs-scope .obs-pform__head h3 { color: #0b0f0d; font-size: 19px; font-weight: 800; line-height: 1.25; margin: 0 0 4px; }
.obs-pform.is-dark .obs-pform__head h3 { color: #fff; }
.obs-pform__head h3 .obs-hl { color: var(--obs-green-dark); }
.obs-pform.is-dark .obs-pform__head h3 .obs-hl { color: var(--obs-green); }
.obs-pform__head p { color: #4a524e; font-size: 13px; line-height: 1.5; }
.obs-pform.is-dark .obs-pform__head p { color: #c5cdc9; }
.obs-pform .obs-cform__form.is-single { grid-template-columns: 1fr; gap: 12px; }
.obs-pform.is-dark .obs-cform { --obs-cf-bg: rgba(255,255,255,.06); --obs-cf-border: rgba(255,255,255,.18); --obs-cf-text: #fff; --obs-cf-ph: #a9b3ae; }
.obs-scope .obs-pform__ticks { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px !important; padding-top: 14px !important; border-top: 1px solid #eef2f0; }
.obs-pform.is-dark .obs-pform__ticks { border-color: rgba(255, 255, 255, .12); }
.obs-pform__ticks li { display: flex; flex-direction: column; align-items: center; gap: 5px; text-align: center; color: #4a524e; font-size: 11.5px; line-height: 1.3; }
.obs-pform.is-dark .obs-pform__ticks li { color: #c5cdc9; }
.obs-pform__tic { color: var(--obs-green-dark); font-size: 16px; }
.obs-pform.is-dark .obs-pform__tic { color: var(--obs-green); }

/* Generic sidebar box */
.obs-pbox { background: #fff; border: 1px solid #e9edeb; border-radius: 14px; padding: 20px; box-shadow: 0 20px 44px -38px rgba(0, 0, 0, .5); }
.obs-scope .obs-pbox__title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; color: #0b0f0d; font-size: 17px; font-weight: 800; }
.obs-pbox__line { width: 26px; height: 3px; border-radius: 2px; background: var(--obs-green); display: inline-block; flex: 0 0 auto; }
.obs-pbox__ic { width: 32px !important; height: 32px !important; flex: 0 0 auto; border-radius: 8px;
	display: inline-flex; align-items: center; justify-content: center; background: rgba(46, 232, 96, .14); color: var(--obs-green-dark); font-size: 14px !important; }
.obs-scope .obs-pbox__rel { display: grid !important; gap: 14px; }
.obs-pbox__rel a { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.obs-pbox__img { width: 62px; height: 52px; flex: 0 0 auto; border-radius: 8px; overflow: hidden; background: #eef2f0; display: block; }
.obs-pbox__img img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .8s var(--obs-ease); }
.obs-pbox__rel a:hover .obs-pbox__img img { transform: scale(1.08); }
.obs-pbox__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1 1 auto; }
.obs-pbox__txt strong { color: #0b0f0d; font-size: 13.5px; font-weight: 700; line-height: 1.35; transition: color var(--obs-speed) var(--obs-ease); }
.obs-pbox__txt small { color: #8a938e; font-size: 12px; }
.obs-pbox__rel a:hover .obs-pbox__txt strong { color: var(--obs-green-dark); }
.obs-pbox__rel a > i, .obs-pbox__cats a i { color: #b9c2bd; font-size: 11px; flex: 0 0 auto; transition: transform var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-pbox__rel a:hover > i, .obs-pbox__cats a:hover i { color: var(--obs-green-dark); transform: translateX(3px); }
.obs-scope .obs-pbox__cats { display: grid !important; }
.obs-pbox__cats li + li { border-top: 1px solid #f0f3f1; }
.obs-pbox__cats a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0 !important; color: #3c443f; font-size: 14.5px; text-decoration: none;
	transition: color var(--obs-speed) var(--obs-ease), padding-left var(--obs-speed) var(--obs-ease); }
.obs-pbox__cats a b { color: #8a938e; font-weight: 600; }
.obs-pbox__cats a:hover { color: var(--obs-green-dark); padding-left: 4px !important; }

/* Need help card */
.obs-pbox--help { background: #f1f8f3; border-color: #dcebe1; text-align: left; }
.obs-phelp__top { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.obs-phelp__ic { flex: 0 0 auto; width: 52px !important; height: 52px !important; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; border: 2px solid rgba(46, 232, 96, .4); background: #fff; color: var(--obs-green-dark); font-size: 20px !important; }
.obs-phelp__top strong { display: block; color: #0b0f0d; font-size: 17px; font-weight: 800; }
.obs-phelp__top small { display: block; color: #4a524e; font-size: 13.5px; margin-top: 2px; }
.obs-phelp__call { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: var(--obs-btn-h, 46px);
	padding: 12px 18px; border-radius: 10px; background: #fff; border: 1px solid #dcebe1;
	color: var(--obs-green-dark); font-size: 15px; font-weight: 700; text-decoration: none;
	transition: background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease), transform var(--obs-speed) var(--obs-ease); }
.obs-phelp__call:hover { background: var(--obs-green); color: #06100a; transform: translateY(-2px); }

@media (max-width: 1100px) {
	.obs-pside.is-sticky { position: static; }
	.obs-pside { display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
	.obs-pform { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.obs-pside { grid-template-columns: 1fr; }
	.obs-scope .obs-pform__ticks { grid-template-columns: repeat(3, 1fr); }
}

/* Blog archive: breathing room between the heading block and the cards */
.obs-barch__head { margin-bottom: 26px; }
.obs-barch__bar + .obs-barch__body { margin-top: 4px; }
.obs-barch__body { margin-top: 8px; }

/* =========================================================
   SINGLE POST / SERVICE (full page widget)
   ========================================================= */
.obs-sp { position: relative; width: 100%; background: #fff; color: #0b0f0d; font-size: 16px; line-height: 1.6; }
.obs-sp * { box-sizing: border-box; }
:where(.obs-sp) :where(ul, ol) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-sp) :where(li)::before { content: none !important; }
.obs-sp :is(h1, h2, h3, p) { margin: 0; padding: 0; text-transform: none; }
.obs-sp :is(a, button):focus { outline: none !important; }
.obs-sp :is(a, button):focus-visible { outline: 2px solid var(--obs-green) !important; outline-offset: 3px; }
.obs-sp__note { padding: 18px; background: #f4f8f5; border: 1px dashed #cfe0d6; border-radius: 12px; color: #4a524e; }

/* Banner */
.obs-sp__hero { position: relative; min-height: 330px; display: flex; align-items: center; overflow: hidden; isolation: isolate; background: #0a120d; color: #fff; }
.obs-sp__heroimg { position: absolute; inset: 0; z-index: 0; display: block; background-size: cover; background-position: center; }
.obs-sp__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		linear-gradient(90deg, rgba(8, 16, 11, .97) 0%, rgba(8, 16, 11, .94) 38%, rgba(8, 16, 11, .55) 62%, rgba(8, 16, 11, .25) 100%),
		linear-gradient(180deg, rgba(8, 16, 11, .35), rgba(8, 16, 11, .55)); }
.obs-sp__heroin { position: relative; z-index: 2; padding-top: 34px; padding-bottom: 34px; }
.obs-sp__crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 18px; color: #c5cdc9; font-size: 13px; }
.obs-sp__crumb a { color: #c5cdc9; text-decoration: none; transition: color var(--obs-speed) var(--obs-ease); }
.obs-sp__crumb a:hover { color: var(--obs-green); }
.obs-sp__crumb em { color: #fff; font-style: normal; }
.obs-sp__eyebrow { display: inline-flex; align-items: center; gap: 12px; color: #d7ded9; font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.obs-sp__line { width: 40px; height: 3px; border-radius: 2px; background: var(--obs-green); display: inline-block; flex: 0 0 auto; }
.obs-scope .obs-sp__title { margin: 14px 0 16px; color: #fff; font-size: clamp(26px, 3.2vw, 48px); font-weight: 800; line-height: 1.14; letter-spacing: -.02em; max-width: 760px; }
.obs-sp__title .obs-hl { color: var(--obs-green); }
.obs-scope .obs-sp__meta { display: flex !important; flex-wrap: wrap; gap: 10px 24px; }
.obs-sp__meta li { display: flex; align-items: center; gap: 8px; color: #d7ded9; font-size: 13.5px; }
.obs-sp__meta i { color: var(--obs-green); font-size: 13px; }

/* Body layout */
.obs-sp__body { padding: 40px 0 60px; }
.obs-sp__grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 26px; align-items: start; }

/* The real post content, styled like the design */
.obs-art__content > :first-child { margin-top: 0 !important; }
.obs-scope .obs-art__content h2 {
	display: block; margin: 26px 0 12px !important; color: #0b0f0d; font-size: 26px; font-weight: 800; line-height: 1.25; scroll-margin-top: 120px;
}
.obs-art.is-numbered .obs-art__content { counter-reset: obsh2; }
.obs-art.is-numbered .obs-art__content h2 { counter-increment: obsh2; }
.obs-art.is-numbered .obs-art__content h2::before { content: counter(obsh2) '. '; color: inherit; }
.obs-scope .obs-art__content h3 { margin: 20px 0 8px !important; color: #0b0f0d; font-size: 19px; font-weight: 700; line-height: 1.3; }
.obs-art__content :where(figure, img) { border-radius: 12px; }
.obs-art__content figure { margin: 18px 0 !important; }
.obs-art__content img { height: auto; }
.obs-art__content :where(blockquote) { margin: 18px 0 !important; padding: 16px 20px !important; border-left: 3px solid var(--obs-green);
	background: #f4f8f5; border-radius: 0 10px 10px 0; color: #3c443f; }
.obs-art__content :where(table) { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 14.5px; }
.obs-art__content :where(th, td) { padding: 10px 12px; border: 1px solid #e9edeb; text-align: left; }
.obs-art__content :where(th) { background: #f4f8f5; font-weight: 700; }
/* Check lists only when the switch is on — never leaks to other widgets */
.obs-art:not(.is-checklist) .obs-art__txt :where(ul) { display: block !important; }
.obs-art:not(.is-checklist) .obs-art__txt :where(ul) > li::before { content: '' !important; width: 6px; height: 6px; border-radius: 50%; background: var(--obs-green); margin-top: 8px; }

/* FAQ accordion — closed by default, one open at a time */
.obs-art__faq { margin-top: 30px; }
.obs-scope .obs-art__faqtitle { margin: 0 0 16px; color: #0b0f0d; font-size: 26px; font-weight: 800; line-height: 1.25; }
.obs-spfaq { background: #fff; border: 1px solid #e9edeb; border-radius: 10px; margin-bottom: 10px; overflow: hidden;
	transition: border-color var(--obs-speed) var(--obs-ease), box-shadow var(--obs-speed) var(--obs-ease); }
.obs-spfaq:hover { border-color: rgba(46, 232, 96, .5); }
.obs-spfaq.is-open { border-color: rgba(46, 232, 96, .6); box-shadow: 0 18px 38px -30px rgba(0, 0, 0, .5); }
.obs-spfaq__q { all: unset; box-sizing: border-box; cursor: pointer;
	display: flex !important; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 15px 18px !important;
	color: #0b0f0d !important; font-family: var(--obs-font); font-size: 15px; font-weight: 600; line-height: 1.4;
	transition: color var(--obs-speed) var(--obs-ease); }
.obs-spfaq__q i { color: #8a938e; font-size: 13px; flex: 0 0 auto; transition: transform var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-spfaq:hover .obs-spfaq__q { color: var(--obs-green-dark) !important; }
.obs-spfaq.is-open .obs-spfaq__q i { transform: rotate(180deg); color: var(--obs-green-dark); }
.obs-spfaq__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .35s var(--obs-ease); }
.obs-spfaq.is-open .obs-spfaq__a { grid-template-rows: 1fr; }
.obs-spfaq__in { overflow: hidden; }
.obs-spfaq__in p { padding: 0 18px 16px; color: #4a524e; font-size: 14.5px; line-height: 1.6; }

/* Responsive */
@media (max-width: 1100px) {
	.obs-sp__grid { grid-template-columns: 1fr !important; }
	.obs-sp__body { padding: 32px 0 48px; }
}
@media (max-width: 767px) {
	.obs-sp__hero { min-height: 260px; }
	.obs-sp__scrim { background: linear-gradient(180deg, rgba(8, 16, 11, .85), rgba(8, 16, 11, .95)); }
	.obs-scope .obs-sp__title { font-size: 24px; }
	.obs-sp__meta li { font-size: 12.5px; }
	.obs-scope .obs-art__content h2 { font-size: 21px; }
	.obs-scope .obs-art__faqtitle { font-size: 21px; }
	.obs-spfaq__q { font-size: 14px; padding: 13px 14px !important; }
	.obs-sp__body { padding: 26px 0 40px; }
}

/* ---------- Form field widths ---------- */
/* Any field that holds a select (e.g. "Service Required") spans the full row */
.obs-cform__form .obs-cfield--wide,
.obs-cform__form .obs-cfield:has(select),
.obs-cform__form .obs-cfield--msg { grid-column: 1 / -1; }
.obs-cform :where(.elementor-field-type-select, .wpforms-field-select) { grid-column: 1 / -1; }
.obs-cform :where(select) { width: 100% !important; }

/* Sidebar form: every field full width (the column is narrow) */
.obs-pform .obs-cform__form,
.obs-pform .obs-cform :where(.elementor-form-fields-wrapper, .wpforms-field-container) { grid-template-columns: 1fr !important; }
.obs-pform .obs-cform :where(.elementor-field-group, .wpforms-field, .obs-cfield) { grid-column: 1 / -1 !important; width: 100% !important; }
.obs-pform .obs-cform :where(input, select, textarea) { width: 100% !important; }
.obs-pform .obs-cform textarea { min-height: 110px !important; }

/* ---------- TOC: H3/H4 entries sit slightly indented ---------- */
.obs-art__toclist li.is-h3 .obs-art__toclabel { padding-left: 10px; }
.obs-art__toclist li.is-h4 .obs-art__toclabel { padding-left: 22px; }
.obs-art__toclist li.is-h3 a, .obs-art__toclist li.is-h4 a { font-size: 13.8px; color: #4a524e; }

/* =========================================================
   CONTACT DOCK — desktop pills + iOS-style mobile bottom bar
   ========================================================= */
.obs-dock { --obs-dock-accent: #2ee860; --obs-dock-ease: cubic-bezier(.32, .72, 0, 1); position: relative; z-index: 9000; }
.obs-dock * { box-sizing: border-box; }
:where(.obs-dock) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-dock) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-dock) :where(li)::before { content: none !important; }
.obs-dock :is(a, button):focus { outline: none !important; }
.obs-dock :is(a, button):focus-visible { outline: 2px solid var(--obs-dock-accent) !important; outline-offset: 3px; }

/* ---------- Desktop floating pills ---------- */
.obs-dock__float { position: fixed; bottom: 28px; z-index: 9000; display: flex; flex-direction: column; gap: 12px; }
.obs-dock.side-left .obs-dock__float { left: 18px; align-items: flex-start; }
.obs-dock.side-right .obs-dock__float { right: 18px; align-items: flex-end; }
.obs-dock__fab { display: inline-flex; align-items: center; gap: 0; text-decoration: none;
	border-radius: 999px; background: var(--obs-dock-accent); color: #06100a;
	box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .55);
	transition: gap var(--obs-speed) var(--obs-dock-ease), transform var(--obs-speed) var(--obs-dock-ease), box-shadow var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__fab.is-wa { background: #25d366; }
.obs-dock__fabic { width: 54px !important; height: 54px !important; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; font-size: 22px !important; }
.obs-dock__fabtxt { max-width: 0; overflow: hidden; white-space: nowrap; font-size: 14px; font-weight: 700; opacity: 0;
	transition: max-width .45s var(--obs-dock-ease), opacity .3s var(--obs-dock-ease), padding .45s var(--obs-dock-ease); }
.obs-dock__fab:hover, .obs-dock__fab:focus-visible { transform: translateY(-3px); box-shadow: 0 20px 38px -14px rgba(0, 0, 0, .6); }
.obs-dock__fab:hover .obs-dock__fabtxt, .obs-dock__fab:focus-visible .obs-dock__fabtxt { max-width: 180px; opacity: 1; padding-right: 20px; }
.obs-dock.side-right .obs-dock__fab { flex-direction: row-reverse; }
.obs-dock.side-right .obs-dock__fab:hover .obs-dock__fabtxt { padding-right: 0; padding-left: 20px; }
/* gentle attention pulse on the call pill */
.obs-dock__fab.is-call .obs-dock__fabic::after { content: ''; position: absolute; width: 54px; height: 54px; border-radius: 50%;
	border: 2px solid var(--obs-dock-accent); animation: obs-dock-pulse 2.4s var(--obs-ease) infinite; }
.obs-dock__fab.is-call .obs-dock__fabic { position: relative; }
@keyframes obs-dock-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(1.5); opacity: 0; } }

/* ---------- Mobile dock ---------- */
.obs-dock__mobile { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 9001; display: none; }
.obs-dock__bar { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: center;
	padding: 8px 6px; border-radius: 22px; background: rgba(18, 22, 20, .96); border: 1px solid rgba(255, 255, 255, .1);
	box-shadow: 0 18px 44px -18px rgba(0, 0, 0, .8); }
.obs-dock.has-blur .obs-dock__bar, .obs-dock.has-blur .obs-dock__panel { -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.obs-dock__item { all: unset; box-sizing: border-box; cursor: pointer;
	display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	padding: 6px 2px !important; color: #c5cdc9; font-family: var(--obs-font); font-size: 11px; font-weight: 600; text-align: center; line-height: 1.2;
	transition: color var(--obs-speed) var(--obs-dock-ease), transform var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__itemic { font-size: 18px !important; line-height: 1; transition: transform var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__itemic svg { width: 18px; height: 18px; fill: currentColor; }
.obs-dock__item:active { transform: scale(.92); }
.obs-dock__item:hover, .obs-dock__item.is-current { color: var(--obs-dock-accent); }
.obs-dock__item:hover .obs-dock__itemic { transform: translateY(-2px); }

/* Raised centre button */
.obs-dock__center { position: relative; justify-self: center; margin-top: -26px;
	width: 58px; height: 58px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--obs-dock-accent); color: #06100a; text-decoration: none;
	border: 5px solid rgba(18, 22, 20, .96);
	box-shadow: 0 14px 28px -10px rgba(46, 232, 96, .75);
	transition: transform var(--obs-speed) var(--obs-dock-ease), box-shadow var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__centeric { font-size: 21px; }
.obs-dock__centeric svg { width: 21px; height: 21px; fill: currentColor; }
.obs-dock__center:hover { transform: translateY(-3px) scale(1.04); }
.obs-dock__center:active { transform: scale(.94); }

/* Toggle icon / label swap */
.obs-dock__ic-close, .obs-dock__lbl-close { display: none; }
.obs-dock.is-open .obs-dock__ic-open, .obs-dock.is-open .obs-dock__lbl-open { display: none; }
.obs-dock.is-open .obs-dock__ic-close, .obs-dock.is-open .obs-dock__lbl-close { display: inline; }
.obs-dock.is-open .obs-dock__toggle { color: var(--obs-dock-accent); }

/* Slide-up panel */
.obs-dock__panel { margin-bottom: 10px; padding: 16px 12px; border-radius: 22px;
	background: rgba(18, 22, 20, .96); border: 1px solid rgba(255, 255, 255, .1);
	box-shadow: 0 18px 44px -18px rgba(0, 0, 0, .8);
	opacity: 0; transform: translateY(16px) scale(.97); transform-origin: bottom center; pointer-events: none;
	visibility: hidden;
	transition: opacity .32s var(--obs-dock-ease), transform .42s var(--obs-dock-ease), visibility 0s linear .42s; }
.obs-dock.is-open .obs-dock__panel { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
.obs-dock__tiles { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.obs-dock__tiles li { opacity: 0; transform: translateY(10px); transition: opacity .3s var(--obs-dock-ease), transform .36s var(--obs-dock-ease); }
.obs-dock.is-open .obs-dock__tiles li { opacity: 1; transform: none; transition-delay: calc(.05s + var(--i) * .035s); }
.obs-dock__tile { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 10px 4px; border-radius: 14px;
	color: #c5cdc9; text-decoration: none; text-align: center;
	transition: background-color var(--obs-speed) var(--obs-dock-ease), color var(--obs-speed) var(--obs-dock-ease), transform var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__tileic { width: 44px !important; height: 44px !important; flex: 0 0 auto; border-radius: 12px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); color: #fff; font-size: 17px !important;
	transition: background-color var(--obs-speed) var(--obs-dock-ease), color var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__tileic svg { width: 17px; height: 17px; fill: currentColor; }
.obs-dock__tilelbl { font-size: 11px; font-weight: 600; line-height: 1.2; }
.obs-dock__tile:hover { color: #fff; transform: translateY(-2px); }
.obs-dock__tile:hover .obs-dock__tileic { background: var(--obs-dock-accent); color: #06100a; border-color: var(--obs-dock-accent); }
.obs-dock__tile:active { transform: scale(.95); }

/* Breakpoints: dock replaces the pills */
@media (max-width: 1200px) { .obs-dock.bp-1200 .obs-dock__float { display: none; } .obs-dock.bp-1200 .obs-dock__mobile { display: block; } }
@media (max-width: 1024px) { .obs-dock.bp-1024 .obs-dock__float { display: none; } .obs-dock.bp-1024 .obs-dock__mobile { display: block; } }
@media (max-width: 767px)  { .obs-dock.bp-768  .obs-dock__float { display: none; } .obs-dock.bp-768  .obs-dock__mobile { display: block; } }
/* Keep the page clear of the bar */
@media (max-width: 1200px) { body:has(.obs-dock.bp-1200 .obs-dock__mobile) { padding-bottom: 86px; } }
@media (max-width: 1024px) { body:has(.obs-dock.bp-1024 .obs-dock__mobile) { padding-bottom: 86px; } }
@media (max-width: 767px)  { body:has(.obs-dock.bp-768  .obs-dock__mobile) { padding-bottom: 86px; } }

@media (prefers-reduced-motion: reduce) {
	.obs-dock__panel, .obs-dock__tiles li, .obs-dock__fab, .obs-dock__fabtxt, .obs-dock__center { transition: none !important; }
	.obs-dock__fab.is-call .obs-dock__fabic::after { animation: none !important; }
}

/* Single post banner uses the standard dark pill sub-heading */
.obs-sp .obs-pill { background: rgba(255, 255, 255, .07); color: #e3e9e6; }
.obs-sp__heroin .obs-pill { margin-bottom: 2px; }

/* ---------- Sticky header: kill the builder's side padding too ---------- */
.obs-header-fixed { padding-left: 0 !important; padding-right: 0 !important; }
.obs-header-fixed > .e-con-inner { padding-left: 0 !important; padding-right: 0 !important; max-width: none !important; }

/* =========================================================
   SINGLE POST CONTENT — spacing, links and lists
   (scoped to .obs-art__content so nothing else is touched)
   ========================================================= */
/* Breathing room under the featured image (theme figure resets override us) */
.obs-art .obs-art__hero { margin: 0 0 28px !important; }
.obs-art__content > :first-child { margin-top: 0 !important; }
.obs-art__content > p { margin: 0 0 14px !important; }
.obs-art__content > :where(p, ul, ol, figure, table, blockquote) + :where(h2, h3) { margin-top: 28px !important; }

/* Branded links inside the article */
.obs-art__content a:not(.obs-btn) {
	color: var(--obs-green-dark) !important;
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0% 1.5px; background-position: 0 100%; background-repeat: no-repeat;
	transition: background-size .35s var(--obs-ease), color var(--obs-speed) var(--obs-ease);
}
.obs-art__content a:not(.obs-btn):hover { background-size: 100% 1.5px; color: #11833a !important; }

/* Lists: green check list (works for lists written in the editor) */
.obs-art.is-checklist .obs-art__content :where(ul) {
	display: grid !important; gap: 10px 26px; margin: 16px 0 !important; padding: 0 !important; list-style: none !important;
}
.obs-art.is-checklist .obs-art__content :where(ul) > li {
	display: flex !important; align-items: flex-start; gap: 10px;
	margin: 0 !important; padding: 0 !important; list-style: none !important;
	color: #3c443f; font-size: 14.8px; line-height: 1.55;
}
.obs-art.is-checklist .obs-art__content :where(ul) > li::marker { content: none; }
.obs-art.is-checklist .obs-art__content :where(ul) > li::before {
	content: '\f00c' !important; font-family: 'Font Awesome 6 Free' !important; font-weight: 900 !important;
	flex: 0 0 auto; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%;
	display: inline-flex !important; align-items: center; justify-content: center;
	background: var(--obs-green); color: #06100a; font-size: 10px;
	position: static !important;
}
/* Nested lists stay simple */
.obs-art.is-checklist .obs-art__content :where(ul ul) { grid-template-columns: 1fr !important; margin: 8px 0 0 !important; }
.obs-art.is-checklist .obs-art__content :where(ul ul) > li::before { background: rgba(46, 232, 96, .25); color: var(--obs-green-dark); }
/* Numbered lists get a branded number */
.obs-art__content :where(ol) { display: grid !important; gap: 10px; margin: 16px 0 !important; padding: 0 !important; list-style: none !important; counter-reset: obsolc; }
.obs-art__content :where(ol) > li { display: flex !important; gap: 10px; margin: 0 !important; padding: 0 !important; color: #3c443f; font-size: 14.8px; line-height: 1.55; counter-increment: obsolc; }
.obs-art__content :where(ol) > li::before { content: counter(obsolc) '.' !important; color: var(--obs-green-dark); font-weight: 800; flex: 0 0 auto; min-width: 18px; }

/* TOC indent for deeper heading levels */
.obs-art__toclist li.is-h4 .obs-art__toclabel { padding-left: 22px; }
.obs-art__toclist li.is-h5 .obs-art__toclabel { padding-left: 32px; }
.obs-art__toclist li.is-h6 .obs-art__toclabel { padding-left: 42px; }
.obs-art__toclist li.is-h5 a, .obs-art__toclist li.is-h6 a { font-size: 13.4px; color: #5a625d; }

/* ---------- Collapsible Table of Contents ---------- */
.obs-art__toc.is-collapsible { padding: 0; overflow: hidden; }
.obs-art__toctoggle {
	all: unset; box-sizing: border-box; cursor: pointer; width: 100%;
	display: flex !important; align-items: center; gap: 12px;
	padding: 16px 20px !important;
	color: #0b0f0d !important; font-family: var(--obs-font); font-size: 19px; font-weight: 800; line-height: 1.3;
	transition: color var(--obs-speed) var(--obs-ease);
}
.obs-art__toctoggle:hover { color: var(--obs-green-dark) !important; }
.obs-art__toclabeltxt { flex: 1 1 auto; min-width: 0; text-align: left; }
.obs-art__toccount {
	flex: 0 0 auto; min-width: 26px; height: 24px; padding: 0 8px; border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(46, 232, 96, .16); color: var(--obs-green-dark); font-size: 12px; font-weight: 700;
}
.obs-art__tocchev { flex: 0 0 auto; color: #8a938e; font-size: 13px; transition: transform var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-art__toc.is-open .obs-art__tocchev { transform: rotate(180deg); color: var(--obs-green-dark); }
/* Height animated from the measured content height (set by sections.js) */
.obs-art__toc.is-collapsible .obs-art__tocwrap {
	overflow: hidden; max-height: 0; opacity: 0;
	transition: max-height .42s var(--obs-ease), opacity .3s var(--obs-ease);
}
.obs-art__toc.is-collapsible.is-open .obs-art__tocwrap { opacity: 1; }
.obs-art__toc.is-collapsible .obs-art__tocwrap > .obs-art__toclist { padding: 2px 20px 18px !important; }
/* Links fade in with the box */
.obs-art__toc.is-collapsible .obs-art__toclist li { opacity: 0; transition: opacity .25s var(--obs-ease); }
.obs-art__toc.is-collapsible.is-open .obs-art__toclist li { opacity: 1; transition-delay: .12s; }

@media (max-width: 767px) {
	.obs-art__toctoggle { font-size: 16.5px; padding: 14px 16px !important; }
	.obs-art__toc.is-collapsible .obs-art__tocwrap > .obs-art__toclist { padding: 2px 16px 14px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.obs-art__toc.is-collapsible .obs-art__tocwrap { transition: none !important; }
}

/* =========================================================
   DOCK — match the reference design
   ========================================================= */
/* Bar items: icon chip + label, labels never cut off */
.obs-dock__item { padding: 6px 1px !important; font-size: 10.5px !important; }
.obs-dock__itemlbl { display: block; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obs-dock__itemic { display: inline-flex !important; align-items: center; justify-content: center; }
/* Toggle: icon sits in a round chip, like the design */
.obs-dock__toggle .obs-dock__itemic {
	width: 30px !important; height: 30px !important; border-radius: 50%;
	background: rgba(255, 255, 255, .12); color: #e3e9e6; font-size: 13px !important;
	transition: background-color var(--obs-speed) var(--obs-dock-ease), color var(--obs-speed) var(--obs-dock-ease), transform var(--obs-speed) var(--obs-dock-ease);
}
.obs-dock.is-open .obs-dock__toggle .obs-dock__itemic { background: rgba(46, 232, 96, .18); color: var(--obs-dock-accent); transform: rotate(90deg); }
.obs-dock__toggle:hover .obs-dock__itemic { background: rgba(46, 232, 96, .22); color: var(--obs-dock-accent); }
/* Current page item is green, like "Home" in the design */
.obs-dock__item.is-current { color: var(--obs-dock-accent) !important; }
.obs-dock__item.is-current .obs-dock__itemic { color: var(--obs-dock-accent); }
/* Centre button: soft ring like the design */
.obs-dock__center { box-shadow: 0 0 0 6px rgba(46, 232, 96, .14), 0 14px 28px -10px rgba(46, 232, 96, .7); }
.obs-dock__center:hover { box-shadow: 0 0 0 9px rgba(46, 232, 96, .18), 0 18px 32px -10px rgba(46, 232, 96, .8); }
/* Panel tiles: slightly larger, matching the reference spacing */
.obs-dock__panel { padding: 14px 10px; }
.obs-dock__tiles { gap: 4px; }
.obs-dock__tileic { width: 46px !important; height: 46px !important; border-radius: 13px; }

/* ---------- Desktop pills: labels always visible + effects ---------- */
.obs-dock__fab {
	gap: 0; padding: 0; overflow: hidden;
	box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .45);
}
.obs-dock__fabtxt {
	max-width: 220px; opacity: 1; padding: 0 20px 0 4px;
	font-size: 14.5px; font-weight: 700; letter-spacing: .01em;
}
.obs-dock.side-right .obs-dock__fabtxt { padding: 0 4px 0 20px; }
.obs-dock__fab:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 18px 34px -12px rgba(0, 0, 0, .55); }
.obs-dock__fab:active { transform: translateY(-1px) scale(.99); }
.obs-dock__fab .obs-dock__fabic { transition: transform var(--obs-speed) var(--obs-dock-ease); }
.obs-dock__fab.is-call:hover .obs-dock__fabic { animation: obs-fab-ring 1s var(--obs-ease) infinite; }
@keyframes obs-fab-ring {
	0%, 100% { transform: rotate(0); }
	20% { transform: rotate(-12deg); }
	40% { transform: rotate(10deg); }
	60% { transform: rotate(-6deg); }
	80% { transform: rotate(4deg); }
}
/* pulse ring sits exactly on the icon circle */
.obs-dock__fab.is-call .obs-dock__fabic::after {
	content: ''; position: absolute; inset: 0; width: auto; height: auto; border-radius: 50%;
	border: 2px solid currentColor; opacity: .5;
	animation: obs-dock-pulse 2.4s var(--obs-ease) infinite;
}
.obs-dock__fab.is-wa .obs-dock__fabic { background: transparent; }
@media (prefers-reduced-motion: reduce) {
	.obs-dock__fab.is-call:hover .obs-dock__fabic { animation: none !important; }
}

/* =========================================================
   DOCK — final match to the reference ("A. Default Style")
   ========================================================= */
/* Desktop pills: white icons */
.obs-dock__fab .obs-dock__fabic { color: #fff !important; }
.obs-dock__fab.is-call .obs-dock__fabic::after { border-color: rgba(255, 255, 255, .85); }

/* Centre button sits in the row with its own label, like the design */
.obs-dock__center {
	position: relative; justify-self: center; margin-top: -18px;
	width: auto; height: auto; border: 0; border-radius: 0; background: none; box-shadow: none;
	display: flex !important; flex-direction: column; align-items: center; gap: 4px;
	color: #c5cdc9; text-decoration: none; font-family: var(--obs-font); font-size: 10.5px; font-weight: 600; line-height: 1.2;
	transition: color var(--obs-speed) var(--obs-dock-ease), transform var(--obs-speed) var(--obs-dock-ease);
}
.obs-dock__centerbtn {
	width: 50px; height: 50px; flex: 0 0 auto; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--obs-dock-accent); color: #fff;
	border: 4px solid rgba(18, 22, 20, .96);
	box-shadow: 0 0 0 5px rgba(46, 232, 96, .14), 0 12px 24px -10px rgba(46, 232, 96, .75);
	transition: transform var(--obs-speed) var(--obs-dock-ease), box-shadow var(--obs-speed) var(--obs-dock-ease);
}
.obs-dock__centeric { font-size: 19px; color: #fff; }
.obs-dock__centeric svg { width: 19px; height: 19px; fill: currentColor; }
.obs-dock__centerlbl { white-space: nowrap; }
.obs-dock__center:hover { color: var(--obs-dock-accent); }
.obs-dock__center:hover .obs-dock__centerbtn { transform: translateY(-3px); box-shadow: 0 0 0 8px rgba(46, 232, 96, .18), 0 16px 28px -10px rgba(46, 232, 96, .85); }
.obs-dock__center:active .obs-dock__centerbtn { transform: scale(.94); }

/* Bar: a touch more room so all five labels sit on one line */
.obs-dock__bar { padding: 8px 4px 7px; }
.obs-dock__item, .obs-dock__center { font-size: 10.5px !important; }
@media (max-width: 360px) {
	.obs-dock__item, .obs-dock__center { font-size: 9.5px !important; }
	.obs-dock__centerbtn { width: 46px; height: 46px; }
	.obs-dock__centeric { font-size: 17px; }
}

/* =========================================================
   DOCK — final polish to match the reference exactly
   ========================================================= */
/* 1) Toggle must never pick up a theme button background */
.obs-dock__toggle,
.obs-dock__toggle:hover,
.obs-dock__toggle:focus,
.obs-dock__toggle:active,
.obs-dock__toggle:focus-visible {
	background: none !important; background-color: transparent !important;
	border: 0 !important; box-shadow: none !important; outline: none !important;
	-webkit-appearance: none !important; appearance: none !important;
}
.obs-dock__toggle:focus-visible .obs-dock__itemic { outline: 2px solid var(--obs-dock-accent); outline-offset: 2px; }
/* Close / More icon = ringed circle, like the design */
.obs-dock__toggle .obs-dock__itemic {
	width: 32px !important; height: 32px !important; border-radius: 50%;
	background: transparent !important;
	border: 2px solid rgba(46, 232, 96, .55);
	color: #fff !important; font-size: 12px !important;
}
.obs-dock.is-open .obs-dock__toggle .obs-dock__itemic {
	background: rgba(46, 232, 96, .16) !important; border-color: var(--obs-dock-accent);
	color: var(--obs-dock-accent) !important; transform: none;
}
.obs-dock__toggle:hover .obs-dock__itemic { border-color: var(--obs-dock-accent); background: rgba(46, 232, 96, .12) !important; }

/* 2) Labels stay readable on the dark bar */
.obs-dock__item, .obs-dock__center { color: #c9d2cd !important; }
.obs-dock__item.is-current, .obs-dock__item.is-current .obs-dock__itemic { color: var(--obs-dock-accent) !important; }
.obs-dock__centerlbl { color: #c9d2cd !important; }
.obs-dock__center:hover, .obs-dock__center:hover .obs-dock__centerlbl { color: var(--obs-dock-accent) !important; }

/* 3) The call button breathes (animated), like the design */
.obs-dock__centerbtn { position: relative; }
.obs-dock__centerbtn::before {
	content: ''; position: absolute; inset: -4px; border-radius: 50%;
	border: 2px solid var(--obs-dock-accent); opacity: .65;
	animation: obs-dock-ring 2.2s var(--obs-ease) infinite;
	pointer-events: none;
}
.obs-dock__centerbtn::after {
	content: ''; position: absolute; inset: 0; border-radius: 50%;
	background: var(--obs-dock-accent); opacity: .35;
	animation: obs-dock-ring 2.2s var(--obs-ease) .6s infinite;
	pointer-events: none; z-index: -1;
}
@keyframes obs-dock-ring {
	0%   { transform: scale(1);    opacity: .6; }
	70%  { transform: scale(1.45); opacity: 0; }
	100% { transform: scale(1.45); opacity: 0; }
}
.obs-dock__center .obs-dock__centeric { position: relative; z-index: 2; }

/* 4) The panel slides out from BEHIND the bar */
.obs-dock__bar { position: relative; z-index: 3; }
.obs-dock__panel {
	position: relative; z-index: 1;
	margin-bottom: -30px; padding-bottom: 42px;
	transform: translateY(26px) scale(.97);
	transform-origin: bottom center;
}
.obs-dock.is-open .obs-dock__panel { transform: translateY(0) scale(1); }
/* keep the rounded corners visible where the bar overlaps */
.obs-dock__panel { border-radius: 22px 22px 0 0; }

@media (prefers-reduced-motion: reduce) {
	.obs-dock__centerbtn::before, .obs-dock__centerbtn::after { animation: none !important; opacity: 0 !important; }
}

/* ---------- Dock: equal icon row so every label lines up ---------- */
.obs-dock__item .obs-dock__itemic { height: 32px !important; display: inline-flex !important; align-items: center; justify-content: center; }
.obs-dock__item:not(.obs-dock__toggle) .obs-dock__itemic { width: 32px !important; }

/* ---------- Desktop pills: tooltip on hover ---------- */
.obs-dock__fab { position: relative; overflow: visible; }
.obs-dock__tip {
	position: absolute; top: 50%; left: calc(100% + 14px); transform: translate(-6px, -50%);
	z-index: 5; white-space: nowrap; pointer-events: none;
	padding: 9px 14px; border-radius: 10px;
	background: rgba(13, 21, 38, .96); color: #fff;
	font-size: 13.5px; font-weight: 600; line-height: 1;
	box-shadow: 0 14px 28px -14px rgba(0, 0, 0, .8);
	opacity: 0; visibility: hidden;
	transition: opacity .28s var(--obs-ease), transform .28s var(--obs-ease), visibility 0s linear .28s;
}
.obs-dock__tip::after {
	content: ''; position: absolute; top: 50%; right: 100%; transform: translateY(-50%);
	border: 6px solid transparent; border-right-color: rgba(13, 21, 38, .96);
}
.obs-dock.side-right .obs-dock__tip { left: auto; right: calc(100% + 14px); transform: translate(6px, -50%); }
.obs-dock.side-right .obs-dock__tip::after { right: auto; left: 100%; border-right-color: transparent; border-left-color: rgba(13, 21, 38, .96); }
.obs-dock__fab:hover .obs-dock__tip,
.obs-dock__fab:focus-visible .obs-dock__tip {
	opacity: 1; visibility: visible; transform: translate(0, -50%); transition-delay: 0s;
}
/* Icon circle keeps a soft inner tint so the white glyph always reads */
.obs-dock__fab .obs-dock__fabic { background: rgba(255, 255, 255, .14); }
.obs-dock__fab:hover .obs-dock__fabic { background: rgba(255, 255, 255, .22); }

/* =========================================================
   THANK YOU — split screen with the diagonal green band
   ========================================================= */
.obs-tyx {
	--obs-tyx-split: 59%;
	--obs-tyx-green: #15a24a;
	--obs-tyx-dark: #0b1020;
	--obs-tyx-body: #5a6472;
	position: relative; width: 100%; min-height: 100vh; overflow: hidden; isolation: isolate;
	display: flex; align-items: center; background: #f5faf7;
	font-size: 16px; line-height: 1.6;
}
.obs-tyx * { box-sizing: border-box; }
:where(.obs-tyx) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-tyx) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-tyx) :where(li)::before { content: none !important; }
.obs-tyx :is(h1, p) { margin: 0; padding: 0; text-transform: none; }
.obs-tyx :is(a):focus { outline: none !important; }
.obs-tyx :is(a):focus-visible { outline: 2px solid var(--obs-tyx-green) !important; outline-offset: 3px; }

/* Photo on the right, cut with the design's diagonal */
.obs-tyx__photo {
	position: absolute; inset: 0; z-index: 1; display: block;
	background-size: cover; background-position: center; background-repeat: no-repeat;
	-webkit-clip-path: polygon(calc(var(--obs-tyx-split) + 7%) 0, 100% 0, 100% 100%, calc(var(--obs-tyx-split) - 9%) 100%);
	clip-path: polygon(calc(var(--obs-tyx-split) + 7%) 0, 100% 0, 100% 100%, calc(var(--obs-tyx-split) - 9%) 100%);
}
/* Diagonal green band along the cut */
.obs-tyx__band {
	position: absolute; inset: 0; z-index: 2; pointer-events: none;
	background: linear-gradient(160deg, #0f7a38 0%, #27c45f 45%, rgba(39, 196, 95, .35) 100%);
	-webkit-clip-path: polygon(calc(var(--obs-tyx-split) + 7%) 0, calc(var(--obs-tyx-split) + 12.5%) 0, calc(var(--obs-tyx-split) - 3.5%) 100%, calc(var(--obs-tyx-split) - 9%) 100%);
	clip-path: polygon(calc(var(--obs-tyx-split) + 7%) 0, calc(var(--obs-tyx-split) + 12.5%) 0, calc(var(--obs-tyx-split) - 3.5%) 100%, calc(var(--obs-tyx-split) - 9%) 100%);
	opacity: .95;
}
.obs-tyx__band--thin {
	background: linear-gradient(160deg, rgba(39, 196, 95, .55), rgba(39, 196, 95, .12));
	-webkit-clip-path: polygon(calc(var(--obs-tyx-split) + 2%) 0, calc(var(--obs-tyx-split) + 5%) 0, calc(var(--obs-tyx-split) - 11%) 100%, calc(var(--obs-tyx-split) - 14%) 100%);
	clip-path: polygon(calc(var(--obs-tyx-split) + 2%) 0, calc(var(--obs-tyx-split) + 5%) 0, calc(var(--obs-tyx-split) - 11%) 100%, calc(var(--obs-tyx-split) - 14%) 100%);
	opacity: .5;
}
/* Very light roof photo in the bottom-left corner */
.obs-tyx__ghost { position: absolute; left: 0; bottom: 0; width: 46%; height: 34%; z-index: 0; opacity: .13;
	background-size: cover; background-position: center bottom; pointer-events: none;
	-webkit-mask-image: linear-gradient(0deg, #000, transparent 85%); mask-image: linear-gradient(0deg, #000, transparent 85%); }
/* Dotted grid near the band, thin lines bottom-left */
.obs-tyx__dots { position: absolute; top: 5%; left: calc(var(--obs-tyx-split) - 7%); width: 11%; height: 22%; z-index: 3; pointer-events: none;
	background-image: radial-gradient(var(--obs-tyx-green) 1.6px, transparent 1.6px); background-size: 13px 13px; opacity: .5; }
.obs-tyx__lines { position: absolute; left: 0; bottom: 6%; width: 11%; height: 34%; z-index: 1; color: var(--obs-tyx-green); pointer-events: none; }

/* Content column */
.obs-tyx .obs-wrap { position: relative; z-index: 4; }
.obs-tyx__content { max-width: min(680px, calc(var(--obs-tyx-split) - 13%)); padding: 60px 0; text-align: left; }
.obs-tyx__badge { display: inline-flex; align-items: center; justify-content: center; width: 112px; height: 112px; margin-bottom: 18px; border-radius: 50%;
	background: radial-gradient(circle, rgba(214, 245, 225, .95) 56%, rgba(214, 245, 225, .45) 72%, rgba(214, 245, 225, 0) 74%); }
.obs-tyx__badgein { width: 72px; height: 72px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(160deg, #2cc45c, #0f8a3c); color: #fff; font-size: 30px;
	box-shadow: 0 14px 28px -12px rgba(15, 138, 60, .75); }
.obs-tyx__badgein svg { width: 30px; height: 30px; fill: currentColor; }
.obs-scope .obs-tyx__title { color: var(--obs-tyx-dark); font-size: clamp(44px, 5.4vw, 78px); font-weight: 800; line-height: 1; letter-spacing: -.025em; margin: 0 0 8px; }
.obs-tyx__hl { color: #22c55e; }
.obs-tyx__sub { color: var(--obs-tyx-dark); font-size: clamp(20px, 2.1vw, 30px); font-weight: 800; line-height: 1.25; margin: 0 0 16px !important; }
.obs-tyx__text { max-width: 620px; color: var(--obs-tyx-body); font-size: 16px; line-height: 1.7; }

/* Info row — dividers only, no box */
.obs-scope .obs-tyx__infos { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 32px 0 30px !important; }
.obs-tyx__infos li { padding: 0 22px !important; border-left: 1px solid rgba(11, 16, 32, .12); text-align: center; }
.obs-tyx__infos li:first-child { border-left: 0; padding-left: 0 !important; }
.obs-tyx__infoic { width: 52px !important; height: 52px !important; margin: 0 auto 10px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	background: #d9f5e3; color: var(--obs-tyx-green); font-size: 20px !important;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), transform .3s var(--obs-ease); }
.obs-tyx__infoic svg { width: 20px; height: 20px; fill: currentColor; }
.obs-tyx__infos li:hover .obs-tyx__infoic { background: var(--obs-tyx-green); color: #fff; transform: translateY(-3px); }
.obs-tyx__infos strong { display: block; color: var(--obs-tyx-dark); font-size: 15.5px; font-weight: 700; line-height: 1.3; }
.obs-tyx__infos small { display: block; color: var(--obs-tyx-body); font-size: 13.5px; line-height: 1.5; margin-top: 3px; }

/* Buttons */
.obs-tyx__btns { display: flex; flex-wrap: wrap; gap: 16px; }
.obs-tyx__btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	min-height: 56px; padding: 0 28px; border-radius: 8px;
	font-family: var(--obs-font); font-size: 16px; font-weight: 700; line-height: 1; text-decoration: none;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), border-color .3s var(--obs-ease), transform .3s var(--obs-ease), box-shadow .3s var(--obs-ease); }
.obs-tyx__btn i { font-size: 15px; transition: transform .3s var(--obs-ease); }
.obs-tyx__btn .fa-arrow-right { font-size: 13px; }
.obs-tyx__btn:hover { transform: translateY(-2px); }
.obs-tyx__btn:hover .fa-arrow-right { transform: translateX(4px); }
.obs-tyx__btn.is-primary { background: #16a34a; color: #fff; box-shadow: 0 14px 26px -14px rgba(22, 163, 74, .8); }
.obs-tyx__btn.is-primary:hover { background: #128a3e; }
.obs-tyx__btn.is-ghost { background: #fff; color: var(--obs-tyx-dark); border: 1.5px solid #0b1020; }
.obs-tyx__btn.is-ghost:hover { background: #0b1020; color: #fff; }

@media (max-width: 1100px) {
	.obs-tyx { --obs-tyx-split: 62%; }
	.obs-tyx__content { max-width: 560px; }
	.obs-tyx__dots { display: none; }
}
@media (max-width: 860px) {
	.obs-tyx { display: block; min-height: 0 !important; }
	.obs-tyx__photo { position: relative; inset: auto; height: 240px; width: 100%;
		-webkit-clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); clip-path: polygon(0 0, 100% 0, 100% 86%, 0 100%); }
	.obs-tyx__band, .obs-tyx__band--thin, .obs-tyx__lines, .obs-tyx__ghost { display: none; }
	.obs-tyx__content { max-width: none; padding: 34px 0 44px; }
	.obs-tyx__badge { width: 92px; height: 92px; margin-bottom: 12px; }
	.obs-tyx__badgein { width: 62px; height: 62px; font-size: 25px; }
	.obs-scope .obs-tyx__infos { grid-template-columns: 1fr; row-gap: 20px; margin: 26px 0 !important; }
	.obs-tyx__infos li { border-left: 0; padding: 0 !important; text-align: left; display: flex; align-items: flex-start; gap: 14px; }
	.obs-tyx__infos li + li { padding-top: 20px !important; border-top: 1px solid rgba(11, 16, 32, .12); }
	.obs-tyx__infoic { margin: 0; flex: 0 0 auto; }
	.obs-tyx__btns .obs-tyx__btn { flex: 1 1 100%; }
}

/* ---------- Desktop pills: icons only ---------- */
.obs-dock__fabtxt { display: none !important; }
.obs-dock__fab { width: 56px; height: 56px; padding: 0; border-radius: 50%; }
.obs-dock__fab .obs-dock__fabic { width: 56px !important; height: 56px !important; font-size: 23px !important; background: transparent; }
.obs-dock__fab:hover .obs-dock__fabic { background: transparent; }
.obs-dock__tip { left: calc(100% + 16px); }

/* ---------- Mega menu: content animates in, column by column ---------- */
.obs-mega__col, .obs-mega__intro, .obs-mega__card {
	opacity: 0; transform: translateY(10px);
	transition: opacity .32s var(--obs-ease), transform .42s var(--obs-ease);
}
.obs-nav__item.is-open > .obs-mega .obs-mega__col,
.obs-nav__item.is-open > .obs-mega .obs-mega__intro,
.obs-nav__item.is-open > .obs-mega .obs-mega__card,
.obs-nav__item:focus-within > .obs-mega .obs-mega__col,
.obs-nav__item:focus-within > .obs-mega .obs-mega__intro,
.obs-nav__item:focus-within > .obs-mega .obs-mega__card { opacity: 1; transform: none; }
.obs-nav__item.is-open > .obs-mega .obs-mega__intro { transition-delay: .05s; }
.obs-nav__item.is-open > .obs-mega .obs-mega__col:nth-of-type(1) { transition-delay: .09s; }
.obs-nav__item.is-open > .obs-mega .obs-mega__col:nth-of-type(2) { transition-delay: .14s; }
.obs-nav__item.is-open > .obs-mega .obs-mega__col:nth-of-type(3) { transition-delay: .19s; }
.obs-nav__item.is-open > .obs-mega .obs-mega__col:nth-of-type(4) { transition-delay: .24s; }
.obs-nav__item.is-open > .obs-mega .obs-mega__card { transition-delay: .28s; }
/* links inside a column follow, one after another */
.obs-mega__link { opacity: 0; transform: translateY(6px); transition: opacity .26s var(--obs-ease), transform .3s var(--obs-ease), background-color var(--obs-speed) var(--obs-ease), color var(--obs-speed) var(--obs-ease); }
.obs-nav__item.is-open > .obs-mega .obs-mega__link,
.obs-nav__item:focus-within > .obs-mega .obs-mega__link { opacity: 1; transform: none; }
.obs-nav__item.is-open > .obs-mega li:nth-child(1) .obs-mega__link { transition-delay: .14s; }
.obs-nav__item.is-open > .obs-mega li:nth-child(2) .obs-mega__link { transition-delay: .18s; }
.obs-nav__item.is-open > .obs-mega li:nth-child(3) .obs-mega__link { transition-delay: .22s; }
.obs-nav__item.is-open > .obs-mega li:nth-child(4) .obs-mega__link { transition-delay: .26s; }
.obs-nav__item.is-open > .obs-mega li:nth-child(5) .obs-mega__link { transition-delay: .30s; }
.obs-nav__item.is-open > .obs-mega li:nth-child(6) .obs-mega__link { transition-delay: .34s; }
/* the panel itself opens a touch slower and softer */
.obs-mega { transition: opacity .34s var(--obs-ease), transform .44s var(--obs-ease), visibility 0s linear .44s !important; }
.obs-nav__item.is-open > .obs-mega { transition-delay: 0s !important; }
@media (prefers-reduced-motion: reduce) {
	.obs-mega__col, .obs-mega__intro, .obs-mega__card, .obs-mega__link { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* =========================================================
   404 PAGE — neon roofline hero
   ========================================================= */
.obs-404 {
	--obs-404-green: #2fe463;
	--obs-404-dim: .62;
	--obs-404-glow: .6;
	position: relative; width: 100%; min-height: 100vh; overflow: hidden; isolation: isolate;
	display: flex; align-items: center; justify-content: center;
	padding: 60px 20px; background: #05080a; color: #fff;
	font-size: 16px; line-height: 1.6; text-align: center;
}
.obs-404 * { box-sizing: border-box; }
:where(.obs-404) :where(ul) { list-style: none !important; margin: 0 !important; padding: 0 !important; }
:where(.obs-404) :where(li) { margin: 0 !important; padding: 0 !important; list-style: none !important; }
:where(.obs-404) :where(li)::before { content: none !important; }
.obs-404 :is(h1, p) { margin: 0; padding: 0; text-transform: none; }
.obs-404 :is(a):focus { outline: none !important; }
.obs-404 :is(a):focus-visible { outline: 2px solid var(--obs-404-green) !important; outline-offset: 3px; }

.obs-404__bg { position: absolute; inset: 0; z-index: 0; display: block;
	background-size: cover; background-position: center; background-repeat: no-repeat; }
.obs-404__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		radial-gradient(ellipse at 50% 45%, rgba(5, 8, 10, 0) 0%, rgba(5, 8, 10, .55) 58%, rgba(5, 8, 10, .9) 100%),
		linear-gradient(180deg, rgba(5, 8, 10, .55), rgba(5, 8, 10, .35) 40%, rgba(5, 8, 10, .85));
	opacity: calc(.4 + var(--obs-404-dim) * .9); }

/* Neon vectors */
.obs-404__neon { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; color: var(--obs-404-green); pointer-events: none;
	filter: drop-shadow(0 0 6px rgba(47, 228, 99, calc(.6 * var(--obs-404-glow)))) drop-shadow(0 0 18px rgba(47, 228, 99, calc(.45 * var(--obs-404-glow)))); }
.obs-404.is-animated .obs-404__draw { stroke-dasharray: 600; stroke-dashoffset: 600; animation: obs404-draw 2.4s var(--obs-ease) forwards; }
.obs-404.is-animated .obs-404__draw--dot { stroke-dasharray: 2 12; stroke-dashoffset: 0; animation: obs404-dash 14s linear infinite; }
@keyframes obs404-draw { to { stroke-dashoffset: 0; } }
@keyframes obs404-dash { to { stroke-dashoffset: -280; } }
/* floating sparks */
.obs-404__spark { position: absolute; z-index: 3; width: 9px; height: 9px; border-radius: 50%; background: var(--obs-404-green); pointer-events: none;
	box-shadow: 0 0 10px 2px rgba(47, 228, 99, .8); }
.obs-404__spark--1 { top: 14%; left: 42%; }
.obs-404__spark--2 { top: 20%; left: 66%; width: 7px; height: 7px; }
.obs-404__spark--3 { bottom: 26%; right: 18%; width: 6px; height: 6px; }
.obs-404.is-animated .obs-404__spark { animation: obs404-float 5.5s var(--obs-ease) infinite; }
.obs-404.is-animated .obs-404__spark--2 { animation-delay: 1.4s; }
.obs-404.is-animated .obs-404__spark--3 { animation-delay: 2.6s; }
@keyframes obs404-float {
	0%, 100% { transform: translateY(0); opacity: .9; }
	50% { transform: translateY(-16px); opacity: .45; }
}

.obs-404__inner { position: relative; z-index: 4; display: flex; flex-direction: column; align-items: center; }

/* ---------- The 404 mark ---------- */
.obs-404__mark { --obs-404-size: 220px; position: relative; display: flex; align-items: center; justify-content: center; gap: .02em; }
.obs-404__digit, .obs-404__zero {
	font-family: var(--obs-font); font-size: var(--obs-404-size); font-weight: 800; line-height: .92; letter-spacing: -.02em;
}
.obs-404__digit {
	background: linear-gradient(180deg, #ffffff 0%, #e7ecea 42%, #aab4b0 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
	filter: drop-shadow(0 0 16px rgba(47, 228, 99, calc(.55 * var(--obs-404-glow)))) drop-shadow(0 6px 22px rgba(0, 0, 0, .7));
}
/* the zero is a ring holding the roof mark */
.obs-404__zero {
	position: relative; width: calc(var(--obs-404-size) * .78); height: calc(var(--obs-404-size) * .78);
	border-radius: 50%; border: calc(var(--obs-404-size) * .115) solid #fff;
	display: inline-flex; align-items: center; justify-content: center;
	margin: 0 calc(var(--obs-404-size) * -.02);
	box-shadow: 0 0 22px rgba(47, 228, 99, calc(.5 * var(--obs-404-glow))), inset 0 0 18px rgba(47, 228, 99, calc(.28 * var(--obs-404-glow)));
	background: rgba(5, 10, 7, .35);
}
.obs-404__roof { width: 54%; height: auto; color: var(--obs-404-green);
	filter: drop-shadow(0 0 10px rgba(47, 228, 99, calc(.85 * var(--obs-404-glow)))); }
.obs-404.is-animated .obs-404__zero { animation: obs404-pulse 3.4s var(--obs-ease) infinite; }
@keyframes obs404-pulse {
	0%, 100% { box-shadow: 0 0 22px rgba(47, 228, 99, .5), inset 0 0 18px rgba(47, 228, 99, .28); }
	50%      { box-shadow: 0 0 40px rgba(47, 228, 99, .8), inset 0 0 26px rgba(47, 228, 99, .4); }
}
/* pulsing rings behind the zero */
.obs-404__rings { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: -1; pointer-events: none; }
.obs-404__rings span {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: calc(var(--obs-404-size) * 1.25); height: calc(var(--obs-404-size) * 1.25);
	border-radius: 50%; border: 1.5px dotted rgba(47, 228, 99, .55);
}
.obs-404__rings span:nth-child(2) { width: calc(var(--obs-404-size) * 1.6); height: calc(var(--obs-404-size) * 1.6); border-style: solid; border-color: rgba(47, 228, 99, .22); }
.obs-404__rings span:nth-child(3) { width: calc(var(--obs-404-size) * 2.05); height: calc(var(--obs-404-size) * 2.05); border-color: rgba(47, 228, 99, .12); }
.obs-404.is-animated .obs-404__rings span { animation: obs404-ring 4.2s var(--obs-ease) infinite; }
.obs-404.is-animated .obs-404__rings span:nth-child(2) { animation-delay: .7s; }
.obs-404.is-animated .obs-404__rings span:nth-child(3) { animation-delay: 1.4s; }
@keyframes obs404-ring {
	0%   { transform: translate(-50%, -50%) scale(.92); opacity: .75; }
	70%  { transform: translate(-50%, -50%) scale(1.12); opacity: 0; }
	100% { transform: translate(-50%, -50%) scale(1.12); opacity: 0; }
}

/* ---------- Text ---------- */
.obs-scope .obs-404__title { margin: 12px 0 14px; color: #fff; font-size: clamp(28px, 4.4vw, 58px); font-weight: 800; line-height: 1.12; letter-spacing: -.02em;
	text-shadow: 0 6px 26px rgba(0, 0, 0, .75); }
.obs-404__hl { color: var(--obs-404-green); text-shadow: 0 0 22px rgba(47, 228, 99, calc(.7 * var(--obs-404-glow))); }
.obs-404__text { max-width: 640px; color: #cdd5d1; font-size: 16.5px; line-height: 1.65; text-shadow: 0 2px 14px rgba(0, 0, 0, .8); }

/* ---------- Buttons ---------- */
.obs-404__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; margin-top: 30px; }
.obs-404__btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px;
	min-height: 58px; padding: 0 30px; border-radius: 10px;
	font-family: var(--obs-font); font-size: 16px; font-weight: 700; line-height: 1; text-decoration: none;
	transition: background-color .3s var(--obs-ease), color .3s var(--obs-ease), border-color .3s var(--obs-ease), transform .3s var(--obs-ease), box-shadow .3s var(--obs-ease); }
.obs-404__btn i { font-size: 13px; transition: transform .3s var(--obs-ease); }
.obs-404__btn:hover { transform: translateY(-2px); }
.obs-404__btn:hover i { transform: translateX(4px); }
.obs-404__btn.is-primary { background: var(--obs-404-green); color: #06100a;
	box-shadow: 0 0 28px rgba(47, 228, 99, calc(.55 * var(--obs-404-glow))), 0 14px 26px -14px rgba(0, 0, 0, .8); }
.obs-404__btn.is-primary:hover { background: #22d957; box-shadow: 0 0 44px rgba(47, 228, 99, calc(.8 * var(--obs-404-glow))); }
.obs-404__btn.is-ghost { background: rgba(8, 14, 11, .55); color: #fff; border: 1.5px solid rgba(255, 255, 255, .28);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.obs-404__btn.is-ghost:hover { border-color: var(--obs-404-green); background: rgba(47, 228, 99, .12); }

/* ---------- Quick links ---------- */
.obs-scope .obs-404__links { display: flex !important; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0; margin-top: 44px !important; }
.obs-404__links li { display: flex; align-items: center; }
.obs-404__links li + li::before { content: ''; width: 1px; height: 13px; margin: 0 22px; background: rgba(255, 255, 255, .25); }
.obs-404__links a { color: #aab4b0; font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; text-decoration: none;
	transition: color .3s var(--obs-ease), text-shadow .3s var(--obs-ease); }
.obs-404__links a:hover { color: var(--obs-404-green); text-shadow: 0 0 16px rgba(47, 228, 99, .7); }

/* ---------- Entrance: content fades up in sequence ---------- */
.obs-404.is-animated .obs-404__mark,
.obs-404.is-animated .obs-404__title,
.obs-404.is-animated .obs-404__text,
.obs-404.is-animated .obs-404__btns,
.obs-404.is-animated .obs-404__links { animation: obs404-up .8s var(--obs-ease) both; }
.obs-404.is-animated .obs-404__title { animation-delay: .18s; }
.obs-404.is-animated .obs-404__text  { animation-delay: .3s; }
.obs-404.is-animated .obs-404__btns  { animation-delay: .42s; }
.obs-404.is-animated .obs-404__links { animation-delay: .54s; }
@keyframes obs404-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) { .obs-404__mark { --obs-404-size: 160px; } }
@media (max-width: 767px) {
	.obs-404 { padding: 44px 16px; }
	.obs-404__mark { --obs-404-size: 104px; }
	.obs-404__text { font-size: 15px; }
	.obs-404__btns { gap: 12px; width: 100%; }
	.obs-404__btn { flex: 1 1 100%; min-height: 52px; font-size: 15px; }
	.obs-scope .obs-404__links { margin-top: 30px !important; gap: 10px 0; }
	.obs-404__links li + li::before { margin: 0 14px; }
	.obs-404__links a { font-size: 11.5px; letter-spacing: .12em; }
	.obs-404__spark { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.obs-404.is-animated :where(.obs-404__draw, .obs-404__spark, .obs-404__zero, .obs-404__rings span,
		.obs-404__mark, .obs-404__title, .obs-404__text, .obs-404__btns, .obs-404__links) { animation: none !important; }
	.obs-404.is-animated .obs-404__draw { stroke-dashoffset: 0 !important; }
}

/* 404 fixes: link dividers must win over the global li reset, rings always visible */
.obs-scope .obs-404__links li + li::before {
	content: '' !important; display: block !important;
	width: 1px; height: 13px; margin: 0 22px; background: rgba(255, 255, 255, .3);
}
.obs-404__rings span { opacity: .55; }
.obs-404.is-animated .obs-404__rings span {
	animation: obs404-ring 4.2s var(--obs-ease) infinite;
}
@keyframes obs404-ring {
	0%   { transform: translate(-50%, -50%) scale(.94); opacity: .6; }
	60%  { transform: translate(-50%, -50%) scale(1.1);  opacity: .18; }
	100% { transform: translate(-50%, -50%) scale(.94); opacity: .6; }
}
@media (max-width: 767px) {
	.obs-scope .obs-404__links li + li::before { margin: 0 14px; }
}
