/* ==========================================================================
   Total Flow Services - main stylesheet
   Headings: DM Sans. Body: Inter. Brand: #1794dc primary, #0e5076 accent.
   ========================================================================== */

:root {
	--tfs-primary: #1794dc;
	--tfs-accent: #0e5076;
	--tfs-ink: #0c2230;
	--tfs-ink-soft: #3f5765;
	--tfs-line: #e3edf3;
	--tfs-line-soft: #eef4f8;
	--tfs-bg: #ffffff;
	--tfs-bg-tint: #f4f9fc;
	--tfs-bg-deep: #091f2c;
	--tfs-white: #ffffff;
	--tfs-radius: 16px;
	--tfs-radius-sm: 10px;
	--tfs-radius-lg: 28px;
	--tfs-shadow: 0 18px 50px -24px rgba(14, 80, 118, 0.45);
	--tfs-shadow-sm: 0 8px 24px -14px rgba(14, 80, 118, 0.35);
	--tfs-wrap: 1280px;
	--tfs-gap: clamp(1.5rem, 4vw, 3.5rem);
	--tfs-font-head: 'DM Sans', system-ui, sans-serif;
	--tfs-font-body: 'Inter', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--tfs-font-body);
	color: var(--tfs-ink);
	background: var(--tfs-bg);
	line-height: 1.65;
	font-size: 17px;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--tfs-accent); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--tfs-primary); }

h1, h2, h3, h4 {
	font-family: var(--tfs-font-head);
	color: var(--tfs-ink);
	line-height: 1.1;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 .6em;
}

h1 { font-size: clamp(2.1rem, 5.2vw, 3.6rem); }
h2 { font-size: clamp(1.7rem, 3.6vw, 2.6rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.45rem); }
p { margin: 0 0 1.1rem; }

.tfs-icon { width: 24px; height: 24px; flex: none; }

/* Layout helpers --------------------------------------------------------- */
.tfs-wrap { width: 100%; max-width: var(--tfs-wrap); margin: 0 auto; padding: 0 clamp(1.2rem, 4vw, 2rem); }
.tfs-section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.tfs-section--tint { background: var(--tfs-bg-tint); }
.tfs-section--deep { background: var(--tfs-bg-deep); color: #d6e6ef; }
.tfs-section--deep h2, .tfs-section--deep h3 { color: #fff; }

.tfs-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--tfs-font-head);
	font-weight: 600;
	font-size: .8rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--tfs-primary);
	margin: 0 0 1rem;
}
.tfs-eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--tfs-primary); border-radius: 2px; }

.tfs-section-head { max-width: 640px; margin-bottom: clamp(2rem, 5vw, 3.2rem); }
.tfs-section-head.is-center { margin-left: auto; margin-right: auto; text-align: center; }
.tfs-section-head.is-center .tfs-eyebrow::before { display: none; }
.tfs-lead { font-size: 1.15rem; color: var(--tfs-ink-soft); }
.tfs-lead--light { color: #c5dcea; }

/* Buttons ---------------------------------------------------------------- */
.tfs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	font-family: var(--tfs-font-head);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1;
	padding: 1rem 1.6rem;
	border-radius: var(--tfs-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.tfs-btn--primary { background: var(--tfs-primary); color: #fff; box-shadow: 0 12px 26px -12px rgba(23, 148, 220, .8); }
.tfs-btn--primary:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 18px 34px -12px rgba(23, 148, 220, .9); }
.tfs-btn--accent { background: var(--tfs-accent); color: #fff; }
.tfs-btn--accent:hover { color: #fff; transform: translateY(-2px); background: #0c4566; }
.tfs-btn--ghost { background: transparent; color: var(--tfs-ink); border-color: var(--tfs-line); }
.tfs-btn--ghost:hover { color: var(--tfs-accent); border-color: var(--tfs-primary); transform: translateY(-2px); }
.tfs-btn--white { background: #fff; color: var(--tfs-accent); }
.tfs-btn--white:hover { color: var(--tfs-accent); transform: translateY(-2px); }
.tfs-btn--lg { padding: 1.15rem 2rem; font-size: 1.05rem; }
.tfs-btn .tfs-icon { width: 18px; height: 18px; }

/* Header ================================================================= */

/* Shared full-width bar: same horizontal padding as .tfs-wrap so the logo,
   topbar text and hero text all line up on the exact same left edge. */
.tfs-bar {
	width: 100%;
	max-width: var(--tfs-wrap);
	margin: 0 auto;
	padding: 0 clamp(1.2rem, 4vw, 2rem);
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

/* Site header: solid sticky bar at the top of every page. */
.tfs-siteheader { position: sticky; top: 0; z-index: 60; transition: box-shadow .25s ease; }
.tfs-siteheader.is-stuck { box-shadow: 0 10px 30px -18px rgba(0,0,0,.6); }

/* Topbar */
.tfs-topbar {
	background: #07161f;
	color: #b9d2e0;
	font-size: .82rem;
	font-family: var(--tfs-font-head);
	font-weight: 500;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.tfs-topbar .tfs-bar { min-height: 40px; justify-content: space-between; padding-top: .35rem; padding-bottom: .35rem; }
.tfs-topbar a { color: #fff; }
.tfs-topbar__left { display: flex; align-items: center; gap: 1.6rem; flex-wrap: wrap; }
.tfs-topbar__item { display: inline-flex; align-items: center; gap: .45rem; }
.tfs-topbar__item .tfs-icon { width: 15px; height: 15px; color: var(--tfs-primary); }
.tfs-topbar__badge { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; color: #fff; }
.tfs-topbar__badge .tfs-icon { width: 15px; height: 15px; color: var(--tfs-primary); }

/* Main header bar */
.tfs-header {
	background: var(--tfs-bg-deep);
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.tfs-header .tfs-bar { min-height: 76px; }

/* Brand zone: first flex item, never grows or shrinks, sits hard left */
.tfs-header__brand { flex: 0 0 auto; display: flex; align-items: center; margin: 0; padding: 0; }

/* Logo image (custom logo OR fallback) */
.tfs-header__brand img,
.tfs-header__brand .custom-logo,
.tfs-header__brand .custom-logo-link {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}
.tfs-header__brand img,
.tfs-header__brand .custom-logo {
	height: 48px;
	width: auto;
	max-width: 220px;
	object-fit: contain;
}

/* Text logo fallback */
.tfs-logo { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--tfs-font-head); font-weight: 800; font-size: 1.15rem; color: #fff; letter-spacing: -.02em; }
.tfs-logo__mark { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, var(--tfs-primary), var(--tfs-accent)); display: grid; place-items: center; color: #fff; flex: none; }
.tfs-logo__mark .tfs-icon { width: 20px; height: 20px; }
.tfs-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.tfs-logo__text small { font-size: .55rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #6fc4f4; margin-top: 2px; }

/* Primary nav: takes the flexible middle, pushed to the right, actions after */
.tfs-nav { flex: 1 1 auto; display: flex; align-items: center; justify-content: flex-end; min-width: 0; }
.tfs-nav ul { display: flex; align-items: center; gap: .05rem; list-style: none; margin: 0; padding: 0; flex-wrap: nowrap; }
.tfs-nav li { white-space: nowrap; }
.tfs-nav a { display: block; font-family: var(--tfs-font-head); font-weight: 500; font-size: .92rem; color: #d6e8f3; padding: .5rem .6rem; border-radius: 8px; white-space: nowrap; }
.tfs-nav a:hover, .tfs-nav .current-menu-item > a { color: #fff; background: rgba(255,255,255,.08); }
.tfs-nav .sub-menu { display: none; }

/* Right-hand actions */
.tfs-header__actions { flex: 0 0 auto; display: flex; align-items: center; gap: .7rem; }
.tfs-header__phone { display: inline-flex; align-items: center; gap: .45rem; font-family: var(--tfs-font-head); font-weight: 700; color: #fff; font-size: .95rem; padding: .5rem .3rem; white-space: nowrap; }
.tfs-header__phone .tfs-icon { width: 18px; height: 18px; color: #6fc4f4; }
.tfs-header__phone:hover { color: #6fc4f4; }
.tfs-header__quote { white-space: nowrap; }

.tfs-burger { display: none; background: none; border: 0; color: #fff; padding: .3rem; cursor: pointer; margin-left: .2rem; }
.tfs-burger .tfs-icon { width: 28px; height: 28px; }

/* Mobile slide-in menu */
.tfs-mobile { position: fixed; inset: 0; z-index: 80; background: var(--tfs-bg-deep); color: #fff; transform: translateX(100%); transition: transform .3s ease; display: flex; flex-direction: column; padding: 1.4rem; overflow-y: auto; }
.tfs-mobile.is-open { transform: translateX(0); }
.tfs-mobile__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; }
.tfs-mobile__brand { display: inline-flex; align-items: center; gap: .6rem; color: #fff; font-family: var(--tfs-font-head); font-weight: 800; font-size: 1.15rem; }
.tfs-mobile__close { background: none; border: 0; color: #fff; cursor: pointer; padding: .3rem; }
.tfs-mobile__close .tfs-icon { width: 28px; height: 28px; }
.tfs-mobile nav ul { list-style: none; margin: 0; padding: 0; }
.tfs-mobile nav a { display: block; color: #fff; font-family: var(--tfs-font-head); font-weight: 600; font-size: 1.25rem; padding: .8rem 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.tfs-mobile nav .sub-menu { display: block; padding-left: 1rem; }
.tfs-mobile nav .sub-menu a { font-size: 1.02rem; font-weight: 500; color: #acc7d6; }
.tfs-mobile__cta { margin-top: auto; display: grid; gap: .7rem; padding-top: 1.5rem; }

/* Hero ------------------------------------------------------------------- */
.tfs-hero { position: relative; overflow: hidden; background: var(--tfs-bg-deep); color: #fff; background-size: cover; background-position: center; }
.tfs-hero::before {
	content: ""; position: absolute; inset: 0;
	background:
		radial-gradient(1200px 600px at 78% -10%, rgba(23,148,220,.42), transparent 60%),
		radial-gradient(900px 500px at 10% 110%, rgba(14,80,118,.55), transparent 55%);
}
/* When a background image is set, replace the gradient glow with a dark overlay for legibility. */
.tfs-hero[data-tfs-has-image]::before {
	background: linear-gradient(180deg, rgba(10,31,44,.62), rgba(10,31,44,.72)), linear-gradient(120deg, rgba(14,80,118,.28), rgba(10,31,44,.38));
}
.tfs-hero__grid { position: relative; display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; padding: clamp(2.5rem, 7vw, 5rem) 0 clamp(3rem, 7vw, 5rem); }
.tfs-hero h1 { color: #fff; }
.tfs-hero p { color: #c5dcea; font-size: 1.18rem; max-width: 36ch; }
.tfs-hero__pill { display: inline-flex; align-items: center; gap: .5rem; background: rgba(23,148,220,.18); border: 1px solid rgba(23,148,220,.4); color: #8fd0f4; font-family: var(--tfs-font-head); font-weight: 600; font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; padding: .5rem .9rem; border-radius: 100px; margin-bottom: 1.5rem; }
.tfs-hero__pill .tfs-icon { width: 16px; height: 16px; }
.tfs-hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.tfs-hero__trust { display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; margin-top: 2.4rem; padding-top: 1.8rem; border-top: 1px solid rgba(255,255,255,.12); }
.tfs-hero__trust-item { display: flex; align-items: center; gap: .6rem; font-family: var(--tfs-font-head); font-weight: 500; font-size: .95rem; color: #d6e8f3; }
.tfs-hero__trust-item .tfs-icon { width: 20px; height: 20px; color: var(--tfs-primary); }

.tfs-hero__card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--tfs-radius-lg); padding: clamp(1.6rem, 3vw, 2.2rem); backdrop-filter: blur(6px); box-shadow: 0 30px 70px -30px rgba(0,0,0,.6); }
.tfs-hero__card h3 { color: #fff; font-size: 1.3rem; display: flex; align-items: center; gap: .6rem; margin-bottom: .9rem; }
.tfs-hero__card h3 .tfs-icon { width: 24px; height: 24px; color: #6fc4f4; flex: none; }
.tfs-hero__card > p { color: #c5dcea; font-size: 1rem; margin-bottom: 1.5rem; max-width: none; }
.tfs-hero__card .tfs-rating { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.2rem; }
.tfs-hero__card .tfs-rating .tfs-icon { width: 18px; height: 18px; color: #ffc24b; fill: #ffc24b; }
.tfs-hero__card .tfs-rating span { font-family: var(--tfs-font-head); font-weight: 600; color: #fff; font-size: .9rem; margin-left: .3rem; }
.tfs-hero__card-list { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; gap: .9rem; }
.tfs-hero__card-list li { display: flex; gap: .7rem; align-items: flex-start; font-size: .98rem; line-height: 1.45; color: #dceaf3; }
.tfs-hero__card-list .tfs-icon { width: 20px; height: 20px; color: #6fc4f4; margin-top: 1px; flex: none; }
.tfs-hero__card .tfs-btn { width: 100%; }

/* Logos / accreditations strip ------------------------------------------ */
.tfs-accred { border-bottom: 1px solid var(--tfs-line); background: #fff; }
.tfs-accred .tfs-wrap { display: grid; grid-template-columns: repeat(2, 1fr); align-items: center; gap: 1.4rem 1.5rem; padding-top: 1.8rem; padding-bottom: 1.8rem; }
.tfs-accred__item { display: flex; align-items: center; gap: .8rem; justify-content: center; }
.tfs-accred__logo { width: 54px; height: 54px; border-radius: 12px; background: var(--tfs-bg-tint); display: grid; place-items: center; flex: none; overflow: hidden; padding: 8px; }
.tfs-accred__logo img { width: 100%; height: 100%; object-fit: contain; }
.tfs-accred__logo .tfs-icon { width: 26px; height: 26px; color: var(--tfs-primary); }
.tfs-accred__item strong { font-family: var(--tfs-font-head); font-weight: 700; color: var(--tfs-ink); display: block; font-size: .98rem; line-height: 1.2; }
.tfs-accred__item span { font-size: .8rem; color: var(--tfs-ink-soft); display: block; margin-top: 2px; }

/* Services grid ---------------------------------------------------------- */
.tfs-services-grid { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.tfs-service-card {
	position: relative; background: #fff; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius);
	padding: 2rem 1.8rem; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	display: flex; flex-direction: column; overflow: hidden;
}
.tfs-service-card::after { content: ""; position: absolute; left: 0; top: 0; height: 4px; width: 100%; background: linear-gradient(90deg, var(--tfs-primary), var(--tfs-accent)); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.tfs-service-card:hover { transform: translateY(-6px); box-shadow: var(--tfs-shadow); border-color: transparent; }
.tfs-service-card:hover::after { transform: scaleX(1); }
.tfs-service-card__icon { width: 58px; height: 58px; border-radius: 14px; background: var(--tfs-bg-tint); color: var(--tfs-primary); display: grid; place-items: center; margin-bottom: 1.3rem; }
.tfs-service-card__icon .tfs-icon { width: 28px; height: 28px; }
.tfs-service-card h3 { margin-bottom: .6rem; }
.tfs-service-card p { color: var(--tfs-ink-soft); font-size: .98rem; margin-bottom: 1.4rem; }
.tfs-service-card__link { margin-top: auto; display: inline-flex; align-items: center; gap: .5rem; font-family: var(--tfs-font-head); font-weight: 600; color: var(--tfs-accent); font-size: .95rem; }
.tfs-service-card__link .tfs-icon { width: 17px; height: 17px; transition: transform .2s ease; }
.tfs-service-card:hover .tfs-service-card__link .tfs-icon { transform: translateX(4px); }

/* Feature list ----------------------------------------------------------- */
.tfs-feature-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.tfs-feature-list li { display: flex; gap: .8rem; align-items: flex-start; }
.tfs-feature-list .tfs-icon { width: 22px; height: 22px; color: var(--tfs-primary); flex: none; margin-top: 2px; }

/* Split / why us --------------------------------------------------------- */
.tfs-split { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.tfs-why__head { max-width: 640px; margin-bottom: clamp(2rem, 5vw, 3rem); }
.tfs-why-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.tfs-why-card { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--tfs-radius); padding: 1.7rem; }
.tfs-why-card__icon { width: 50px; height: 50px; border-radius: 12px; background: rgba(23,148,220,.18); color: #6fc4f4; display: grid; place-items: center; margin-bottom: 1rem; }
.tfs-why-card h3 { color: #fff; font-size: 1.18rem; margin-bottom: .5rem; }
.tfs-why-card p { color: #aac6d6; font-size: .96rem; margin: 0; }

/* Steps ------------------------------------------------------------------ */
.tfs-steps { display: grid; grid-template-columns: 1fr; gap: 1.5rem; counter-reset: step; }
.tfs-step { position: relative; padding-top: 1rem; }
.tfs-step__num { font-family: var(--tfs-font-head); font-weight: 700; font-size: 2.6rem; color: var(--tfs-line); line-height: 1; margin-bottom: .8rem; }
.tfs-step h3 { font-size: 1.15rem; margin-bottom: .4rem; }
.tfs-step p { color: var(--tfs-ink-soft); font-size: .96rem; margin: 0; }

/* Reviews ---------------------------------------------------------------- */
.tfs-reviews-grid { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.tfs-review { background: #fff; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius); padding: 1.9rem; display: flex; flex-direction: column; }
.tfs-review__stars { display: flex; gap: .2rem; margin-bottom: 1rem; }
.tfs-review__stars .tfs-icon { width: 18px; height: 18px; color: #ffb429; fill: #ffb429; }
.tfs-review p { font-size: 1rem; color: var(--tfs-ink); margin-bottom: 1.3rem; }
.tfs-review__foot { margin-top: auto; display: flex; align-items: center; gap: .8rem; }
.tfs-review__avatar { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--tfs-primary), var(--tfs-accent)); color: #fff; display: grid; place-items: center; font-family: var(--tfs-font-head); font-weight: 700; }
.tfs-review__name { font-family: var(--tfs-font-head); font-weight: 600; color: var(--tfs-ink); font-size: .98rem; }
.tfs-review__src { font-size: .82rem; color: var(--tfs-ink-soft); }

/* CTA band --------------------------------------------------------------- */
.tfs-cta-band { position: relative; overflow: hidden; background: linear-gradient(120deg, var(--tfs-accent), #0a3a55); color: #fff; border-radius: var(--tfs-radius-lg); padding: clamp(2.5rem, 5vw, 4rem); text-align: center; }
.tfs-cta-band::before { content: ""; position: absolute; inset: 0; background: radial-gradient(700px 400px at 85% -20%, rgba(23,148,220,.4), transparent 60%); }
.tfs-cta-band > * { position: relative; }
.tfs-cta-band h2 { color: #fff; }
.tfs-cta-band p { color: #c8e0ee; max-width: 52ch; margin: 0 auto 1.8rem; font-size: 1.12rem; }
.tfs-cta-band__actions { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }

/* Areas ------------------------------------------------------------------ */
.tfs-area-grid { display: flex; flex-wrap: wrap; gap: .7rem; }
.tfs-area-chip { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border: 1px solid var(--tfs-line); border-radius: 100px; padding: .6rem 1.1rem; font-family: var(--tfs-font-head); font-weight: 500; font-size: .95rem; color: var(--tfs-ink); transition: all .18s ease; }
.tfs-area-chip:hover { border-color: var(--tfs-primary); color: var(--tfs-accent); transform: translateY(-2px); box-shadow: var(--tfs-shadow-sm); }
.tfs-area-chip .tfs-icon { width: 15px; height: 15px; color: var(--tfs-primary); }

/* Contact / forms -------------------------------------------------------- */
.tfs-contact-grid { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.tfs-contact-info { display: grid; gap: 1.3rem; }
.tfs-contact-info__item { display: flex; gap: 1rem; align-items: flex-start; }
.tfs-contact-info__icon { width: 48px; height: 48px; border-radius: 12px; background: var(--tfs-bg-tint); color: var(--tfs-primary); display: grid; place-items: center; flex: none; }
.tfs-contact-info__item h4 { font-family: var(--tfs-font-head); margin: 0 0 .2rem; font-size: 1.05rem; }
.tfs-contact-info__item p, .tfs-contact-info__item a { margin: 0; color: var(--tfs-ink-soft); }
.tfs-contact-info__item a:hover { color: var(--tfs-primary); }

.tfs-form { background: #fff; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius-lg); padding: clamp(1.6rem, 3vw, 2.4rem); box-shadow: var(--tfs-shadow-sm); }
.tfs-form h3 { margin-bottom: .4rem; }
.tfs-form__intro { color: var(--tfs-ink-soft); font-size: .96rem; margin-bottom: 1.5rem; }
.tfs-field { margin-bottom: 1.1rem; }
.tfs-field label { display: block; font-family: var(--tfs-font-head); font-weight: 600; font-size: .9rem; margin-bottom: .4rem; color: var(--tfs-ink); }
.tfs-field input, .tfs-field textarea, .tfs-field select {
	width: 100%; padding: .85rem 1rem; border: 1.5px solid var(--tfs-line); border-radius: var(--tfs-radius-sm);
	font-family: var(--tfs-font-body); font-size: 1rem; color: var(--tfs-ink); background: #fdfefe; transition: border-color .18s ease, box-shadow .18s ease;
}
.tfs-field input:focus, .tfs-field textarea:focus, .tfs-field select:focus { outline: none; border-color: var(--tfs-primary); box-shadow: 0 0 0 4px rgba(23,148,220,.12); }
.tfs-field textarea { resize: vertical; min-height: 130px; }
.tfs-field--row { display: grid; grid-template-columns: 1fr; gap: 1.1rem; }
.tfs-hp { position: absolute; left: -9999px; opacity: 0; height: 0; width: 0; overflow: hidden; }
.tfs-form__msg { margin-top: 1rem; padding: .9rem 1.1rem; border-radius: var(--tfs-radius-sm); font-size: .95rem; display: none; }
.tfs-form__msg.is-ok { display: block; background: #e6f6ec; color: #1a7a3f; border: 1px solid #b9e6c8; }
.tfs-form__msg.is-err { display: block; background: #fdeaea; color: #b3261e; border: 1px solid #f3c4c1; }
.tfs-form button[type="submit"] { width: 100%; }

/* Page hero (interior) --------------------------------------------------- */
.tfs-page-hero { background: var(--tfs-bg-deep); color: #fff; position: relative; overflow: hidden; padding: clamp(2.8rem, 6vw, 4.5rem) 0; background-size: cover; background-position: center; }
.tfs-page-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(900px 500px at 85% -30%, rgba(23,148,220,.4), transparent 60%); }
.tfs-page-hero[data-tfs-has-image]::before { background: linear-gradient(180deg, rgba(10,31,44,.6), rgba(10,31,44,.72)); }
.tfs-page-hero > .tfs-wrap { position: relative; }
.tfs-page-hero h1 { color: #fff; margin-bottom: .6rem; }
.tfs-page-hero p { color: #c5dcea; font-size: 1.12rem; max-width: 56ch; margin: 0; }
.tfs-breadcrumb { display: flex; flex-wrap: wrap; gap: .4rem; font-size: .85rem; color: #8fb4c9; margin-bottom: 1rem; font-family: var(--tfs-font-head); }
.tfs-breadcrumb a { color: #8fb4c9; }
.tfs-breadcrumb a:hover { color: #fff; }
.tfs-breadcrumb span { color: #fff; }

/* Content / prose -------------------------------------------------------- */
.tfs-prose { max-width: 760px; }
.tfs-prose h2 { margin-top: 2.2rem; }
.tfs-prose h3 { margin-top: 1.6rem; }
.tfs-prose ul { padding-left: 0; list-style: none; display: grid; gap: .7rem; margin: 1.3rem 0; }
.tfs-prose ul li { display: flex; gap: .7rem; align-items: flex-start; }
.tfs-prose ul li::before { content: ""; width: 22px; height: 22px; flex: none; margin-top: 2px; background: var(--tfs-primary); border-radius: 6px; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 14px no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 14px no-repeat; }

.tfs-layout { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 5vw, 3.5rem); align-items: start; }
.tfs-sidebar { display: grid; gap: 1.4rem; }
.tfs-sidebar__card { background: var(--tfs-bg-tint); border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius); padding: 1.6rem; }
.tfs-sidebar__card h3 { font-size: 1.2rem; margin-bottom: .8rem; }
.tfs-sidebar__card.is-dark { background: var(--tfs-bg-deep); color: #d6e8f3; border: 0; }
.tfs-sidebar__card.is-dark h3 { color: #fff; }
.tfs-sidebar__card.is-dark p { color: #aac6d6; font-size: .95rem; }

/* FAQ -------------------------------------------------------------------- */
.tfs-faq { display: grid; gap: .8rem; max-width: 820px; margin: 0 auto; }
.tfs-faq__item { background: #fff; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius-sm); overflow: hidden; }
.tfs-faq__q { width: 100%; text-align: left; background: none; border: 0; padding: 1.2rem 1.4rem; font-family: var(--tfs-font-head); font-weight: 600; font-size: 1.05rem; color: var(--tfs-ink); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.tfs-faq__q .tfs-icon { width: 22px; height: 22px; color: var(--tfs-primary); transition: transform .2s ease; flex: none; }
.tfs-faq__item.is-open .tfs-faq__q .tfs-icon { transform: rotate(45deg); }
.tfs-faq__a { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.tfs-faq__a-inner { padding: 0 1.4rem 1.3rem; color: var(--tfs-ink-soft); }

/* Posts ------------------------------------------------------------------ */
.tfs-post-grid { display: grid; grid-template-columns: 1fr; gap: 1.6rem; }
.tfs-post-card { background: #fff; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.tfs-post-card:hover { transform: translateY(-5px); box-shadow: var(--tfs-shadow); }
.tfs-post-card__thumb { aspect-ratio: 16/10; background: var(--tfs-bg-tint); overflow: hidden; }
.tfs-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; }
.tfs-post-card__body { padding: 1.5rem; }
.tfs-post-card__date { font-size: .82rem; color: var(--tfs-primary); font-family: var(--tfs-font-head); font-weight: 600; }
.tfs-post-card h3 { font-size: 1.2rem; margin: .4rem 0 .6rem; }
.tfs-post-card p { color: var(--tfs-ink-soft); font-size: .95rem; margin: 0; }

/* Footer ----------------------------------------------------------------- */
.tfs-footer { background: var(--tfs-bg-deep); color: #9fbccd; padding-top: clamp(3rem, 6vw, 4.5rem); }
.tfs-footer__grid { display: grid; grid-template-columns: 1fr; gap: 2.2rem; padding-bottom: 3rem; }
.tfs-footer h4 { color: #fff; font-family: var(--tfs-font-head); font-size: 1rem; letter-spacing: .04em; margin-bottom: 1.2rem; }
.tfs-footer__about p { font-size: .96rem; color: #9fbccd; }
.tfs-footer__logo { display: inline-flex; align-items: center; gap: .6rem; color: #fff; font-family: var(--tfs-font-head); font-weight: 700; font-size: 1.3rem; margin-bottom: 1.1rem; }
.tfs-footer__logo img { max-height: 46px; }
.tfs-footer__logo .tfs-logo__mark { width: 38px; height: 38px; }
.tfs-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.tfs-footer ul a { color: #9fbccd; font-size: .96rem; }
.tfs-footer ul a:hover { color: #fff; }
.tfs-footer__contact-item { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .8rem; font-size: .96rem; }
.tfs-footer__contact-item .tfs-icon { width: 18px; height: 18px; color: var(--tfs-primary); margin-top: 2px; flex: none; }
.tfs-footer__social { display: flex; gap: .6rem; margin-top: 1.2rem; }
.tfs-footer__social a { width: 40px; height: 40px; border-radius: 10px; background: rgba(255,255,255,.07); display: grid; place-items: center; color: #fff; }
.tfs-footer__social a:hover { background: var(--tfs-primary); }
.tfs-footer__social .tfs-icon { width: 20px; height: 20px; }
.tfs-footer__bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 1.5rem 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; font-size: .85rem; color: #7a9bae; }
.tfs-footer__bottom a { color: #9fbccd; }

/* Floating call button (mobile) ----------------------------------------- */
.tfs-floatcall { position: fixed; right: 1rem; bottom: 1rem; z-index: 70; display: none; align-items: center; gap: .5rem; background: var(--tfs-primary); color: #fff; font-family: var(--tfs-font-head); font-weight: 600; padding: .9rem 1.3rem; border-radius: 100px; box-shadow: 0 14px 30px -10px rgba(23,148,220,.8); }
.tfs-floatcall .tfs-icon { width: 20px; height: 20px; }

/* Reveal animation ------------------------------------------------------- */
.tfs-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.tfs-reveal.is-visible { opacity: 1; transform: none; }

/* Responsive (mobile-first: base styles are mobile, breakpoints add layout) */

/* Small tablets and up */
@media (min-width: 600px) {
	.tfs-field--row { grid-template-columns: 1fr 1fr; }
	.tfs-services-grid { grid-template-columns: repeat(2, 1fr); }
	.tfs-why-grid { grid-template-columns: repeat(2, 1fr); }
	.tfs-steps { grid-template-columns: repeat(2, 1fr); }
	.tfs-reviews-grid { grid-template-columns: repeat(2, 1fr); }
	.tfs-post-grid { grid-template-columns: repeat(2, 1fr); }
	.tfs-footer__grid { grid-template-columns: 1fr 1fr; }
}

/* Tablets / small laptops */
@media (min-width: 860px) {
	.tfs-services-grid { grid-template-columns: repeat(3, 1fr); }
	.tfs-steps { grid-template-columns: repeat(4, 1fr); }
	.tfs-reviews-grid { grid-template-columns: repeat(3, 1fr); }
	.tfs-post-grid { grid-template-columns: repeat(3, 1fr); }
	.tfs-footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; }
	.tfs-accred .tfs-wrap { grid-template-columns: repeat(4, 1fr); }
}

/* Desktop: two-column heroes and layouts */
@media (min-width: 980px) {
	.tfs-floatcall { display: none; }
	.tfs-hero__grid { grid-template-columns: 1.05fr .9fr; }
	.tfs-contact-grid { grid-template-columns: 1fr 1.1fr; }
	.tfs-layout { grid-template-columns: 1fr 340px; }
	.tfs-sidebar { position: sticky; top: 100px; }
	.tfs-why-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Full horizontal nav + actions only when there is room for it */
@media (min-width: 1100px) {
	.tfs-burger { display: none; }
}

/* Below nav breakpoint: hide inline nav + phone/quote, show burger.
   Keep the brand on the left and the burger on the right. */
@media (max-width: 1099px) {
	.tfs-nav, .tfs-header__phone, .tfs-header__quote { display: none; }
	.tfs-header__actions { margin-left: auto; }
	.tfs-burger { display: inline-flex; }
	.tfs-floatcall { display: inline-flex; }
}

/* Stack hero card above content on smaller screens */
@media (max-width: 979px) {
	.tfs-hero__card { order: -1; }
}

/* Phones */
@media (max-width: 599px) {
	.tfs-topbar__badge { display: none; }
	.tfs-topbar { font-size: .76rem; }
	.tfs-topbar .tfs-bar { justify-content: center; }
	.tfs-topbar__left { justify-content: center; gap: 1rem; }
	.tfs-header .tfs-bar { min-height: 64px; }
	.tfs-header__brand img,
	.tfs-header__brand .custom-logo { height: 40px; max-width: 170px; }
	.tfs-logo { font-size: 1rem; }
	.tfs-logo__mark { width: 34px; height: 34px; }
	.tfs-hero__actions .tfs-btn { width: 100%; }
	.tfs-cta-band__actions .tfs-btn { width: 100%; }
}

/* WordPress core alignment / utility ------------------------------------ */
.aligncenter { margin-left: auto; margin-right: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }
.tfs-mt { margin-top: 2.5rem; }

/* Light eyebrow on dark heroes */
.tfs-page-hero .tfs-eyebrow,
.tfs-section--deep .tfs-eyebrow,
.tfs-eyebrow--light { color: #6fc4f4; }
.tfs-page-hero .tfs-eyebrow::before,
.tfs-section--deep .tfs-eyebrow::before,
.tfs-eyebrow--light::before { background: #6fc4f4; }

/* Rating row (reviews hero) */
.tfs-rating { display: inline-flex; align-items: center; gap: .75rem; margin-top: 1.4rem; flex-wrap: wrap; }
.tfs-rating .tfs-review__stars { margin: 0; }
.tfs-rating span { color: #cfe3ef; font-weight: 600; font-size: .95rem; }

/* Post hero image */
.tfs-post-hero { margin: 0 0 2rem; border-radius: var(--tfs-radius); overflow: hidden; }
.tfs-post-hero img { width: 100%; height: auto; display: block; }

/* Multipage / pagination */
.tfs-pages { margin-top: 2rem; display: flex; gap: .5rem; flex-wrap: wrap; }
.tfs-pages a, .tfs-pages > span { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius-sm); padding: 0 .8rem; }
.pagination, .nav-links { display: inline-flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.pagination .page-numbers, .nav-links .page-numbers { display: inline-flex; min-width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius-sm); padding: 0 1rem; font-family: var(--tfs-font-head); font-weight: 600; color: var(--tfs-ink); background: #fff; }
.pagination .page-numbers.current, .nav-links .page-numbers.current { background: var(--tfs-primary); color: #fff; border-color: var(--tfs-primary); }
.pagination a.page-numbers:hover, .nav-links a.page-numbers:hover { border-color: var(--tfs-primary); color: var(--tfs-primary); }

/* Search form */
.tfs-searchform { display: flex; gap: .6rem; margin-top: 1.5rem; max-width: 520px; }
.tfs-searchform__input { flex: 1; padding: .8rem 1rem; border: 1px solid var(--tfs-line); border-radius: var(--tfs-radius-sm); font: inherit; }
.tfs-searchform__input:focus { outline: none; border-color: var(--tfs-primary); box-shadow: 0 0 0 3px rgba(23,148,220,.15); }
