/* TC3 Service Pages v1.13.0 — shares the look of the Dental & Orthodontic page (tc3dn) */

.tc3sv {
	--tc3sv-navy: #0a1030;
	--tc3sv-navy-2: #111a45;
	--tc3sv-blue: #2f45ff;
	--tc3sv-blue-dark: #2233d6;
	--tc3sv-blue-soft: #9aa8ff;
	--tc3sv-ink: #151a33;
	--tc3sv-muted: #555c78;
	--tc3sv-line: #e3e6f0;
	--tc3sv-tint: #f4f6fb;
	--tc3sv-white: #ffffff;
	--tc3sv-radius: 18px;
	color: var(--tc3sv-ink);
	font-size: 17px;
	line-height: 1.65;
}

/* Avada wrappers on service pages: no title bar (the hero has the H1), no top/bottom gap */
/* (body class, plus :has() as a backup when the class isn't added) */
:is(body.tc3sv-page, body:has(.tc3sv)) #main { padding-top: 0 !important; padding-bottom: 0 !important; }
:is(body.tc3sv-page, body:has(.tc3sv)) :is(.fusion-page-title-bar, .avada-page-titlebar-wrapper) { display: none !important; }
:is(body.tc3sv-page, body:has(.tc3sv)) .post-content > p:empty { display: none; }
:is(body.tc3sv-page, body:has(.tc3sv)) :is(.post-content, .project-content, .fusion-content-tb) > .tc3sv:first-child { margin-top: 0 !important; }

/* Full-bleed sections inside a normal content column */
body:has(.tc3sv) { overflow-x: clip; }
.tc3sv > section {
	position: relative;
	width: 100vw;
	left: 50%;
	margin-left: -50vw;
}

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

/* Neutralise theme heading transforms so copy reads as written */
.tc3sv h1, .tc3sv h2, .tc3sv h3, .tc3sv h4 {
	text-transform: none !important;
	letter-spacing: -0.02em;
	color: inherit;
	margin: 0 0 16px;
	font-weight: 700;
	line-height: 1.12;
}
.tc3sv h1 { font-size: clamp(2.3rem, 4.6vw, 3.7rem); }
.tc3sv h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); }
.tc3sv h3 { font-size: 1.3rem; line-height: 1.25; letter-spacing: -0.01em; }
.tc3sv h4 { font-size: 0.95rem; letter-spacing: 0; }
.tc3sv p { margin: 0 0 16px; }
.tc3sv ul, .tc3sv ol { margin: 0; padding: 0; list-style: none; }
.tc3sv a { text-decoration: none; }

.tc3sv-wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }
.tc3sv-narrow { max-width: 860px; }
.tc3sv-section { padding: 96px 0; }
.tc3sv-tint { background: var(--tc3sv-tint); }
.tc3sv-dark {
	background: radial-gradient(1200px 500px at 85% -10%, rgba(47,69,255,.35), transparent 60%), var(--tc3sv-navy);
	color: #dfe3f5;
}
/* Heading colors win over Avada's theme heading colors */
.tc3sv h1, .tc3sv h2, .tc3sv h3, .tc3sv h4 { color: var(--tc3sv-ink) !important; }
.tc3sv .tc3sv-dark h1, .tc3sv .tc3sv-dark h2, .tc3sv .tc3sv-dark h3,
.tc3sv .tc3sv-blueprint h2, .tc3sv .tc3sv-blueprint h3,
.tc3sv .tc3sv-panel h3, .tc3sv .tc3sv-proof { color: var(--tc3sv-white) !important; }
.tc3sv .tc3sv-dark .tc3sv-form h1, .tc3sv .tc3sv-dark .tc3sv-form h2, .tc3sv .tc3sv-dark .tc3sv-form h3 { color: var(--tc3sv-ink) !important; }
.tc3sv .tc3sv-offer h2, .tc3sv .tc3sv-plan h3 { color: var(--tc3sv-white) !important; }
.tc3sv .tc3sv-ad h4 { color: #1a0dab !important; }
.tc3sv .tc3sv-tree-node h4 { color: var(--tc3sv-blue) !important; }
.tc3sv .tc3sv-visual h4, .tc3sv .tc3sv-outline h4 { color: var(--tc3sv-ink) !important; }

.tc3sv-eyebrow {
	font-size: 0.78rem !important;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--tc3sv-blue);
	margin-bottom: 14px !important;
}
.tc3sv-eyebrow--light { color: var(--tc3sv-blue-soft); }

.tc3sv-head { max-width: 760px; margin-bottom: 48px; }
.tc3sv-head p:not(.tc3sv-eyebrow) { color: var(--tc3sv-muted); font-size: 1.08rem; }
.tc3sv-dark .tc3sv-head p:not(.tc3sv-eyebrow) { color: #b9c0dd; }

/* Buttons + links */
.tc3sv-btns { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }
.tc3sv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 15px 26px; border-radius: 999px;
	font-weight: 700; font-size: 1rem; line-height: 1;
	border: 2px solid transparent; cursor: pointer;
	transition: background .2s, border-color .2s, transform .2s;
}
.tc3sv-btn:hover { transform: translateY(-1px); }
.tc3sv-btn--primary { background: var(--tc3sv-blue); color: #fff !important; }
.tc3sv-btn--primary:hover { background: var(--tc3sv-blue-dark); }
.tc3sv-btn--ghost { border-color: rgba(255,255,255,.35); color: #fff !important; }
.tc3sv-btn--ghost:hover { border-color: #fff; }
.tc3sv-btn--block { width: 100%; }
.tc3sv-arrow { transition: transform .2s; display: inline-block; }
.tc3sv-btn:hover .tc3sv-arrow, .tc3sv-link:hover .tc3sv-arrow { transform: translateX(3px); }

.tc3sv-link { font-weight: 700; color: var(--tc3sv-blue) !important; display: inline-flex; gap: 6px; align-items: center; }
.tc3sv-link--light { color: var(--tc3sv-blue-soft) !important; }

.tc3sv-check { width: 20px; height: 20px; flex: 0 0 20px; color: var(--tc3sv-blue); margin-top: 3px; }
.tc3sv-dark .tc3sv-check, .tc3sv-blueprint .tc3sv-check { color: var(--tc3sv-blue-soft); }
.tc3sv-list li, .tc3sv-proof li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }

.tc3sv-num { display: inline-block; font-size: .8rem; font-weight: 800; letter-spacing: .12em; color: var(--tc3sv-blue); margin-bottom: 18px; }

/* Hero */
.tc3sv-hero { padding: 110px 0 100px; }
.tc3sv-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items: center; }
.tc3sv-lead { font-size: 1.18rem; color: #c3c9e4; max-width: 600px; }
.tc3sv-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px !important; padding-top: 28px !important; border-top: 1px solid rgba(255,255,255,.14); }
.tc3sv-pillars strong { display: block; color: #fff; margin-bottom: 4px; }
.tc3sv-pillars span { font-size: .9rem; color: #aab2d3; line-height: 1.5; display: block; }

.tc3sv-serp { background: #fff; color: var(--tc3sv-ink); border-radius: var(--tc3sv-radius); padding: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.tc3sv-serp-bar { display: flex; align-items: center; gap: 10px; border: 1px solid var(--tc3sv-line); border-radius: 999px; padding: 11px 16px; font-size: .95rem; margin-bottom: 16px; }
.tc3sv-serp-bar svg { width: 18px; height: 18px; color: var(--tc3sv-muted); }
.tc3sv-serp-list li { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-radius: 12px; margin-bottom: 8px; background: var(--tc3sv-tint); opacity: .55; }
.tc3sv-serp-list li.is-you { opacity: 1; background: #eef0ff; outline: 2px solid var(--tc3sv-blue); }
.tc3sv-serp-list strong { display: block; font-size: .98rem; }
.tc3sv-serp-list small { color: var(--tc3sv-muted); font-size: .8rem; }
.tc3sv-serp-call { background: var(--tc3sv-blue); color: #fff; font-size: .8rem; font-weight: 700; padding: 7px 14px; border-radius: 999px; }
.tc3sv-serp-note { font-size: .82rem; color: var(--tc3sv-muted); font-style: italic; margin: 8px 0 0 !important; }

/* Split layouts */
.tc3sv-split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.tc3sv-split--center { align-items: center; }
.tc3sv-prose p { color: var(--tc3sv-muted); font-size: 1.05rem; }
.tc3sv-split p:not(.tc3sv-eyebrow) { color: var(--tc3sv-muted); }
.tc3sv-dark .tc3sv-split p:not(.tc3sv-eyebrow) { color: #b9c0dd; }

.tc3sv-pains { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 48px !important; }
.tc3sv-pains li { border: 1px solid var(--tc3sv-line); border-radius: 999px; padding: 10px 18px; font-size: .92rem; font-weight: 600; color: var(--tc3sv-muted); background: #fff; }
.tc3sv-pains li::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #e0525f; margin-right: 10px; vertical-align: middle; }

/* Service cards */
.tc3sv-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tc3sv-card { background: #fff; border: 1px solid var(--tc3sv-line); border-radius: var(--tc3sv-radius); padding: 34px 30px; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.tc3sv-card:hover { box-shadow: 0 18px 50px rgba(10,16,48,.08); transform: translateY(-3px); }
.tc3sv-card p { color: var(--tc3sv-muted); flex: 1; }

/* Dental vs ortho */
.tc3sv-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.tc3sv-panel { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--tc3sv-radius); padding: 38px 34px; }
.tc3sv-panel > p:not(.tc3sv-tag) { color: #b9c0dd; }
.tc3sv-tag { display: inline-block; font-size: .75rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tc3sv-blue-soft); border: 1px solid rgba(154,168,255,.4); border-radius: 999px; padding: 6px 12px; margin-bottom: 18px !important; }
.tc3sv-panel .tc3sv-list { margin-top: 22px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); color: #e6e9f7; }

/* Search architecture tree */
.tc3sv-tree { background: var(--tc3sv-tint); border-radius: var(--tc3sv-radius); padding: 30px; }
.tc3sv-tree-root { background: var(--tc3sv-navy); color: #fff; font-weight: 700; text-align: center; padding: 14px; border-radius: 12px; position: relative; margin-bottom: 30px; }
.tc3sv-tree-root::after { content: ""; position: absolute; left: 50%; bottom: -30px; width: 2px; height: 30px; background: var(--tc3sv-blue); }
.tc3sv-tree-branches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; border-top: 2px solid var(--tc3sv-blue); padding-top: 18px; }
.tc3sv-tree-node { background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 12px; padding: 16px 14px; }
.tc3sv-tree-node h4 { color: var(--tc3sv-blue); margin-bottom: 10px; font-size: .78rem; text-transform: uppercase !important; letter-spacing: .12em; }
.tc3sv-tree-node span { display: block; font-size: .88rem; font-weight: 600; padding: 6px 0; border-bottom: 1px dashed var(--tc3sv-line); }
.tc3sv-tree-node span:last-child { border-bottom: 0; }
.tc3sv-tree-node p { font-size: .86rem; margin: 0; line-height: 1.5; color: var(--tc3sv-muted); }

/* Blueprint */
.tc3sv-blueprint {
	display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center;
	background: radial-gradient(700px 360px at 0% 0%, rgba(47,69,255,.45), transparent 65%), var(--tc3sv-navy);
	color: #c3c9e4; border-radius: 28px; padding: 64px 56px;
	box-shadow: 0 30px 80px rgba(10,16,48,.18);
}
.tc3sv-blueprint h2 { color: #fff; }
.tc3sv-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 26px 0 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.14); border-bottom: 1px solid rgba(255,255,255,.14); }
.tc3sv-price-from { font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; color: var(--tc3sv-blue-soft); font-weight: 700; }
.tc3sv-price-amt { font-size: 2.4rem; font-weight: 800; color: #fff; letter-spacing: -.02em; line-height: 1; }
.tc3sv-price-note { font-size: .9rem; color: #aab2d3; width: 100%; }
.tc3sv-blueprint-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--tc3sv-radius); padding: 32px 30px; color: #e6e9f7; }
.tc3sv-blueprint-card h3 { color: #fff; margin-bottom: 20px; }
.tc3sv-blueprint-card .tc3sv-fine { color: #aab2d3; }

/* Process */
.tc3sv-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: none; }
.tc3sv-steps li { border-top: 3px solid var(--tc3sv-blue); padding-top: 22px; }
.tc3sv-steps p { color: var(--tc3sv-muted); font-size: .96rem; }

/* Proof */
.tc3sv .tc3sv-proof { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--tc3sv-radius); padding: 32px 30px; color: #e6e9f7; font-weight: 600; }
.tc3sv-proof li:last-child { margin-bottom: 0; }

/* FAQ */
.tc3sv-faq details { border-bottom: 1px solid var(--tc3sv-line); }
.tc3sv-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; font-weight: 700; font-size: 1.08rem; }
.tc3sv-faq summary::-webkit-details-marker { display: none; }
.tc3sv-faq details p { color: var(--tc3sv-muted); padding: 0 40px 22px 0; margin: 0; }
.tc3sv-plus { position: relative; width: 16px; height: 16px; flex: 0 0 16px; }
.tc3sv-plus::before, .tc3sv-plus::after { content: ""; position: absolute; left: 0; top: 7px; width: 16px; height: 2px; background: var(--tc3sv-blue); transition: transform .2s; }
.tc3sv-plus::after { transform: rotate(90deg); }
.tc3sv-faq details[open] .tc3sv-plus::after { transform: rotate(0); }

/* Contact */
.tc3sv-contact { display: grid; grid-template-columns: .9fr 1.1fr; gap: 56px; align-items: start; }
.tc3sv-contact > div > p:not(.tc3sv-eyebrow) { color: #b9c0dd; font-size: 1.05rem; }
.tc3sv-contact-meta { margin: 24px 0 28px !important; }
.tc3sv-contact-meta li { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.1); color: #c3c9e4; }
.tc3sv-contact-meta a { color: #fff !important; font-weight: 600; }

.tc3sv-form { background: #fff; color: var(--tc3sv-ink); border-radius: var(--tc3sv-radius); padding: 34px; box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.tc3sv-form label { display: block; font-size: .85rem; font-weight: 700; margin-bottom: 16px; color: var(--tc3sv-ink); }
.tc3sv-form input, .tc3sv-form select, .tc3sv-form textarea {
	display: block; width: 100%; margin-top: 6px; padding: 12px 14px;
	font: inherit; font-size: .98rem; font-weight: 400; color: var(--tc3sv-ink);
	background: var(--tc3sv-tint); border: 1px solid var(--tc3sv-line); border-radius: 10px;
}
.tc3sv-form input:focus, .tc3sv-form select:focus, .tc3sv-form textarea:focus { outline: 2px solid var(--tc3sv-blue); outline-offset: 1px; background: #fff; }
.tc3sv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: end; }
.tc3sv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.tc3sv-fine { font-size: .85rem !important; color: var(--tc3sv-muted); margin: 14px 0 0 !important; }
.tc3sv-form .tc3sv-fine { text-align: center; }
.tc3sv-alert { padding: 12px 16px; border-radius: 10px; font-weight: 600; font-size: .95rem; }
.tc3sv-alert--ok { background: #e7f7ee; color: #146c3c; }
.tc3sv-alert--err { background: #fdecee; color: #a4202e; }

/* Responsive */
@media (max-width: 1024px) {
	.tc3sv-hero-grid, .tc3sv-split, .tc3sv-contact, .tc3sv-blueprint { grid-template-columns: 1fr; gap: 40px; }
	.tc3sv-cards { grid-template-columns: 1fr 1fr; }
	.tc3sv-steps { grid-template-columns: 1fr 1fr; gap: 32px 20px; }
	.tc3sv-serp { max-width: 520px; }
}
@media (max-width: 720px) {
	.tc3sv { font-size: 16px; }
	.tc3sv-section { padding: 68px 0; }
	.tc3sv-hero { padding: 72px 0 64px; }
	.tc3sv-wrap { padding: 0 18px; }
	.tc3sv-pillars, .tc3sv-cards, .tc3sv-duo, .tc3sv-steps, .tc3sv-row, .tc3sv-tree-branches { grid-template-columns: 1fr; }
	.tc3sv-pillars { gap: 16px; }
	.tc3sv-blueprint { padding: 40px 24px; border-radius: 20px; }
	.tc3sv-panel, .tc3sv-card { padding: 28px 22px; }
	.tc3sv-form { padding: 24px 20px; }
	.tc3sv-btns .tc3sv-btn { width: 100%; }
	.tc3sv-faq details p { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.tc3sv * { transition: none !important; }
}

/* =========================================================================
 * Service-page components (added for TC3 Service Pages)
 * ====================================================================== */

/* Shared white "device" card used by hero visuals */
.tc3sv-visual { background: #fff; color: var(--tc3sv-ink); border-radius: var(--tc3sv-radius); padding: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.35); }
.tc3sv-visual-title { font-size: .78rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-muted); margin: 0 0 14px !important; }
.tc3sv-visual-note { font-size: .82rem; color: var(--tc3sv-muted); font-style: italic; margin: 12px 0 0 !important; }

/* Report card (hub hero) */
.tc3sv-report li { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 12px; background: var(--tc3sv-tint); margin-bottom: 8px; }
.tc3sv-report li:last-child { margin-bottom: 0; }
.tc3sv-report-icon { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; background: #eef0ff; color: var(--tc3sv-blue); display: grid; place-items: center; }
.tc3sv-report-icon svg { width: 20px; height: 20px; }
.tc3sv-report strong { display: block; font-size: .98rem; line-height: 1.3; }
.tc3sv-report small { color: var(--tc3sv-muted); font-size: .8rem; }
.tc3sv-report-chip { margin-left: auto; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #146c3c; background: #e7f7ee; padding: 5px 10px; border-radius: 999px; white-space: nowrap; }
.tc3sv-report-chip--stage { color: var(--tc3sv-blue); background: #eef0ff; }
.tc3sv-report-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--tc3sv-line); font-size: .82rem; color: var(--tc3sv-muted); }
.tc3sv-report-foot s { color: #a2a8c0; }

/* Ad mock (PPC hero) */
.tc3sv-ad { border: 2px solid var(--tc3sv-blue); border-radius: 12px; padding: 16px; background: #fbfbff; }
.tc3sv-ad-label { font-size: .75rem; font-weight: 800; color: var(--tc3sv-ink); margin: 0 0 4px !important; }
.tc3sv-ad-url { font-size: .8rem; color: #146c3c; margin: 0 0 6px !important; }
.tc3sv-ad h4 { color: #1a0dab !important; font-size: 1.05rem !important; letter-spacing: -.01em !important; margin: 0 0 6px !important; line-height: 1.3 !important; }
.tc3sv-ad-desc { font-size: .85rem; color: var(--tc3sv-muted); margin: 0 0 12px !important; line-height: 1.5; }
.tc3sv-ad-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.tc3sv-ad-actions span { font-size: .78rem; font-weight: 700; border: 1px solid var(--tc3sv-line); border-radius: 999px; padding: 6px 12px; background: #fff; }
.tc3sv-ad-actions span.is-primary { background: var(--tc3sv-blue); border-color: var(--tc3sv-blue); color: #fff; }
.tc3sv-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }
.tc3sv-metrics div { background: var(--tc3sv-tint); border-radius: 10px; padding: 10px 12px; }
.tc3sv-metrics strong { display: block; font-size: .9rem; }
.tc3sv-metrics small { font-size: .74rem; color: var(--tc3sv-muted); line-height: 1.3; display: block; }

/* Phone mock (website + social heroes) */
.tc3sv-phone { max-width: 330px; margin: 0 auto; background: #0b0f26; border-radius: 38px; padding: 12px; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.tc3sv-phone-screen { background: #fff; color: var(--tc3sv-ink); border-radius: 28px; overflow: hidden; }
.tc3sv-phone-bar { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--tc3sv-line); font-size: .82rem; font-weight: 800; }
.tc3sv-phone-bar i { width: 18px; height: 2px; background: var(--tc3sv-ink); box-shadow: 0 5px 0 var(--tc3sv-ink), 0 -5px 0 var(--tc3sv-ink); display: block; }
.tc3sv-phone-hero { padding: 22px 18px 18px; background: linear-gradient(160deg, #eef0ff, #fff 70%); }
.tc3sv-phone-hero strong { display: block; font-size: 1.15rem; line-height: 1.25; margin-bottom: 8px; letter-spacing: -.01em; }
.tc3sv-phone-hero small { display: block; color: var(--tc3sv-muted); font-size: .8rem; line-height: 1.45; }
.tc3sv-phone-stars { color: #f5a623; font-size: .85rem; letter-spacing: 1px; margin-top: 10px; }
.tc3sv-phone-stars em { color: var(--tc3sv-muted); font-style: normal; font-size: .75rem; letter-spacing: 0; margin-left: 4px; }
.tc3sv-phone-ctas { display: grid; gap: 8px; padding: 0 18px 18px; }
.tc3sv-phone-ctas span { text-align: center; font-weight: 800; font-size: .88rem; padding: 12px; border-radius: 999px; border: 2px solid var(--tc3sv-blue); color: var(--tc3sv-blue); }
.tc3sv-phone-ctas span.is-primary { background: var(--tc3sv-blue); color: #fff; }
.tc3sv-phone-list { border-top: 1px solid var(--tc3sv-line); }
.tc3sv-phone-list li { display: flex; justify-content: space-between; padding: 12px 18px; border-bottom: 1px solid var(--tc3sv-line); font-size: .85rem; font-weight: 600; }
.tc3sv-phone-list li::after { content: "\203A"; color: var(--tc3sv-muted); }

/* Feed mock (social hero) */
.tc3sv-feed-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--tc3sv-line); }
.tc3sv-feed-avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, var(--tc3sv-blue), #9a5cff); }
.tc3sv-feed-head strong { display: block; font-size: .85rem; line-height: 1.2; }
.tc3sv-feed-head small { font-size: .74rem; color: var(--tc3sv-muted); }
.tc3sv-feed-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; }
.tc3sv-feed-grid span { position: relative; aspect-ratio: 4 / 5; display: flex; align-items: flex-end; padding: 8px; font-size: .68rem; font-weight: 700; color: #fff; line-height: 1.25; }
.tc3sv-feed-grid span:nth-child(1) { background: linear-gradient(160deg, #2b3a8f, #0a1030); }
.tc3sv-feed-grid span:nth-child(2) { background: linear-gradient(160deg, #b8672e, #4a2410); }
.tc3sv-feed-grid span:nth-child(3) { background: linear-gradient(160deg, #3f7d5a, #10301f); }
.tc3sv-feed-grid span:nth-child(4) { background: linear-gradient(160deg, #8d3b5e, #2c0f1d); }
.tc3sv-feed-grid span:nth-child(5) { background: linear-gradient(160deg, #3d4f63, #121a24); }
.tc3sv-feed-grid span:nth-child(6) { background: linear-gradient(160deg, #6a5acd, #1e1748); }
.tc3sv-feed-grid span.is-reel::before { content: ""; position: absolute; top: 8px; right: 8px; width: 0; height: 0; border-left: 9px solid #fff; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.tc3sv .tc3sv-feed-sched { padding: 12px 16px 16px; }
.tc3sv-feed-sched li { display: flex; justify-content: space-between; gap: 10px; font-size: .78rem; padding: 7px 0; border-bottom: 1px dashed var(--tc3sv-line); }
.tc3sv-feed-sched li:last-child { border-bottom: 0; }
.tc3sv-feed-sched b { color: var(--tc3sv-blue); font-weight: 800; }

/* Outline mock (content hero) */
.tc3sv-outline-url { font-size: .8rem; color: var(--tc3sv-muted); background: var(--tc3sv-tint); border-radius: 999px; padding: 8px 14px; margin-bottom: 14px !important; }
.tc3sv-outline h4 { font-size: 1.15rem !important; letter-spacing: -.01em !important; margin-bottom: 12px !important; }
.tc3sv-outline li { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-radius: 10px; background: var(--tc3sv-tint); margin-bottom: 6px; font-size: .9rem; font-weight: 600; }
.tc3sv-outline li small { display: block; font-weight: 400; color: var(--tc3sv-muted); font-size: .78rem; }
.tc3sv-outline li .tc3sv-check { margin-top: 1px; }
.tc3sv-outline li.is-cta { background: var(--tc3sv-blue); color: #fff; }
.tc3sv-outline li.is-cta .tc3sv-check { color: #fff; }
.tc3sv-outline li.is-cta small { color: rgba(255,255,255,.8); }

/* Six-card grid */
.tc3sv-cards--six .tc3sv-card { padding: 30px 28px; }

/* Three audience panels (dark) */
.tc3sv-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tc3sv-trio .tc3sv-panel { display: flex; flex-direction: column; padding: 34px 30px; }
.tc3sv-trio .tc3sv-panel .tc3sv-list { flex: 1; }
.tc3sv-panel .tc3sv-link { margin-top: 20px; }
.tc3sv-trio .tc3sv-tag { align-self: flex-start; }

/* Flow diagram (hub) */
.tc3sv-flow { background: var(--tc3sv-tint); border-radius: var(--tc3sv-radius); padding: 30px; }
.tc3sv-flow-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.tc3sv-flow-row span { background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 10px; padding: 10px 6px; text-align: center; font-size: .82rem; font-weight: 700; }
.tc3sv-flow-step { position: relative; margin-top: 30px; background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 12px; padding: 14px 16px; }
.tc3sv-flow-step::before { content: ""; position: absolute; left: 50%; top: -30px; width: 2px; height: 30px; background: var(--tc3sv-blue); }
.tc3sv-flow-step strong { display: block; font-size: .98rem; }
.tc3sv-flow-step small { color: var(--tc3sv-muted); font-size: .84rem; line-height: 1.45; display: block; }
.tc3sv-flow-step.is-goal { background: var(--tc3sv-navy); border-color: var(--tc3sv-navy); color: #fff; }
.tc3sv-flow-step.is-goal small { color: #b9c0dd; }
.tc3sv-flow-label { font-size: .72rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-blue); margin: 0 0 10px !important; }

/* Checklist card (feature section) */
.tc3sv-checkcard { background: var(--tc3sv-tint); border-radius: var(--tc3sv-radius); padding: 34px 32px; }
.tc3sv-checkcard h3 { margin-bottom: 20px; }
.tc3sv-checkcard .tc3sv-list li { font-weight: 600; margin-bottom: 14px; }
.tc3sv-checkcard .tc3sv-list li span { display: block; font-weight: 400; color: var(--tc3sv-muted); font-size: .92rem; margin-top: 2px; }

/* Plans (pricing cards inside the dark offer block) */
.tc3sv-offer { background: radial-gradient(700px 360px at 0% 0%, rgba(47,69,255,.45), transparent 65%), var(--tc3sv-navy); color: #c3c9e4; border-radius: 28px; padding: 64px 56px; box-shadow: 0 30px 80px rgba(10,16,48,.18); }
.tc3sv-offer-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: end; margin-bottom: 36px; }
.tc3sv-offer h2 { color: #fff; margin-bottom: 0; }
.tc3sv-offer-head p:not(.tc3sv-eyebrow) { margin: 0; }
.tc3sv-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.tc3sv-plan { position: relative; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--tc3sv-radius); padding: 28px 26px; color: #e6e9f7; display: flex; flex-direction: column; }
.tc3sv-plan.is-featured { border: 2px solid var(--tc3sv-blue-soft); background: rgba(47,69,255,.16); }
.tc3sv-plan-badge { position: absolute; top: -12px; left: 24px; background: var(--tc3sv-blue); color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; padding: 5px 10px; border-radius: 999px; }
.tc3sv-plan h3 { color: #fff; margin-bottom: 6px; font-size: 1.15rem; }
.tc3sv-plan-price { font-size: 1.9rem; font-weight: 800; color: #fff; letter-spacing: -.02em; line-height: 1.1; margin: 8px 0 4px !important; }
.tc3sv-plan-price small { font-size: .9rem; font-weight: 600; color: #aab2d3; letter-spacing: 0; }
.tc3sv-plan-for { font-size: .88rem; color: #aab2d3; margin-bottom: 18px !important; }
.tc3sv-plan .tc3sv-list { flex: 1; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); font-size: .93rem; }
.tc3sv-plan .tc3sv-check { color: var(--tc3sv-blue-soft); width: 18px; height: 18px; flex-basis: 18px; }
.tc3sv-offer-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 32px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.14); }
.tc3sv-offer-foot .tc3sv-fine { color: #aab2d3; margin: 0 !important; max-width: 640px; }
.tc3sv-offer-foot .tc3sv-btns { margin: 0; }
.tc3sv-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; background: rgba(154,168,255,.12); border: 1px dashed rgba(154,168,255,.5); color: #e6e9f7; border-radius: 12px; padding: 14px 18px; margin-bottom: 26px; font-size: .95rem; }
.tc3sv-banner strong { color: #fff; }

/* Results strip */
.tc3sv-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.tc3sv-result { border-top: 3px solid var(--tc3sv-blue); padding-top: 22px; }
.tc3sv-result-stat { font-size: clamp(2rem, 3.4vw, 2.6rem); font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--tc3sv-ink); margin-bottom: 10px !important; }
.tc3sv-result-what { font-weight: 700; margin-bottom: 6px !important; }
.tc3sv-result-client { font-size: .8rem !important; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--tc3sv-blue); margin-bottom: 8px !important; }
.tc3sv-result p:last-child { color: var(--tc3sv-muted); font-size: .95rem; }
.tc3sv-results-foot { margin-top: 36px; }

/* Related services strip */
.tc3sv-related { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tc3sv-related a { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 14px; padding: 18px 20px; font-weight: 700; color: var(--tc3sv-ink) !important; transition: border-color .2s, transform .2s; }
.tc3sv-related a:hover { border-color: var(--tc3sv-blue); transform: translateY(-2px); }
.tc3sv-related a .tc3sv-arrow { color: var(--tc3sv-blue); }

@media (max-width: 1024px) {
	.tc3sv-offer-head { grid-template-columns: 1fr; gap: 16px; }
	.tc3sv-trio { grid-template-columns: 1fr; }
	.tc3sv-visual { max-width: 520px; }
}
@media (max-width: 720px) {
	.tc3sv-offer { padding: 40px 22px; border-radius: 20px; }
	.tc3sv-results, .tc3sv-related { grid-template-columns: 1fr; }
	.tc3sv-metrics { grid-template-columns: 1fr; }
	.tc3sv-flow-row { grid-template-columns: 1fr 1fr; }
	.tc3sv-flow, .tc3sv-checkcard { padding: 24px 20px; }
	.tc3sv-report-chip { display: none; }
	.tc3sv-offer-foot .tc3sv-btns, .tc3sv-offer-foot .tc3sv-btn { width: 100%; }
}

/* Links inside fine print on dark blocks */
.tc3sv-dark .tc3sv-fine a, .tc3sv-offer .tc3sv-fine a, .tc3sv-blueprint .tc3sv-fine a { color: var(--tc3sv-blue-soft) !important; text-decoration: underline; text-underline-offset: 3px; }

/* Four plans side by side: slightly smaller price so "/month" stays on the same line */
.tc3sv-plans:has(> :nth-child(4)) .tc3sv-plan-price { font-size: 1.55rem; }
.tc3sv-plans:has(> :nth-child(4)) .tc3sv-plan { padding: 26px 22px; }

/* Services hub menu */
.tc3sv > .tc3sv-subnav { position: sticky; top: 0; z-index: 90; width: 100vw; margin-left: calc(50% - 50vw); background: var(--tc3sv-white); border-bottom: 1px solid var(--tc3sv-line); box-shadow: 0 6px 20px rgba(10,16,48,.06); }
.tc3sv-subnav-inner { display: flex; align-items: center; gap: 18px; min-height: 58px; }
.tc3sv-subnav-home { flex: 0 0 auto; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-ink) !important; padding-right: 18px; border-right: 1px solid var(--tc3sv-line); }
.tc3sv .tc3sv-subnav-list { display: flex; gap: 4px; margin: 0; padding: 8px 0; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; }
.tc3sv-subnav-list::-webkit-scrollbar { display: none; }
.tc3sv-subnav-list li { margin: 0; flex: 0 0 auto; }
.tc3sv-subnav-list a { display: block; font-size: .92rem; font-weight: 700; color: var(--tc3sv-muted) !important; padding: 8px 14px; border: 1.5px solid transparent; border-radius: 999px; white-space: nowrap; line-height: 1.2; transition: color .2s, border-color .2s; }
.tc3sv-subnav-list a:hover { color: var(--tc3sv-ink) !important; }
.tc3sv-subnav-list a.is-current { color: var(--tc3sv-blue) !important; border-color: var(--tc3sv-blue); }
.tc3sv-subnav-list a:focus-visible, .tc3sv-subnav-home:focus-visible { outline: 2px solid var(--tc3sv-blue); outline-offset: 2px; }
@media (max-width: 720px) {
	.tc3sv-subnav-home { display: none; }
	.tc3sv-subnav-inner { min-height: 52px; }
	.tc3sv-subnav-list a { font-size: .88rem; padding: 7px 12px; }
}

/* In-page links (e.g. "What's included") land below the sticky menu */
.tc3sv > section { scroll-margin-top: 90px; }

/* Bio card (About hero) */
.tc3sv-bio { padding: 26px; }
.tc3sv-bio-head { display: flex; align-items: center; gap: 16px; padding-bottom: 18px; margin-bottom: 6px; border-bottom: 1px solid var(--tc3sv-line); }
.tc3sv-bio-mark, .tc3sv-bio-photo { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 50%; }
.tc3sv-bio-photo { object-fit: cover; }
.tc3sv-bio-mark { display: grid; place-items: center; background: var(--tc3sv-navy); color: #fff; font-weight: 800; letter-spacing: .06em; font-size: 1.05rem; box-shadow: inset 0 0 0 3px var(--tc3sv-blue); }
.tc3sv-bio-head strong { display: block; font-size: 1.2rem; line-height: 1.2; }
.tc3sv-bio-head small { color: var(--tc3sv-muted); font-size: .88rem; }
.tc3sv-bio-facts li { display: flex; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1px dashed var(--tc3sv-line); }
.tc3sv-bio-facts li:last-child { border-bottom: 0; }
.tc3sv-bio-facts b { flex: 0 0 76px; font-size: 1.15rem; font-weight: 800; color: var(--tc3sv-blue); letter-spacing: -.01em; }
.tc3sv-bio-facts span { font-size: .9rem; color: var(--tc3sv-ink); line-height: 1.4; }

/* Testimonial */
.tc3sv-quote { margin: 0; text-align: left; }
.tc3sv-quote blockquote { margin: 0 0 24px; padding: 0 0 0 28px; border-left: 4px solid var(--tc3sv-blue); }
.tc3sv-quote blockquote p { font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.45; font-weight: 600; color: var(--tc3sv-ink); letter-spacing: -.01em; margin: 0; }
.tc3sv-quote figcaption { padding-left: 32px; }
.tc3sv-quote figcaption strong { display: block; }
.tc3sv-quote figcaption span { color: var(--tc3sv-muted); font-size: .95rem; }
.tc3sv-quote-link { padding-left: 32px; margin-top: 18px; }
@media (max-width: 720px) {
	.tc3sv-quote blockquote { padding-left: 18px; }
	.tc3sv-quote figcaption, .tc3sv-quote-link { padding-left: 22px; }
}

/* =========================================================================
 * Projects + case studies
 * ====================================================================== */

/* Avada portfolio posts: hide the theme's featured image slider, "By ... Published On" meta,
   project details box and related projects so the case study stands on its own.
   Works with the body class AND with :has(), so it still applies if the body class is missing. */
:is(body.tc3sv-page.single-avada_portfolio, body.single-avada_portfolio:has(.tc3sv)) :is(
	.fusion-flexslider, .flexslider.post-slideshow, .fusion-post-slideshow, .fusion-featured-image-wrapper,
	.fusion-featured-slider-tb, .fusion-meta-tb, .fusion-meta-info, .fusion-single-line-meta,
	.project-info, .related-posts, .single-navigation, .fusion-sharing-box, .fusion-post-title-meta-wrap,
	.fusion-portfolio-post > .fusion-post-title, .entry-title, .project-description > h3
) { display: none !important; }
:is(body.tc3sv-page.single-avada_portfolio, body.single-avada_portfolio:has(.tc3sv)) :is(.project-content, .project-description) {
	width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important;
}
:is(body.tc3sv-page.single-avada_portfolio, body.single-avada_portfolio:has(.tc3sv)) #main { padding-top: 0 !important; }

/* Browser-window frame for screenshots */
.tc3sv-browser { margin: 0; background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 14px; overflow: hidden; box-shadow: 0 18px 50px rgba(10,16,48,.10); }
.tc3sv-browser-bar { display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: #eef0f6; border-bottom: 1px solid var(--tc3sv-line); }
.tc3sv-browser-bar i { width: 10px; height: 10px; border-radius: 50%; background: #cfd3e1; flex: 0 0 10px; }
.tc3sv-browser-bar span { margin-left: 10px; font-size: .75rem; color: var(--tc3sv-muted); background: #fff; border-radius: 999px; padding: 3px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.tc3sv-browser-shot { aspect-ratio: 16 / 10; background: var(--tc3sv-tint) repeating-linear-gradient(135deg, transparent 0 12px, rgba(10,16,48,.03) 12px 24px); overflow: hidden; }
.tc3sv-browser-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.tc3sv-browser figcaption, .tc3sv-browser > figcaption { padding: 12px 16px; font-size: .88rem; color: var(--tc3sv-muted); border-top: 1px solid var(--tc3sv-line); }
.tc3sv-dark .tc3sv-browser { border-color: rgba(255,255,255,.14); box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.tc3sv-browser--hero .tc3sv-browser-shot { aspect-ratio: 4 / 3; }

/* Case study hero */
.tc3sv-case-hero { padding-top: 40px; }
.tc3sv-back { display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 700; color: var(--tc3sv-blue-soft) !important; margin-bottom: 40px; }
.tc3sv-back:hover { color: #fff !important; }
.tc3sv-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 18px 24px; margin: 44px 0 0; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.14); }
.tc3sv-meta div { min-width: 0; }
.tc3sv-meta dt { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-blue-soft); margin-bottom: 6px; }
.tc3sv-meta dd { margin: 0; color: #e6e9f7; font-size: .95rem; line-height: 1.45; }

/* Gallery */
.tc3sv-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }

/* Project cards */
.tc3sv-projects { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.tc3sv-project { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tc3sv-line); border-radius: var(--tc3sv-radius); overflow: hidden; color: var(--tc3sv-ink) !important; transition: box-shadow .2s, transform .2s; }
a.tc3sv-project:hover { box-shadow: 0 18px 50px rgba(10,16,48,.10); transform: translateY(-3px); }
a.tc3sv-project:hover .tc3sv-arrow { transform: translateX(3px); }
.tc3sv-project .tc3sv-browser { border: 0; border-bottom: 1px solid var(--tc3sv-line); border-radius: 0; box-shadow: none; }
.tc3sv-project-body { padding: 26px 26px 28px; display: flex; flex-direction: column; flex: 1; }
.tc3sv-project-cat { font-size: .74rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-blue); margin-bottom: 8px !important; }
.tc3sv-project h3 { margin-bottom: 10px; }
.tc3sv-project-stat { font-size: .95rem; color: var(--tc3sv-muted); margin-bottom: 12px !important; }
.tc3sv-project-stat strong { color: var(--tc3sv-ink); font-size: 1.35rem; font-weight: 800; letter-spacing: -.02em; margin-right: 4px; }
.tc3sv-project-sum { color: var(--tc3sv-muted); font-size: .96rem; flex: 1; }
.tc3sv-project .tc3sv-link { margin-top: 6px; }
.tc3sv-project--text { background: var(--tc3sv-navy); border-color: var(--tc3sv-navy); color: #e6e9f7 !important; }
.tc3sv .tc3sv-project--text h3 { color: #fff !important; }
.tc3sv-project--text .tc3sv-project-cat { color: var(--tc3sv-blue-soft); }
.tc3sv-project--text .tc3sv-project-stat, .tc3sv-project--text .tc3sv-project-sum { color: #b9c0dd; }
.tc3sv-project--text .tc3sv-project-stat strong { color: #fff; }
.tc3sv-project--text .tc3sv-project-body { justify-content: center; padding: 40px 36px; }
.tc3sv-project--text .tc3sv-project-stat strong { display: block; font-size: clamp(2.6rem, 5vw, 3.6rem); line-height: 1; margin: 6px 0 10px; }

@media (max-width: 720px) {
	.tc3sv-gallery, .tc3sv-projects { grid-template-columns: 1fr; }
	.tc3sv-back { margin-bottom: 28px; }
	.tc3sv-project-body { padding: 22px 20px 24px; }
}

/* Contact page: form as the hero */
.tc3sv-contact-hero { padding: 96px 0 104px; }
.tc3sv-contact-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.4rem); }
.tc3sv-contact-meta a[href*="maps"] { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 720px) { .tc3sv-contact-hero { padding: 64px 0 72px; } }

/* Grids that adapt to how many items a section has */
.tc3sv-steps:has(> li:nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); }
.tc3sv-trio:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 1024px) {
	.tc3sv-steps:has(> li:nth-child(3):last-child) { grid-template-columns: 1fr 1fr; }
	.tc3sv-trio:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
	.tc3sv-steps:has(> li:nth-child(3):last-child) { grid-template-columns: 1fr; }
}
/* Pricing anchors land below any sticky header */
.tc3sv [id] { scroll-margin-top: 100px; }

/* Keep the page a single stacked column even if the theme wraps it in a flex row */
.tc3sv { display: block !important; float: none !important; flex: 0 0 100% !important; width: 100% !important; max-width: 100% !important; clear: both; }
.tc3sv > section, .tc3sv > nav { display: block !important; float: none !important; clear: both; }
:is(.fusion-row, #tc3p-main, .post-content):has(> .tc3sv) { display: block !important; }

/* Measured full-bleed (set by a small script): lines sections up with the screen edges
   even when the theme's content column is off-center, e.g. a page with a sidebar. */
.tc3sv.tc3sv-fitted > section,
.tc3sv.tc3sv-fitted > .tc3sv-subnav {
	left: 0 !important;
	margin-left: var(--tc3sv-shift, 0px) !important;
	width: var(--tc3sv-vw, 100vw) !important;
	max-width: none !important;
}

/* Areas served */
.tc3sv-areas-group + .tc3sv-areas-group { margin-top: 26px; }
.tc3sv-areas-label { font-size: .78rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-muted); margin: 0 0 12px !important; }
.tc3sv .tc3sv-areas { display: flex; flex-wrap: wrap; gap: 10px; }
.tc3sv-areas li { background: #fff; border: 1px solid var(--tc3sv-line); border-radius: 999px; padding: 10px 18px; font-weight: 700; font-size: .95rem; color: var(--tc3sv-ink); }
.tc3sv-areas li::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--tc3sv-blue); margin-right: 10px; vertical-align: middle; }
.tc3sv-areas-note { margin-top: 26px !important; color: var(--tc3sv-muted); max-width: 760px; }
.tc3sv-related.tc3sv-areas-links { margin-top: 30px !important; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }

/* =========================================================================
 * News & Insights hub + blog posts (v1.13.0)
 * ====================================================================== */

/* Post cards */
.tc3sv-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.tc3sv-card-post { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--tc3sv-line); border-radius: var(--tc3sv-radius); overflow: hidden; color: var(--tc3sv-ink) !important; transition: box-shadow .2s, transform .2s, border-color .2s; }
.tc3sv-card-post[hidden] { display: none !important; }
a.tc3sv-card-post:hover { box-shadow: 0 18px 50px rgba(10,16,48,.10); transform: translateY(-3px); border-color: #cdd3ea; }
a.tc3sv-card-post:hover .tc3sv-arrow { transform: translateX(3px); }
.tc3sv-card-post-img { display: block; aspect-ratio: 16 / 9; background: var(--tc3sv-navy); overflow: hidden; }
.tc3sv-card-post-img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
a.tc3sv-card-post:hover .tc3sv-card-post-img img { transform: scale(1.03); }
.tc3sv-card-post-ph { display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 22px; background: radial-gradient(500px 240px at 90% 0%, rgba(47,69,255,.55), transparent 65%), var(--tc3sv-navy); color: #fff; font-weight: 800; font-size: 1.3rem; letter-spacing: -.01em; }
.tc3sv-card-post-body { display: flex; flex-direction: column; flex: 1; padding: 24px 24px 26px; }
.tc3sv-card-post-cat { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--tc3sv-blue); margin-bottom: 10px; }
.tc3sv-card-post-title { font-size: 1.2rem; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; margin-bottom: 10px; color: var(--tc3sv-ink); }
.tc3sv-card-post-ex { color: var(--tc3sv-muted); font-size: .95rem; line-height: 1.55; flex: 1; margin-bottom: 16px; }
.tc3sv-card-post-meta { font-size: .84rem; color: var(--tc3sv-muted); margin-bottom: 14px; }
.tc3sv-card-post .tc3sv-link { margin-top: auto; }

/* Filters */
.tc3sv-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: -12px 0 36px; }
.tc3sv .tc3sv-filters button { appearance: none; border: 1px solid var(--tc3sv-line); background: #fff; color: var(--tc3sv-ink); border-radius: 999px; padding: 10px 18px; font: inherit; font-size: .92rem; font-weight: 700; line-height: 1; cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; transition: background .15s, border-color .15s, color .15s; }
.tc3sv .tc3sv-filters button:hover { border-color: var(--tc3sv-blue); }
.tc3sv .tc3sv-filters button.is-active { background: var(--tc3sv-navy); border-color: var(--tc3sv-navy); color: #fff; }

/* Hub hero: newest post on the right */
.tc3sv-blog-hero { padding: 96px 0 92px; }
.tc3sv-blog-feature-label { font-size: .74rem !important; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--tc3sv-blue-soft); margin-bottom: 12px !important; }
.tc3sv-card-post--feature { box-shadow: 0 30px 80px rgba(0,0,0,.35); border-color: transparent; }
.tc3sv-posts-all { margin: 36px 0 0 !important; text-align: center; }

/* Blog posts: hide Avada's post chrome (title bar, title, meta, featured image, author box,
   sharing, related posts, sidebar) since the template supplies its own. */
body.tc3sv-post #main { padding-top: 0 !important; padding-bottom: 0 !important; }
body.tc3sv-post :is(.fusion-page-title-bar, .avada-page-titlebar-wrapper, #sidebar, .sidebar, .fusion-sidebar-tb,
	.fusion-post-title-meta-wrap, .single-post .post > .entry-title, .post > h1.entry-title, .post > h2.entry-title,
	.fusion-meta-info, .fusion-meta-tb, .fusion-single-line-meta, .fusion-flexslider, .flexslider.post-slideshow,
	.fusion-post-slideshow, .fusion-featured-image-wrapper, .fusion-featured-slider-tb, .about-author,
	.fusion-author-tb, .related-posts, .fusion-related-tb, .fusion-sharing-box, .single-navigation, .fusion-pagination-tb
) { display: none !important; }
body.tc3sv-post :is(#content, .post-content, .fusion-content-tb, article.post) { width: 100% !important; max-width: 100% !important; float: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body.tc3sv-post .post-content > .tc3sv--post, body.tc3sv-post .fusion-content-tb > .tc3sv--post { margin-top: 0 !important; }

.tc3sv-post-hero { padding: 40px 0 76px; }
.tc3sv-post-hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.tc3sv-post-hero .tc3sv-back { margin-bottom: 30px; }
.tc3sv-post-hero h1 { font-size: clamp(2rem, 3.8vw, 3.1rem); max-width: 860px; }
.tc3sv-post-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px !important; }
.tc3sv-post-cats a { font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #fff !important; background: rgba(47,69,255,.28); border: 1px solid rgba(154,168,255,.4); border-radius: 999px; padding: 6px 12px; }
.tc3sv-post-cats a:hover { background: rgba(47,69,255,.5); }
.tc3sv-post-meta { display: flex; flex-wrap: wrap; gap: 6px 0; margin: 22px 0 0 !important; color: #b9c0dd; font-size: .95rem; }
.tc3sv-post-meta span + span::before { content: "·"; margin: 0 10px; color: #6f78a3; }
.tc3sv-post-meta span:first-child { color: #fff; font-weight: 700; }
.tc3sv-post-img { margin: 0; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.4); aspect-ratio: 16 / 10; background: #111a45; }
.tc3sv-post-img img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Reading column */
.tc3sv-post-body { padding: 72px 0 40px; background: #fff; }
.tc3sv-prose { max-width: 760px; margin: 0 auto; font-size: 1.1rem; line-height: 1.75; color: #2a3050; }
.tc3sv .tc3sv-prose p { margin: 0 0 1.3em; }
.tc3sv .tc3sv-prose :is(h2, h3, h4, h5) { color: var(--tc3sv-ink) !important; text-transform: none !important; letter-spacing: -.015em; line-height: 1.25; }
.tc3sv .tc3sv-prose h2 { font-size: clamp(1.55rem, 2.6vw, 1.95rem); margin: 2.1em 0 .7em; padding-top: .2em; }
.tc3sv .tc3sv-prose h3 { font-size: 1.3rem; margin: 1.8em 0 .6em; }
.tc3sv .tc3sv-prose h4, .tc3sv .tc3sv-prose h5 { font-size: 1.1rem; margin: 1.6em 0 .5em; }
.tc3sv .tc3sv-prose > :first-child, .tc3sv .tc3sv-prose > :first-child > :first-child { margin-top: 0; }
.tc3sv .tc3sv-prose a:not(.fusion-button):not(.tc3sv-btn) { color: var(--tc3sv-blue) !important; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tc3sv .tc3sv-prose a:not(.fusion-button):not(.tc3sv-btn):hover { color: var(--tc3sv-navy) !important; }
.tc3sv .tc3sv-prose :is(ul, ol) { margin: 0 0 1.4em; padding-left: 0; }
.tc3sv .tc3sv-prose ul > li { position: relative; padding-left: 28px; margin-bottom: .55em; list-style: none; }
.tc3sv .tc3sv-prose ul > li::before { content: ""; position: absolute; left: 6px; top: .72em; width: 8px; height: 8px; border-radius: 50%; background: var(--tc3sv-blue); }
.tc3sv .tc3sv-prose ol { counter-reset: tc3n; }
.tc3sv .tc3sv-prose ol > li { position: relative; padding-left: 36px; margin-bottom: .6em; list-style: none; counter-increment: tc3n; }
.tc3sv .tc3sv-prose ol > li::before { content: counter(tc3n); position: absolute; left: 0; top: .15em; width: 24px; height: 24px; border-radius: 50%; background: var(--tc3sv-tint); color: var(--tc3sv-blue); font-size: .8rem; font-weight: 800; display: flex; align-items: center; justify-content: center; line-height: 1; }
.tc3sv .tc3sv-prose :is(ul, ol) :is(ul, ol) { margin: .5em 0 0; }
.tc3sv .tc3sv-prose strong { color: var(--tc3sv-ink); }
.tc3sv .tc3sv-prose blockquote { margin: 1.8em 0; padding: 6px 0 6px 24px; border-left: 4px solid var(--tc3sv-blue); font-size: 1.2rem; color: var(--tc3sv-ink); font-style: normal; background: none; }
.tc3sv .tc3sv-prose img { max-width: 100%; height: auto; border-radius: 14px; }
.tc3sv .tc3sv-prose figure { margin: 2em 0; }
.tc3sv .tc3sv-prose figcaption { font-size: .88rem; color: var(--tc3sv-muted); margin-top: 8px; text-align: center; }
.tc3sv .tc3sv-prose hr { border: 0; border-top: 1px solid var(--tc3sv-line); margin: 2.4em 0; }
.tc3sv .tc3sv-prose table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: .98rem; display: block; overflow-x: auto; }
.tc3sv .tc3sv-prose :is(th, td) { border: 1px solid var(--tc3sv-line); padding: 12px 14px; text-align: left; vertical-align: top; }
.tc3sv .tc3sv-prose th { background: var(--tc3sv-tint); color: var(--tc3sv-ink); font-weight: 700; }
.tc3sv .tc3sv-prose code { background: var(--tc3sv-tint); border-radius: 6px; padding: 2px 6px; font-size: .9em; }
/* Avada builder blocks inside a post stay inside the reading column */
.tc3sv .tc3sv-prose :is(.fusion-fullwidth, .fusion-builder-row, .fusion-layout-column) { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }

/* Author box */
.tc3sv-author { display: flex; gap: 20px; align-items: flex-start; max-width: 760px; margin: 56px auto 0; padding: 28px; background: var(--tc3sv-tint); border: 1px solid var(--tc3sv-line); border-radius: var(--tc3sv-radius); }
.tc3sv-author img, .tc3sv-author-badge { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 50%; object-fit: cover; }
.tc3sv-author-badge { display: flex; align-items: center; justify-content: center; background: var(--tc3sv-navy); color: #fff; font-weight: 800; letter-spacing: .04em; }
.tc3sv .tc3sv-author p { margin: 0 0 10px; color: var(--tc3sv-muted); font-size: .98rem; line-height: 1.6; }
.tc3sv .tc3sv-author .tc3sv-author-name { margin: 0; color: var(--tc3sv-ink); font-weight: 800; font-size: 1.1rem; }
.tc3sv .tc3sv-author .tc3sv-author-role { margin: 0 0 10px; font-size: .88rem; }

/* Consultation CTA */
.tc3sv-post-cta { padding: 56px 0 96px; }
.tc3sv-post-cta .tc3sv-offer { display: grid; grid-template-columns: 1.2fr auto; gap: 40px; align-items: center; }
.tc3sv-post-cta .tc3sv-offer p:not(.tc3sv-eyebrow) { margin: 12px 0 0; max-width: 560px; }
.tc3sv-post-cta .tc3sv-btns { margin: 0; flex-direction: column; }

@media (max-width: 1024px) {
	.tc3sv-posts { grid-template-columns: 1fr 1fr; }
	.tc3sv-post-hero-grid { grid-template-columns: 1fr; gap: 36px; }
	.tc3sv-post-cta .tc3sv-offer { grid-template-columns: 1fr; }
	.tc3sv-post-cta .tc3sv-btns { flex-direction: row; }
}
@media (max-width: 720px) {
	.tc3sv-posts { grid-template-columns: 1fr; }
	.tc3sv-blog-hero { padding: 64px 0 60px; }
	.tc3sv-post-hero { padding: 28px 0 52px; }
	.tc3sv-post-body { padding: 48px 0 24px; }
	.tc3sv-prose { font-size: 1.04rem; }
	.tc3sv-author { flex-direction: column; padding: 22px; }
	.tc3sv-post-cta { padding: 40px 0 64px; }
	.tc3sv-post-cta .tc3sv-offer { padding: 40px 24px; }
	.tc3sv-post-cta .tc3sv-btns { flex-direction: column; }
	.tc3sv .tc3sv-filters { flex-wrap: nowrap; overflow-x: auto; margin-right: -18px; padding-right: 18px; }
	.tc3sv .tc3sv-filters button { flex: none; }
}
@media (max-width: 720px) {
	.tc3sv-post-meta { gap: 4px 16px; }
	.tc3sv-post-meta span + span::before { display: none; }
	.tc3sv-blog-feature { display: none; }
}

/* v1.13.1: show whole featured images (they carry headline text), hide theme featured media */
.tc3sv-card-post-img { aspect-ratio: 3 / 2; }
.tc3sv-card-post-img img { object-fit: cover; object-position: center; }
.tc3sv-post-img { aspect-ratio: auto; }
.tc3sv-post-img img { height: auto; }
body.tc3sv-post :is(.fusion-post-media, .post-slideshow, .fusion-image-wrapper, [class*="featured-image"], [class*="featured-slider"]):not(.tc3sv *) { display: none !important; }
