/*
Theme Name: Circuit VA
Theme URI: https://circuitva.com/
Author: Circuit VA
Author URI: https://circuitva.com/
Description: Block theme for Circuit VA, a managed IT and cybersecurity provider in Richmond, Virginia. Dark navy header and footer, Circuit blue and cyan accents, Inter typography, and ready-made patterns for service pages, the blog, contact and thank-you pages.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.14.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: circuitva
Tags: block-patterns, full-site-editing, one-column, two-columns, custom-logo, featured-images, editor-style, wide-blocks
*/

/* ------------------------------------------------------------------
   0. Base
   ------------------------------------------------------------------ */
:root {
	--cv-radius: 14px;
	--cv-radius-lg: 20px;
	--cv-wrap: 1280px;
}
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
img { height: auto; max-width: 100%; }
.cv-eyebrow,
.cv-eyebrow p {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--cyan);
}
.cv-eyebrow.is-teal, .cv-eyebrow.is-teal p { color: var(--wp--preset--color--teal-text); }
.cv-crumbs, .cv-crumbs p { font-size: 13px; color: var(--wp--preset--color--mist); }
.cv-crumbs a { color: var(--wp--preset--color--on-dark-soft); text-decoration: none; }
.cv-crumbs a:hover { color: var(--wp--preset--color--cyan); }
.cv-mascot-sm img { width: 120px; }

/* Narrower gutters on phones */
@media (max-width: 900px) {
	body { --wp--style--root--padding-left: 20px; --wp--style--root--padding-right: 20px; }
}

/* ------------------------------------------------------------------
   1. Buttons
   ------------------------------------------------------------------ */
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	white-space: nowrap;
	transition: background-color .15s, border-color .15s, color .15s;
}
.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, .55);
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover { border-color: #fff; background: transparent; }
.wp-block-button.is-style-ink .wp-block-button__link {
	background: #fff;
	color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
}
.wp-block-button.is-style-ink .wp-block-button__link:hover { background: var(--wp--preset--color--ink); color: #fff; }
.wp-block-button.is-style-pill .wp-block-button__link {
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	background: #fff;
	color: var(--wp--preset--color--body);
	border: 1px solid var(--wp--preset--color--line);
}
.wp-block-button.is-style-pill .wp-block-button__link:hover { color: var(--wp--preset--color--blue); border-color: var(--wp--preset--color--blue); }

/* ------------------------------------------------------------------
   2. Header + navigation
   ------------------------------------------------------------------ */
.cv-header { background: var(--wp--preset--color--navy-900); }
.cv-header .wp-block-site-logo img { height: 42px; width: auto; }
.cv-header .wp-block-navigation { color: #E6EAF7; }
.cv-header .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.cv-header .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:focus-visible { color: var(--wp--preset--color--cyan); text-decoration: none; }
.cv-header .wp-block-navigation .wp-block-navigation-item__content { padding: 10px 12px; border-radius: 6px; }
.cv-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.cv-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content,
.cv-header .wp-block-navigation .current_page_item > .wp-block-navigation-item__content,
.cv-header .wp-block-navigation .current-menu-item > a,
.cv-header .wp-block-navigation .current_page_item > a {
	color: var(--wp--preset--color--cyan);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--cyan);
	border-radius: 0;
}
.cv-header .wp-block-navigation__responsive-container-open,
.cv-header .wp-block-navigation__responsive-container-close { color: #fff; }
.cv-header .wp-block-navigation__responsive-container-open {
	width: 46px;
	height: 46px;
	align-items: center; justify-content: center;
	padding: 0; margin: 0;
	border: 2px solid rgba(255, 255, 255, .55);
	border-radius: 10px;
}
.cv-header .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; display: block; }
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 40px; }
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 22px; font-weight: 600; }
.cv-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content,
.cv-header .wp-block-navigation__responsive-container.is-menu-open .current_page_item > a { box-shadow: none; }
@media (max-width: 900px) { .cv-header .wp-block-site-logo img { height: 34px; } }
@media (max-width: 600px) { .cv-header .cv-header-cta { display: none; } }

/* ------------------------------------------------------------------
   3. Home hero
   ------------------------------------------------------------------ */
.cv-hero { aspect-ratio: 1536 / 490; min-height: 0; }
.cv-hero .wp-block-cover__inner-container { width: 100%; }
.cv-hero .cv-hero-copy { max-width: 540px; margin-left: 0 !important; }
.cv-hero h1 { font-size: var(--wp--preset--font-size--display); line-height: .98; }
.cv-hero .cv-hero-lede { font-size: var(--wp--preset--font-size--xl); line-height: 1.45; color: var(--wp--preset--color--on-dark); }
.cv-hero-art { display: none; }
.cv-feats { gap: 0 !important; margin-top: 6px; }
.cv-feat {
	gap: 10px !important;
	padding-right: 16px;
	margin-right: 16px;
	border-right: 1px solid rgba(255, 255, 255, .18);
}
.cv-feat:last-child { border-right: 0; margin-right: 0; padding-right: 0; }
.cv-feat img { width: 30px; height: 30px; }
.cv-feat p { font-size: 13px; line-height: 1.3; font-weight: 500; color: var(--wp--preset--color--on-dark); }
@media (max-width: 900px) {
	.cv-hero { aspect-ratio: auto; background: var(--wp--preset--color--navy-800); }
	.cv-hero .wp-block-cover__image-background { display: none; }
	.cv-hero-art { display: block; margin: 0 calc(-1 * var(--wp--style--root--padding-right)) 0 calc(-1 * var(--wp--style--root--padding-left)) !important; }
	.cv-hero-art img { width: 100%; display: block; }
	.cv-hero .cv-hero-copy { max-width: none; padding: 28px 0 40px; }
	.cv-feats { gap: 8px 10px !important; margin-top: 10px; }
	.cv-feat { border: 1px solid rgba(255, 255, 255, .16); border-radius: 999px; width: auto; margin: 0; padding: 7px 14px 7px 8px; align-items: center; background: rgba(255, 255, 255, .05); }
	.cv-feat img { width: 24px; height: 24px; }
	.cv-feat p { white-space: nowrap; }
	.cv-feat br { content: " "; }
	.cv-feat br::after { content: " "; }
	/* Header: logo left, button and hamburger together on the right, icon centred in its box. */
	.cv-header .wp-block-navigation { order: 3; flex: 0 0 auto; }
	.cv-header .cv-header-cta { order: 2; margin-left: auto !important; }
	.cv-header .cv-header-cta .wp-block-button__link { padding: 10px 16px; font-size: 14px; }
}

/* ------------------------------------------------------------------
   4. Service cards + panels
   ------------------------------------------------------------------ */
.cv-sec-head { align-items: end; }
.cv-sec-head h2 { max-width: 640px; }
.cv-sec-head p { color: var(--wp--preset--color--muted); }
.cv-card {
	background: var(--wp--preset--color--light);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cv-radius);
	padding: 26px 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.cv-card img { width: 46px; height: 46px; }
.cv-card h3 { font-size: 18px; }
.cv-card p { font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--muted); }
.cv-card .cv-more { flex-grow: 0; margin-top: auto; }
.cv-card .cv-more a { font-weight: 600; font-size: 15px; }
.cv-card .cv-more a::after { content: " →"; }
.cv-card > * + * { margin-top: 0 !important; }
.cv-card > p { flex-grow: 1; }
.cv-feature {
	background: var(--wp--preset--color--light);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cv-radius);
	padding: 24px;
	gap: 10px;
}
.cv-feature img { width: 36px; height: 36px; }
.cv-feature h3 { font-size: 18px; }
.cv-feature p { font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--muted); }

.cv-panel {
	background: var(--wp--preset--color--light);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--cv-radius-lg);
	padding: 48px;
}
.cv-panel .cv-contact-lines p { font-size: 15px; }
@media (max-width: 900px) { .cv-panel { padding: 28px; } }

/* ------------------------------------------------------------------
   5. Dark band (team / CTA)
   ------------------------------------------------------------------ */
.cv-band {
	background: var(--wp--preset--color--navy-700);
	color: #fff;
	border-radius: var(--cv-radius-lg);
	overflow: hidden;
	min-height: 260px;
	padding: 28px 40px 28px 28px;
}
.cv-band h2, .cv-band h3 { color: #fff; }
.cv-band p { color: var(--wp--preset--color--on-dark); }
.cv-band .cv-band-art { flex: 0 0 250px; }
.cv-band .cv-band-art img { width: 100%; max-width: 250px; }
.cv-band .cv-band-copy { flex: 1 1 320px; }
.cv-band .wp-block-buttons { flex: 0 0 auto; }
.cv-cta-band { padding: 40px 44px; min-height: 0; }
@media (max-width: 900px) {
	.cv-band { padding: 24px 28px 32px; }
	.cv-band .cv-band-art { flex-basis: 100%; }
	.cv-band .cv-band-art img { max-width: 200px; }
}

/* ------------------------------------------------------------------
   6. Footer
   ------------------------------------------------------------------ */
.cv-footer { background: var(--wp--preset--color--navy-900); color: var(--wp--preset--color--on-dark); }
.cv-footer .wp-block-site-logo img { height: 38px; width: auto; }
.cv-footer h4 {
	margin: 0 0 12px;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--cyan);
	font-weight: 700;
}
.cv-footer p { font-size: 14px; color: var(--wp--preset--color--mist); }
.cv-footer .cv-footer-blurb { max-width: 320px; }
.cv-footer .cv-footer-links p { font-size: 15px; color: var(--wp--preset--color--on-dark); margin-bottom: 8px; }
.cv-footer .cv-footer-links a, .cv-footer .wp-block-navigation a { color: var(--wp--preset--color--on-dark); text-decoration: none; font-size: 15px; }
.cv-footer .cv-footer-links a:hover, .cv-footer .wp-block-navigation a:hover { color: var(--wp--preset--color--cyan); }
.cv-footer .wp-block-navigation { display: block; }
.cv-footer .wp-block-navigation .wp-block-navigation-item { display: block; margin: 0 0 8px; }
.cv-footer .cv-footer-bottom { border-top: 1px solid #1B2347; padding: 18px 0 28px; font-size: 13px; }
.cv-footer .cv-footer-bottom p, .cv-footer .cv-footer-bottom a { font-size: 13px; color: var(--wp--preset--color--mist); }
.cv-footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr !important; }
@media (max-width: 900px) { .cv-footer-grid { grid-template-columns: 1fr 1fr !important; } .cv-footer-grid > :first-child { grid-column: 1 / -1; } }

/* ------------------------------------------------------------------
   7. Page / post header bands
   ------------------------------------------------------------------ */
.cv-page-hero { min-height: 360px; }
@media (min-width: 901px) { .cv-page-hero.cv-service-hero, .page-template-page-landing .cv-page-hero:not(.cv-title-band) { min-height: 600px !important; } }
.cv-page-hero h1 { color: #fff; font-size: var(--wp--preset--font-size--heading-xl); line-height: 1.08; }
.cv-page-hero .cv-lede { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--on-dark-soft); max-width: 600px; }
.cv-page-hero .wp-block-post-excerpt__excerpt { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--on-dark-soft); max-width: 600px; }
.cv-page-hero .wp-block-post-featured-image { display: none; }
.cv-page-hero .wp-block-cover__background { background-color: #040E29 !important; opacity: .8 !important; }
.cv-page-hero.cv-title-band { min-height: 280px; }
.cv-quick {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 16px;
	padding: 22px 24px;
	min-width: 300px;
	gap: 10px;
}
.cv-quick > * { width: 100%; text-align: left; }
.cv-quick ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-quick li { font-size: 15px; color: var(--wp--preset--color--on-dark); padding-left: 30px; position: relative; }
.cv-quick li::before {
	content: "";
	position: absolute; left: 0; top: 2px;
	width: 20px; height: 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300C1FD' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") no-repeat center / contain;
}
.cv-post-hero { min-height: 420px; background: var(--wp--preset--color--navy-800) url("assets/images/desk-scene.jpg") right center / cover no-repeat; }
.cv-post-hero > .wp-block-cover__inner-container { width: 100%; max-width: calc(1280px + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right)); margin: 0 auto; padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); box-sizing: border-box; }
.cv-post-hero .wp-block-cover__background { opacity: .86 !important; }
.cv-post-hero .wp-block-cover__inner-container > .wp-block-group { max-width: 860px; }
.cv-post-hero .cv-crumbs, .cv-post-hero .cv-crumbs a { font-size: 13px; color: var(--wp--preset--color--on-dark-soft); }
.cv-post-hero .cv-crumbs a:hover { color: #fff; }
.cv-post-hero .cv-pill a { background: rgba(0,193,253,.16); color: var(--wp--preset--color--cyan); border: 1px solid rgba(0,193,253,.35); }
.cv-post-hero h1 { color: #fff; font-size: clamp(30px, 3vw, 42px); line-height: 1.12; letter-spacing: -0.02em; }
.cv-post-hero .wp-block-post-excerpt__excerpt { font-size: var(--wp--preset--font-size--lg); color: var(--wp--preset--color--on-dark-soft); max-width: 760px; }
.cv-post-hero .cv-meta, .cv-post-hero .cv-meta * { color: var(--wp--preset--color--on-dark-soft) !important; font-size: 14px; }
.cv-post-hero .cv-meta .wp-block-post-author-name a { color: #fff !important; font-weight: 700; }
.cv-post-hero .wp-block-avatar img { border: 2px solid var(--wp--preset--color--cyan); }
@media (max-width: 900px) {
	.cv-page-hero > .wp-block-cover__inner-container, .cv-post-hero > .wp-block-cover__inner-container { padding-left: var(--wp--style--root--padding-left); padding-right: var(--wp--style--root--padding-right); }
	.cv-page-hero h1 { font-size: 36px; }
	.cv-post-hero h1 { font-size: 34px; }
	.cv-post-hero { min-height: 340px; }
	.cv-quick { min-width: 0; width: 100%; }
}

/* Category pills (post-terms) */
.cv-pill, .cv-pill a, .wp-block-post-terms.cv-pill a {
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 0 11px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	background: #EDE4FF;
	color: #4E1BB3;
}
.wp-block-post-terms.cv-pill { display: flex; gap: 6px; flex-wrap: wrap; }
.wp-block-post-terms.cv-pill .wp-block-post-terms__separator { display: none; }
.wp-block-post-terms.cv-pill a:hover { background: #4E1BB3; color: #fff; }
.cv-pill-cyan, .cv-pill.is-cyan a { background: #D9F6FF; color: #036B8C; }
.cv-pill-blue, .cv-pill.is-blue a { background: #DCEBFF; color: #0A4FA3; }

/* ------------------------------------------------------------------
   8. Content sections (service page)
   ------------------------------------------------------------------ */
.cv-two { align-items: center; }
.cv-prose p { font-size: 17px; line-height: 1.7; color: #2B3150; }
.cv-img-ph {
	aspect-ratio: 4 / 3;
	border-radius: 16px;
	background: var(--wp--preset--color--light);
	border: 1px solid var(--wp--preset--color--line);
	display: flex; align-items: center; justify-content: center;
	overflow: hidden;
}
.cv-img-ph img { width: 100%; height: 100%; object-fit: cover; }
.cv-step { padding-top: 18px; border-top: 3px solid var(--wp--preset--color--blue); gap: 8px; }
.cv-step .cv-step-n, .cv-step .cv-step-n p { font-size: 13px; font-weight: 700; letter-spacing: .12em; color: var(--wp--preset--color--blue); text-transform: uppercase; }
.cv-step h3 { font-size: 18px; }
.cv-step p { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-faq { border-top: 1px solid var(--wp--preset--color--line-2); }
.cv-faq .wp-block-details { margin: 0; }
.cv-faq .wp-block-details summary {
	font-size: 17px; font-weight: 700; color: var(--wp--preset--color--ink);
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.cv-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.cv-faq .wp-block-details summary::after {
	content: ""; flex: 0 0 20px; width: 20px; height: 20px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1240' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform .2s;
}
.cv-faq .wp-block-details[open] summary::after { transform: rotate(180deg); }
.cv-faq .wp-block-details > :not(summary) { max-width: 820px; color: var(--wp--preset--color--muted); margin-top: 12px; }
.cv-light-section { background: var(--wp--preset--color--light-2); }

/* ------------------------------------------------------------------
   9. Blog index
   ------------------------------------------------------------------ */
.cv-blog-head { background: var(--wp--preset--color--navy-800); color: #fff; }
.cv-blog-head h1 { color: #fff; }
.cv-blog-head p { color: var(--wp--preset--color--on-dark-soft); font-size: 18px; max-width: 620px; }
.cv-blog-head.is-layout-constrained > *, .cv-contact-head.is-layout-constrained > * { margin-left: 0 !important; }
.cv-contact-head .cv-crumbs { font-size: 13px; }
.cv-contact-head .cv-eyebrow { font-size: 13px; }
.cv-contact-head h1 { font-size: var(--wp--preset--font-size--heading-xl); line-height: 1.08; }
.cv-archive-title { color: #fff; }
.cv-archive-title .wp-block-query-title { color: #fff; font-size: var(--wp--preset--font-size--heading-xl); line-height: 1.05; }
.cv-blog-head .wp-block-term-description p { color: var(--wp--preset--color--on-dark-soft); }

/* Featured (sticky) post card */
.cv-featured {
	background: var(--wp--preset--color--navy-700);
	border-radius: 22px;
	color: #fff;
	padding: 44px 48px;
	overflow: hidden;
}
.cv-featured .wp-block-post-title, .cv-featured .wp-block-post-title a { color: #fff; font-size: var(--wp--preset--font-size--heading-lg); }
.cv-featured .wp-block-post-title a:hover { color: var(--wp--preset--color--cyan); }
.cv-featured .wp-block-post-excerpt__excerpt { color: var(--wp--preset--color--on-dark-soft); font-size: 17px; }
.cv-featured .cv-meta, .cv-featured .cv-meta * { color: var(--wp--preset--color--mist) !important; font-size: 14px; }
.cv-featured .wp-block-post-featured-image {
	aspect-ratio: 16 / 10; border-radius: 16px; background: #0F1A4A; border: 1px solid #27307A; overflow: hidden;
}
.cv-featured .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.cv-featured .wp-block-post-featured-image__placeholder { background: #0F1A4A; }
@media (max-width: 900px) { .cv-featured { padding: 24px; } }

/* Category filter pills (core/categories list) */
.cv-filters ul.wp-block-categories, .cv-filters ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.cv-filters li a, .cv-filters .cv-filter-all a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px;
	border-radius: 999px; border: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--body); text-decoration: none; font-weight: 600; font-size: 14px; background: #fff;
}
.cv-filters li a:hover { border-color: var(--wp--preset--color--blue); color: var(--wp--preset--color--blue); }
.cv-filters li.current-cat > a, .cv-filters .cv-filter-all.is-current a { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: #fff; }
.cv-filters .wp-block-categories li { margin: 0; }

/* Post card */
.cv-post {
	display: flex; flex-direction: column; gap: 10px;
	border: 1px solid var(--wp--preset--color--line-2); border-radius: 16px; overflow: hidden; background: #fff;
	transition: border-color .15s;
}
.cv-post:hover { border-color: var(--wp--preset--color--blue); }
.cv-post .wp-block-post-featured-image { aspect-ratio: 16 / 9; background: var(--wp--preset--color--light); border-bottom: 1px solid var(--wp--preset--color--line-2); margin: 0; }
.cv-post .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.cv-post .wp-block-post-featured-image__placeholder { background: var(--wp--preset--color--light); }
.cv-post .cv-post-body { padding: 10px 22px 22px; gap: 10px; flex-grow: 1; }
.cv-post .wp-block-post-title { font-size: 19px; line-height: 1.3; font-weight: 700; }
.cv-post .wp-block-post-excerpt { flex-grow: 1; }
.cv-post .wp-block-post-excerpt__more-text { display: none; }
.cv-post .cv-meta { gap: 8px !important; }
.cv-post .cv-author { gap: 10px !important; }
.cv-post .wp-block-avatar img { border-radius: 50%; }
.cv-meta .wp-block-post-date, .cv-meta .cv-readtime { font-size: 13px; color: var(--wp--preset--color--slate); }
.cv-meta .cv-dot { color: var(--wp--preset--color--mist); }
.cv-readtime { white-space: nowrap; }

/* Pagination */
.cv-pager { border-top: 1px solid var(--wp--preset--color--line-2); padding-top: 22px; }
.cv-pager .wp-block-query-pagination-previous, .cv-pager .wp-block-query-pagination-next { font-weight: 600; }
.cv-pager .wp-block-query-pagination-numbers { display: flex; gap: 6px; }
.cv-pager .page-numbers { display: inline-flex; min-width: 40px; min-height: 40px; align-items: center; justify-content: center; border-radius: 10px; border: 1px solid var(--wp--preset--color--line); text-decoration: none; }
.cv-pager .page-numbers.current { background: var(--wp--preset--color--ink); color: #fff; border-color: var(--wp--preset--color--ink); }
.cv-no-results p { color: var(--wp--preset--color--muted); }

/* ------------------------------------------------------------------
   10. Single post
   ------------------------------------------------------------------ */
.cv-layout { align-items: start; }
.cv-article { min-width: 0; }
.cv-aside { position: sticky; top: 24px; }
.cv-article .wp-block-post-content { max-width: 760px; font-size: 18px; line-height: 1.75; }
.cv-article .wp-block-post-content > * { margin-top: 0; margin-bottom: 22px; }
.cv-article .wp-block-post-content > h2 { font-size: 28px; line-height: 1.25; margin-top: 18px; }
.cv-article .wp-block-post-content > h3 { font-size: 21px; margin-top: 8px; }
.cv-article .wp-block-post-content ul, .cv-article .wp-block-post-content ol { padding-left: 24px; }
.cv-article .wp-block-post-content li { margin-bottom: 8px; }
.cv-article .wp-block-post-content .wp-block-image img { border-radius: 14px; }
.cv-article .wp-block-post-content figcaption { font-size: 14px; color: var(--wp--preset--color--slate); }
.cv-article .wp-block-post-content .has-lead-font-size, .cv-article .wp-block-post-content > p:first-child.cv-lead { font-size: 21px; line-height: 1.6; color: #2B3150; }
.cv-callout {
	background: var(--wp--preset--color--light);
	border: 1px solid var(--wp--preset--color--line);
	border-left: 4px solid var(--wp--preset--color--blue);
	border-radius: 12px; padding: 20px 22px; font-size: 16px; line-height: 1.6;
}
.cv-callout p { margin: 0; }
.cv-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.cv-tags a {
	display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px;
	border: 1px solid var(--wp--preset--color--line); font-size: 13px; font-weight: 600; color: var(--wp--preset--color--body); text-decoration: none;
}
.cv-tags a:hover { border-color: var(--wp--preset--color--blue); color: var(--wp--preset--color--blue); }
.cv-tags .wp-block-post-terms__separator { display: none; }
.cv-post-foot { border-top: 1px solid var(--wp--preset--color--line-2); padding-top: 28px; margin-top: 40px; }
.cv-author-box { border: 1px solid var(--wp--preset--color--line-2); border-radius: 16px; padding: 24px; align-items: flex-start; }
.cv-author-box .wp-block-avatar img { border: 2px solid var(--wp--preset--color--cyan); border-radius: 50%; }
.cv-author-box .cv-label p { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--slate); font-weight: 700; }
.cv-author-box .wp-block-post-author-name { font-size: 20px; font-weight: 800; color: var(--wp--preset--color--ink); }
.cv-author-box .wp-block-post-author-biography { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-side-card { background: #fff; border: 1px solid var(--wp--preset--color--line-2); border-radius: 16px; padding: 22px; gap: 12px; }
.cv-side-card h4 { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--slate); }
.cv-side-card ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cv-side-card ul.cv-tags { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.cv-side-card ul.cv-tags li a { border-left: 0; padding: 0 14px; }
.cv-side-card li a { color: var(--wp--preset--color--body); display: block; padding: 6px 0 6px 12px; border-left: 2px solid var(--wp--preset--color--line-2); font-size: 15px; }
.cv-side-card li a:hover { color: var(--wp--preset--color--blue); border-color: var(--wp--preset--color--blue); text-decoration: none; }
.cv-side-card .wp-block-search__input { min-height: 44px; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 0 12px; font-size: 14px; }
.cv-side-card .wp-block-search__button { min-height: 44px; border-radius: 8px; background: var(--wp--preset--color--blue); color: #fff; border: 0; font-weight: 700; padding: 0 16px; }
.cv-cta-card { background: var(--wp--preset--color--navy-700); color: #fff; border-radius: 16px; padding: 24px; gap: 12px; }
.cv-cta-card h3 { color: #fff; font-size: 20px; }
.cv-cta-card p { color: var(--wp--preset--color--on-dark-soft); font-size: 15px; }
.cv-related-head { align-items: baseline; }
.cv-related-head a { font-weight: 600; }
@media (max-width: 900px) { .cv-aside { position: static; } .cv-article .wp-block-post-content { font-size: 17px; } .cv-article .wp-block-post-content > h2 { font-size: 24px; } }

/* ------------------------------------------------------------------
   11. Contact page
   ------------------------------------------------------------------ */
.cv-formcard { background: #fff; border: 1px solid var(--wp--preset--color--line-2); border-radius: 20px; padding: 36px; }
.cv-formcard h2 { font-size: 26px; }
.cv-formcard .cv-form-note p { font-size: 15px; color: var(--wp--preset--color--slate); }
.cv-form { display: flex; flex-direction: column; gap: 22px; margin: 0; }
.cv-form .row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.cv-form .field { display: flex; flex-direction: column; gap: 7px; }
.cv-form label, .cv-form .field > span { font-size: 14px; font-weight: 600; color: var(--wp--preset--color--ink); }
.cv-form label span { color: var(--wp--preset--color--slate); font-weight: 400; }
.cv-form input[type="text"], .cv-form input[type="email"], .cv-form input[type="tel"], .cv-form select, .cv-form textarea,
.cv-formcard .wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .cv-formcard .wpcf7-form select, .cv-formcard .wpcf7-form textarea,
.cv-formcard .wpforms-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), .cv-formcard .wpforms-form select, .cv-formcard .wpforms-form textarea {
	width: 100%; box-sizing: border-box; min-height: 48px; border: 1px solid #CFD8E6; border-radius: 10px; padding: 0 14px;
	font: inherit; font-size: 15px; color: var(--wp--preset--color--body); background: #fff;
}
.cv-form textarea, .cv-formcard .wpcf7-form textarea, .cv-formcard .wpforms-form textarea { min-height: 140px; padding: 12px 14px; resize: vertical; }
.cv-form input:focus, .cv-form select:focus, .cv-form textarea:focus { outline: 2px solid var(--wp--preset--color--blue); outline-offset: 1px; border-color: var(--wp--preset--color--blue); }
.cv-form .radios { display: flex; gap: 10px; flex-wrap: wrap; }
.cv-form .radios label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid #CFD8E6; border-radius: 999px; font-size: 14px; font-weight: 500; cursor: pointer; }
.cv-form .radios input { width: 16px; height: 16px; margin: 0; }
.cv-form button[type="submit"], .cv-form input[type="submit"],
.cv-formcard .wpcf7-form input[type="submit"], .cv-formcard .wpforms-form button[type="submit"] {
	display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border-radius: 10px;
	font: inherit; font-weight: 700; font-size: 16px; background: var(--wp--preset--color--blue); color: #fff; border: 2px solid var(--wp--preset--color--blue); cursor: pointer;
}
.cv-form button[type="submit"]:hover, .cv-formcard .wpcf7-form input[type="submit"]:hover, .cv-formcard .wpforms-form button[type="submit"]:hover { background: var(--wp--preset--color--blue-hover); border-color: var(--wp--preset--color--blue-hover); }
.cv-form .cv-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.cv-form .cv-form-foot span { font-size: 13px; color: var(--wp--preset--color--slate); }
.cv-darkcard { background: var(--wp--preset--color--navy-700); color: #fff; border-radius: 16px; padding: 24px; align-items: center; }
.cv-darkcard h3 { color: #fff; font-size: 20px; }
.cv-darkcard p { color: var(--wp--preset--color--on-dark-soft); font-size: 15px; }
.cv-darkcard .cv-big-phone a { color: var(--wp--preset--color--cyan); font-weight: 700; font-size: 20px; }
.cv-darkcard .cv-mascot-sm img { width: 96px; }
.cv-infocard { background: var(--wp--preset--color--light); border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 24px; gap: 14px; }
.cv-infocard h3 { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--slate); font-weight: 700; }
.cv-line { gap: 12px !important; align-items: flex-start; }
.cv-line img { width: 20px; height: 20px; margin-top: 2px; flex: 0 0 auto; }
.cv-line p { font-size: 15px; }
.cv-line p a { font-weight: 600; }
.cv-line .cv-sub { color: var(--wp--preset--color--slate); }
.cv-map { height: clamp(240px, 20vw, 300px); flex: none; border-radius: 16px; overflow: hidden; background: #E7EEF8; border: 1px solid var(--wp--preset--color--line); }
.cv-map iframe, .cv-map-canvas { width: 100%; height: 100%; border: 0; display: block; }
.cv-map-canvas { z-index: 0; }
.cv-map .leaflet-container { font-family: inherit; }
.cv-map-caption { font-size: 14px; color: var(--wp--preset--color--slate); margin-top: 10px !important; }
.cv-form .cv-turnstile:empty { display: none; }
.cv-form-error { background: #FFF1F1; border: 1px solid #F3B5B5; color: #8A1C1C; border-radius: 10px; padding: 12px 14px; font-size: 15px; }
@media (max-width: 900px) { .cv-formcard { padding: 24px; } .cv-form .row2 { grid-template-columns: 1fr; } .cv-darkcard { align-items: flex-start; } }

/* ------------------------------------------------------------------
   12. Thank-you + 404
   ------------------------------------------------------------------ */
.cv-check { width: 64px; height: 64px; border-radius: 50%; background: var(--wp--preset--color--cyan); display: flex; align-items: center; justify-content: center; }
.cv-check img { width: 34px; height: 34px; }
.cv-dark-page { background: var(--wp--preset--color--navy-800); color: #fff; }
.cv-dark-page h1, .cv-dark-page h2 { color: #fff; }
.cv-dark-page p { color: var(--wp--preset--color--on-dark-soft); }
.cv-dark-page a { color: var(--wp--preset--color--cyan); }
.cv-404-code p { font-size: 120px; line-height: 1; font-weight: 800; color: #0F1A4A; letter-spacing: -.04em; }
.cv-404 h1 { font-size: 46px; line-height: 1.08; }
.cv-404 .cv-links a {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .3); color: #E6EAF7; text-decoration: none; font-size: 14px; font-weight: 600;
}
.cv-404 .cv-links a:hover { border-color: var(--wp--preset--color--cyan); color: var(--wp--preset--color--cyan); }
.cv-dark-search { max-width: 100%; }
.cv-dark-search .wp-block-search__input { min-height: 48px; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .06); border-radius: 10px; padding: 0 14px; color: #fff; font-size: 15px; }
.cv-dark-search .wp-block-search__input::placeholder { color: var(--wp--preset--color--mist); }
.cv-dark-search .wp-block-search__button { min-height: 48px; border-radius: 10px; background: var(--wp--preset--color--blue); color: #fff; border: 0; font-weight: 700; padding: 0 20px; }
.cv-footer-min { border-top: 1px solid #1B2347; padding: 22px 0 28px; }
.cv-footer-min p, .cv-footer-min a { font-size: 13px; color: var(--wp--preset--color--mist); }
@media (max-width: 900px) { .cv-404-code p { font-size: 80px; } .cv-404 h1 { font-size: 34px; } }

/* ------------------------------------------------------------------
   13. Editor-only tweaks
   ------------------------------------------------------------------ */
.editor-styles-wrapper .cv-hero { aspect-ratio: auto; min-height: 490px; }
.editor-styles-wrapper .cv-hero-art { display: none; }

/* ------------------------------------------------------------------
   14. Breakpoint overrides for core layouts
   ------------------------------------------------------------------ */
/* Collapse the menu to the hamburger below 900px (core switches at 600px). */
@media (min-width: 600px) and (max-width: 900px) {
	.cv-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.cv-header .wp-block-navigation__responsive-container-open { display: flex !important; }
}
/* Query Loop grids: 3 → 2 → 1 columns. */
@media (max-width: 1000px) { .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 700px) { .wp-block-post-template.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }
/* Service cards: 6 on wide screens, 3 on laptops, 1 on phones. */
@media (max-width: 1200px) { .cv-cards.is-layout-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 700px) { .cv-cards.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }
/* No root block gap between header, sections and footer; sections carry their own padding. */
body .wp-site-blocks > *, body main.wp-block-group > * { margin-block-start: 0; }
/* Mobile menu overlay: left-aligned list with comfortable spacing. */
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; }
.cv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 72px 28px 28px; gap: 6px; }

/* ------------------------------------------------------------------
   15. Service-page components (unique layouts per service)
   ------------------------------------------------------------------ */
/* Stat tiles (hero side, dark) */
.cv-stats { gap: 12px !important; }
.cv-stat { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .18); border-radius: 16px; padding: 18px 20px; gap: 4px !important; min-width: 150px; flex: 1 1 150px; }
.cv-stat .cv-stat-n p { font-size: 40px; line-height: 1; font-weight: 800; letter-spacing: -.03em; color: var(--wp--preset--color--cyan); }
.cv-stat .cv-stat-l p { font-size: 13px; line-height: 1.35; color: var(--wp--preset--color--on-dark); }
.cv-stat .cv-stat-s p { font-size: 11px; color: var(--wp--preset--color--mist); }
/* Light stat tiles */
.cv-stat.is-light { background: #fff; border-color: var(--wp--preset--color--line); }
.cv-stat.is-light .cv-stat-n p { color: var(--wp--preset--color--blue); }
.cv-stat.is-light .cv-stat-l p { color: var(--wp--preset--color--muted); }

/* Flow: cards joined by arrows */
.cv-flow { gap: 36px !important; }
.cv-flow-item { position: relative; background: #fff; border: 1px solid var(--wp--preset--color--line-2); border-radius: 14px; padding: 22px; gap: 8px !important; }
.cv-flow-item .cv-badge p { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--wp--preset--color--ink); color: #fff; font-size: 13px; font-weight: 800; }
.cv-flow-item h3 { font-size: 18px; }
.cv-flow-item p { font-size: 15px; color: var(--wp--preset--color--muted); }
@media (min-width: 1001px) {
	.cv-flow-item:not(:last-child)::after { content: ""; position: absolute; right: -30px; top: 50%; width: 24px; height: 24px; transform: translateY(-50%); background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238E97BC' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain; }
}
.cv-flow-item.is-danger .cv-badge p { background: #B3261E; }
.cv-flow-item.is-ok .cv-badge p { background: #0E8FB3; }

/* Layers: stacked rows with a colored edge */
.cv-layers { gap: 12px !important; }
.cv-layer { background: var(--wp--preset--color--light); border: 1px solid var(--wp--preset--color--line); border-left: 5px solid var(--wp--preset--color--blue); border-radius: 12px; padding: 18px 22px; gap: 18px !important; align-items: center; }
.cv-layer.is-violet { border-left-color: var(--wp--preset--color--violet); }
.cv-layer.is-cyan { border-left-color: var(--wp--preset--color--cyan); }
.cv-layer img { width: 32px; height: 32px; flex: 0 0 auto; }
.cv-layer .cv-layer-copy { gap: 2px !important; }
.cv-layer h3 { font-size: 17px; }
.cv-layer p { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-layer .cv-layer-tag p { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--slate); white-space: nowrap; margin-left: auto; }

/* Checklist */
.cv-checklist ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 28px; }
.cv-checklist li { position: relative; padding-left: 32px; font-size: 16px; }
.cv-checklist li::before { content: ""; position: absolute; left: 0; top: 2px; width: 22px; height: 22px; border-radius: 6px; background: #DCEBFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230185F8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") no-repeat center / 14px; }
.cv-checklist.is-warn li::before { background-color: #FDECEC; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B3261E' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 7v6M12 17h.01'/%3E%3C/svg%3E"); }
@media (max-width: 700px) { .cv-checklist ul { grid-template-columns: 1fr; } }

/* Comparison table */
.cv-compare table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; border: 1px solid var(--wp--preset--color--line-2); border-radius: 14px; overflow: hidden; }
.cv-compare thead th { background: var(--wp--preset--color--ink); color: #fff; text-align: left; padding: 14px 18px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; border: 0; }
.cv-compare thead th:not(:first-child) { text-align: center; }
.cv-compare td { padding: 14px 18px; border: 0; border-top: 1px solid var(--wp--preset--color--line-2); vertical-align: top; }
.cv-compare td:first-child { font-weight: 600; color: var(--wp--preset--color--ink); }
.cv-compare td:not(:first-child) { text-align: center; color: var(--wp--preset--color--muted); }
.cv-compare tbody tr:nth-child(even) td { background: var(--wp--preset--color--light-2); }
.cv-compare td strong { color: var(--wp--preset--color--teal-text); }
.cv-compare figcaption { font-size: 13px; color: var(--wp--preset--color--slate); text-align: left; margin-top: 8px; }

/* Big numerals (3-2-1) */
.cv-numeral { gap: 6px !important; padding: 26px 24px; border-radius: 16px; background: var(--wp--preset--color--light); border: 1px solid var(--wp--preset--color--line); }
.cv-numeral .cv-numeral-n p { font-size: 72px; line-height: .95; font-weight: 800; letter-spacing: -.04em; color: var(--wp--preset--color--blue); }
.cv-numeral.is-violet .cv-numeral-n p { color: var(--wp--preset--color--violet); }
.cv-numeral.is-cyan .cv-numeral-n p { color: var(--wp--preset--color--teal-text); }
.cv-numeral h3 { font-size: 19px; }
.cv-numeral p { font-size: 15px; color: var(--wp--preset--color--muted); }

/* Dark full-width section */
.cv-dark-section { background: var(--wp--preset--color--navy-800); color: #fff; }
.cv-dark-section h2, .cv-dark-section h3 { color: #fff; }
.cv-dark-section p { color: var(--wp--preset--color--on-dark); }
.cv-dark-section .cv-eyebrow p { color: var(--wp--preset--color--cyan); }

/* Timeline strip (projects): week markers along a line */
.cv-timeline { position: relative; gap: 22px !important; }
.cv-timeline::before { content: ""; position: absolute; left: 0; right: 0; top: 9px; height: 3px; background: var(--wp--preset--color--line); }
.cv-tl { position: relative; padding-top: 28px; gap: 6px !important; }
.cv-tl::before { content: ""; position: absolute; left: 0; top: 0; width: 21px; height: 21px; border-radius: 50%; background: #fff; border: 5px solid var(--wp--preset--color--blue); box-sizing: border-box; }
.cv-tl .cv-tl-when p { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--blue); }
.cv-tl h3 { font-size: 18px; }
.cv-tl p { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-tl.is-go::before { background: var(--wp--preset--color--blue); }
@media (max-width: 1000px) { .cv-timeline::before { display: none; } .cv-tl { padding-top: 0; padding-left: 32px; } .cv-tl::before { top: 2px; } }

/* Case cards */
.cv-case { background: #fff; border: 1px solid var(--wp--preset--color--line-2); border-radius: 16px; padding: 24px; gap: 10px !important; }
.cv-case .cv-case-tag p { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--teal-text); }
.cv-case h3 { font-size: 18px; }
.cv-case p { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-case .cv-case-result p { font-size: 15px; color: var(--wp--preset--color--ink); border-top: 1px solid var(--wp--preset--color--line-2); padding-top: 10px; }
.cv-case .cv-case-result p strong { color: var(--wp--preset--color--blue); }

/* Promise panel */
.cv-promise { background: var(--wp--preset--color--light); border: 1px solid var(--wp--preset--color--line); border-radius: 20px; padding: 40px 44px; }
.cv-promise h2 { font-size: var(--wp--preset--font-size--heading-md); }
.cv-promise .cv-promise-list ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.cv-promise .cv-promise-list li { padding-left: 30px; position: relative; font-size: 16px; }
.cv-promise .cv-promise-list li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230185F8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") no-repeat center / contain; }
@media (max-width: 900px) { .cv-promise { padding: 28px; } }

/* Two-tone definition cards (RTO / RPO) */
.cv-define { border-radius: 16px; padding: 26px; gap: 8px !important; background: var(--wp--preset--color--navy-700); color: #fff; }
.cv-define h3 { color: #fff; font-size: 17px; }
.cv-define .cv-define-big p { font-size: 34px; font-weight: 800; letter-spacing: -.03em; color: var(--wp--preset--color--cyan); line-height: 1.1; }
.cv-define p { color: var(--wp--preset--color--on-dark); font-size: 15px; }
.cv-stat { flex: 1 1 42%; }
.cv-stat.is-mon .cv-stat-n p { font-size: 22px; letter-spacing: -.01em; }
.cv-stat.is-mon { flex: 1 1 200px; }
@media (max-width: 1000px) { .cv-flow.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 700px) { .cv-flow.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }

/* Websites service: plan cards and the homepage band */
.cv-plan { background: #fff; border: 1px solid var(--wp--preset--color--line-2); border-radius: 18px; padding: 28px 26px; gap: 14px !important; }
.cv-plan.is-featured { border: 2px solid var(--wp--preset--color--ink); box-shadow: 0 12px 32px rgba(11, 18, 64, .10); }
.cv-plan .cv-plan-name p { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--teal-text); }
.cv-plan .cv-plan-price p { font-size: 34px; font-weight: 800; letter-spacing: -.03em; color: var(--wp--preset--color--ink); line-height: 1.1; }
.cv-plan .cv-plan-price p small { font-size: 14px; font-weight: 500; color: var(--wp--preset--color--slate); letter-spacing: 0; }
.cv-plan .cv-plan-for p { font-size: 15px; color: var(--wp--preset--color--muted); }
.cv-plan ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cv-plan li { position: relative; padding-left: 28px; font-size: 15px; }
.cv-plan li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230185F8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") no-repeat center / contain; }
.cv-plan .wp-block-buttons { margin-top: auto; }
.cv-plan .wp-block-buttons { width: 100%; } .cv-plan .wp-block-button { width: 100%; } .cv-plan .wp-block-button__link { width: 100%; }
@media (max-width: 1000px) { .cv-plans.is-layout-grid { grid-template-columns: minmax(0, 1fr) !important; } }
.cv-plan .cv-plan-badge p { display: inline-flex; align-self: flex-start; padding: 3px 10px; border-radius: 999px; background: var(--wp--preset--color--ink); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cv-web-band { background: linear-gradient(135deg, #0B1240 0%, #2A1B7A 60%, #4A1FB3 100%); color: #fff; border-radius: var(--cv-radius-lg); padding: 44px 48px; overflow: hidden; }
.cv-web-band h2 { color: #fff; }
.cv-web-band p { color: var(--wp--preset--color--on-dark); }
.cv-web-band .cv-eyebrow p { color: var(--wp--preset--color--cyan); }
.cv-web-chips { gap: 10px !important; }
.cv-web-chip p { display: inline-flex; align-items: center; min-height: 38px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .06); font-size: 14px; font-weight: 600; color: #fff; }
/* Browser-window frame for site mockups */
.cv-browser { border-radius: 14px; overflow: hidden; border: 1px solid rgba(255, 255, 255, .18); background: #0F1A4A; box-shadow: 0 20px 50px rgba(0, 0, 0, .35); }
.cv-browser::before { content: ""; display: block; height: 34px; background: #182357 radial-gradient(circle at 18px 50%, rgba(255,255,255,.28) 5px, transparent 6px), #182357; background-image: radial-gradient(circle at 18px 50%, rgba(255,255,255,.28) 5px, transparent 6px), radial-gradient(circle at 36px 50%, rgba(255,255,255,.28) 5px, transparent 6px), radial-gradient(circle at 54px 50%, rgba(255,255,255,.28) 5px, transparent 6px); }
.cv-browser .wp-block-image { margin: 0; }
.cv-browser img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.cv-case .cv-browser { box-shadow: none; border-color: var(--wp--preset--color--line-2); background: var(--wp--preset--color--light); margin: -24px -24px 8px; border-radius: 16px 16px 0 0; }
.cv-case .cv-browser::before { background-color: #E3E9F3; background-image: radial-gradient(circle at 18px 50%, #C9D0E8 5px, transparent 6px), radial-gradient(circle at 36px 50%, #C9D0E8 5px, transparent 6px), radial-gradient(circle at 54px 50%, #C9D0E8 5px, transparent 6px); }
@media (max-width: 900px) { .cv-web-band { padding: 28px; } }

/* ---- Interactive desk (homepage hero) ------------------------------------ */
.cv-hero { position: relative; }
/* Same 20px navy band between the menu and the picture as the inner pages have. */
.cv-hero { margin-top: 20px !important; box-shadow: 0 -20px 0 0 var(--wp--preset--color--navy-800); }
.cv-desk { position: absolute; inset: 0; z-index: 2; pointer-events: none; max-width: none !important; margin: 0 !important; width: 100%; }
.cv-eye { position: absolute; left: var(--cx); top: var(--cy); width: var(--w); aspect-ratio: var(--ar); transform: translate(-50%, -50%); border-radius: 50%; overflow: hidden; }
.cv-pupil { position: absolute; left: 50%; top: 50%; width: calc(var(--pw) / var(--w) * 100%); aspect-ratio: 1; margin: -1px 0 0 -1px; border-radius: 50%; background: radial-gradient(circle at 38% 36%, #2a2f4a 0 8%, #05060f 40%); box-shadow: inset 0 -2px 4px rgba(255,255,255,.08); transform: translate(calc(-50% + var(--dx, -0.12) * 100%), calc(-50% + var(--dy, 0.06) * 100%)) scale(var(--ps, 1)); transition: transform .4s cubic-bezier(.3,.7,.3,1); will-change: transform; }
.cv-pupil::after { content: ""; position: absolute; left: 22%; top: 20%; width: 26%; height: 26%; border-radius: 50%; background: #fff; opacity: .95; }
.cv-lid { position: absolute; inset: -4px; background: #0b1033; transform: translateY(-104%); transition: transform .11s ease-in; }
.cv-lid-b { position: absolute; inset: -4px; background: #0b1033; transform: translateY(104%); transition: transform .35s ease; }
.cv-eye.is-blink .cv-lid { transform: translateY(0); }
/* Resting (-.-): both lids close to a thin slit, pupil hidden. */
.cv-eye.is-sleep .cv-lid { transform: translateY(-54%); transition: transform .35s ease; }
.cv-eye.is-sleep .cv-lid-b { transform: translateY(54%); }
.cv-eye.is-sleep .cv-pupil, .cv-eye.is-sleep .cv-pupil::after { opacity: 0; transition: opacity .2s; }
/* Annoyed: upper lids come down at a slant toward the middle. */
/* Owl mode: upper lids come down as a straight slanted edge (scaled up so no corner shows), lower lids rise, pupils stay big and fixed on the target. */
.cv-eye.is-angry .cv-lid { transform: translateY(-128%) rotate(var(--tilt, 0deg)) scale(2.4); transition: transform .28s cubic-bezier(.3,1.25,.5,1); }
.cv-eye.is-angry .cv-lid-b { transform: translateY(146%) scale(2.4); transition: transform .3s ease; }
.cv-eye.is-angry .cv-pupil { --ps: 1.06; animation: cv-huff .5s ease-in-out .4s 1; }
@keyframes cv-huff { 0%, 100% { margin-left: -1px; } 30% { margin-left: -4px; } 70% { margin-left: 2px; } }
.cv-led { position: absolute; left: 67.9%; top: 63.5%; width: 5.8%; height: 8%; border: 0; padding: 0; background: transparent; border-radius: 999px; cursor: pointer; pointer-events: auto; }
.cv-led:focus-visible { outline: 2px solid var(--wp--preset--color--cyan); outline-offset: 2px; }
.cv-steam { position: absolute; left: 41.6%; top: 46%; width: 7%; aspect-ratio: 107/118; pointer-events: none; transform-origin: 50% 100%; }
/* Starting up (page load and after the mug cools): the first wisps grow out of the cup. */
.cv-steam.is-starting { animation: cv-steam-start 2.2s cubic-bezier(.2,.6,.3,1) both; }
@keyframes cv-steam-start { 0% { opacity: 0; transform: translateY(6%) scale(.2, .1); } 55% { opacity: 1; } 100% { opacity: 1; transform: none; } }
.cv-steam i { position: absolute; bottom: 0; left: 50%; width: 46%; height: 86%; border-radius: 50% 50% 45% 45%; background: radial-gradient(ellipse 50% 60% at 50% 55%, rgba(255,255,255,.95), rgba(220,235,255,.6) 45%, rgba(255,255,255,0) 72%); filter: blur(4px); opacity: 0; transform-origin: 50% 100%; animation: cv-steam 4.2s ease-in-out infinite; mix-blend-mode: screen; }
.cv-steam i:nth-child(1) { margin-left: -30%; animation-delay: 0s; }
.cv-steam i:nth-child(2) { margin-left: -14%; animation-delay: 1.4s; height: 88%; }
.cv-steam i:nth-child(3) { margin-left: 2%; animation-delay: 2.8s; }
.cv-desk.is-cooling .cv-steam i { animation-play-state: paused; }
@keyframes cv-steam {
	0%   { opacity: 0; transform: translate(0, 22%) scale(.55, .45); }
	18%  { opacity: .9; }
	60%  { opacity: .6; transform: translate(-12%, -40%) scale(1, 1.05) skewX(-7deg); }
	100% { opacity: 0; transform: translate(10%, -95%) scale(1.35, 1.2) skewX(6deg); }
}
.cv-mug { position: absolute; left: 40.2%; top: 69.4%; width: 9.4%; height: 26%; border: 0; padding: 0; background: transparent; border-radius: 10px; cursor: pointer; pointer-events: auto; }
.cv-mug:focus-visible { outline: 2px solid var(--wp--preset--color--cyan); outline-offset: 2px; }
.cv-books { position: absolute; inset: 0; pointer-events: none; }
/* Each book is a link. The clickable shape is the outline of the book; hovering swaps in a lit copy of it. */
.cv-book { position: absolute; inset: 0; display: block; pointer-events: none; outline: 0; }
.cv-book svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.cv-book polygon { fill: rgba(0,0,0,0.001); stroke: none; pointer-events: auto; cursor: pointer; }
.cv-book-lit { image-rendering: auto; }
.cv-book-lit { position: absolute; display: block; opacity: 0; transition: opacity .22s ease; pointer-events: none; }
.cv-books.is-hint .cv-book-lit { animation: cv-book-hint .9s ease-in-out calc(var(--i) * .2s) 1 backwards; }
.cv-book:hover .cv-book-lit, .cv-book:focus-visible .cv-book-lit { opacity: 1; }
.cv-book:focus-visible polygon { stroke: var(--wp--preset--color--cyan); stroke-width: 2px; vector-effect: non-scaling-stroke; }
@keyframes cv-book-hint { 0%, 100% { opacity: 0; } 45% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .cv-steam, .cv-steam i, .cv-books.is-hint .cv-book-lit { animation: none; } .cv-steam i { opacity: .4; } .cv-pupil { transition: none; } }
@media (max-width: 900px) { .cv-desk { display: none; } }

/* ---- Legal pages ---------------------------------------------------------- */
.cv-legal { padding: 56px 0 72px; font-size: 17px; line-height: 1.7; color: var(--wp--preset--color--body); }
.cv-legal .cv-legal-meta { font-size: 14px; color: var(--wp--preset--color--slate); margin-bottom: 8px !important; }
.cv-legal h2 { font-size: 22px; margin-top: 36px !important; margin-bottom: 10px !important; }
.cv-legal p + p { margin-top: 14px !important; }
.cv-legal ul { margin: 12px 0 0 0 !important; padding-left: 24px; }
.cv-legal li { margin-bottom: 6px; }
.cv-legal a { text-decoration: underline; text-underline-offset: 2px; }

.cv-mail { color: var(--wp--preset--color--blue); }
.cv-footer .cv-mail { color: inherit; }

/* ---- Comments & guide posts ---------------------------------------------- */
.cv-comments { margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--wp--preset--color--line-2); }
.cv-comments .wp-block-comments-title { font-size: 22px; margin-bottom: 18px !important; }
.cv-comment { padding: 16px 0; border-bottom: 1px solid var(--wp--preset--color--line-2); }
.cv-comment .wp-block-comment-author-name { font-weight: 700; color: var(--wp--preset--color--ink); }
.cv-comment .wp-block-comment-date { color: var(--wp--preset--color--slate); }
.cv-comment .wp-block-comment-content p { font-size: 16px; margin: 0 !important; }
.cv-comment .wp-block-comment-reply-link a { color: var(--wp--preset--color--blue); font-weight: 600; }
.cv-comments .comment-respond { margin-top: 28px; }
.cv-comments .comment-respond .comment-reply-title { font-size: 20px; color: var(--wp--preset--color--ink); }
.cv-comments .comment-respond label { display: block; font-size: 14px; font-weight: 600; color: var(--wp--preset--color--ink); margin-bottom: 6px; }
.cv-comments .comment-respond input[type="text"], .cv-comments .comment-respond input[type="email"], .cv-comments .comment-respond input[type="url"], .cv-comments .comment-respond textarea { width: 100%; border: 1px solid var(--wp--preset--color--line); border-radius: 10px; padding: 11px 13px; font: inherit; font-size: 15px; background: #fff; }
.cv-comments .comment-respond .form-submit input { background: var(--wp--preset--color--blue); color: #fff; border: 0; border-radius: 10px; padding: 13px 24px; font: inherit; font-weight: 700; cursor: pointer; }
.cv-comments .comment-respond .form-submit input:hover { background: var(--wp--preset--color--blue-hover); }
.cv-comments .comment-respond .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.cv-article .cv-parts table { border-collapse: collapse; width: 100%; font-size: 15px; table-layout: auto !important; }
.cv-article .cv-parts td:nth-child(3) { white-space: nowrap; }
.cv-article .cv-parts td:last-child { width: 42%; color: var(--wp--preset--color--muted); }
@media (max-width: 700px) { .cv-article .cv-parts td:first-child { white-space: normal; } .cv-article .cv-parts th:last-child, .cv-article .cv-parts td:last-child { display: none; } }
.cv-article .cv-parts th { text-align: left; background: var(--wp--preset--color--light); color: var(--wp--preset--color--ink); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; padding: 10px 12px; border-bottom: 2px solid var(--wp--preset--color--line); }
.cv-article .cv-parts td { padding: 11px 12px; border-bottom: 1px solid var(--wp--preset--color--line-2); vertical-align: top; }
.cv-article .cv-parts td:first-child { font-weight: 600; color: var(--wp--preset--color--ink); white-space: nowrap; }
.cv-article .cv-parts figcaption { font-size: 13px; color: var(--wp--preset--color--slate); text-align: left; }
.cv-article .cv-guide-box { background: var(--wp--preset--color--navy-700); color: #fff; border-radius: 16px; padding: 24px 26px; }
.cv-article .cv-guide-box h3 { color: #fff; margin: 0 0 8px !important; font-size: 20px; }
.cv-article .cv-guide-box p { color: var(--wp--preset--color--on-dark); margin: 0 0 14px !important; }
.cv-article .cv-guide-box .wp-block-button__link { background: var(--wp--preset--color--cyan); color: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--cyan); }
.cv-article .wp-block-details { border: 1px solid var(--wp--preset--color--line-2); border-radius: 12px; padding: 14px 18px !important; margin-bottom: 10px !important; }
.cv-article .wp-block-details summary { font-weight: 700; color: var(--wp--preset--color--ink); cursor: pointer; }
.cv-article .wp-block-details p { margin-top: 10px !important; }
.cv-article .cv-vs table { border-collapse: collapse; width: 100%; font-size: 15px; table-layout: fixed; }
.cv-article .cv-vs th { text-align: left; background: var(--wp--preset--color--light); color: var(--wp--preset--color--ink); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; padding: 10px 12px; border-bottom: 2px solid var(--wp--preset--color--line); }
.cv-article .cv-vs th:first-child, .cv-article .cv-vs td:first-child { width: 22%; font-weight: 600; color: var(--wp--preset--color--ink); }
.cv-article .cv-vs th:last-child { background: #E3F2FF; color: var(--wp--preset--color--blue); }
.cv-article .cv-vs td { padding: 11px 12px; border-bottom: 1px solid var(--wp--preset--color--line-2); vertical-align: top; color: var(--wp--preset--color--muted); }
.cv-article .cv-vs td:last-child { background: #F4FAFF; color: var(--wp--preset--color--body); }
.cv-article .cv-vs figcaption { font-size: 13px; color: var(--wp--preset--color--slate); text-align: left; }

