/* =========================================================================
   Big Easy Concrete 2026 — complete redesign (Landscop-style)
   Brand palette: #1e77bc (blue) · #FFEB01 (yellow) · #000 (black)
   ========================================================================= */

:root {
	--beco-container: 1600px;
	--beco-blue: #1e77bc;
	--beco-blue-dark: #185f96;
	--beco-yellow: #e8c341;
	--beco-black: #000000;
	--beco-ink: #14181c;
	--beco-muted: #5b6470;
	--beco-line: #e7eaee;
	--beco-bg: #ffffff;
	--beco-body: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--beco-head: "Plus Jakarta Sans", var(--beco-body);
	--beco-script: "Dancing Script", cursive;
}

*, *::before, *::after { box-sizing: border-box; }

/* Brand rule: SHARP EDGES everywhere — no rounded corners on anything
   (buttons, images, cards, icons, form fields, plugin elements). */
*, *::before, *::after { border-radius: 0 !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--beco-body);
	color: var(--beco-ink);
	background: var(--beco-bg);
	line-height: 1.6;
	overflow-x: clip; /* guard horizontal scroll; body padding overridden below */
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--beco-head); }

/* Third-party marketing tags (loaded via GTM) inject stray tracking pixels /
   empty ad nodes as direct <body> children after the footer, which create blank
   space. Real page content lives in header/main/footer, so neutralize strays. */
body > img,
body > ins.adsbygoogle,
body > div[class*="NYTRO_SITE_ID"] { display: none !important; }

/* The ConversioBot chat widget (loaded via GTM) sets body{padding:100px 0}, which
   leaves a blank gap ABOVE the header and BELOW the footer. The widget is fixed,
   so reclaim that space. */
body { padding-top: 0 !important; padding-bottom: 0 !important; }

.container {
	width: 100%;
	max-width: var(--beco-container);
	margin-inline: auto;
	padding-inline: 24px;
}

/* Scroll-reveal (JS adds .beco-reveal so no-JS keeps everything visible) */
.beco-reveal { opacity: 0; transform: translateY(30px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.beco-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .beco-reveal { opacity: 1 !important; transform: none !important; transition: none; } }

/* =========================================================================
   MASTHEAD — single-row white top menu
   ========================================================================= */
.masthead {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	box-shadow: 0 2px 18px rgba(20,24,28,.07);
	transition: box-shadow .25s ease, padding .25s ease;
}
.masthead.is-stuck { box-shadow: 0 8px 30px rgba(20,24,28,.14); }
.masthead.is-stuck .masthead__inner { padding-block: 10px; }
.masthead__inner { transition: padding .25s ease; }

/* Offset the sticky header below the WP admin bar — only when the bar is FIXED
   (>=783px). On phones the admin bar scrolls away, so no offset (avoids a gap). */
@media screen and (min-width: 783px) { .admin-bar .masthead { top: 32px; } }
@media screen and (max-width: 782px) { .admin-bar .masthead { top: 0; } }
.masthead__inner {
	display: flex;
	align-items: center;
	gap: 26px;
	padding-block: 16px;
}
.masthead__brand { flex: 0 0 auto; }
.masthead__brand img { max-height: 74px; width: auto; }

.beco-nav { margin-inline: auto; min-width: 0; }
.beco-nav__menu {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 4px; flex-wrap: nowrap;
}
.beco-nav__item { position: relative; }
.beco-nav__item > a {
	display: flex; align-items: center; gap: 7px;
	padding: 12px 16px;
	color: var(--beco-ink);
	font-weight: 600;
	font-size: .98rem;
	transition: color .15s ease;
}
.beco-nav__item:hover > a,
.beco-nav__item:focus-within > a { color: var(--beco-blue); }
.beco-nav__caret {
	width: 7px; height: 7px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .2s ease;
	opacity: .7;
}
.beco-nav__item:hover .beco-nav__caret { transform: rotate(225deg) translateY(-1px); }

/* Dropdowns */
.beco-sub, .beco-mega {
	position: absolute; top: 100%; left: 0;
	opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .18s ease, transform .18s ease, visibility .18s;
	z-index: 60;
	box-shadow: 0 24px 60px rgba(0,0,0,.16);
}
.beco-nav__item:hover > .beco-sub,
.beco-nav__item:hover > .beco-mega,
.beco-nav__item:focus-within > .beco-sub,
.beco-nav__item:focus-within > .beco-mega { opacity: 1; visibility: visible; transform: translateY(0); }

.beco-sub {
	list-style: none; margin: 0; padding: 10px 0; min-width: 230px;
	background: #fff; border-top: 3px solid var(--beco-blue); border-radius: 0 0 10px 10px;
}
.beco-sub li a { display: block; padding: 10px 22px; color: var(--beco-ink); font-size: .94rem; font-weight: 500; }
.beco-sub li a:hover { background: #f3f8fc; color: var(--beco-blue); padding-left: 28px; transition: padding .15s ease; }

.beco-mega { left: 50%; transform: translate(-50%, 12px); }
.beco-nav__item:hover > .beco-mega, .beco-nav__item:focus-within > .beco-mega { transform: translate(-50%, 0); }
.beco-mega__inner {
	display: flex; gap: 40px;
	background: #fff; border-top: 3px solid var(--beco-blue); border-radius: 0 0 12px 12px;
	padding: 28px 34px; min-width: 620px;
}
.beco-mega__col { min-width: 160px; }
.beco-mega__heading {
	margin: 0 0 12px; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em;
	color: var(--beco-blue); border-bottom: 1px solid var(--beco-line); padding-bottom: 8px;
}
.beco-mega__col ul { list-style: none; margin: 0; padding: 0; }
.beco-mega__col li a { display: block; padding: 7px 0; color: var(--beco-ink); font-size: .93rem; font-weight: 500; }
.beco-mega__col li a:hover { color: var(--beco-blue); padding-left: 6px; transition: padding .15s ease; }

/* Utilities */
.masthead__utils { display: flex; align-items: center; gap: 22px; margin-left: auto; }

/* Header phone — big bold number + ringing icon */
.masthead__phone { display: inline-flex; align-items: center; gap: 13px; color: var(--beco-ink); }
.masthead__phone-ico {
	width: 50px; height: 50px;
	display: grid; place-items: center;
	background: var(--beco-blue); color: #fff;
	flex: 0 0 auto;
	transition: background .15s ease;
}
.masthead__phone-ico svg { width: 24px; height: 24px; transform-origin: center; animation: beco-ring 1.6s ease-in-out infinite; }
.masthead__phone:hover .masthead__phone-ico { background: var(--beco-black); }
.masthead__phone-text { display: flex; flex-direction: column; line-height: 1.15; }
.masthead__phone-label { font-size: .78rem; font-weight: 600; color: var(--beco-muted); text-transform: uppercase; letter-spacing: .04em; }
.masthead__phone-num { font-family: var(--beco-head); font-size: 1.5rem; font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; white-space: nowrap; }
.masthead__phone:hover .masthead__phone-num { color: var(--beco-blue); }

@keyframes beco-ring {
	0%, 60% { transform: rotate(0); }
	5% { transform: rotate(-14deg); } 10% { transform: rotate(12deg); }
	15% { transform: rotate(-10deg); } 20% { transform: rotate(8deg); }
	25% { transform: rotate(-6deg); } 30% { transform: rotate(4deg); }
	35% { transform: rotate(0); }
}
@media (prefers-reduced-motion: reduce) { .masthead__phone-ico svg { animation: none; } }

.masthead__cta {
	display: inline-flex; align-items: center;
	padding: 14px 26px; border-radius: 40px;
	background: var(--beco-blue); color: #fff;
	font-weight: 700; font-size: .95rem;
	transition: background .15s ease, transform .15s ease, color .15s ease;
}
.masthead__cta:hover { background: var(--beco-yellow); color: var(--beco-black); transform: translateY(-2px); }

.masthead__toggle { display: none; }

/* =========================================================================
   HERO
   ========================================================================= */
.hero {
	position: relative;
	background: #20262c var(--hero-bg) center/cover no-repeat;
	min-height: 760px;
	display: flex;
	align-items: center;
	padding-block: 90px 150px;
}
.hero__scrim {
	position: absolute; inset: 0;
	background:
		linear-gradient(90deg, rgba(18,52,86,.85) 0%, rgba(10,16,22,.45) 50%, rgba(10,16,22,.12) 100%),
		linear-gradient(180deg, rgba(10,16,22,.18), rgba(10,16,22,.22));
}
.hero__inner { position: relative; width: 100%; display: flex; justify-content: flex-start; }
.hero__content { max-width: 660px; color: #fff; }

/* Rating line (replaces script eyebrow) */
.hero__rating { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.hero__stars { display: inline-flex; gap: 3px; color: var(--beco-yellow); }
.hero__stars svg { width: 22px; height: 22px; }
.hero__rating-text { font-size: 1rem; font-weight: 600; color: rgba(255,255,255,.92); }
.hero__rating-text strong { font-family: var(--beco-head); font-weight: 800; color: #fff; }

.hero__title {
	margin: 0 0 18px;
	font-size: clamp(2.4rem, 4.8vw, 3.7rem);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.015em;
	color: #fff;
	text-shadow: 0 2px 18px rgba(0,0,0,.25);
}
.hero__title span { color: var(--beco-yellow); }

.hero__sub {
	margin: 0 0 26px;
	font-size: 1.08rem;
	line-height: 1.6;
	color: rgba(255,255,255,.9);
	max-width: 540px;
}

/* License — bold, badge style */
.hero__license {
	display: flex; flex-wrap: wrap; gap: 14px;
	margin: 0 0 32px;
}
.hero__license-item {
	display: inline-flex; align-items: center; gap: 12px;
	padding: 12px 18px;
	background: rgba(255,255,255,.10);
	border: 1px solid rgba(255,255,255,.22);
	border-radius: 12px;
	backdrop-filter: blur(4px);
}
.hero__license-ico { width: 26px; height: 26px; color: var(--beco-yellow); flex: 0 0 auto; }
.hero__license-text { display: flex; flex-direction: column; line-height: 1.15; }
.hero__license-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.72); }
.hero__license-num { font-family: var(--beco-head); font-size: 1.15rem; font-weight: 800; color: #fff; }

/* Hero actions */
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.hero__phone { display: inline-flex; align-items: center; gap: 14px; color: #fff; }
.hero__phone-ico {
	width: 54px; height: 54px; border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.35);
	color: #fff;
	transition: background .15s ease, color .15s ease;
}
.hero__phone-ico svg { width: 22px; height: 22px; }
.hero__phone:hover .hero__phone-ico { background: var(--beco-yellow); color: var(--beco-black); border-color: var(--beco-yellow); }
.hero__phone-text { display: flex; flex-direction: column; line-height: 1.2; }
.hero__phone-label { font-size: .82rem; color: rgba(255,255,255,.78); }
.hero__phone-num { font-family: var(--beco-head); font-size: 1.3rem; font-weight: 800; }

/* =========================================================================
   BUTTONS
   ========================================================================= */
.btn {
	display: inline-flex; align-items: center; gap: 12px;
	padding: 16px 30px;
	font-weight: 700; font-size: .96rem;
	border-radius: 40px; cursor: pointer;
	border: 2px solid transparent;
	transition: transform .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.btn svg { width: 18px; height: 18px; }
.btn--yellow { background: var(--beco-yellow); color: var(--beco-black); }
.btn--yellow:hover { background: #fff; color: var(--beco-black); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.2); }
.btn--primary { background: var(--beco-black); color: #fff; }
.btn--primary:hover { background: var(--beco-blue); transform: translateY(-2px); }
.btn--phone { background: var(--beco-blue); color: #fff; }
.btn--phone:hover { background: var(--beco-blue-dark); transform: translateY(-2px); }
.btn--light { background: #fff; color: var(--beco-ink); }
.btn--light:hover { background: var(--beco-black); color: #fff; transform: translateY(-2px); }
.btn--ghost-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.btn--ghost-light:hover { background: #fff; color: var(--beco-blue); border-color: #fff; transform: translateY(-2px); }

/* =========================================================================
   HERO FEATURE / PROCESS STRIP (overlaps hero bottom)
   ========================================================================= */
.hero-strip { position: relative; z-index: 5; margin-top: -78px; }
.hero-strip__card {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	background: #eaf2fa;
	border-radius: 18px;
	box-shadow: 0 30px 60px rgba(20,24,28,.16);
	overflow: hidden;
}
.hero-strip__item {
	position: relative;
	padding: 34px 24px 30px;
	text-align: center;
	transition: background .18s ease;
}
.hero-strip__item + .hero-strip__item { border-left: 1px dashed #c4d6e6; }
.hero-strip__item:hover { background: #ffffff; }
.hero-strip__icon {
	display: inline-grid; place-items: center;
	width: 60px; height: 60px;
	margin-bottom: 16px;
	border-radius: 14px;
	background: var(--beco-blue);
	color: #fff;
	box-shadow: 0 10px 22px rgba(30,119,188,.32);
}
.hero-strip__icon svg { width: 28px; height: 28px; }
.hero-strip__title { margin: 0 0 12px; font-size: 1.12rem; font-weight: 700; color: var(--beco-ink); }
.hero-strip__rule { display: inline-block; width: 38px; height: 3px; border-radius: 2px; background: var(--beco-yellow); }

/* =========================================================================
   SHARED — section eyebrow
   ========================================================================= */
.sec-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	margin: 0 0 16px;
	color: var(--beco-blue); font-weight: 700; font-size: .8rem;
	text-transform: uppercase; letter-spacing: .14em;
}
.sec-eyebrow__mark { width: 26px; height: 3px; background: var(--beco-blue); border-radius: 2px; display: inline-block; }

/* =========================================================================
   WHY CHOOSE  +  HOW WE WORK (process map)
   ========================================================================= */
.why { padding: 96px 0; background: #fff; }
.why__inner { display: grid; grid-template-columns: 1.05fr .95fr; gap: 72px; align-items: start; }

.why__heading {
	margin: 0 0 18px;
	font-size: clamp(1.7rem, 2.6vw, 2.5rem); line-height: 1.15;
	font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em;
}
.why__intro { margin: 0 0 28px; color: var(--beco-muted); font-size: 1.02rem; }

.why__list { list-style: none; margin: 0 0 34px; padding: 0; display: grid; gap: 16px; }
.why__item {
	position: relative; display: flex; align-items: flex-start; gap: 18px;
	padding: 20px 22px; background: #f6f9fb; border: 1px solid var(--beco-line);
	border-radius: 16px; overflow: hidden;
	transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.why__item::before {
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
	background: var(--beco-blue); transform: scaleY(0); transform-origin: top; transition: transform .22s ease;
}
.why__item:hover { background: #fff; border-color: rgba(30,119,188,.35); transform: translateY(-3px); box-shadow: 0 18px 40px rgba(20,24,28,.10); }
.why__item:hover::before { transform: scaleY(1); }
.why__check {
	flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center;
	border-radius: 50%; background: var(--beco-blue); color: #fff; box-shadow: 0 0 0 5px rgba(30,119,188,.14);
}
.why__check svg { width: 20px; height: 20px; }
.why__item-text { display: flex; flex-direction: column; gap: 4px; }
.why__item-title { font-size: 1.12rem; font-weight: 700; color: var(--beco-ink); }
.why__item-desc { color: var(--beco-muted); font-size: .96rem; line-height: 1.55; }
.why__cta { display: flex; flex-wrap: wrap; gap: 14px; }

/* Process map (right) */
.why__right {
	position: relative;
	overflow: hidden;
	padding: 44px 44px 40px; color: #fff;
	box-shadow: 0 30px 60px rgba(20,24,28,.18);
	background:
		radial-gradient(120% 90% at 100% 0%, rgba(30,119,188,.34) 0%, rgba(30,119,188,0) 50%),
		radial-gradient(90% 80% at 0% 100%, rgba(232,195,65,.10) 0%, rgba(232,195,65,0) 55%),
		repeating-linear-gradient(45deg, rgba(255,255,255,.035) 0 1px, transparent 1px 16px),
		linear-gradient(160deg, #1b232c 0%, #0d1116 100%);
}
.why__right > * { position: relative; z-index: 1; }
.why__right .sec-eyebrow { color: #6fb6e6; }
.why__right .sec-eyebrow__mark { background: #6fb6e6; }
.proc__heading { margin: 0 0 30px; font-size: clamp(1.5rem, 2.2vw, 2rem); font-weight: 800; color: #fff; }
.proc { list-style: none; margin: 0; padding: 0; }
.proc__step { position: relative; display: flex; gap: 22px; padding-bottom: 30px; }
.proc__step::before {
	content: ""; position: absolute; left: 27px; top: 54px; bottom: -4px; width: 2px;
	background: linear-gradient(180deg, var(--beco-blue), rgba(111,182,230,.25));
}
.proc__step:last-child { padding-bottom: 0; }
.proc__step:last-child::before { display: none; }
.proc__node {
	flex: 0 0 auto; width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%;
	background: var(--beco-blue); color: #fff; font-family: var(--beco-head); font-weight: 800; font-size: 1.1rem;
	box-shadow: 0 0 0 6px rgba(30,119,188,.18); z-index: 1;
}
.proc__body { padding-top: 6px; }
.proc__title { margin: 0 0 6px; font-size: 1.18rem; font-weight: 700; color: #fff; }
.proc__desc { margin: 0; color: rgba(255,255,255,.72); font-size: .96rem; line-height: 1.6; }

/* =========================================================================
   VALUE / TRUST — solid brand-blue band
   ========================================================================= */
.value {
	padding: 92px 0;
	background: var(--beco-blue);
	background-image: linear-gradient(180deg, var(--beco-blue) 0%, var(--beco-blue-dark) 100%);
	color: #fff;
}
.value__inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 64px; align-items: center; }
.sec-eyebrow--light { color: #fff; }
.sec-eyebrow--light .sec-eyebrow__mark { background: var(--beco-yellow); }

.value__heading {
	margin: 0 0 30px; font-size: clamp(1.7rem, 2.7vw, 2.5rem); line-height: 1.15;
	font-weight: 800; color: #fff; letter-spacing: -.01em;
}
.value__list { list-style: none; margin: 0 0 34px; padding: 0; display: grid; gap: 16px; }
.value__item { display: flex; align-items: flex-start; gap: 15px; }
.value__check {
	flex: 0 0 auto; width: 30px; height: 30px; margin-top: 2px; display: grid; place-items: center;
	border-radius: 50%; background: var(--beco-yellow); color: var(--beco-black);
}
.value__check svg { width: 17px; height: 17px; }
.value__item-text { font-size: 1.04rem; line-height: 1.5; color: rgba(255,255,255,.95); font-weight: 500; }
.value__cta { display: flex; flex-wrap: wrap; gap: 14px; }

.value__seals { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.seal {
	margin: 0; background: #fff; border-radius: 14px; padding: 18px 20px; height: 112px;
	display: grid; place-items: center; box-shadow: 0 16px 36px rgba(13,60,100,.28);
	transition: transform .18s ease, box-shadow .18s ease;
}
.seal:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(13,60,100,.36); }
.seal img { max-height: 76px; width: auto; object-fit: contain; }

/* =========================================================================
   SERVICES — main group (left) + smaller groups combined (right)
   ========================================================================= */
.services { padding: 96px 0; background: #f5f8fb; }
.services__head { text-align: center; margin-bottom: 46px; }
.services__head .sec-eyebrow { justify-content: center; }
.services__heading {
	margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.6rem); line-height: 1.12;
	font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em;
}

.services__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 28px; align-items: stretch; }
.svc-side { display: grid; gap: 28px; align-content: start; }

.svc-panel { background: #fff; border: 1px solid var(--beco-line); padding: 30px 30px 32px; }
.svc-panel--main { border-top: 4px solid var(--beco-blue); display: flex; flex-direction: column; }
.svc-panel--sub { border-top: 4px solid var(--beco-yellow); }
.svc-panel__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.svc-panel__title { margin: 0; font-size: 1.4rem; font-weight: 800; color: var(--beco-ink); }
.svc-panel--sub .svc-panel__title { margin-bottom: 18px; font-size: 1.2rem; }
.svc-panel__all { display: inline-flex; align-items: center; gap: 7px; font-size: .9rem; font-weight: 700; color: var(--beco-blue); }
.svc-panel__all svg { width: 16px; height: 16px; transition: transform .15s ease; }
.svc-panel__all:hover svg { transform: translateX(4px); }

.svc-list { display: grid; gap: 12px; }
.svc-list--cols { grid-template-columns: 1fr 1fr; }

.svc-item {
	display: flex; align-items: center; gap: 14px;
	padding: 14px 16px;
	background: #f6f9fb;
	border: 1px solid var(--beco-line);
	transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.svc-item__ico {
	flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center;
	background: var(--beco-blue); color: #fff; transition: background .16s ease;
}
.svc-item__ico svg { width: 22px; height: 22px; }
.svc-item__ico img { width: 24px; height: 24px; object-fit: contain; filter: brightness(0) invert(1); }
.svc-item__name { font-weight: 600; font-size: 1rem; color: var(--beco-ink); flex: 1 1 auto; }
.svc-item__go { color: var(--beco-blue); opacity: 0; transform: translateX(-6px); transition: opacity .16s ease, transform .16s ease; }
.svc-item__go svg { width: 18px; height: 18px; }
.svc-item:hover {
	background: #fff; border-color: rgba(30,119,188,.4);
	transform: translateY(-2px); box-shadow: 0 14px 30px rgba(20,24,28,.08);
}
.svc-item:hover .svc-item__ico { background: var(--beco-black); }
.svc-item:hover .svc-item__go { opacity: 1; transform: translateX(0); }

/* Services CTA — fills the leftover space in the main panel, image in BG */
.svc-cta {
	position: relative; overflow: hidden;
	display: flex; align-items: flex-end;
	flex: 1 1 auto; min-height: 200px;
	margin-top: 22px; padding: 30px;
	color: #fff;
}
.svc-cta::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: var(--svc-cta-bg) center/cover no-repeat;
	transition: transform .45s ease;
}
.svc-cta::after {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(90deg, rgba(15,46,77,.92) 0%, rgba(18,52,86,.62) 55%, rgba(10,16,22,.30) 100%);
}
.svc-cta:hover::before { transform: scale(1.06); }
.svc-cta__content { position: relative; z-index: 2; max-width: 460px; }
.svc-cta__eyebrow {
	display: inline-block; margin-bottom: 8px;
	font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--beco-yellow);
}
.svc-cta__title {
	display: block; margin-bottom: 18px;
	font-family: var(--beco-head); font-size: clamp(1.3rem, 1.8vw, 1.7rem); font-weight: 800; line-height: 1.15;
}
.svc-cta__row { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.svc-cta__btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 13px 24px; background: var(--beco-yellow); color: var(--beco-black);
	font-weight: 700; font-size: .92rem;
	transition: background .15s ease, transform .15s ease;
}
.svc-cta__btn svg { width: 17px; height: 17px; }
.svc-cta:hover .svc-cta__btn { background: #fff; transform: translateY(-2px); }
.svc-cta__phone { font-size: .95rem; color: rgba(255,255,255,.85); }
.svc-cta__phone strong { color: #fff; }

@media (max-width: 980px) {
	.services { padding: 64px 0; }
	.services__grid { grid-template-columns: 1fr; gap: 22px; align-items: stretch; }
	.svc-cta { min-height: 170px; }
}
@media (max-width: 560px) {
	.svc-list--cols { grid-template-columns: 1fr; }
	.svc-panel { padding: 24px 20px; }
}

/* =========================================================================
   ABOUT — layered media + value grid
   ========================================================================= */
.about { position: relative; padding: 116px 0; background: #fff; overflow: hidden; }
.about__bg-dot {
	position: absolute; top: 40px; right: -60px; width: 320px; height: 320px; z-index: 0;
	background-image: radial-gradient(rgba(30,119,188,.16) 2px, transparent 2px);
	background-size: 20px 20px;
}
.about__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }

/* Media composition */
.about__media { position: relative; min-height: 500px; }
.about__img { overflow: hidden; }
.about__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.about__img--main { position: relative; z-index: 2; height: 480px; box-shadow: 0 30px 60px rgba(20,24,28,.22); }
.about__img--sub {
	position: absolute; z-index: 3; bottom: -42px; right: -34px;
	width: 230px; height: 230px; border: 7px solid #fff;
	box-shadow: 0 20px 44px rgba(20,24,28,.26);
}
.about__media:hover .about__img img { transform: scale(1.07); }
.about__frame {
	position: absolute; z-index: 1; top: -26px; left: -26px;
	width: 180px; height: 180px; border: 4px solid var(--beco-blue);
}
.about__media::after { /* gold accent square bottom-left */
	content: ""; position: absolute; z-index: 1; bottom: 30px; left: -22px;
	width: 64px; height: 64px; background: var(--beco-yellow);
}
.about__contact {
	position: absolute; z-index: 4; left: -24px; top: 40px;
	display: inline-flex; align-items: center; gap: 13px;
	padding: 16px 22px; background: var(--beco-ink); color: #fff;
	box-shadow: 0 18px 40px rgba(20,24,28,.3);
	transition: transform .2s ease, background .2s ease;
}
.about__contact:hover { transform: translateY(-3px); background: var(--beco-blue); }
.about__contact-ico { width: 44px; height: 44px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; flex: 0 0 auto; transition: background .2s ease; }
.about__contact:hover .about__contact-ico { background: var(--beco-yellow); color: var(--beco-black); }
.about__contact-ico svg { width: 22px; height: 22px; }
.about__contact-text { display: flex; flex-direction: column; line-height: 1.2; }
.about__contact-label { font-size: .74rem; color: rgba(255,255,255,.8); max-width: 150px; }
.about__contact-num { font-family: var(--beco-head); font-size: 1.2rem; font-weight: 800; }

/* Body */
.about__heading {
	margin: 0 0 20px; font-size: clamp(1.9rem, 3vw, 2.7rem); line-height: 1.12;
	font-weight: 800; color: var(--beco-ink); letter-spacing: -.015em;
}
.about__heading span { color: var(--beco-blue); }
.about__desc { margin: 0 0 28px; color: var(--beco-muted); font-size: 1.04rem; }
.about__desc p { margin: 0 0 14px; }
.about__desc span[style] { color: var(--beco-blue) !important; }

.about__values { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 32px; }
.about__value {
	display: flex; align-items: center; gap: 13px;
	padding: 14px 16px; background: #f6f9fb; border: 1px solid var(--beco-line);
	transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}
.about__value:hover { background: #fff; transform: translateY(-2px); border-color: rgba(30,119,188,.4); box-shadow: 0 14px 28px rgba(20,24,28,.08); }
.about__value-ico { flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; transition: background .16s ease; }
.about__value:hover .about__value-ico { background: var(--beco-yellow); color: var(--beco-black); }
.about__value-ico svg { width: 21px; height: 21px; }
.about__value-text { font-weight: 700; font-size: .98rem; color: var(--beco-ink); }
.about__actions { display: flex; flex-wrap: wrap; gap: 14px; }

@media (max-width: 980px) {
	.about { padding: 70px 0; }
	.about__inner { grid-template-columns: 1fr; gap: 80px; }
	.about__img--sub { width: 170px; height: 170px; right: 0; bottom: -30px; }
	.about__frame { width: 130px; height: 130px; }
}
@media (max-width: 560px) {
	.about__values { grid-template-columns: 1fr; }
	.about__contact { left: 0; top: 14px; padding: 12px 16px; }
	.about__img--main { height: 360px; }
}

/* =========================================================================
   GHL QUOTE MODAL — fully removed from the DOM hit-test when closed
   (uses [hidden] => display:none, so NO invisible click-blocking layer)
   ========================================================================= */
.beco-modal {
	position: fixed; inset: 0; z-index: 1000;
	display: flex; align-items: center; justify-content: center; padding: 24px;
	opacity: 0; transition: opacity .28s ease;
}
.beco-modal[hidden] { display: none !important; }
.beco-modal.is-open { opacity: 1; }
.beco-modal__backdrop { position: absolute; inset: 0; background: rgba(8,14,20,.72); backdrop-filter: blur(3px); cursor: pointer; }
.beco-modal__panel {
	position: relative; z-index: 1; width: 100%; max-width: 560px; max-height: 92vh;
	background: #fff; display: flex; flex-direction: column;
	box-shadow: 0 40px 100px rgba(0,0,0,.45);
	transform: translateY(18px) scale(.98); transition: transform .28s ease;
}
.beco-modal.is-open .beco-modal__panel { transform: none; }
.beco-modal__head {
	display: flex; align-items: center; gap: 10px;
	padding: 20px 26px; background: var(--beco-blue); color: #fff;
	font-family: var(--beco-head); font-size: 1.45rem; font-weight: 800;
}
.beco-modal__head strong { color: var(--beco-yellow); font-weight: 800; }
.beco-modal__close {
	position: absolute; top: 12px; right: 12px; z-index: 2;
	width: 40px; height: 40px; display: grid; place-items: center;
	background: rgba(255,255,255,.18); color: #fff; border: 0; cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.beco-modal__close:hover { background: var(--beco-black); transform: rotate(90deg); }
.beco-modal__close svg { width: 20px; height: 20px; }
.beco-modal__body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
.beco-modal__body iframe { width: 100%; height: 72vh; min-height: 520px; border: 0; display: block; }

/* =========================================================================
   TESTIMONIALS — featured-middle cards
   ========================================================================= */
.reviews { position: relative; padding: 100px 0; background: #f5f8fb; overflow: hidden; }
.reviews__quote-bg {
	position: absolute; top: -60px; left: 50%; transform: translateX(-50%);
	font-family: Georgia, serif; font-size: 32rem; line-height: 1; color: rgba(30,119,188,.05);
	z-index: 0; pointer-events: none;
}
.reviews .container { position: relative; z-index: 1; }
.reviews__head { text-align: center; margin-bottom: 50px; }
.reviews__head .sec-eyebrow { justify-content: center; }
.reviews__heading { margin: 0 0 14px; font-size: clamp(1.9rem, 3vw, 2.7rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.reviews__sub { margin: 0; display: inline-flex; align-items: center; gap: 8px; color: var(--beco-muted); font-size: 1.02rem; }
.reviews__sub strong { color: var(--beco-ink); font-family: var(--beco-head); }
.reviews__stars { display: inline-flex; gap: 2px; color: var(--beco-yellow); }
.reviews__stars svg { width: 20px; height: 20px; }

.reviews__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; align-items: center; }
.review-card {
	position: relative;
	background: #fff; border: 1px solid var(--beco-line);
	padding: 40px 32px 32px;
	box-shadow: 0 14px 36px rgba(20,24,28,.06);
	transition: transform .22s ease, box-shadow .22s ease;
}
.review-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(20,24,28,.14); }
.review-card--featured {
	background: var(--beco-ink); border-color: var(--beco-ink);
	padding-block: 52px 44px;
	box-shadow: 0 34px 70px rgba(20,24,28,.28);
}
.review-card__mark {
	position: absolute; top: 16px; right: 26px;
	font-family: Georgia, serif; font-size: 5rem; line-height: 1; color: var(--beco-blue); opacity: .18;
}
.review-card--featured .review-card__mark { color: var(--beco-yellow); opacity: .6; }
.review-card__stars { display: inline-flex; gap: 3px; color: var(--beco-yellow); margin-bottom: 16px; }
.review-card__stars svg { width: 20px; height: 20px; }
.review-card__text { margin: 0 0 26px; font-size: 1.02rem; line-height: 1.7; color: var(--beco-ink); }
.review-card--featured .review-card__text { color: rgba(255,255,255,.92); }
.review-card__author { display: flex; align-items: center; gap: 14px; }
.review-card__avatar {
	flex: 0 0 auto; width: 50px; height: 50px; display: grid; place-items: center;
	background: var(--beco-blue); color: #fff; font-family: var(--beco-head); font-weight: 800; font-size: 1.1rem;
}
.review-card--featured .review-card__avatar { background: var(--beco-yellow); color: var(--beco-black); }
.review-card__meta { display: flex; flex-direction: column; flex: 1 1 auto; }
.review-card__name { font-weight: 700; color: var(--beco-ink); }
.review-card--featured .review-card__name { color: #fff; }
.review-card__role { font-size: .85rem; color: var(--beco-muted); }
.review-card--featured .review-card__role { color: rgba(255,255,255,.6); }
.review-card__google { width: 24px; height: 24px; flex: 0 0 auto; }

@media (max-width: 980px) {
	.reviews { padding: 64px 0; }
	.reviews__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
	.review-card--featured { padding-block: 40px 32px; }
}

/* =========================================================================
   SERVICE AREAS
   ========================================================================= */
.areas { position: relative; overflow: hidden; padding: 100px 0; color: #fff; background: var(--beco-blue); background-image: linear-gradient(160deg, var(--beco-blue) 0%, var(--beco-blue-dark) 100%); }
.areas__grid-bg {
	position: absolute; inset: 0; z-index: 0; opacity: .5;
	background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
	background-size: 46px 46px;
	-webkit-mask-image: radial-gradient(circle at 70% 40%, #000, transparent 75%);
	        mask-image: radial-gradient(circle at 70% 40%, #000, transparent 75%);
}
.areas__inner { position: relative; z-index: 1; display: grid; grid-template-columns: .85fr 1.15fr; gap: 60px; align-items: center; }
.areas__heading { margin: 0 0 16px; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: #fff; letter-spacing: -.01em; line-height: 1.15; }
.areas__text { margin: 0 0 28px; color: rgba(255,255,255,.72); font-size: 1.02rem; line-height: 1.7; }

.areas__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.area-card {
	display: flex; align-items: center; gap: 13px;
	padding: 16px 18px;
	background: #fff; border: 1px solid #fff;
	color: var(--beco-ink);
	transition: background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.area-card__ico { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; transition: background .18s ease, color .18s ease; }
.area-card__ico svg { width: 20px; height: 20px; }
.area-card__name { flex: 1 1 auto; font-weight: 600; font-size: .98rem; color: var(--beco-ink); transition: color .18s ease; }
.area-card__go { width: 18px; height: 18px; color: var(--beco-blue); opacity: 0; transform: translateX(-6px); transition: opacity .18s ease, transform .18s ease, color .18s ease; }
.area-card:hover { background: var(--beco-yellow); border-color: var(--beco-yellow); transform: translateY(-3px); box-shadow: 0 16px 32px rgba(0,0,0,.18); }
.area-card:hover .area-card__name { color: var(--beco-black); }
.area-card:hover .area-card__ico { background: var(--beco-black); color: var(--beco-yellow); }
.area-card:hover .area-card__go { opacity: 1; transform: translateX(0); color: var(--beco-black); }

@media (max-width: 980px) {
	.areas { padding: 64px 0; }
	.areas__inner { grid-template-columns: 1fr; gap: 36px; }
	/* Flex-wrap centered → orphan last-row card stays centered. */
	.areas__list { display: flex; flex-wrap: wrap; justify-content: center; }
	.areas__list > .area-card { flex: 1 1 calc(50% - 7px); max-width: calc(50% - 7px); }
}
@media (max-width: 480px) {
	.areas__list > .area-card { flex-basis: 100%; max-width: 100%; }
}

/* =========================================================================
   BLOG
   ========================================================================= */
.blog { padding: 100px 0; background: #fff; }
.blog__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 46px; }
.blog__heading { margin: 8px 0 0; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; max-width: 620px; line-height: 1.15; }
.blog__all { flex: 0 0 auto; }

.blog__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post-card { background: #fff; border: 1px solid var(--beco-line); display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease; }
.post-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(20,24,28,.14); }
.post-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; height: 250px; max-height: 250px; }
.post-card__media img { width: 100%; height: 100%; max-height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.post-card:hover .post-card__media img { transform: scale(1.08); }
.post-card__date {
	position: absolute; bottom: 0; left: 0; z-index: 2;
	display: flex; flex-direction: column; align-items: center; line-height: 1;
	padding: 12px 16px; background: var(--beco-blue); color: #fff;
}
.post-card__date strong { font-family: var(--beco-head); font-size: 1.4rem; font-weight: 800; }
.post-card__date span { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; margin-top: 3px; }
.post-card__body { padding: 26px 26px 28px; display: flex; flex-direction: column; flex: 1 1 auto; }
.post-card__meta { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; }
.post-card__meta span { display: inline-flex; align-items: center; gap: 6px; font-size: .84rem; color: var(--beco-muted); }
.post-card__meta svg { width: 15px; height: 15px; color: var(--beco-blue); }
.post-card__title { margin: 0 0 12px; font-size: 1.2rem; line-height: 1.35; font-weight: 700; }
.post-card__title a { color: var(--beco-ink); transition: color .15s ease; }
.post-card__title a:hover { color: var(--beco-blue); }
.post-card__excerpt { margin: 0 0 18px; color: var(--beco-muted); font-size: .95rem; line-height: 1.6; flex: 1 1 auto; }
.post-card__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .9rem; color: var(--beco-blue); align-self: flex-start; }
.post-card__more svg { width: 16px; height: 16px; transition: transform .15s ease; }
.post-card__more:hover svg { transform: translateX(4px); }

@media (max-width: 980px) { .blog { padding: 64px 0; } .blog__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; } }

/* Blog archive + single extras */
.blog--archive { padding: 90px 0; }
.blog-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 50px; }
.blog-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 46px; height: 46px; padding: 0 10px; background: #f5f8fb; border: 1px solid var(--beco-line); color: var(--beco-ink); font-weight: 700; transition: background .15s ease, color .15s ease; }
.blog-pagination .page-numbers:hover, .blog-pagination .page-numbers.current { background: var(--beco-blue); color: #fff; border-color: var(--beco-blue); }
.page-banner--post { padding: 100px 0 84px; }
.post-banner-meta { display: flex; gap: 20px; margin-bottom: 12px; color: rgba(255,255,255,.85); font-size: .92rem; font-weight: 600; }
.post-banner-meta span { display: inline-flex; align-items: center; }
.post-banner-meta span + span::before { content: "•"; margin-right: 20px; color: var(--beco-yellow); }
.post-tags { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--beco-line); display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.post-tags span { font-weight: 700; color: var(--beco-ink); margin-right: 4px; }
.post-tags a { padding: 6px 14px; background: #f5f8fb; border: 1px solid var(--beco-line); font-size: .85rem; color: var(--beco-muted); }
.post-tags a:hover { background: var(--beco-blue); color: #fff; border-color: var(--beco-blue); }

/* =========================================================================
   INSTAGRAM
   ========================================================================= */
.insta { padding: 90px 0 96px; background: #f5f8fb; }
.insta__head { text-align: center; margin-bottom: 40px; }
.insta__head .sec-eyebrow { justify-content: center; }
.insta__heading { display: inline-flex; align-items: center; gap: 12px; margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: var(--beco-ink); }
.insta__heading span { color: var(--beco-blue); }
.insta__ico { width: 34px; height: 34px; color: var(--beco-blue); }
.insta__feed { min-height: 60px; }

/* =========================================================================
   CONTACT CTA BAND
   ========================================================================= */
.cta-band { position: relative; overflow: hidden; background: #12345a var(--band-bg) center/cover fixed no-repeat; }
.cta-band__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(15,46,77,.94) 0%, rgba(18,52,86,.82) 55%, rgba(10,16,22,.66) 100%);
}
.cta-band__inner {
	position: relative; z-index: 1;
	display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap;
	padding-block: 70px;
}
.cta-band__content { color: #fff; max-width: 640px; }
.cta-band__heading { margin: 0 0 12px; font-size: clamp(1.9rem, 3.2vw, 2.9rem); font-weight: 800; color: #fff; letter-spacing: -.015em; }
.cta-band__sub { margin: 0; font-size: 1.08rem; color: rgba(255,255,255,.85); }
.cta-band__actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.cta-band__phone { display: inline-flex; align-items: center; gap: 14px; color: #fff; }
.cta-band__phone-ico {
	width: 56px; height: 56px; display: grid; place-items: center;
	background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); color: #fff;
	transition: background .15s ease, color .15s ease;
}
.cta-band__phone-ico svg { width: 24px; height: 24px; }
.cta-band__phone:hover .cta-band__phone-ico { background: var(--beco-yellow); color: var(--beco-black); border-color: var(--beco-yellow); }
.cta-band__phone-text { display: flex; flex-direction: column; line-height: 1.2; }
.cta-band__phone-label { font-size: .85rem; color: rgba(255,255,255,.78); }
.cta-band__phone-num { font-family: var(--beco-head); font-size: 1.5rem; font-weight: 800; }

@media (max-width: 768px) { .cta-band { background-attachment: scroll; } .cta-band__inner { padding-block: 50px; } }

/* =========================================================================
   INNER PAGE BANNER
   ========================================================================= */
.page-banner {
	position: relative; overflow: hidden;
	background: #12345a var(--pb-bg) center/cover no-repeat;
	padding: 86px 0 78px;
}
.page-banner__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(15,46,77,.94) 0%, rgba(18,52,86,.8) 55%, rgba(10,16,22,.55) 100%);
}
.page-banner__dots {
	position: absolute; top: -30px; right: -30px; width: 260px; height: 260px; z-index: 0; opacity: .5;
	background-image: radial-gradient(rgba(255,255,255,.12) 2px, transparent 2px); background-size: 22px 22px;
}
.page-banner__inner { position: relative; z-index: 1; color: #fff; }
.crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; font-size: .92rem; }
.crumbs a { color: rgba(255,255,255,.75); transition: color .15s ease; }
.crumbs a:hover { color: var(--beco-yellow); }
.crumbs__sep { color: rgba(255,255,255,.4); }
.crumbs__current { color: var(--beco-yellow); font-weight: 600; }
.page-banner__title { margin: 0; font-size: clamp(2.1rem, 4vw, 3.2rem); font-weight: 800; letter-spacing: -.015em; color: #fff; line-height: 1.08; }
.page-banner__sub { margin: 14px 0 0; max-width: 640px; font-size: 1.08rem; color: rgba(255,255,255,.85); }
.page-banner__btn { margin-top: 26px; }

/* =========================================================================
   PAGE BODY / RICH TEXT
   ========================================================================= */
.page-body { padding: 80px 0; }
.rich-text { max-width: 900px; margin-inline: auto; color: #46515b; font-size: 1.04rem; line-height: 1.8; }
.rich-text > *:first-child { margin-top: 0; }
.rich-text h1, .rich-text h2, .rich-text h3, .rich-text h4 { color: var(--beco-ink); line-height: 1.2; margin: 1.6em 0 .6em; font-weight: 800; letter-spacing: -.01em; }
.rich-text h1 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.rich-text h2 { font-size: clamp(1.6rem, 2.4vw, 2rem); }
.rich-text h3 { font-size: 1.35rem; }
.rich-text h2 strong, .rich-text h1 strong { color: var(--beco-blue); }
.rich-text p { margin: 0 0 1.2em; }
.rich-text a { color: var(--beco-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.rich-text a:hover { color: var(--beco-blue-dark); }
.rich-text ul, .rich-text ol { margin: 0 0 1.4em; padding-left: 0; list-style: none; }
.rich-text ul li { position: relative; padding: 0 0 0 32px; margin-bottom: 12px; }
.rich-text ul li::before {
	content: ""; position: absolute; left: 0; top: 7px; width: 18px; height: 18px;
	background: var(--beco-blue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='m9 16.2-3.5-3.5L4 14.2l5 5 11-11-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='m9 16.2-3.5-3.5L4 14.2l5 5 11-11-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.rich-text ol { counter-reset: ol; }
.rich-text ol li { position: relative; padding: 0 0 0 40px; margin-bottom: 12px; counter-increment: ol; }
.rich-text ol li::before { content: counter(ol); position: absolute; left: 0; top: 0; width: 26px; height: 26px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; font-size: .85rem; font-weight: 700; font-family: var(--beco-head); }
.rich-text img { margin: 1em 0; }

/* Admin-pasted embeds (Google Maps, YouTube, Vimeo) often carry a fixed
   width/height attribute that overflows on phones → horizontal scroll. Force
   them full-width with a 16:9 aspect box so they stay inside the column. */
.rich-text iframe,
.rich-text .wp-block-embed iframe,
.rich-text .wp-block-embed__wrapper iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	margin: 1em 0;
	border: 0;
}
/* Google Maps embeds read better tall than 16:9 on narrow screens. */
.rich-text iframe[src*="google.com/maps"],
.rich-text iframe[src*="maps.google"] { aspect-ratio: auto; min-height: 360px; }

/* -------------------------------------------------------------------------
   FAQ accordion — admin <details>/<summary> styled as a real accordion with a
   visible +/− toggle. JS enforces one-open-at-a-time (exclusive).
   ------------------------------------------------------------------------- */
.rich-text details {
	margin: 0 0 14px;
	background: #f5f8fb;
	border: 1px solid var(--beco-line);
	border-left: 4px solid var(--beco-blue);
}
.rich-text details summary {
	position: relative;
	display: flex; align-items: center; gap: 16px;
	padding: 18px 60px 18px 22px;
	list-style: none;
	cursor: pointer;
	font-family: var(--beco-head);
	font-weight: 700; font-size: 1.08rem; color: var(--beco-ink);
	transition: color .15s ease;
}
.rich-text details summary::-webkit-details-marker { display: none; }
/* +/− toggle box on the right (sharp corners, brand blue). Both bars are layered
   gradients on ::after — admin HTML has no extra span to hook, so no SVG/markup
   dependency. Open state collapses the vertical bar to make a minus. */
.rich-text details summary::after {
	content: ""; position: absolute; top: 50%; right: 18px;
	width: 24px; height: 24px; transform: translateY(-50%);
	background:
		linear-gradient(#fff, #fff) center/12px 2px no-repeat,   /* horizontal bar */
		linear-gradient(#fff, #fff) center/2px 12px no-repeat,   /* vertical bar   */
		var(--beco-blue);                                        /* box fill       */
	transition: background .15s ease;
}
/* When open → hide the vertical bar (minus) by collapsing it to 0 height. */
.rich-text details[open] summary::after {
	background:
		linear-gradient(#000, #000) center/12px 2px no-repeat,
		linear-gradient(#000, #000) center/2px 0 no-repeat,
		var(--beco-yellow);
}
.rich-text details summary:hover { color: var(--beco-blue); }
.rich-text details[open] { border-left-color: var(--beco-yellow); }
.rich-text details[open] summary { color: var(--beco-blue); }
.rich-text details > *:not(summary) { padding: 0 22px 4px; }
.rich-text details > summary + * { padding-top: 4px; }
.rich-text details p { margin: 0 0 14px; }
.rich-text blockquote { margin: 1.5em 0; padding: 20px 26px; background: #f5f8fb; border-left: 4px solid var(--beco-blue); font-style: italic; color: var(--beco-ink); }
.rich-text table { width: 100%; border-collapse: collapse; margin: 1.5em 0; }
.rich-text th, .rich-text td { border: 1px solid var(--beco-line); padding: 12px 14px; text-align: left; }
.rich-text th { background: #f5f8fb; font-weight: 700; color: var(--beco-ink); }

@media (max-width: 768px) { .page-banner { padding: 60px 0 54px; } .page-body { padding: 56px 0; } }

/* =========================================================================
   SERVICES PAGE — card grid
   ========================================================================= */
.svc-grid-sec { padding: 90px 0; background: #f5f8fb; }
.svc-grid-sec__head { text-align: center; margin-bottom: 48px; }
.svc-grid-sec__head .sec-eyebrow { justify-content: center; }
.svc-grid-sec__heading { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }

.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.svc-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--beco-line); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.svc-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px rgba(20,24,28,.14); border-color: transparent; }
.svc-card__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 11; }
.svc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.svc-card:hover .svc-card__media img { transform: scale(1.08); }
.svc-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,16,22,0) 45%, rgba(10,16,22,.45) 100%); }
.svc-card__icon { position: absolute; z-index: 1; left: 16px; bottom: 16px; width: 52px; height: 52px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; box-shadow: 0 10px 22px rgba(0,0,0,.28); transition: background .2s ease; }
.svc-card__icon svg { width: 26px; height: 26px; }
.svc-card__icon img { width: 26px; height: 26px; object-fit: contain; filter: brightness(0) invert(1); display: block; }
.svc-card:hover .svc-card__icon { background: var(--beco-black); color: #fff; }

/* Services page — grouped categories */
.svc-group { margin-bottom: 48px; }
.svc-group:last-child { margin-bottom: 0; }
.svc-group__title { display: flex; align-items: center; gap: 14px; margin: 0 0 24px; font-size: 1.6rem; font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.svc-group__bar { width: 6px; height: 30px; background: var(--beco-blue); flex: 0 0 auto; }
.svc-card__body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 26px; }
.svc-card__title { font-family: var(--beco-head); font-size: 1.3rem; font-weight: 800; color: var(--beco-ink); margin-bottom: 10px; transition: color .15s ease; }
.svc-card:hover .svc-card__title { color: var(--beco-blue); }
.svc-card__excerpt { color: var(--beco-muted); font-size: .95rem; line-height: 1.6; margin-bottom: 18px; flex: 1 1 auto; }
.svc-card__more { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: .9rem; color: var(--beco-blue); align-self: flex-start; }
.svc-card__more svg { width: 16px; height: 16px; transition: transform .15s ease; }
.svc-card:hover .svc-card__more svg { transform: translateX(4px); }

@media (max-width: 980px) {
	.svc-grid-sec { padding: 60px 0; }
	/* Flex-wrap centered so an orphan card in the last row stays centered (not
	   left-stranded); items keep a 2-up basis and stretch to equal heights. */
	.svc-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
	.svc-grid > .svc-card { flex: 1 1 calc(50% - 11px); max-width: calc(50% - 11px); }
}
@media (max-width: 600px) {
	.svc-grid > .svc-card { flex-basis: 100%; max-width: 420px; }
}

/* =========================================================================
   SERVICE AREAS PAGE — city grid
   ========================================================================= */
.cities-sec { padding: 90px 0; background: #fff; }
.cities-sec__head { text-align: center; margin-bottom: 46px; }
.cities-sec__head .sec-eyebrow { justify-content: center; }
.cities-sec__heading { margin: 0 0 12px; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.cities-sec__sub { margin: 0 auto; max-width: 620px; color: var(--beco-muted); font-size: 1.02rem; }

.cities-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.city-card { position: relative; display: flex; align-items: center; gap: 18px; padding: 24px 26px; background: #f6f9fb; border: 1px solid var(--beco-line); overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.city-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--beco-blue); transform: scaleY(0); transform-origin: top; transition: transform .2s ease; }
.city-card:hover { background: #fff; transform: translateY(-4px); box-shadow: 0 22px 44px rgba(20,24,28,.12); border-color: rgba(30,119,188,.3); }
.city-card:hover::before { transform: scaleY(1); }
.city-card__pin { flex: 0 0 auto; width: 54px; height: 54px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; transition: background .18s ease, color .18s ease; }
.city-card__pin svg { width: 26px; height: 26px; }
.city-card:hover .city-card__pin { background: var(--beco-yellow); color: var(--beco-black); }
.city-card__body { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.city-card__name { font-family: var(--beco-head); font-size: 1.3rem; font-weight: 800; color: var(--beco-ink); }
.city-card__sub { font-size: .88rem; color: var(--beco-muted); }
.city-card__go { flex: 0 0 auto; color: var(--beco-blue); opacity: 0; transform: translateX(-8px); transition: opacity .18s ease, transform .18s ease; }
.city-card__go svg { width: 20px; height: 20px; }
.city-card:hover .city-card__go { opacity: 1; transform: translateX(0); }

@media (max-width: 980px) {
	.cities-sec { padding: 60px 0; }
	/* Flex-wrap centered → orphan last-row card stays centered. */
	.cities-grid { display: flex; flex-wrap: wrap; justify-content: center; }
	.cities-grid > .city-card { flex: 1 1 calc(50% - 11px); max-width: calc(50% - 11px); }
}
@media (max-width: 560px) {
	.cities-grid > .city-card { flex-basis: 100%; max-width: 100%; }
}

/* =========================================================================
   GALLERY PAGE
   ========================================================================= */
.gallery-sec { padding: 90px 0; background: #fff; }
.gallery-sec__head { text-align: center; margin-bottom: 44px; }
.gallery-sec__head .sec-eyebrow { justify-content: center; }
.gallery-sec__heading { margin: 0; font-size: clamp(1.8rem, 2.8vw, 2.5rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-item { position: relative; display: block; padding: 0; border: 0; cursor: pointer; overflow: hidden; aspect-ratio: 4 / 3; background: #eef2f6; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2,.7,.2,1); }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: rgba(15,46,77,0); transition: background .25s ease; }
.gallery-item:hover::after { background: rgba(15,46,77,.45); }
.gallery-item__zoom { position: absolute; z-index: 1; inset: 0; margin: auto; width: 56px; height: 56px; display: grid; place-items: center; background: var(--beco-yellow); color: var(--beco-black); opacity: 0; transform: scale(.7); transition: opacity .25s ease, transform .25s ease; }
.gallery-item__zoom svg { width: 26px; height: 26px; }
.gallery-item:hover .gallery-item__zoom { opacity: 1; transform: scale(1); }

.lightbox { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 30px; background: rgba(6,10,14,.9); opacity: 0; transition: opacity .25s ease; }
.lightbox[hidden] { display: none !important; }
.lightbox.is-open { opacity: 1; }
.lightbox__img { max-width: 92vw; max-height: 88vh; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.lightbox__close { position: absolute; top: 20px; right: 20px; width: 48px; height: 48px; display: grid; place-items: center; background: var(--beco-yellow); color: var(--beco-black); border: 0; cursor: pointer; transition: transform .15s ease; }
.lightbox__close:hover { transform: rotate(90deg); }
.lightbox__close svg { width: 22px; height: 22px; }

@media (max-width: 980px) {
	.gallery-sec { padding: 60px 0; }
	/* Flex-wrap centered → orphan last-row tile stays centered. */
	.gallery-grid { display: flex; flex-wrap: wrap; justify-content: center; }
	.gallery-grid > .gallery-item { flex: 1 1 calc(50% - 9px); max-width: calc(50% - 9px); }
}
@media (max-width: 560px) {
	.gallery-grid > .gallery-item { flex-basis: 100%; max-width: 100%; }
}

/* =========================================================================
   GET A FREE QUOTE PAGE
   ========================================================================= */
.quote-sec { padding: 88px 0; background: #f5f8fb; }
.quote-sec__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; }
.quote-sec__heading { margin: 0 0 16px; font-size: clamp(1.9rem, 2.9vw, 2.5rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.quote-sec__text { margin: 0 0 28px; color: var(--beco-muted); font-size: 1.04rem; line-height: 1.7; }
.quote-points { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 14px; }
.quote-points li { display: flex; align-items: center; gap: 13px; font-weight: 600; color: var(--beco-ink); }
.quote-points__ico { flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; }
.quote-points__ico svg { width: 21px; height: 21px; }
.quote-sec__call { display: inline-flex; align-items: center; gap: 14px; color: var(--beco-ink); }
.quote-sec__call svg { width: 26px; height: 26px; color: var(--beco-blue); flex: 0 0 auto; }
.quote-sec__call-label { display: block; font-size: .82rem; color: var(--beco-muted); }
.quote-sec__call strong { font-family: var(--beco-head); font-size: 1.5rem; }
.quote-sec__call:hover strong { color: var(--beco-blue); }
.quote-sec__form { background: #fff; border: 1px solid var(--beco-line); border-top: 4px solid var(--beco-yellow); box-shadow: 0 24px 60px rgba(20,24,28,.1); }
.quote-sec__form-head { padding: 24px 30px; background: var(--beco-ink); color: #fff; }
.quote-sec__form-head h3 { margin: 0; font-size: 1.5rem; font-weight: 800; color: #fff; }
.quote-sec__form-body { padding: 26px 30px 30px; }
.quote-sec__form-body iframe { width: 100%; min-height: 640px; border: 0; display: block; }
@media (max-width: 980px) { .quote-sec { padding: 60px 0; } .quote-sec__grid { grid-template-columns: 1fr; gap: 40px; } }

/* Reviews page grid (equal cards) — stretch so every card in a row matches
   height (the homepage variant uses center alignment for the featured pop). */
.reviews__grid--page { grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.reviews__grid--page .review-card { height: 100%; }
@media (max-width: 980px) {
	.reviews__grid--page { grid-template-columns: repeat(2, 1fr); }
	.reviews__grid--page > .review-card:nth-child(odd):last-child { grid-column: 1 / -1; max-width: 560px; margin-inline: auto; }
}
@media (max-width: 620px) { .reviews__grid--page { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }

/* =========================================================================
   CONTACT PAGE
   ========================================================================= */
.contact-sec { padding: 88px 0; background: #fff; }
.contact-sec__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }
.contact-info__heading { margin: 0 0 16px; font-size: clamp(1.8rem, 2.8vw, 2.4rem); font-weight: 800; color: var(--beco-ink); letter-spacing: -.01em; }
.contact-info__heading span { color: var(--beco-blue); }
.contact-info__text { margin: 0 0 30px; color: var(--beco-muted); font-size: 1.02rem; line-height: 1.7; }

.contact-cards { list-style: none; margin: 0 0 30px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-card { display: flex; align-items: flex-start; gap: 14px; padding: 20px; background: #f6f9fb; border: 1px solid var(--beco-line); transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.contact-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(20,24,28,.08); border-color: rgba(30,119,188,.35); }
.contact-card__ico { flex: 0 0 auto; width: 46px; height: 46px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; }
.contact-card__ico svg { width: 22px; height: 22px; }
.contact-card__txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.contact-card__lbl { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: var(--beco-muted); }
.contact-card__txt a, .contact-card__txt strong { font-weight: 700; color: var(--beco-ink); font-size: 1rem; word-break: break-word; }
.contact-card__txt a:hover { color: var(--beco-blue); }

.contact-card--social { flex-direction: column; align-items: flex-start; gap: 14px; justify-content: center; }
.contact-card--social .contact-card__lbl { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: var(--beco-muted); }
.contact-social__links { display: flex; gap: 10px; }
.contact-social__links a { width: 42px; height: 42px; display: grid; place-items: center; background: var(--beco-ink); color: #fff; transition: background .15s ease, transform .15s ease; }
.contact-social__links a svg { width: 19px; height: 19px; }
.contact-social__links a:hover { background: var(--beco-blue); transform: translateY(-3px); }

.contact-form { background: #fff; border: 1px solid var(--beco-line); border-top: 4px solid var(--beco-yellow); box-shadow: 0 24px 60px rgba(20,24,28,.1); }
.contact-form__head { padding: 28px 30px 22px; background: var(--beco-ink); color: #fff; }
.contact-form__head h3 { margin: 0 0 6px; font-size: 1.6rem; font-weight: 800; color: #fff; }
.contact-form__head h3 span { color: var(--beco-yellow); }
.contact-form__head p { margin: 0; color: rgba(255,255,255,.72); font-size: .95rem; }
.contact-form__body { padding: 26px 30px 30px; }
.contact-form__body iframe { width: 100%; min-height: 620px; border: 0; display: block; }

.contact-map { line-height: 0; overflow: hidden; }
.contact-map iframe { width: 100% !important; max-width: 100%; height: 440px; border: 0; display: block; filter: grayscale(.15); }
@media (max-width: 768px) { .contact-map iframe { height: 320px; } }

@media (max-width: 980px) {
	.contact-sec { padding: 60px 0; }
	.contact-sec__grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 540px) { .contact-cards { grid-template-columns: 1fr; } }

/* =========================================================================
   CONTENT SECTION (managed long-form, designed)
   ========================================================================= */
.content-sec { padding: 84px 0; background: #fff; }
.content-sec__grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 56px; align-items: start; }
.content-sec__main { min-width: 0; }

/* Jump-link TOC */
.content-toc { margin: 0 0 34px; padding: 22px 24px; background: #f5f8fb; border-left: 4px solid var(--beco-blue); }
.content-toc__label { display: block; font-family: var(--beco-head); font-weight: 800; color: var(--beco-ink); margin-bottom: 12px; font-size: .9rem; text-transform: uppercase; letter-spacing: .08em; }
.content-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.content-toc li a { display: inline-block; padding: 7px 14px; background: #fff; border: 1px solid var(--beco-line); font-size: .9rem; font-weight: 600; color: var(--beco-ink); transition: background .15s ease, color .15s ease, border-color .15s ease; }
.content-toc li a:hover { background: var(--beco-blue); color: #fff; border-color: var(--beco-blue); }

/* Accent headings inside managed content */
.rich-text--accent h2 { position: relative; padding-left: 18px; scroll-margin-top: 110px; }
.rich-text--accent h2::before { content: ""; position: absolute; left: 0; top: .12em; bottom: .12em; width: 5px; background: var(--beco-blue); }
.rich-text--accent h1 { color: var(--beco-blue); }
.rich-text--accent h3 { color: var(--beco-ink); }
.rich-text--accent h3 b, .rich-text--accent h3 strong { color: var(--beco-blue); }

/* Sticky quote card */
.content-sec__aside { position: sticky; top: 110px; }
.quote-card { background: var(--beco-ink); color: #fff; padding: 32px 30px 30px; position: relative; overflow: hidden; border-top: 4px solid var(--beco-yellow); }
.quote-card::after { content: ""; position: absolute; right: -30px; bottom: -30px; width: 150px; height: 150px; background-image: radial-gradient(rgba(255,255,255,.06) 2px, transparent 2px); background-size: 18px 18px; }
.quote-card__ico { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 52px; height: 52px; background: var(--beco-blue); color: #fff; margin-bottom: 16px; }
.quote-card__ico svg { width: 28px; height: 28px; }
.quote-card__title { position: relative; z-index: 1; margin: 0 0 10px; font-size: 1.45rem; font-weight: 800; color: #fff; }
.quote-card__text { position: relative; z-index: 1; margin: 0 0 22px; color: rgba(255,255,255,.72); font-size: .98rem; line-height: 1.6; }
.quote-card__btn { position: relative; z-index: 1; width: 100%; justify-content: center; margin-bottom: 16px; }
.quote-card__call { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; color: #fff; }
.quote-card__call svg { width: 22px; height: 22px; color: var(--beco-yellow); flex: 0 0 auto; }
.quote-card__call-label { display: block; font-size: .76rem; color: rgba(255,255,255,.6); }
.quote-card__call strong { font-family: var(--beco-head); font-size: 1.3rem; }
.quote-card__call:hover strong { color: var(--beco-yellow); }

@media (max-width: 980px) {
	.content-sec { padding: 60px 0; }
	.content-sec__grid { grid-template-columns: 1fr; gap: 40px; }
	.content-sec__aside { position: static; max-width: 420px; }
}

/* =========================================================================
   FOOTER (full redesign)
   ========================================================================= */
.ft {
	position: relative;
	color: rgba(255,255,255,.78);
	background: var(--beco-blue);
	background-image: linear-gradient(180deg, var(--beco-blue) 0%, var(--beco-blue-dark) 100%);
}

/* Main */
.ft-main { position: relative; overflow: hidden; padding: 76px 0 16px; }
.ft-main__dots { position: absolute; top: -40px; right: -50px; width: 300px; height: 300px; z-index: 0; background-image: radial-gradient(rgba(255,255,255,.07) 2px, transparent 2px); background-size: 22px 22px; }
.ft-main__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.7fr 1fr 1.05fr 1.25fr; gap: 44px; }

.ft-logo img { max-height: 66px; width: auto; margin-bottom: 20px; }
.ft-about { margin: 0 0 22px; font-size: .95rem; line-height: 1.75; }
.ft-social { display: flex; gap: 10px; }
.ft-social a { width: 42px; height: 42px; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #fff; transition: background .15s ease, color .15s ease, transform .15s ease; }
.ft-social a svg { width: 19px; height: 19px; }
.ft-social a:hover { background: var(--beco-yellow); color: var(--beco-black); transform: translateY(-3px); }

.ft-col__title { margin: 4px 0 22px; font-size: 1.12rem; font-weight: 700; color: #fff; position: relative; padding-bottom: 12px; }
.ft-col__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 36px; height: 3px; background: var(--beco-yellow); }
.ft-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ft-links a { display: inline-flex; align-items: center; gap: 9px; color: rgba(255,255,255,.7); font-size: .95rem; transition: color .15s ease, transform .15s ease; }
.ft-links a::before { content: ""; width: 7px; height: 7px; background: rgba(255,255,255,.55); flex: 0 0 auto; transition: background .15s ease; }
.ft-links a:hover { color: #fff; transform: translateX(4px); }
.ft-links a:hover::before { background: var(--beco-yellow); }

.ft-contact { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 18px; }
.ft-contact li { display: flex; align-items: flex-start; gap: 13px; }
.ft-contact__ico { flex: 0 0 auto; width: 40px; height: 40px; display: grid; place-items: center; background: rgba(255,255,255,.14); color: var(--beco-yellow); }
.ft-contact__ico svg { width: 20px; height: 20px; }
.ft-contact__txt { display: flex; flex-direction: column; gap: 2px; font-size: .96rem; line-height: 1.4; }
.ft-contact__lbl { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.5); }
.ft-contact__line { display: block; line-height: 1.45; }
.ft-contact__txt a:hover { color: var(--beco-yellow); }

/* License box — big, bold, eye-catching (right column) */
.ft-licensebox {
	position: relative;
	padding: 26px 26px 24px;
	background: rgba(0,0,0,.22);
	border: 1px solid rgba(255,255,255,.18);
	border-top: 4px solid var(--beco-yellow);
}
.ft-licensebox__ico { display: inline-grid; place-items: center; width: 48px; height: 48px; background: var(--beco-yellow); color: var(--beco-black); margin-bottom: 14px; }
.ft-licensebox__ico svg { width: 26px; height: 26px; }
.ft-licensebox__label { display: block; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--beco-yellow); margin-bottom: 14px; }
.ft-licensebox__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.ft-licensebox__list li { display: flex; flex-direction: column; gap: 2px; }
.ft-licensebox__name { font-size: .82rem; color: rgba(255,255,255,.7); }
.ft-licensebox__num { font-family: var(--beco-head); font-size: 1.55rem; font-weight: 800; line-height: 1.1; color: #fff; letter-spacing: -.01em; }

.ft-areas { position: relative; z-index: 1; margin-top: 44px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.16); font-size: .94rem; }
.ft-areas__label { color: #fff; font-weight: 700; margin-right: 10px; }
.ft-areas__list a { color: rgba(255,255,255,.78); transition: color .15s ease; }
.ft-areas__list a:hover { color: var(--beco-yellow); }
.ft-areas__sep { color: rgba(255,255,255,.35); margin: 0 7px; }

/* Bottom */
.ft-bottom { background: rgba(0,0,0,.22); }
.ft-bottom__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 22px; }
.ft-copy { margin: 0; font-size: .9rem; color: rgba(255,255,255,.55); }
.ft-bottom__links { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; }
.ft-bottom__links a { font-size: .9rem; color: rgba(255,255,255,.6); transition: color .15s ease; }
.ft-bottom__links a:hover { color: var(--beco-yellow); }

/* Back to top */
.ft-totop { position: fixed; right: 22px; bottom: 22px; z-index: 90; width: 50px; height: 50px; display: grid; place-items: center; background: var(--beco-blue); color: #fff; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .25s ease, transform .25s ease, background .15s ease, visibility .25s; }
.ft-totop.is-show { opacity: 1; visibility: visible; transform: none; }
.ft-totop:hover { background: var(--beco-yellow); color: var(--beco-black); }
.ft-totop svg { width: 22px; height: 22px; }

/* Mobile → 1024: stacked full-width bars + centered divided links */
@media (max-width: 1024px) {
	.ft-main { padding: 0 0 6px; }
	.ft-main__dots { display: none; }
	.ft-main__grid { grid-template-columns: 1fr; gap: 0; }
	.ft-col { text-align: center; border-bottom: 1px solid rgba(255,255,255,.14); }

	/* Column title → full-width yellow bar */
	.ft-col__title { margin: 0; padding: 16px 18px; background: var(--beco-yellow); color: var(--beco-black); font-size: 1.05rem; letter-spacing: .02em; }
	.ft-col__title::after { display: none; }

	/* Link lists → centered, divided rows */
	.ft-links { gap: 0; }
	.ft-links li { border-bottom: 1px solid rgba(255,255,255,.1); }
	.ft-links li:last-child { border-bottom: 0; }
	.ft-links a { justify-content: center; padding: 15px 16px; font-size: 1rem; color: rgba(255,255,255,.88); }
	.ft-links a::before { display: none; }
	.ft-links a:hover { transform: none; color: var(--beco-yellow); }

	/* Brand block */
	.ft-col--brand { padding: 34px 20px 30px; }
	.ft-logo img { margin-inline: auto; }
	.ft-about { max-width: 460px; margin-inline: auto; }
	.ft-social { justify-content: center; }

	/* Contact block */
	.ft-col--contact .ft-contact { padding: 18px 16px; margin: 0; }
	.ft-contact { gap: 16px; }
	.ft-contact li { justify-content: center; text-align: left; }

	/* License box */
	.ft-col--license { padding: 26px 20px; }
	.ft-licensebox { max-width: 380px; margin-inline: auto; text-align: center; }
	.ft-licensebox__ico { margin-inline: auto; }
	.ft-licensebox__list li { align-items: center; }

	.ft-areas { text-align: center; }
}
@media (max-width: 560px) {
	.ft-bottom__inner { flex-direction: column; text-align: center; }
	.ft-bottom__links { justify-content: center; }
}

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width: 1100px) {
	.hero__content { max-width: 560px; }
}

/* Dense desktop (laptops ~1025–1440px): tighten the masthead row so the full
   nav + phone + CTA fit without overflowing and clipping the logo on the left.
   Extended to 1440 so the logo never re-clips in the 1367–1440 gap. */
@media (min-width: 1025px) and (max-width: 1440px) {
	.masthead__inner { gap: 16px; }
	.masthead__brand img { max-height: 58px !important; }
	.beco-nav__menu { gap: 0; }
	.beco-nav__item > a { padding: 12px 11px; font-size: .92rem; gap: 5px; }
	.masthead__utils { gap: 14px; }
	.masthead__phone { gap: 10px; }
	.masthead__phone-ico { width: 44px; height: 44px; }
	.masthead__phone-num { font-size: 1.25rem; }
	.masthead__cta { padding: 12px 18px; font-size: .9rem; }
}

@media (max-width: 1024px) {
	/* Hide the desktop mega-menu nav; the mobile drawer takes over */
	.beco-nav { display: none; }
	.masthead__inner { align-items: center; }
	/* Order: logo (left) · phone (right) · burger (far right) */
	.masthead__brand { order: 0; }
	.masthead__utils { order: 1; margin-left: auto; }
	.masthead__cta { display: none; }                 /* hide the button on mobile */
	.masthead__phone { display: inline-flex; }        /* show the phone instead */
	.masthead__toggle {
		order: 2; margin-left: 16px;
		display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
		width: 46px; height: 46px; background: #f1f5f9; border: 0; cursor: pointer;
	}
	.masthead__toggle span { display: block; width: 20px; height: 2.5px; margin-inline: auto; background: var(--beco-ink); }
}

/* =========================================================================
   MOBILE DRAWER MENU (clean, simple — own styling, no mega-menu CSS)
   ========================================================================= */
.beco-drawer { position: fixed; inset: 0; z-index: 1100; }
.beco-drawer[hidden] { display: none; }
.beco-drawer__backdrop { position: absolute; inset: 0; background: rgba(8,14,20,.55); opacity: 0; transition: opacity .3s ease; }
.beco-drawer.is-open .beco-drawer__backdrop { opacity: 1; }
.beco-drawer__panel {
	position: absolute; top: 0; right: 0; height: 100%; width: min(360px, 86vw);
	background: #fff; display: flex; flex-direction: column;
	transform: translateX(100%); transition: transform .3s cubic-bezier(.4,0,.2,1);
	box-shadow: -20px 0 60px rgba(0,0,0,.25); overflow-y: auto;
}
.beco-drawer.is-open .beco-drawer__panel { transform: none; }
.beco-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid var(--beco-line); }
.beco-drawer__brand img { max-height: 46px; width: auto; }
.beco-drawer__close { width: 42px; height: 42px; display: grid; place-items: center; background: #f1f5f9; border: 0; cursor: pointer; color: var(--beco-ink); transition: background .15s ease, color .15s ease; }
.beco-drawer__close:hover { background: var(--beco-blue); color: #fff; }
.beco-drawer__close svg { width: 20px; height: 20px; }
.beco-drawer__nav { flex: 1 1 auto; padding: 8px 0; }

.m-menu { list-style: none; margin: 0; padding: 0; }
.m-menu__item { border-bottom: 1px solid #eef2f6; }
.m-menu__row { display: flex; align-items: stretch; }
.m-menu__row > a { flex: 1 1 0; min-width: 0; padding: 15px 22px; color: var(--beco-ink); font-weight: 600; font-size: 1.02rem; }
.m-menu__row > a:hover { color: var(--beco-blue); }
.m-menu__toggle {
	flex: 0 0 auto; width: 54px; border: 0; border-left: 1px solid #eef2f6; background: transparent; cursor: pointer;
	display: grid; place-items: center; position: relative;
}
.m-menu__toggle span { position: absolute; width: 13px; height: 2px; background: var(--beco-ink); transition: transform .2s ease, opacity .2s ease; }
.m-menu__toggle span:last-child { transform: rotate(90deg); }
.m-menu__item.is-open > .m-menu__row .m-menu__toggle span:last-child { transform: rotate(0); opacity: 0; }
.m-menu__item.is-open > .m-menu__row .m-menu__toggle { background: var(--beco-blue); }
.m-menu__item.is-open > .m-menu__row .m-menu__toggle span { background: #fff; }

.m-submenu { list-style: none; margin: 0; padding: 0; background: #f6f9fb; display: none; }
.m-menu__item.is-open > .m-submenu { display: block; }
.m-submenu li a { display: block; padding: 12px 22px 12px 36px; color: var(--beco-muted); font-size: .96rem; font-weight: 500; border-top: 1px solid #eaeff3; }
.m-submenu li a::before { content: "–"; margin-right: 8px; color: var(--beco-blue); }
.m-submenu li a:hover { color: var(--beco-blue); background: #eef4f9; }

.beco-drawer__foot { padding: 18px 20px 24px; border-top: 1px solid var(--beco-line); display: grid; gap: 12px; }
.beco-drawer__call { display: inline-flex; align-items: center; gap: 10px; font-family: var(--beco-head); font-weight: 800; font-size: 1.25rem; color: var(--beco-ink); }
.beco-drawer__call svg { width: 22px; height: 22px; color: var(--beco-blue); }
.beco-drawer__cta { display: block; text-align: center; padding: 14px; background: var(--beco-blue); color: #fff; font-weight: 700; transition: background .15s ease, color .15s ease; }
.beco-drawer__cta:hover { background: var(--beco-yellow); color: var(--beco-black); }

@media (min-width: 1025px) { .beco-drawer { display: none !important; } }

/* Compact header on phones — keep the phone (icon + number), burger on the right */
@media (max-width: 680px) {
	.masthead__inner { gap: 10px; padding-block: 12px; }
	.masthead__brand img { max-height: 52px !important; }
	.masthead__phone-label { display: none; }
	.masthead__phone-ico { width: 42px; height: 42px; }
	.masthead__phone-num { font-size: 1.15rem; }
	.masthead__toggle { width: 42px; height: 42px; margin-left: 12px; }
}
@media (max-width: 400px) {
	.masthead__brand img { max-height: 44px !important; }
	.masthead__phone-ico { display: none; }
	.masthead__phone-num { font-size: 1.05rem; }
}

@media (max-width: 980px) {
	.hero { padding-block: 70px 130px; min-height: 640px; }
	.hero__inner { justify-content: flex-start; }
	.hero__content { max-width: 100%; }
	.hero-strip__card { grid-template-columns: repeat(2, 1fr); }
	.hero-strip__item:nth-child(2) { border-left: 0; }
	.hero-strip__item:nth-child(3), .hero-strip__item:nth-child(4) { border-top: 1px dashed #c4d6e6; }

	.why { padding: 64px 0; }
	.why__inner { grid-template-columns: 1fr; gap: 44px; }
	.why__right { padding: 36px 28px 32px; }

	.value { padding: 60px 0; }
	.value__inner { grid-template-columns: 1fr; gap: 44px; }
}

@media (max-width: 560px) {
	.hero__script { font-size: 1.7rem; }
	.hero__actions { gap: 14px; }
	.hero-strip { margin-top: -56px; }
	.hero-strip__card { grid-template-columns: 1fr 1fr; }
	.value__seals { gap: 12px; }
	.seal { height: 92px; padding: 14px; }
	.seal img { max-height: 58px; }
}

/* =========================================================================
   AUTHORITATIVE MOBILE BUTTON SIZING (must stay LAST so it wins the cascade)
   One uniform touch target for every CTA/button on phones; sharp corners are
   preserved by the global border-radius:0 rule above.
   ========================================================================= */
@media (max-width: 768px) {
	.btn,
	.masthead__cta,
	.beco-drawer__cta,
	.svc-cta__btn,
	.cta-band__actions .btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 50px;
		padding: 14px 24px;
		font-size: .98rem;
		line-height: 1.15;
		width: auto;
	}
	.btn svg,
	.masthead__cta svg,
	.beco-drawer__cta svg {
		width: 18px;
		height: 18px;
		flex: 0 0 auto;
	}
	/* Full-width primary CTAs inside the drawer footer for an easy tap target. */
	.beco-drawer__cta { width: 100%; }
}

@media (max-width: 380px) {
	.btn,
	.masthead__cta,
	.beco-drawer__cta,
	.svc-cta__btn,
	.cta-band__actions .btn {
		min-height: 46px;
		padding: 12px 18px;
		font-size: .92rem;
		gap: 8px;
	}
	.btn svg,
	.masthead__cta svg,
	.beco-drawer__cta svg {
		width: 16px;
		height: 16px;
	}
}
