/*
Theme Name: WildcatSEO
Theme URI: https://wildcatseo.com/
Description: Wildcat SEO child theme for Divi 5. Styles match the 2027 source design (wildcat-seo-2027.wildcatseo.chatgpt.site).
Author: Wildcat SEO
Author URI: https://wildcatseo.com/
Template: Divi
Version: 1.5.3
Requires PHP: 7.4
Text Domain: wildcatseo
*/

/* ==========================================================================
   1. Tokens + base
   ========================================================================== */
:root {
	--navy: #080c2f;
	--blue: #3549ed;
	--blue-dark: #2636ba;
	--orange: #ff8a38;
	--orange-soft: #ff9a52;
	--ink: #101632;
	--muted: #60677b;
	--line: #e3e6ef;
	--soft: #f4f6fa;
	--radius: 14px;
	--wrap: min(1240px, calc(100% - 96px));
	--head: Manrope, Arial, sans-serif;
	--body: 'DM Sans', Arial, sans-serif;
}

html { scroll-behavior: smooth; scroll-padding-top: 105px; }

body,
body #page-container,
#main-content {
	background: #fff !important;
	color: var(--ink);
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.7;
	font-weight: 400;
}

#page-container { overflow-y: visible !important; overflow-x: clip !important; padding-top: 0 !important; }
#main-content .container:before { display: none; }
#left-area, #main-content .container { width: 100%; max-width: none; padding: 0; }

#page-container h1, #page-container h2, #page-container h3,
#page-container h4, #page-container h5, #page-container h6 {
	font-family: var(--head);
	font-weight: 800;
	line-height: 1.16;
	letter-spacing: -.035em;
	color: inherit;
	padding: 0;
	margin: 0 0 22px;
}
#page-container h1 { font-size: clamp(42px, 5.7vw, 80px); }
#page-container h2 { font-size: clamp(30px, 3.2vw, 46px); }
#page-container h3 { font-size: 23px; }
#page-container h4, #page-container h5 { font-size: 19px; }

#page-container p { margin: 0 0 22px; padding: 0; color: var(--muted); line-height: 1.7; }
#page-container p:last-child { margin-bottom: 0; }
#page-container a { color: inherit; text-decoration: none; }
#page-container img { max-width: 100%; height: auto; }
#page-container ul, #page-container ol { line-height: 1.7; }
#page-container strong, #page-container b { font-weight: 700; }

a:focus-visible, button:focus-visible, summary:focus-visible, .et_pb_toggle_title:focus-visible {
	outline: 3px solid var(--orange);
	outline-offset: 5px;
}

/* ==========================================================================
   2. Divi resets inside our sections (.ws), header and footer
   ========================================================================== */
#page-container .ws,
#page-container .ws-header,
#page-container .ws-footer {
	padding: 0;
	background-color: transparent;
}
#page-container .ws.et_pb_section { padding: 0; }

#page-container .ws .et_pb_row,
#page-container .ws-footer .et_pb_row {
	width: var(--wrap);
	max-width: none;
	margin: 0 auto;
	padding: 0;
}
#page-container .ws .et_pb_column,
#page-container .ws-header .et_pb_column,
#page-container .ws-footer .et_pb_column {
	float: none;
	width: auto;
	margin: 0;
	min-width: 0;
}
#page-container .ws .et_pb_module,
#page-container .ws-header .et_pb_module,
#page-container .ws-footer .et_pb_module {
	margin-bottom: 0;
}
#page-container .ws .et_pb_text,
#page-container .ws-footer .et_pb_text { color: inherit; }
#page-container .ws .et_pb_text_inner > p:last-child,
#page-container .ws .et_pb_text_inner > ul:last-child,
#page-container .ws .et_pb_text_inner > ol:last-child { margin-bottom: 0; }
/* Headings that close a section-heading block sit flush; elsewhere they keep their 22px */
#page-container .ws .section-heading h2,
#page-container .ws .section-head h2,
#page-container .ws .closing h2 { margin-bottom: 0; }
/* wpautop leaves empty <p>s around block markup in text modules */
#page-container .ws .et_pb_text_inner p:empty,
#page-container .ws-footer .et_pb_text_inner p:empty { display: none; }
#page-container .ws .et_pb_text_inner p:has(> .tile-link),
#page-container .ws .et_pb_text_inner p:has(> .feature-line),
#page-container .ws .et_pb_text_inner p:has(> .text-link) { min-height: 0; margin: 0; }
#page-container .ws .et_pb_heading_container { padding: 0; }

/* Grid/flex rows: kill Divi's clearfix pseudo-elements so they don't take cells */
#page-container .ws .et_pb_row::before,
#page-container .ws .et_pb_row::after,
#page-container .ws-header .et_pb_row::before,
#page-container .ws-header .et_pb_row::after,
#page-container .ws-footer .et_pb_row::before,
#page-container .ws-footer .et_pb_row::after { display: none; }

#page-container .ws .et_pb_image { text-align: left; }
#page-container .ws .et_pb_image_wrap { display: block; }

/* ==========================================================================
   3. Shared typography helpers
   ========================================================================== */
#page-container .eyebrow {
	display: block;
	font-family: var(--body);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--blue);
	margin-bottom: 20px;
	line-height: 1.5;
}
#page-container .local-dot { color: var(--orange); margin-right: 7px; }
#page-container .text-link,
#page-container .card-link { font-weight: 700; color: var(--blue); display: inline-block; }
#page-container .card-link { font-size: 13px; }
#page-container .text-link:hover,
#page-container .card-link:hover { text-decoration: underline; }
#page-container .lead { font-size: 17px; color: var(--ink); }

/* ==========================================================================
   4. Buttons (Divi button module + plain .button links)
   ========================================================================== */
body #page-container .et_pb_button.w-btn,
body #page-container .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	border: 1px solid var(--blue) !important;
	background: var(--blue) !important;
	border-radius: 6px !important;
	padding: 15px 22px !important;
	font-family: var(--body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
	color: #fff !important;
	cursor: pointer;
	transition: background .2s, transform .2s;
}
body #page-container .et_pb_button.w-btn:hover,
body #page-container .button:hover {
	background: var(--blue-dark) !important;
	border-color: var(--blue-dark) !important;
	transform: translateY(-2px);
	padding: 15px 22px !important;
}
/* Divi's icon :after off by default */
body #page-container .et_pb_button.w-btn::after,
body #page-container .et_pb_button.w-btn::before { display: none !important; }

/* Arrow buttons (hero, page hero, header CTA, closing) */
body #page-container .home-hero .et_pb_button.w-btn::after,
body #page-container .page-hero .et_pb_button.w-btn::after,
body #page-container .closing .et_pb_button.w-btn::after,
body #page-container .nav-cta.et_pb_button::after {
	content: '↗' !important;
	display: inline-block !important;
	position: static !important;
	opacity: 1 !important;
	margin: 0 !important;
	font-family: var(--body) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	color: inherit !important;
	transform: none !important;
}

/* Outline / secondary buttons on dark heroes */
body #page-container .et_pb_button.w-btn.btn-outline,
body #page-container .et_pb_button.w-btn.btn-secondary {
	background: transparent !important;
	border-color: #ffffff5c !important;
	color: #fff !important;
}
body #page-container .et_pb_button.w-btn.btn-outline:hover,
body #page-container .et_pb_button.w-btn.btn-secondary:hover {
	background: #ffffff15 !important;
	border-color: #ffffff8c !important;
}
#page-container .et_pb_button_module_wrapper { display: inline-block; margin: 0 12px 12px 0 !important; vertical-align: top; }

/* ==========================================================================
   5. Header (Theme Builder)
   ========================================================================== */
#page-container .ws-header.et_pb_section {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .98) !important;
	border-bottom: 1px solid var(--line);
}
.admin-bar #page-container .ws-header.et_pb_section { top: 32px; }
@media (max-width: 782px) { .admin-bar #page-container .ws-header.et_pb_section { top: 0; } }

#page-container .ws-header .ws-header-row {
	max-width: 1440px;
	width: 100%;
	margin: 0 auto;
	padding: 16px 48px;
	min-height: 96px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}
#page-container .ws-header .w-header-nav { flex: 1 1 auto; }
#page-container .ws-header .w-header-cta { flex: 0 0 auto; }
#page-container .ws-header .et_pb_menu { background: transparent; }
#page-container .ws-header .et_pb_menu_inner_container { display: flex; align-items: center; justify-content: space-between; }
#page-container .ws-header .et_pb_menu__logo-wrap { flex: 0 0 auto; margin: 0; }
#page-container .ws-header .et_pb_menu__logo { margin: 0; padding: 0; }
#page-container .ws-header .et_pb_menu__logo img { width: 246px; height: 66px; max-height: none; object-fit: contain; object-position: left center; }
#page-container .ws-header .et_pb_menu__wrap { flex: 1 1 auto; justify-content: flex-end; margin: 0; }
#page-container .ws-header .et-menu-nav > ul { display: flex; align-items: center; gap: 29px; padding: 0; }
#page-container .ws-header .et-menu > li { padding: 0; margin: 0; }
#page-container .ws-header .et-menu > li > a {
	font-family: var(--body);
	font-size: 13px;
	font-weight: 700;
	color: var(--ink) !important;
	padding: 10px 0;
	opacity: 1 !important;
}
#page-container .ws-header .et-menu > li > a:hover,
#page-container .ws-header .et-menu > li.current-menu-item > a { color: var(--blue) !important; }
#page-container .ws-header .et-menu > li.menu-item-has-children > a { padding-right: 0; }
#page-container .ws-header .et-menu > li.menu-item-has-children > a::after {
	content: '⌄';
	font-family: var(--body);
	position: static;
	display: inline-block;
	margin-left: 7px;
	font-size: 13px;
	transform: translateY(-3px);
}

/* Services dropdown: two-column panel */
#page-container .ws-header .et-menu li ul.sub-menu {
	display: grid;
	grid-template-columns: 1fr 1fr;
	width: 510px;
	padding: 20px;
	gap: 4px;
	top: 43px;
	left: -25px;
	background: #fff;
	box-shadow: 0 15px 50px #080c2f20;
	border: 1px solid var(--line);
	border-top: 1px solid var(--line);
	border-radius: 12px;
}
/* Invisible hover bridge: keeps the dropdown open while the mouse crosses the gap below "Services" */
#page-container .ws-header .et-menu > li.menu-item-has-children { position: relative; }
#page-container .ws-header .et-menu > li.menu-item-has-children > ul.sub-menu::before {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	top: -24px;
	height: 24px;
	background: transparent;
}
#page-container .ws-header .et-menu > li.menu-item-has-children > a { padding-bottom: 20px; margin-bottom: -10px; }
#page-container .ws-header .et-menu li ul.sub-menu li { width: auto; padding: 0; }
#page-container .ws-header .et-menu li ul.sub-menu a {
	width: auto;
	padding: 10px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ink) !important;
	line-height: 1.4;
	opacity: 1 !important;
}
#page-container .ws-header .et-menu li ul.sub-menu a:hover {
	background: var(--soft);
	color: var(--blue) !important;
	opacity: 1;
}

#page-container .ws-header .nav-cta.et_pb_button {
	gap: 24px !important;
	padding: 13px 18px !important;
	border-radius: 5px !important;
	font-size: 13px !important;
	white-space: nowrap;
}
#page-container .ws-header .et_pb_button_module_wrapper { margin: 0 !important; }

/* Mobile menu (Divi switches to hamburger at 980px) */
#page-container .ws-header .mobile_menu_bar::before { color: var(--ink); }
#page-container .ws-header .et_mobile_menu {
	max-height: calc(100vh - 90px);
	max-height: calc(100dvh - 90px);
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	border-top: 1px solid var(--line);
	box-shadow: 0 15px 40px #080c2f18;
	padding: 16px 20px;
}
#page-container .ws-header .et_mobile_menu li a {
	font-family: var(--body);
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
	border-bottom: 1px solid var(--line);
	padding: 12px 4px;
}
#page-container .ws-header .et_mobile_menu li li a { font-weight: 500; padding-left: 16px; }

/* ==========================================================================
   6. Home hero
   ========================================================================== */
#page-container .ws.home-hero {
	position: relative;
	color: #fff;
	min-height: 680px;
	padding: 88px 0 72px;
	display: flex;
	align-items: center;
}
#page-container .home-hero .et_pb_row,
#page-container .home-hero .et_pb_column,
#page-container .home-hero .hero-location-wrap { position: static; }
#page-container .home-hero .hero-copy { max-width: 770px; }
#page-container .home-hero .eyebrow { color: #e3e6ff; font-size: 10px; letter-spacing: .15em; }
#page-container .home-hero h1 {
	font-size: clamp(48px, 5.1vw, 74px);
	line-height: 1.1;
	letter-spacing: -.055em;
	margin-bottom: 28px;
	color: #fff;
}
#page-container .home-hero h1 > span { color: var(--orange-soft); }
#page-container .home-hero .hero-lead p { font-size: 17px; line-height: 1.8; color: #d3d8ea; max-width: 590px; }
#page-container .home-hero .hero-lead { margin-bottom: 30px !important; }
#page-container .home-hero .et_pb_button_module_wrapper { margin: 0 12px 34px 0 !important; }
#page-container .hero-note { display: flex; align-items: center; gap: 14px; font-size: 12px; line-height: 1.5; }
#page-container .hero-note strong { display: block; color: #fff; }
#page-container .hero-note small { display: block; color: #bdc4db; font-size: 12px; }
#page-container .mini-mark {
	display: grid;
	place-items: center;
	flex: 0 0 39px;
	width: 39px;
	height: 39px;
	border: 1px solid #ffffff35;
	border-radius: 50%;
	color: var(--orange);
	font-size: 22px;
}
#page-container .hero-location {
	position: absolute;
	right: 34px;
	bottom: 28px;
	font-size: 9px;
	letter-spacing: .17em;
	color: #fff;
}

/* ==========================================================================
   7. Platforms strip
   ========================================================================== */
#page-container .ws.platforms { background: #fafbfe !important; border-bottom: 1px solid var(--line); }
#page-container .platforms-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 27px 0;
	color: #62697f;
}
#page-container .platforms-inner > span { font-size: 11px; line-height: 1.5; min-width: 195px; }
#page-container .platforms-inner > span strong { color: var(--ink); }
#page-container .platforms-inner > div { font-family: var(--head); font-size: 17px; letter-spacing: -.03em; font-weight: 700; }

/* ==========================================================================
   8. Sections, section headings
   ========================================================================== */
#page-container .ws.section { padding: 96px 0; }
#page-container .ws.section.alt,
#page-container .ws.section.soft { background: var(--soft) !important; }

#page-container .ws .section-heading,
#page-container .ws .section-head {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	align-items: end;
	gap: 70px;
	margin-bottom: 44px;
}
#page-container .ws .section-heading h2,
#page-container .ws .section-head h2 { margin-bottom: 0; }
#page-container .ws .section-heading p,
#page-container .ws .section-head p { max-width: 435px; margin-bottom: 4px; font-size: 15px; }
#page-container .ws .section-heading .text-link { margin-top: 16px; }
#page-container .ws .et_pb_row + .et_pb_row { margin-top: 0; }

/* ==========================================================================
   9. Home: service tiles
   ========================================================================== */
#page-container .ws .service-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin-bottom: 20px;
}
#page-container .ws .service-grid:last-child { margin-bottom: 0; }
#page-container .ws .service-tile {
	border: 1px solid var(--line);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
	transition: transform .25s, box-shadow .25s;
	cursor: pointer;
}
#page-container .ws .service-tile:hover { transform: translateY(-5px); box-shadow: 0 14px 40px #080c2f10; }
#page-container .ws .service-tile .et_pb_image img { width: 100%; height: 155px; object-fit: cover; display: block; }
#page-container .service-tile-copy { padding: 24px 22px; }
#page-container .tile-number { color: var(--blue); font-size: 11px; font-weight: 700; letter-spacing: .1em; display: block; margin-bottom: 14px; }
#page-container .service-tile h3 { font-size: 20px; min-height: 46px; margin-bottom: 13px; }
#page-container .service-tile p { font-size: 13px; min-height: 68px; line-height: 1.7; margin-bottom: 20px; }
#page-container .tile-link { display: flex; align-items: center; justify-content: space-between; color: var(--blue); font-weight: 700; font-size: 12px; }
#page-container .tile-link span { font-size: 20px; }

/* ==========================================================================
   10. Home: process (navy)
   ========================================================================== */
#page-container .ws.process-section { background: var(--navy) !important; color: #fff; }
#page-container .process-section .eyebrow { color: var(--orange-soft); }
#page-container .process-section h2 > span { color: #a9b5ff; }
#page-container .process-section p { color: #aeb6d1; }
#page-container .ws .process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
#page-container .process-grid .et_pb_column { border-top: 1px solid #ffffff30; padding-top: 25px; }
#page-container .process-grid h3 { font-size: 21px; margin-bottom: 14px; }
#page-container .process-grid p { font-size: 14px; margin-bottom: 0; }
#page-container .step { display: block; color: var(--orange); font-size: 12px; margin-bottom: 25px; font-weight: 700; }

/* ==========================================================================
   11. Home: split feature
   ========================================================================== */
#page-container .ws .split-feature { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; gap: 78px; }
#page-container .split-feature .et_pb_image img { width: 100%; height: 510px; object-fit: cover; border-radius: 10px; display: block; }
#page-container .split-feature p { font-size: 15px; }
#page-container .feature-line {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 20px 0;
	border-top: 1px solid var(--line);
}
#page-container .feature-line strong { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; display: block; }
#page-container .feature-line small { display: block; color: var(--muted); font-size: 13px; margin-top: 5px; }
#page-container .feature-line b { color: var(--blue); font-size: 24px; font-weight: 400; }
#page-container .feature-line:hover strong { color: var(--blue); }

/* ==========================================================================
   12. Home: industry links
   ========================================================================== */
#page-container .industry-links {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
#page-container .industry-links a {
	display: flex;
	gap: 20px;
	align-items: center;
	padding: 27px;
	font-family: var(--body);
	font-size: 18px;
	font-weight: 700;
	color: var(--ink);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: #fff;
	transition: color .2s;
}
#page-container .industry-links a:hover { color: var(--blue); }
#page-container .industry-links a > span { font-size: 10px; color: var(--muted); }
#page-container .industry-links b { margin-left: auto; font-weight: 400; color: var(--blue); }

/* ==========================================================================
   13. Home: why + FAQ toggles
   ========================================================================== */
#page-container .ws .why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
#page-container .why-grid p { max-width: 460px; font-size: 15px; }
#page-container .faq-col { padding-top: 20px; }
#page-container .faq-col h3 { font-size: 22px; margin-bottom: 30px; }

/* Divi toggles styled as the source's details/summary */
#page-container .et_pb_toggle.w-faq-item {
	border: 0;
	border-bottom: 1px solid var(--line);
	background: transparent !important;
	padding: 20px 0;
	margin: 0 !important;
}
#page-container .et_pb_toggle.w-faq-item .et_pb_toggle_title {
	font-family: var(--body);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	color: var(--ink);
	padding: 0 30px 0 0;
	margin: 0;
	line-height: 1.5;
}
#page-container .et_pb_toggle.w-faq-item .et_pb_toggle_title::before {
	content: '+' !important;
	font-family: var(--body) !important;
	font-weight: 400 !important;
	position: absolute;
	right: 0;
	left: auto;
	top: 50%;
	margin-top: -14px;
	color: var(--blue);
	font-size: 22px;
	line-height: 1;
}
#page-container .et_pb_toggle_open.w-faq-item .et_pb_toggle_title::before { content: '−' !important; display: block; }
#page-container .et_pb_toggle.w-faq-item .et_pb_toggle_content { padding-top: 16px; }
#page-container .et_pb_toggle.w-faq-item .et_pb_toggle_content p { font-size: 14px; margin: 0; }

/* ==========================================================================
   14. Closing CTA (Theme Builder footer)
   ========================================================================== */
#page-container .ws.closing { background: var(--blue) !important; padding: 65px 0; color: #fff; }
#page-container .closing .eyebrow { color: #e4e8ff; }
#page-container .closing h2 { margin: 0; font-size: clamp(34px, 4vw, 54px); color: #fff; }
#page-container .ws .closing-inner { display: flex; justify-content: space-between; align-items: center; gap: 45px; }
#page-container .closing .et_pb_button_module_wrapper { margin: 0 !important; }
body #page-container .closing .et_pb_button.w-btn {
	background: #fff !important;
	color: var(--blue) !important;
	border-color: #fff !important;
	padding: 19px 25px !important;
	white-space: nowrap;
}
body #page-container .closing .et_pb_button.w-btn:hover { background: #eef0ff !important; padding: 19px 25px !important; }
.page-id-52 #page-container .ws.closing { display: none; }

/* ==========================================================================
   15. Footer (Theme Builder)
   ========================================================================== */
#page-container .ws-footer.et_pb_section { background: #f7f8fb !important; padding: 65px 0 0; }
#page-container .ws-footer .footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 80px;
	padding-bottom: 60px;
}
#page-container .ws-footer .footer-brand { max-width: 240px; margin: 0 0 20px !important; text-align: left; }
#page-container .ws-footer .footer-brand .et_pb_image_wrap { display: block; }
#page-container .ws-footer .footer-brand img { width: 240px; height: auto; }
#page-container .ws-footer .et_pb_text { font-size: 13px; color: var(--muted); }
#page-container .ws-footer p { font-size: 13px; }
#page-container .ws-footer h3 { color: var(--ink); font-size: 15px; letter-spacing: 0; margin: 6px 0 22px; }
#page-container .ws-footer .footer-links a { display: block; margin-bottom: 10px; color: var(--muted); }
#page-container .ws-footer .footer-links a:hover { color: var(--blue); }
#page-container .ws-footer .footer-bottom { border-top: 1px solid var(--line); }
#page-container .footer-bottom-inner {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding: 22px 0;
	font-size: 10px;
	color: var(--muted);
}
#page-container .footer-bottom-inner a:hover { color: var(--blue); }

/* Footer NAP */
#page-container .ws-footer .footer-address {
	font-style: normal;
	font-size: 13px;
	line-height: 1.7;
	color: var(--muted);
	padding-left: 15px;
	text-indent: -15px;
	margin: 0 0 6px;
}
#page-container .ws-footer .footer-address .local-dot { margin-right: 7px; }
#page-container .ws-footer .footer-phone {
	display: inline-block;
	padding-left: 15px;
	font-weight: 700;
	color: var(--ink);
}
#page-container .ws-footer .footer-phone:hover { color: var(--blue); }

/* Header phone */
#page-container .ws-header .w-header-cta { display: flex; align-items: center; gap: 24px; }
#page-container .ws-header .header-phone { margin: 0 !important; }
#page-container .nav-phone {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--body);
	font-size: 13px;
	font-weight: 700;
	color: var(--ink);
	white-space: nowrap;
}
#page-container .nav-phone:hover { color: var(--blue); }
#page-container .nav-phone-icon { color: var(--blue); flex: 0 0 auto; }

/* Closing band phone line */
#page-container .ws.closing .closing-cta { text-align: right; }
#page-container .ws.closing .closing-phone { margin-top: 14px !important; }
#page-container .ws.closing .closing-phone p { color: #e4e8ff; font-size: 14px; margin: 0; }
#page-container .ws.closing .closing-phone a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Contact page details */
#page-container .contact-details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 32px;
	padding-top: 28px;
	border-top: 1px solid var(--line);
}
#page-container .contact-detail .eyebrow { margin-bottom: 8px; }
#page-container .contact-detail-value {
	display: block;
	font-family: var(--head);
	font-style: normal;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.02em;
	line-height: 1.45;
	color: var(--ink);
}
#page-container a.contact-detail-value:hover { color: var(--blue); }

/* 404 page (Theme Builder body layout "404 Page Body") */
#page-container .ws.hero-404 .eyebrow { font-size: 12px; letter-spacing: .28em; color: #fff; }
#page-container .ws.hero-404 .local-dot { margin-right: 14px; }
#page-container .ws.hero-404 h1 { font-size: clamp(52px, 6.4vw, 92px); line-height: 1.04; }
#page-container .ws.next-steps { padding: 64px 0; background: #fff !important; }
#page-container .ws .next-step-row { display: grid; grid-template-columns: .9fr 1.6fr; gap: 48px; align-items: center; }
#page-container .next-steps h2 { margin: 0; }
#page-container .next-links { display: grid; grid-template-columns: repeat(3, 1fr); }
#page-container .next-links a { display: block; padding: 0 24px; border-left: 1px solid var(--line); }
@media (max-width: 1150px) and (min-width: 541px) {
	#page-container .next-links strong { white-space: normal; }
}
#page-container .next-links a > span { display: block; font-size: 12px; color: var(--muted); margin-bottom: 14px; }
#page-container .next-links strong {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	font-family: var(--head);
	font-size: 18px;
	font-weight: 800;
	letter-spacing: -.02em;
	white-space: nowrap;
	color: var(--ink);
	padding-bottom: 20px;
	border-bottom: 2px solid var(--line);
	transition: color .2s, border-color .2s;
}
#page-container .next-links b { font-weight: 400; font-size: 20px; }
#page-container .next-links a:hover strong { color: var(--blue); border-color: var(--blue); }
@media (max-width: 980px) {
	#page-container .ws .next-step-row { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 540px) {
	#page-container .next-links { grid-template-columns: 1fr; gap: 22px; }
	#page-container .next-links a { padding: 0; border-left: 0; }
	#page-container .ws.hero-404 h1 { font-size: 48px; }
	#page-container .ws.hero-404 .eyebrow { font-size: 10px; letter-spacing: .2em; }
}

/* Divi's default footer bar and old header, if they ever render */
#main-footer, #top-header { display: none; }

/* ==========================================================================
   16. Inner page hero (page-hero sections)
   ========================================================================== */
#page-container .ws.page-hero { color: #fff; padding: 28px 0 72px; }
#page-container .page-hero .breadcrumbs { font-size: 11px; color: #c0c7e5; margin: 0 0 52px; }
#page-container .page-hero .breadcrumbs a { color: #fff; }
#page-container .page-hero .eyebrow { color: #ffa15f; }
#page-container .page-hero h1 { max-width: 850px; font-size: clamp(40px, 5vw, 68px); color: #fff; }
#page-container .page-hero p { max-width: 650px; color: #d6daeb; font-size: 18px; margin-bottom: 28px; }
#page-container .page-hero .et_pb_text { margin-bottom: 0 !important; }
#page-container .ws.page-hero .et_pb_text_inner > p:last-child { margin-bottom: 28px; }
body #page-container .page-hero .et_pb_button.w-btn { padding: 14px 22px !important; }

/* ==========================================================================
   17. Inner page layouts: content grids, sidebars, cards
   ========================================================================== */
#page-container .ws .content-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 70px; }
#page-container .ws .depth-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 70px; }
#page-container .ws .contact-layout { display: grid; grid-template-columns: 2fr 3fr; gap: 90px; align-items: start; }
#page-container .ws .depth-footer { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--line); }
#page-container .ws .depth-footer.et_pb_column { border: 0; margin: 0; padding: 0; }

#page-container .w-article p,
#page-container .w-div p { font-size: 15px; line-height: 1.85; }
#page-container .w-article .lead,
#page-container .w-div .lead { font-size: 17px; line-height: 1.8; }
#page-container .w-article h3,
#page-container .w-div h3 { margin-top: 26px; }

#page-container .w-aside.sidebar,
#page-container .ws .w-aside {
	background: var(--soft);
	padding: 32px;
	border-radius: 12px;
	align-self: start;
	border-top: 3px solid var(--blue);
}
#page-container .ws.alt .w-aside.sidebar,
#page-container .ws.alt .w-aside { background: #fff; }
#page-container .w-aside p { font-size: 14px; }
#page-container .w-aside h3 { font-size: 21px; }

/* Card grids (wg-2/3/4) */
#page-container .ws .wg {
	display: grid;
	gap: 24px;
	margin-bottom: 24px;
}
#page-container .ws .wg:last-child { margin-bottom: 0; }
#page-container .ws .wg-2 { grid-template-columns: repeat(2, 1fr); }
#page-container .ws .wg-3 { grid-template-columns: repeat(3, 1fr); }
#page-container .ws .wg-4 { grid-template-columns: repeat(4, 1fr); }

#page-container .ws .card,
#page-container .ws .feature {
	padding: 30px;
	background: #fff none !important;
	border: 1px solid var(--line);
	border-radius: 10px;
	min-width: 0;
	color: var(--ink);
	transition: border-color .2s, transform .2s, box-shadow .2s;
}
/* The source design uses plain white cards: drop Divi's photo backgrounds */
#page-container .ws .card .et_parallax_bg_wrap,
#page-container .ws .card > .et_pb_background_mask,
#page-container .ws .card > .et_pb_background_pattern { display: none; }
#page-container .ws .card.et_clickable:hover,
#page-container .ws .industry-card:hover { border-color: var(--blue); transform: translateY(-3px); box-shadow: 0 14px 40px #080c2f10; }
#page-container .ws .card h3 { font-size: 21px; line-height: 1.35; color: var(--ink); }
#page-container .ws .card p { font-size: 14px; color: var(--muted); }
#page-container .ws .card .icon { color: var(--blue); font-size: 18px; margin-bottom: 22px; font-weight: 700; line-height: 1.2; }
#page-container .industry-card { scroll-margin-top: 120px; }

/* Lists, tags, blocks */
#page-container .check-list { list-style: none; padding: 0 !important; margin: 24px 0; }
#page-container .check-list li {
	padding: 11px 0 11px 28px;
	position: relative;
	font-size: 14px;
	color: var(--ink);
	border-bottom: 1px solid var(--line);
	list-style: none;
}
#page-container .check-list li::before { content: '✓'; position: absolute; left: 0; color: var(--blue); font-weight: 700; }
#page-container .check-list.columns { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
#page-container .ws .et_pb_text_inner > .check-list:last-child { margin-bottom: 24px; }
#page-container .ws .et_pb_column > .et_pb_module:last-child .et_pb_text_inner > .check-list:last-child { margin-bottom: 0; }

#page-container .tag-grid { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
#page-container .tag { background: #edf0ff; color: var(--blue); border-radius: 5px; padding: 12px 18px; font-size: 13px; line-height: 1.4; }
#page-container a.tag:hover { background: var(--blue); color: #fff; }

#page-container .ws .scope-block .scope-block,
#page-container .ws .et_pb_column.scope-block {
	border: 1px solid var(--line);
	padding: 28px;
	border-radius: 10px;
	background: #fff;
}
#page-container .ws .et_pb_row.scope-block { margin-top: 24px; }
#page-container .scope-block h3 { font-size: 21px; }

#page-container .ws .et_pb_row.example { margin-top: 35px; }
#page-container .ws .et_pb_column.example {
	background: var(--navy) !important;
	border-radius: 12px;
	padding: 40px;
	color: #fff;
}
#page-container .example p { color: #d8def5; }
#page-container .example h3 { color: #fff; }
#page-container .example .eyebrow { color: var(--orange-soft); }

/* Section FAQ (details/summary inside text modules) */
#page-container .faq details { border-bottom: 1px solid var(--line); padding: 20px 0; }
#page-container .faq details summary {
	cursor: pointer;
	list-style: none;
	font-weight: 700;
	font-size: 15px;
	padding-right: 30px;
	position: relative;
	color: var(--ink);
}
#page-container .faq details summary::-webkit-details-marker { display: none; }
#page-container .faq details summary::after { content: '+'; position: absolute; right: 0; top: -2px; color: var(--blue); font-size: 22px; line-height: 1; }
#page-container .faq details[open] summary::after { content: '−'; }
#page-container .faq details p { font-size: 14px; margin: 16px 0 0; }
#page-container .ws .faq.et_pb_column { max-width: 860px; }

/* Images placed in content */
#page-container .ws .w-img img,
#page-container .ws .visual-story img { border-radius: 10px; width: 100%; object-fit: cover; }

/* ==========================================================================
   18. Forms (Divi contact form on /contact/)
   ========================================================================== */
#page-container .ws .w-form.et_pb_column {
	background: var(--soft);
	padding: 36px;
	border-radius: 12px;
}
#page-container .ws.alt .w-form.et_pb_column { background: #fff; }
#page-container .et_pb_contact_form_container .et_pb_contact_main_title { display: none; }
#page-container .et_pb_contact p.et_pb_contact_field { padding: 0 0 18px 0 !important; margin: 0 !important; width: 100% !important; }
#page-container .et_pb_contact_field label,
#page-container .et_pb_contact_field .et_pb_contact_form_label { display: block; font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
#page-container .et_pb_contact .input,
#page-container .et_pb_contact select,
#page-container .et_pb_contact textarea {
	width: 100%;
	border: 1px solid #cdd2e1 !important;
	padding: 12px 14px !important;
	color: var(--ink) !important;
	background: #fff !important;
	border-radius: 5px;
	font-family: var(--body);
	font-size: 14px !important;
}
#page-container .et_pb_contact .input:focus,
#page-container .et_pb_contact textarea:focus,
#page-container .et_pb_contact select:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
#page-container .et_pb_contact_submit.et_pb_button {
	background: var(--blue) !important;
	border: 1px solid var(--blue) !important;
	border-radius: 6px !important;
	color: #fff !important;
	font-family: var(--body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	padding: 15px 22px !important;
	margin-left: 0 !important;
}
#page-container .et_pb_contact_submit.et_pb_button::after { display: none !important; }
#page-container .et_contact_bottom_container {
	float: none;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 6px;
}
#page-container .et_pb_contact_right { float: none; margin: 0; }
#page-container .et_pb_contact_right p { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; font-size: 14px; color: var(--muted); }
#page-container .et_pb_contact_right .et_pb_contact_captcha { width: 70px !important; margin: 0 !important; }
#page-container .et_pb_contact_form .et_pb_contact_submit { margin: 0 !important; }
#page-container .form-note { font-size: 11px !important; margin: 18px 0 0 !important; }

/* ==========================================================================
   19. Responsive — mirrors the source breakpoints (1500 / 1150 / 980 / 850 / 540)
   ========================================================================== */
@media (min-width: 1500px) {
	#page-container .ws.home-hero { min-height: 740px; padding-top: 115px; }
	#page-container .home-hero .hero-copy { max-width: 820px; }
}

@media (max-width: 1150px) {
	:root { --wrap: calc(100% - 64px); }
	#page-container .ws-header .ws-header-row { padding-inline: 28px; gap: 20px; }
	#page-container .ws-header .et_pb_menu__logo img { width: 205px; }
	#page-container .ws-header .et-menu-nav > ul { gap: 19px; }
	#page-container .ws-header .et-menu > li > a { font-size: 12px; }
	#page-container .ws-header .nav-cta.et_pb_button { padding: 12px !important; }
	#page-container .ws-header .w-header-cta { gap: 16px; }
	#page-container .nav-phone-num { display: none; }
	#page-container .nav-phone {
		width: 40px; height: 40px; justify-content: center;
		border: 1px solid var(--line); border-radius: 5px;
	}
	#page-container .ws .service-grid { grid-template-columns: repeat(2, 1fr); }
	#page-container .ws .service-tile .et_pb_image img { height: 220px; }
	#page-container .service-tile h3, #page-container .service-tile p { min-height: 0; }
	#page-container .ws .section-heading, #page-container .ws .section-head { gap: 35px; }
	#page-container .ws .why-grid { gap: 50px; }
	#page-container .ws .split-feature { gap: 40px; }
	#page-container .split-feature .et_pb_image img { height: 470px; }
	#page-container .ws .content-grid, #page-container .ws .depth-grid { gap: 35px; }
	#page-container .platforms-inner > div { font-size: 14px; }
}

/* Divi tablet: columns stack, row width 80% — undo inside our layouts */
@media (max-width: 980px) {
	#page-container .ws .et_pb_row,
	#page-container .ws-footer .et_pb_row { width: var(--wrap) !important; max-width: none !important; }
	#page-container .ws .et_pb_column,
	#page-container .ws-footer .et_pb_column { margin-bottom: 0 !important; }
	#page-container .ws-header .ws-header-row { min-height: 80px; padding: 10px 24px; }
	/* Phones/tablets: hide the CTA button, keep a tap-to-call icon beside the menu toggle */
	#page-container .ws-header .ws-header-row { position: relative; }
	#page-container .ws-header .w-header-cta {
		position: absolute;
		right: 84px;
		top: 50%;
		transform: translateY(-50%);
		width: auto !important;
	}
	#page-container .ws-header .w-header-cta .et_pb_button_module_wrapper { display: none; }
	#page-container .ws-header .et_pb_menu__logo img { width: 205px; height: 57px; }
	#page-container .ws-header .et_pb_menu__wrap { justify-content: flex-end; }
	#page-container .ws-header .et_mobile_nav_menu { margin: 0; }
	#page-container .ws-header .mobile_nav .mobile_menu_bar {
		border: 1px solid var(--line);
		border-radius: 5px;
		padding: 4px 6px;
	}
	/* Smaller hero file on tablet/phone (matches the preload in functions.php) */
	#page-container .ws.home-hero:not(.hero-404) {
		background-image: linear-gradient(90deg, rgba(8,12,47,.96) 0%, rgba(8,12,47,.9) 35%, rgba(8,12,47,.44) 62%, rgba(8,12,47,.07) 100%), url(/wp-content/uploads/2026/10/wildcat-seo-home-hero-1536x864.jpg) !important;
	}
}

@media (max-width: 850px) {
	#page-container .ws.home-hero { min-height: 620px; padding: 70px 0; background-position: 65% center !important; }
	#page-container .home-hero h1 { font-size: 58px; }
	#page-container .home-hero .hero-copy { max-width: 600px; }
	#page-container .platforms-inner { flex-wrap: wrap; justify-content: center; gap: 18px 30px; }
	#page-container .platforms-inner > span { width: 100%; text-align: center; }
	#page-container .platforms-inner > span br { display: none; }
	#page-container .platforms-inner > span strong::before { content: ' '; }
	#page-container .ws.section { padding: 68px 0; }
	#page-container .ws .section-heading, #page-container .ws .section-head { grid-template-columns: 1fr; gap: 24px; }
	#page-container .ws .section-heading p, #page-container .ws .section-head p { max-width: 600px; }
	#page-container .ws .process-grid { grid-template-columns: 1fr 1fr; gap: 35px; }
	#page-container .ws .split-feature { grid-template-columns: 1fr; }
	#page-container .split-feature .et_pb_image img { height: 390px; }
	#page-container .industry-links { grid-template-columns: 1fr 1fr; }
	#page-container .ws .why-grid { grid-template-columns: 1fr; gap: 35px; }
	#page-container .ws-footer .footer-grid { gap: 35px; grid-template-columns: 1.5fr 1fr 1fr; }
	#page-container .ws .content-grid,
	#page-container .ws .depth-grid,
	#page-container .ws .contact-layout { grid-template-columns: 1fr; gap: 35px; }
	#page-container .ws .wg-3, #page-container .ws .wg-4 { grid-template-columns: repeat(2, 1fr); }
	#page-container .page-hero h1 { font-size: 50px; }
	#page-container .ws .closing-inner { gap: 30px; }
	#page-container .footer-bottom-inner { flex-wrap: wrap; }
}

@media (max-width: 540px) {
	:root { --wrap: calc(100% - 40px); }
	#page-container h2 { font-size: 32px; }
	#page-container .eyebrow { font-size: 10px; letter-spacing: .13em; }
	#page-container .ws-header .ws-header-row { padding-inline: 20px; }
	#page-container .ws-header .et_pb_menu__logo img { width: 177px; height: 52px; }
	#page-container .ws.home-hero { min-height: 650px; padding: 58px 0; }
	#page-container .ws.home-hero:not(.hero-404) {
		background-image: linear-gradient(90deg, #080c2ff5 0%, #080c2fdc 80%, #080c2fbd), url(/wp-content/uploads/2026/10/wildcat-seo-home-hero-1536x864.jpg) !important;
	}
	#page-container .home-hero h1 { font-size: 46px; line-height: 1.12; }
	#page-container .home-hero .eyebrow { font-size: 9px; letter-spacing: .11em; }
	#page-container .home-hero .hero-lead p { font-size: 15px; }
	#page-container .desktop { display: none; }
	#page-container .home-hero .et_pb_button_module_wrapper { display: block; max-width: 310px; margin: 0 0 12px !important; }
	#page-container .home-hero .et_pb_button_module_wrapper .et_pb_button { width: 100%; justify-content: space-between; gap: 20px; }
	#page-container .home-hero .hero-note { margin-top: 22px; }
	#page-container .hero-location { display: none; }
	#page-container .platforms-inner { gap: 15px 23px; padding: 23px 0; }
	#page-container .platforms-inner > div { font-size: 12px; }
	#page-container .ws.section { padding: 55px 0; }
	#page-container .ws .section-heading h2 br { display: none; }
	#page-container .ws .service-grid { gap: 14px; grid-template-columns: 1fr; margin-bottom: 14px; }
	#page-container .ws .service-tile { display: grid; grid-template-columns: 110px 1fr; }
	#page-container .ws .service-tile .et_pb_image,
	#page-container .ws .service-tile .et_pb_image_wrap { height: 100%; }
	#page-container .ws .service-tile .et_pb_image img { height: 100%; min-height: 218px; }
	#page-container .service-tile-copy { padding: 21px 18px; }
	#page-container .service-tile p { font-size: 12px; margin-bottom: 15px; }
	#page-container .tile-number { margin-bottom: 10px; }
	#page-container .tile-link { font-size: 11px; }
	#page-container .ws .process-grid { grid-template-columns: 1fr 1fr; gap: 25px; }
	#page-container .process-grid h3 { font-size: 18px; }
	#page-container .process-grid p { font-size: 12px; }
	#page-container .step { margin-bottom: 15px; }
	#page-container .split-feature .et_pb_image img { height: 290px; }
	#page-container .industry-links a { padding: 20px 14px; font-size: 14px; gap: 10px; }
	#page-container .industry-links a > span { font-size: 9px; }
	#page-container .industry-links b { font-size: 18px; }
	#page-container .ws .closing-inner { align-items: flex-start; flex-direction: column; }
	#page-container .ws.closing .closing-cta { text-align: left; }
	#page-container .ws-header .w-header-cta { right: 76px; }
	#page-container .contact-details { grid-template-columns: 1fr; gap: 18px; }
	#page-container .ws.closing { padding: 50px 0; }
	#page-container .ws-footer .footer-grid { grid-template-columns: 1fr 1fr; gap: 35px; padding-bottom: 35px; }
	#page-container .ws-footer .footer-grid > .et_pb_column:first-child { grid-column: 1 / -1; }
	#page-container .footer-bottom-inner { flex-direction: column; gap: 8px; }
	#page-container .ws.page-hero { padding-bottom: 50px; }
	#page-container .page-hero .breadcrumbs { margin-bottom: 35px; }
	#page-container .page-hero h1 { font-size: 40px; overflow-wrap: anywhere; }
	#page-container .page-hero p { font-size: 16px; }
	#page-container .ws .wg-2, #page-container .ws .wg-3, #page-container .ws .wg-4,
	#page-container .check-list.columns { grid-template-columns: 1fr; }
	#page-container .ws .card { padding: 25px; }
	#page-container .ws .section-head h2 { font-size: 30px; }
	#page-container .ws .w-form.et_pb_column,
	#page-container .w-aside.sidebar,
	#page-container .ws .w-aside { padding: 25px; }
	#page-container .ws .et_pb_column.example { padding: 25px; }
	#page-container .ws-header .et-menu li ul.sub-menu { grid-template-columns: 1fr; }
}

/* ==========================================================================
   20. Blog: single post (Theme Builder "Blog Post Body")
   ========================================================================== */
#page-container .ws.post-hero { padding: 28px 0 80px; background-position: center !important; }
#page-container .post-hero .et_pb_post_title { padding: 0; margin: 0; background: none !important; }
#page-container .post-hero .et_pb_title_container { max-width: 900px; }
#page-container .post-hero .et_pb_post_title h1.entry-title {
	font-size: clamp(36px, 4.4vw, 60px);
	line-height: 1.1;
	color: #fff !important;
	margin-bottom: 22px;
	max-width: 900px;
}
#page-container .post-hero .et_pb_title_meta_container {
	font-family: var(--body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #ffa15f !important;
	padding: 0;
}
#page-container .post-hero .et_pb_title_meta_container a { color: #ffa15f !important; }
#page-container .post-hero .et_pb_title_meta_container a:hover { color: #fff !important; }

#page-container .ws .post-grid-row { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }
#page-container .post-body { max-width: 760px; color: var(--ink); }
#page-container .post-body p,
#page-container .post-body li { font-size: 17px; line-height: 1.85; color: #3d4459; }
#page-container .post-body > p:first-child { font-size: 19px; color: var(--ink); }
#page-container .post-body h2 {
	font-size: clamp(26px, 2.4vw, 34px);
	margin: 52px 0 18px;
	color: var(--ink);
}
#page-container .post-body h3 { font-size: 22px; margin: 36px 0 14px; color: var(--ink); }
#page-container .post-body h4 { font-size: 18px; margin: 28px 0 12px; color: var(--ink); }
#page-container .post-body > h2:first-child { margin-top: 0; }
#page-container .post-body a:not(.post-cta-link) {
	color: var(--blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
#page-container .post-body a:not(.post-cta-link):hover { color: var(--blue-dark); }
#page-container .post-body strong { color: var(--ink); }
#page-container .post-body ul,
#page-container .post-body ol { margin: 0 0 26px; padding-left: 24px; }
#page-container .post-body ul li { list-style: none; position: relative; padding-left: 4px; margin-bottom: 10px; }
#page-container .post-body ul li::before {
	content: ''; position: absolute; left: -18px; top: .78em;
	width: 7px; height: 7px; border-radius: 2px; background: var(--orange);
}
#page-container .post-body ol li { list-style: decimal; margin-bottom: 10px; padding-left: 6px; }
#page-container .post-body ol li::marker { color: var(--blue); font-weight: 800; font-family: var(--head); }

#page-container .post-body .step-para {
	border-left: 3px solid var(--blue);
	background: var(--soft);
	border-radius: 0 10px 10px 0;
	padding: 20px 24px;
	margin-bottom: 16px;
}
#page-container .post-body .step-para strong { display: block; font-family: var(--head); font-size: 19px; letter-spacing: -.02em; margin-bottom: 6px; }

#page-container .post-body .post-figure { margin: 40px 0; }
#page-container .post-body .post-figure img { display: block; width: 100%; border-radius: 12px; }
#page-container .post-body .post-figure figcaption { font-size: 13px; line-height: 1.6; color: var(--muted); margin-top: 12px; padding-left: 14px; border-left: 2px solid var(--orange); }

#page-container .post-body .post-callout {
	background: var(--navy);
	color: #fff;
	border-radius: 12px;
	padding: 30px 32px;
	margin: 36px 0;
}
#page-container .post-body .post-callout p,
#page-container .post-body .post-callout li { color: #d8def5; font-size: 16px; }
#page-container .post-body .post-callout strong,
#page-container .post-body .post-callout h3 { color: #fff; }
#page-container .post-body .post-callout a:not(.post-cta-link) { color: #a9b5ff; }

#page-container .post-body .post-table { overflow-x: auto; margin: 32px 0; border: 1px solid var(--line); border-radius: 12px; }
#page-container .post-body .post-table table { width: 100%; border-collapse: collapse; border: 0; margin: 0; font-size: 15px; }
#page-container .post-body .post-table th,
#page-container .post-body .post-table td { padding: 14px 18px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--line); line-height: 1.6; color: #3d4459; }
#page-container .post-body .post-table th,
#page-container .post-body .post-table tr:first-child td { background: var(--soft); color: var(--ink); font-weight: 700; font-family: var(--head); }
#page-container .post-body .post-table tr:last-child td { border-bottom: 0; }
#page-container .post-body .post-table p { margin: 0; font-size: 15px; }

#page-container .post-body .post-related {
	margin: 52px 0 0;
	padding: 30px 32px;
	border: 1px solid var(--line);
	border-top: 3px solid var(--orange);
	border-radius: 12px;
}
#page-container .post-body .post-related h2 { font-size: 22px; margin: 0 0 16px; }
#page-container .post-body .post-related ul { margin: 0; padding: 0; }
#page-container .post-body .post-related li { padding: 10px 0 10px 26px; margin: 0; border-bottom: 1px solid var(--line); font-size: 15px; }
#page-container .post-body .post-related li:last-child { border-bottom: 0; }
#page-container .post-body .post-related li::before { content: '↗'; background: none; width: auto; height: auto; left: 0; top: 10px; color: var(--blue); font-weight: 700; }
#page-container .post-body .post-related a { text-decoration: none; font-weight: 700; }

#page-container .post-body a.post-cta-link {
	display: inline-flex; align-items: center; gap: 14px;
	background: var(--blue); color: #fff;
	border-radius: 6px; padding: 13px 20px; margin-top: 6px;
	font-size: 15px; text-decoration: none;
	transition: background .2s, transform .2s;
}
#page-container .post-body a.post-cta-link strong { color: #fff; }
#page-container .post-body a.post-cta-link::after { content: '↗'; font-size: 18px; line-height: 1; }
#page-container .post-body a.post-cta-link:hover { background: var(--blue-dark); transform: translateY(-2px); }

/* Sticky sidebar */
#page-container .w-aside.post-sidebar { position: sticky; top: 120px; }
#page-container .post-sidebar .et_pb_button_module_wrapper { display: block; margin: 6px 0 18px !important; }
body #page-container .post-sidebar .et_pb_button.w-btn { width: 100%; }
#page-container .post-sidebar .sidebar-phone { font-size: 14px; margin-bottom: 26px; }
#page-container .post-sidebar .sidebar-phone a { color: var(--blue); font-weight: 700; }
#page-container .post-sidebar .sidebar-links { border-top: 1px solid var(--line); padding-top: 22px; }
#page-container .post-sidebar .sidebar-links .eyebrow { margin-bottom: 10px; }
#page-container .post-sidebar .sidebar-links a {
	display: flex; justify-content: space-between; align-items: center;
	padding: 10px 0; border-bottom: 1px solid var(--line);
	font-size: 14px; font-weight: 700; color: var(--ink);
}
#page-container .post-sidebar .sidebar-links a::after { content: '→'; color: var(--blue); }
#page-container .post-sidebar .sidebar-links a:last-child { border-bottom: 0; }
#page-container .post-sidebar .sidebar-links a:hover { color: var(--blue); }

/* ==========================================================================
   21. Blog cards (Divi blog module, grid) + archive
   ========================================================================== */
#page-container .post-cards.et_pb_blog_grid_wrapper,
#page-container .post-cards .et_pb_blog_grid { padding: 0; margin: 0; background: none; }
/* Salvattore deals posts into columns (1,4,7 | 2,5,8 | 3,6,9) so rows read left to right */
#page-container .post-cards .et_pb_salvattore_content {
	display: flex !important;
	align-items: flex-start;
	gap: 24px;
}
#page-container .post-cards .et_pb_salvattore_content .column {
	flex: 1 1 0;
	min-width: 0;
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
#page-container .post-cards .et_pb_salvattore_content::before,
#page-container .post-cards .et_pb_salvattore_content::after { display: none; }
#page-container .post-cards article.et_pb_post {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 10px;
	overflow: hidden;
	padding: 0 0 26px;
	margin: 0 !important;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
#page-container .post-cards article.et_pb_post:hover { transform: translateY(-5px); box-shadow: 0 14px 40px #080c2f10; border-color: var(--blue); }
#page-container .post-cards .et_pb_image_container { order: 0; margin: 0 0 22px !important; }
#page-container .post-cards .et_pb_image_container a { display: block; }
#page-container .post-cards .et_pb_image_container img { width: 100%; height: 200px; object-fit: cover; display: block; border-radius: 0; }
#page-container .post-cards .et_overlay { display: none; }
#page-container .post-cards .entry-title {
	font-size: 20px !important;
	line-height: 1.3 !important;
	padding: 0 24px !important;
	margin: 0 0 10px !important;
	order: 2;
}
#page-container .post-cards .entry-title a { color: var(--ink); }
#page-container .post-cards article:hover .entry-title a { color: var(--blue); }
#page-container .post-cards .post-meta {
	order: 1;
	padding: 0 24px !important;
	margin: 0 0 12px !important;
	font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
	color: var(--blue);
}
#page-container .post-cards .post-meta a { color: var(--blue); }
#page-container .post-cards .post-content { order: 3; padding: 0 24px; }
#page-container .post-cards .post-content p { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0; }
#page-container .post-cards .more-link { display: none; }

#page-container .post-cards .pagination {
	display: flex; justify-content: space-between; gap: 16px;
	margin-top: 40px; padding: 0;
}
#page-container .post-cards .pagination::before,
#page-container .post-cards .pagination::after { display: none; }
#page-container .post-cards .pagination a {
	display: inline-flex; align-items: center;
	border: 1px solid var(--blue); border-radius: 6px;
	padding: 12px 20px; font-size: 14px; font-weight: 700; color: var(--blue);
	transition: background .2s, color .2s;
}
#page-container .post-cards .pagination a:hover { background: var(--blue); color: #fff; }
#page-container .post-cards .pagination .alignleft,
#page-container .post-cards .pagination .alignright { float: none; margin: 0; }
#page-container .post-cards .pagination .alignright { margin-left: auto; }

#page-container .blog-filter { margin-bottom: 40px !important; }
#page-container .blog-filter .eyebrow { margin-bottom: 14px; }
#page-container .blog-filter .tag-grid { gap: 10px; margin-bottom: 0; }
#page-container .tag.tag-active { background: var(--blue); color: #fff; }

/* ==========================================================================
   22. Blog page (/blog/): intro, post list, sidebar, numbered pagination
   ========================================================================== */
#page-container .ws.section.blog-intro { padding: 72px 0 0; }
#page-container .blog-intro-text { max-width: 760px; }
#page-container .blog-intro-text h2 { margin-bottom: 16px; }
#page-container .blog-intro-text p { font-size: 17px; }
#page-container .ws.section.blog-list-section { padding-top: 48px; }
#page-container .ws .blog-grid-row { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); }

/* Post list: horizontal cards, image left */
#page-container .post-list.et_pb_posts { margin: 0; }
#page-container .post-list article.et_pb_post {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	grid-template-rows: auto auto 1fr;
	column-gap: 28px;
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 10px;
	overflow: hidden;
	padding: 0 28px 0 0;
	margin: 0 0 22px !important;
	transition: transform .25s, box-shadow .25s, border-color .25s;
}
#page-container .post-list article.et_pb_post:hover { transform: translateY(-3px); box-shadow: 0 14px 40px #080c2f10; border-color: var(--blue); }
#page-container .post-list .entry-featured-image-url { grid-column: 1; grid-row: 1 / 4; margin: 0 !important; display: block; height: 100%; }
#page-container .post-list .entry-featured-image-url img { width: 100%; height: 100%; min-height: 200px; object-fit: cover; display: block; }
#page-container .post-list .et_overlay { display: none; }
#page-container .post-list .post-meta {
	grid-column: 2; grid-row: 1;
	margin: 26px 0 8px !important; padding: 0 !important;
	font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--blue);
}
#page-container .post-list .post-meta a { color: var(--blue); }
#page-container .post-list .entry-title { grid-column: 2; grid-row: 2; font-size: 22px !important; line-height: 1.3 !important; margin: 0 0 10px !important; padding: 0 !important; }
#page-container .post-list .entry-title a { color: var(--ink); }
#page-container .post-list article:hover .entry-title a { color: var(--blue); }
#page-container .post-list .post-content { grid-column: 2; grid-row: 3; padding-bottom: 24px; }
#page-container .post-list .post-content p { font-size: 14px; line-height: 1.7; color: var(--muted); margin: 0 0 14px; }
#page-container .post-list .more-link {
	display: inline-block; font-size: 0 !important; color: var(--blue); font-weight: 700;
}
#page-container .post-list .more-link::after { content: 'Read full article →'; font-size: 13px; }
#page-container .post-list .more-link:hover { text-decoration: underline; }

/* Sidebar */
#page-container .w-aside.blog-sidebar { position: sticky; top: 120px; }
#page-container .blog-sidebar .blog-side-block h3 { font-size: 17px; margin-bottom: 12px; }
#page-container .blog-sidebar .blog-side-block { margin-bottom: 0 !important; }
#page-container .blog-sidebar .blog-side-block + .blog-side-block { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
#page-container .blog-sidebar .blog-search { margin-bottom: 28px !important; }
#page-container .blog-search form { position: relative; }
#page-container .blog-search input.et_pb_s {
	width: 100%; height: 46px; padding: 0 92px 0 14px !important;
	border: 1px solid var(--line) !important; border-radius: 6px; background: #fff !important;
	font-family: var(--body); font-size: 14px; color: var(--ink);
}
#page-container .blog-search input.et_pb_searchsubmit {
	position: absolute; right: 4px; top: 4px; height: 38px; padding: 0 14px;
	background: var(--blue) !important; color: #fff !important; border: 0 !important; border-radius: 5px;
	font-family: var(--body); font-size: 13px; font-weight: 700; cursor: pointer;
}
#page-container .blog-search.et_pb_search { border: 0 !important; background: none !important; }
#page-container .blog-cat-list { list-style: none; margin: 0 0 28px; padding: 0 !important; }
#page-container .blog-cat-list li { list-style: none; border-bottom: 1px solid var(--line); }
#page-container .blog-cat-list li:last-child { border-bottom: 0; }
#page-container .blog-cat-list a { display: flex; justify-content: space-between; padding: 9px 0; font-size: 14px; font-weight: 700; color: var(--ink); }
#page-container .blog-cat-list a:hover { color: var(--blue); }
#page-container .blog-cat-list a span { color: var(--muted); font-weight: 500; font-size: 12px; background: #fff; border-radius: 20px; padding: 1px 9px; }
#page-container .blog-sidebar .tag-grid { gap: 8px; }
#page-container .blog-sidebar .tag { padding: 8px 12px; font-size: 12px; }

/* Numbered pagination (blog page + archives) */
#page-container .wildcat-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
#page-container .wildcat-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 42px; height: 42px; padding: 0 14px;
	border: 1px solid var(--line); border-radius: 6px;
	font-size: 14px; font-weight: 700; color: var(--ink); background: #fff;
	transition: background .2s, color .2s, border-color .2s;
}
#page-container .wildcat-pagination a.page-numbers:hover { border-color: var(--blue); color: var(--blue); }
#page-container .wildcat-pagination .page-numbers.current { background: var(--blue); border-color: var(--blue); color: #fff; }
#page-container .wildcat-pagination .page-numbers.dots { border: 0; min-width: 0; padding: 0 4px; }

#page-container .archive-title h1 { max-width: 850px; margin-bottom: 18px; }
#page-container .ws.archive-hero h1 { margin-bottom: 18px; }
#page-container .ws.archive-hero .et_pb_heading { margin-bottom: 0; }

/* Blog responsive */
@media (max-width: 1150px) {
	#page-container .ws .post-grid-row { grid-template-columns: minmax(0, 1fr) 290px; }
}

@media (max-width: 850px) {
	#page-container .ws .post-grid-row { grid-template-columns: 1fr; }
	#page-container .w-aside.post-sidebar,
	#page-container .w-aside.blog-sidebar { position: static; }
	#page-container .ws .blog-grid-row { grid-template-columns: 1fr; }
	#page-container .post-body { max-width: none; }
}
@media (max-width: 540px) {
	#page-container .ws.post-hero { padding-bottom: 50px; }
	#page-container .post-hero .et_pb_post_title h1.entry-title { font-size: 34px; overflow-wrap: anywhere; }
	#page-container .post-body p, #page-container .post-body li { font-size: 16px; }
	#page-container .post-body > p:first-child { font-size: 17px; }
	#page-container .post-body h2 { margin-top: 40px; }
	#page-container .post-body .post-callout,
	#page-container .post-body .post-related { padding: 24px 22px; }
	#page-container .post-body .step-para { padding: 18px; }
	#page-container .post-cards .pagination { flex-direction: column; }
	#page-container .post-list article.et_pb_post { grid-template-columns: 1fr; grid-template-rows: auto; padding: 0 20px; }
	#page-container .post-list .entry-featured-image-url { grid-column: 1; grid-row: auto; margin: 0 -20px !important; }
	#page-container .post-list .entry-featured-image-url img { height: 190px; min-height: 0; }
	#page-container .post-list .post-meta, #page-container .post-list .entry-title, #page-container .post-list .post-content { grid-column: 1; grid-row: auto; }
	#page-container .post-list .post-meta { margin-top: 20px !important; order: 1; }
	#page-container .post-list .entry-featured-image-url { order: 0; }
	#page-container .post-list .entry-title { order: 2; }
	#page-container .post-list .post-content { order: 3; }
	#page-container .post-list .entry-title { font-size: 19px !important; }
	#page-container .ws.section.blog-intro { padding-top: 50px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; }
}
