/* BitNetica Blocks — bridge between core blocks and the component CSS (components.css, carried by bitnetica-core). */

/* Template wrappers */
.wp-block-template-part { display: contents; }
.wp-block-post-content.entry-content { max-width: none; }
.content-area .wp-block-post-content.entry-content { max-width: 760px; }

/* Core layout/gap rules must not add spacing the component CSS doesn't expect */
.site-header .wp-block-group, .topbar .wp-block-group { margin: 0; }
.topbar p, .footer-bottom p { margin: 0; }
.wp-block-group.wrap { margin-left: auto; margin-right: auto; }

/* Buttons: core/button -> .btn variants (default orange) */
.wp-block-buttons.btn-row { margin-top: 22px; gap: 14px; }
.cta-band .wp-block-buttons.btn-row { margin-top: 0; }
.wp-block-button .wp-block-button__link {
	display: inline-block; font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.65;
	padding: 14px 26px; border-radius: 8px; border: 2px solid transparent; cursor: pointer; text-decoration: none;
	background: var(--orange); color: #fff; box-shadow: 0 6px 18px rgba(232, 92, 42, 0.35);
	transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.wp-block-button .wp-block-button__link:hover { background: var(--orange-dark); color: #fff; text-decoration: none; transform: translateY(-2px); }
.wp-block-button.is-style-ghost .wp-block-button__link { background: transparent; border-color: var(--navy); color: var(--navy); box-shadow: none; }
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--navy); color: #fff; }
.wp-block-button.is-style-ghost-light .wp-block-button__link { background: transparent; border-color: rgba(255,255,255,0.7); color: #fff; box-shadow: none; }
.wp-block-button.is-style-ghost-light .wp-block-button__link:hover { background: #fff; color: var(--navy); }
.wp-block-button.is-style-white .wp-block-button__link { background: #fff; color: var(--orange-dark); box-shadow: none; }
.wp-block-button.is-style-white .wp-block-button__link:hover { background: var(--navy); color: #fff; }
#services .wp-block-button .wp-block-button__link, .founder-card .wp-block-button .wp-block-button__link,
.contact-info-card .wp-block-button .wp-block-button__link, #from-the-blog .wp-block-button .wp-block-button__link { box-shadow: none; }

/* ===== Sections built from core blocks (they replace the [bn_*] shortcode output) ===== */

/* Images inside component wrappers */
.icon-badge figure, .step__photo figure, .fcard__media figure, .founder-card figure { margin: 0; }
.icon-badge figure, .fcard__media figure { width: 100%; height: 100%; }
.icon-badge img { width: 100%; height: 100%; object-fit: contain; }
.founder-card img { border-radius: 16px; height: auto; width: 100%; max-width: 220px; }

/* Paragraphs/headings that used to be spans or bare text */
.card p.card__flag { position: absolute; top: 14px; right: 14px; margin: 0; background: var(--orange-soft); color: var(--orange-dark); font-family: var(--font-display); font-weight: 700; font-size: 0.68rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; }
.step .step__num { margin: 0; color: #fff; font-size: 1.35rem; line-height: 1; }
.bn-badge__num, .bn-badge__title, .bn-badge__sub { margin: 0; }
.bn-badge .bn-badge__bar { margin: 0; }
.more-link { margin-top: 18px; }
.more-link a { font-family: var(--font-display); font-weight: 700; }
.contact-info-card .contact-info-serving { margin-bottom: 16px; }
.contact-info-card .wp-block-buttons { justify-content: center; margin-top: 0; }
.contact-info-card h3 { margin-top: 0; }
.center > .wp-block-buttons.btn-row { margin-top: 0; justify-content: center; }

/* Partners strip */
.partners-label { color: var(--slate); font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; text-align: center; }
.partners p { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; color: #8ba0b1; letter-spacing: 0.02em; }

/* FAQ: core/details */
.faq__item > p { margin: 0; padding: 0 0 18px; color: var(--slate); }

/* Featured cards: the whole card is clickable (stretched link on the title) */
article.fcard {
	position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
	overflow: hidden; display: flex; flex-direction: column; text-decoration: none;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
article.fcard:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: var(--orange); }
article.fcard:hover .fcard__media img { transform: scale(1.06); }
article.fcard:hover .fcard__body h3 a { color: var(--orange-dark); }
.fcard__body h3 a { color: var(--navy); }
.fcard__body h3 a:hover { text-decoration: none; }
.fcard__body h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fcard__body .more a { text-decoration: none; }

.card p.more { margin-bottom: 0; }
.has-text-align-center.lead { margin-left: auto; margin-right: auto; }

/* The post-content wrapper carries core's .entry-content class; keep its image rounding off component images. */
.entry-content .step__photo img { border-radius: 50%; }
.entry-content .founder-card img { border-radius: 16px; }
.entry-content .icon-badge img, .entry-content .fcard__media img { border-radius: 0; }

/* =====================================================================================
   HOME PAGE TYPOGRAPHY PASS (scoped to body.is-home; promote by dropping the prefix)
   Scale (fluid, ~1.2 ratio):  kicker .8125 · small .875 · body 1 · lead 1.0625–1.1875
                               h3 1.1875 · h2 1.75–2.5 · h1 2.125–3.5  (rem)
   Goals: one consistent set of sizes, balanced headings (no orphans), comfortable
   measure, weights that exist in the loaded fonts (Geist 400–600, Archivo 500–800),
   centred headings never sit above left-aligned text.
   ===================================================================================== */
body.is-home {
	--t-kicker: 0.8125rem;
	--t-small: 0.875rem;
	--t-lead: clamp(1.0625rem, 1rem + 0.35vw, 1.1875rem);
	--t-h3: 1.1875rem;
	--t-h2: clamp(1.75rem, 1.35rem + 1.5vw, 2.5rem);
	--t-h1: clamp(2.125rem, 1.4rem + 2.8vw, 3.5rem);
	--ink-soft: #4a5a68;
	text-rendering: optimizeLegibility;
	font-kerning: normal;
}
/* balanced headings / pretty paragraphs */
body.is-home main h1, body.is-home main h2, body.is-home main h3, body.is-home main .lead, body.is-home main .kicker { text-wrap: balance; }
body.is-home main p, body.is-home main li { text-wrap: pretty; }

/* hero */
/* size stays as set in the page (user asked for a larger kicker); only tracking/rhythm refined */
body.is-home .hero .kicker, body.is-home-es .hero .kicker { font-weight: 700; letter-spacing: 0.1em; margin-bottom: 18px; max-width: 30em; text-shadow: 0 1px 12px rgba(9, 22, 34, 0.6); }
body.is-home .hero h1, body.is-home-es .hero h1 { font-size: var(--t-h1); line-height: 1.06; letter-spacing: -0.018em; margin-bottom: 0.45em; text-shadow: 0 2px 22px rgba(9, 22, 34, 0.6), 0 1px 3px rgba(9, 22, 34, 0.35); }
body.is-home .hero .lead, body.is-home-es .hero .lead { font-size: 1.1875rem; font-weight: 500; line-height: 1.55; max-width: 34em; text-shadow: 0 1px 14px rgba(13, 34, 51, 0.55); text-wrap: pretty; }

/* section heads: kicker -> h2 -> lead */
body.is-home .section .kicker { font-size: var(--t-kicker); letter-spacing: 0.16em; line-height: 1.4; margin-bottom: 14px; }
body.is-home .section h2.sq { font-size: var(--t-h2); line-height: 1.12; letter-spacing: -0.014em; margin-bottom: 0.4em; }
body.is-home .section .center .lead, body.is-home .section .lead { font-size: var(--t-lead); line-height: 1.6; max-width: 40em; }

/* credibility badges */
body.is-home .bn-badge__num { font-variant-numeric: lining-nums tabular-nums; letter-spacing: -0.02em; }
body.is-home .bn-badge__title { font-size: var(--t-kicker); font-weight: 600; letter-spacing: 0.14em; line-height: 1.5; }
body.is-home .bn-badge__sub { font-size: 0.9375rem; line-height: 1.6; text-wrap: balance; }

/* service cards */
body.is-home .card h3 { font-size: var(--t-h3); line-height: 1.25; letter-spacing: -0.01em; }
body.is-home .card p:not(.more):not(.card__flag) { font-size: 0.9375rem; line-height: 1.6; }
body.is-home .card .more { font-size: var(--t-small); letter-spacing: 0.01em; }
body.is-home .card p.card__flag { font-size: 0.6875rem; letter-spacing: 0.08em; }

/* "Why choose" rows: heading was centred above left-aligned copy */
body.is-home .card--row h3, body.is-home .card--row .card__body h3 { text-align: left; }
body.is-home .card--row p { font-size: 0.9375rem; line-height: 1.6; }

/* founder */
body.is-home .founder-card blockquote { max-width: 62ch; }
body.is-home .founder-card blockquote p { font-size: 1.0625rem; line-height: 1.7; margin-bottom: 1em; }
body.is-home .founder-card .sig { font-size: 0.9375rem; letter-spacing: 0.02em; }

/* steps */
body.is-home .step h3 { font-size: 1.375rem; line-height: 1.2; }
body.is-home .step p:not(.step__num) { font-size: 1rem; line-height: 1.6; max-width: 26em; margin-left: auto; margin-right: auto; }

/* reviews */
body.is-home .review-card__text { font-size: 1rem; line-height: 1.65; }
body.is-home .review-card__by { font-size: var(--t-small); line-height: 1.5; }

/* FAQ */
body.is-home .faq__item summary { font-size: 1.0625rem; line-height: 1.4; }
body.is-home .faq__item > p { font-size: 1rem; line-height: 1.7; color: var(--ink-soft); max-width: 60ch; }

/* contact + form */
body.is-home #contact label, body.is-home #contact .ff-el-input--label label { font-size: 0.9375rem; font-weight: 500; }
body.is-home .contact-info-card p { font-size: 0.9375rem; line-height: 1.6; }
body.is-home .contact-info-card h3 { font-size: var(--t-h3); }

/* blog cards */
body.is-home .post-card-mini h3 { font-size: 1.1875rem; line-height: 1.3; }
body.is-home .post-card-mini__body p { font-size: 1rem; line-height: 1.6; }
body.is-home .post-card-mini__body p.post-meta { font-size: 0.875rem; }
body.is-home .post-card-mini__body .more { font-size: 1rem; }
body.is-home .post-card-mini__body .more__label { font-size: 0.9375rem; }

/* CTA band */
body.is-home .cta-band h2 { font-size: var(--t-h2); line-height: 1.12; letter-spacing: -0.014em; }
body.is-home .cta-band p { font-size: var(--t-lead); line-height: 1.55; }

/* buttons: tighter, even tracking */
body.is-home .wp-block-button__link, body.is-home .btn { letter-spacing: 0.005em; line-height: 1.3; }

/* Header: centre the menu between the logo and the Book a Consultation button (desktop nav only) */
@media (min-width: 941px) {
	body.bn-nav2 .main-nav--v2 { flex: 1 1 auto; }
	body.bn-nav2 .main-nav--v2 .bn-menu { margin-left: auto; margin-right: auto; padding-right: 12px; /* optical balance: last item ends with a chevron */ }
	body.bn-nav2 .main-nav--v2 .nav-book { margin-left: 0; }
}

/* =====================================================================================
   HEADER / PRIMARY MENU — design + typography pass (site-wide)
   Principles: one type system (labels Archivo 600, CTA Archivo 700, panel copy Geist 500),
   >=44px targets, a non-colour "you are here" cue (underline), one highlighted section,
   readable panel headings (>=12px), CTA as prominent as the links it sits beside.
   ===================================================================================== */
.main-nav--v2 .bn-link { font-size: 1.0625rem; font-weight: 600; letter-spacing: 0.003em; padding: 12px 10px; min-height: 44px; transition: color .15s ease; }
.main-nav--v2 .bn-menu { gap: 2px; }
.main-nav--v2 .bn-item > .bn-row { position: relative; }
.main-nav--v2 .bn-item.is-current > .bn-row::after {
	content: ""; position: absolute; left: 10px; right: 10px; bottom: 3px; height: 2px; border-radius: 2px; background: var(--orange);
}
.main-nav--v2 .bn-item.is-current > .bn-row > .bn-link { color: var(--orange-dark); }

/* CTA: sentence case, same optical weight as the links */
body.bn-nav2 .main-nav--v2 a.nav-book { font-size: 0.9375rem; font-weight: 700; letter-spacing: 0; text-transform: none; line-height: 1.2; padding: 12px 20px; }

/* dropdown panels */
.main-nav--v2 .bn-col__title { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.075em; line-height: 1.4; margin-bottom: 10px; }
.main-nav--v2 .bn-sublink { font-size: 0.9375rem; line-height: 1.3; padding: 9px 10px; }
.main-nav--v2 .bn-all { font-size: 0.9375rem; padding: 8px 10px; }
.main-nav--v2 .bn-link:focus-visible, .main-nav--v2 .bn-toggle:focus-visible, .main-nav--v2 .bn-sublink:focus-visible, .main-nav--v2 .bn-all:focus-visible, .nav-book:focus-visible {
	outline: 2px solid var(--orange); outline-offset: 2px; border-radius: 8px;
}

/* tighter desktop range keeps everything on one line */
@media (min-width: 941px) and (max-width: 1199px) {
	.main-nav--v2 .bn-link { font-size: 0.95rem; padding: 12px 7px; }
	.main-nav--v2 .bn-item.is-current > .bn-row::after { left: 7px; right: 7px; }
	body.bn-nav2 .main-nav--v2 a.nav-book { font-size: 0.85rem; padding: 11px 14px; }
}

/* mobile / tablet menu */
@media (max-width: 940px) {
	.main-nav--v2 .bn-link { font-size: 1.0625rem; padding: 14px 10px; min-height: 48px; }
	.main-nav--v2 .bn-item.is-current > .bn-row::after { left: 10px; right: auto; width: 28px; bottom: 6px; }
	.main-nav--v2 .bn-col__title { font-size: 0.75rem; letter-spacing: 0.1em; padding-left: 12px; }
	.main-nav--v2 .bn-sublink { font-size: 1rem; color: var(--navy); padding: 12px 12px; }
	body.bn-nav2 .main-nav--v2 a.nav-book { font-size: 1rem; padding: 14px 20px; }
}
/* small phones: the tagline would wrap to two lines above the phone number; keep the tap-to-call row */
@media (max-width: 600px) {
	.topbar .wrap { justify-content: space-between; align-items: center; flex-wrap: nowrap; }
	.topbar .wrap > p:first-child .topbar__sep, .topbar .wrap > p:first-child .topbar__book { display: none; }
	.topbar .wrap > p:first-child .lang-long { display: none; }
	.topbar .wrap > p:first-child .lang-short { display: inline; }
	.topbar a.topbar__lang { padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
	.topbar { font-size: 1rem !important; }
}

/* Mega-menu: column divider a bit thicker (and a touch more visible than the near-white it was) */
@media (min-width: 941px) {
	.main-nav--v2 .bn-col + .bn-col { border-left: 2px solid var(--line); }
}
/* Narrower desktop: long column headings can wrap; reserve two lines so the links below stay aligned across columns */
@media (min-width: 941px) and (max-width: 1279px) {
	.main-nav--v2 .bn-panel--mega .bn-col__title { min-height: 2.8em; }
}

/* =====================================================================================
   WHY CHOOSE US (home) — four reasons in one row, icons from the service-icon family,
   soft non-interactive cards (no hover lift: they are not links), one orange CTA.
   ===================================================================================== */
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.why-card { background: var(--mist); border-radius: 16px; padding: 28px 24px 26px; display: flex; flex-direction: column; gap: 16px; }
.why-card__icon { width: 64px; height: 64px; flex: none; }
.why-card__icon figure { margin: 0; width: 100%; height: 100%; }
.why-card__icon img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.why-card__body h3 { font-size: 1.1875rem; line-height: 1.25; letter-spacing: -0.01em; margin: 0 0 8px; text-align: left; }
.why-card__body p { font-size: 0.9375rem; line-height: 1.6; color: var(--ink-soft, #4a5a68); margin: 0; }
.why-cta .wp-block-buttons { margin-top: 0; }
.why-cta__note { margin: 14px 0 0; font-size: 0.875rem; letter-spacing: 0.01em; color: var(--slate); }
@media (max-width: 1100px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
	.why-grid { grid-template-columns: 1fr; gap: 12px; }
	.why-card { flex-direction: row; align-items: flex-start; gap: 16px; padding: 20px 18px; }
	.why-card__icon { width: 52px; height: 52px; }
	.why-card__body h3 { margin-bottom: 4px; }
	.why-cta .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.why-cta .wp-block-button, .why-cta .wp-block-button__link { width: 100%; text-align: center; }
}
.nowrap { white-space: nowrap; }
.why-card__icon { width: 72px; height: 72px; }
@media (max-width: 640px) { .why-card__icon { width: 56px; height: 56px; } }

/* =====================================================================================
   SECTION RHYTHM — more breathing room between sections (site-wide)
   One token drives it: ~72px above and below each section on desktop, 40px on phones.
   (Replaces the old 48px top / 20px bottom, which put only ~68px between same-colour sections.)
   Sections that set their own tighter padding inline (nearby cities, partners strip, map) keep it.
   ===================================================================================== */
:root { --space-section: clamp(2.5rem, 1.25rem + 3.5vw, 4.5rem); }
.section { padding-top: var(--space-section); padding-bottom: var(--space-section); }
#services { padding-top: var(--space-section); }
/* interior-page content block under the hero */
.content-area { padding-top: calc(var(--space-section) * 0.9); padding-bottom: calc(var(--space-section) * 0.9); }
/* a section directly under the navy credibility strip needs a little less than a full section */
.bn-badges + .section { padding-top: calc(var(--space-section) * 0.9); }

/* Equipment gallery: WordPress marks lazy images sizes="auto", which makes them size-contained, and the
   (invisible) captions then claimed the whole 340px figure so the photo collapsed to 0px high. Captions are only
   used by the lightbox (read from the markup), so take them out of the strip's layout. */
.bn-equipment-track figure.carousel__item > figcaption { display: none; }
.bn-equipment-track figure.carousel__item > img { flex: 1 1 auto; min-height: 0; }

/* =====================================================================================
   HOW WE WORK TOGETHER — lean version: three photos, a number, a title, one sentence.
   Numbered badges give the order; text is centred under each photo on desktop.
   ===================================================================================== */
.section--how .how-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; position: relative; }
.how-step { position: relative; z-index: 1; display: flex; flex-direction: column; }
.how-step__media { position: relative; aspect-ratio: 3 / 2; border-radius: 14px; overflow: hidden; background: var(--navy-deep); border: 1px solid rgba(255, 255, 255, 0.12); }
.how-step__media figure { margin: 0; width: 100%; height: 100%; }
.how-step__media img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.how-step:nth-child(1) .how-step__media img { object-position: 42% 40%; }
.how-step:nth-child(2) .how-step__media img { object-position: 50% 40%; }
.how-step:nth-child(3) .how-step__media img { object-position: 30% 40%; }
.how-step .how-step__num {
	position: absolute; left: 16px; top: 16px; margin: 0; width: 44px; height: 44px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff;
	font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; line-height: 1; border: 3px solid var(--navy);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35);
}
.how-step__body { padding: 20px 4px 0; }
.how-step__body h3 { color: #fff; font-size: 1.375rem; line-height: 1.2; margin: 0 0 8px; text-align: left; }
.how-step__body p { color: #c6d3de; font-size: 1rem; line-height: 1.6; margin: 0; text-align: left; max-width: 30em; }
@media (min-width: 901px) {
	.how-step__body { text-align: center; }
	.how-step__body h3, .how-step__body p { text-align: center; }
	.how-step__body p { margin-left: auto; margin-right: auto; }
}
/* tablet + phone: photo beside the text so three steps stay short; vertical dashed line through the badges */
@media (max-width: 900px) {
	.section--how .how-steps { grid-template-columns: 1fr; gap: 28px; }
	.how-step { flex-direction: row; align-items: center; gap: 18px; }
	.how-step__media { aspect-ratio: 1 / 1; width: 38%; flex: none; }
	.how-step__body { padding: 0; }
}
@media (max-width: 560px) {
	.how-step__media { width: 40%; }
	.how-step__body h3 { font-size: 1.1875rem; }
	.how-step__body p { font-size: 0.9375rem; }
	.how-step .how-step__num { left: 8px; top: 8px; width: 34px; height: 34px; font-size: 1rem; }
}

/* step sentences break into evenly sized lines (no one-word second line) */
.how-step__body p { text-wrap: balance; }
.section--how .how-step__body p { text-wrap: balance; }

/* Why-choose lead is one short line on desktop */
.section--why .section .lead, body.is-home .section--why .center .lead, .section--why .center .lead { max-width: 52em; }

/* Contact section lead: one line on desktop */
#contact .center .lead { max-width: 56em; }

/* What-we-do lead: one line on desktop */
#services .center .lead { max-width: 56em; }

/* Blog carousel: "Read more →" link (the title is no longer repeated), and the arrows sit on the photo, not over the date */
.post-card-mini__body .more::after { content: " →"; }
.post-card-mini__body .more { margin-top: 4px; }
#from-the-blog .carousel__nav { top: 102px; }

/* =====================================================================================
   PROOF CARD (home, under the hero) — a white card straddling the hero and the next section:
   four items, each an illustrated icon from the brand family + a bold claim + one proof line.
   ===================================================================================== */
.proof { position: relative; z-index: 6; margin-top: -56px; padding: 0; background: transparent; }
.proof__card { background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 22px 54px rgba(9, 22, 34, 0.24); padding: 26px 10px; }
.proof__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.proof__item { display: flex; align-items: center; gap: 16px; padding: 4px 24px; border-left: 1px solid var(--line); }
.proof__item:first-child { border-left: 0; }
.proof__icon { flex: none; width: 56px; height: 56px; }
.proof__icon figure { margin: 0; width: 100%; height: 100%; }
.proof__icon img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.proof .proof__claim { margin: 0 0 4px; font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; line-height: 1.15; letter-spacing: -0.012em; color: var(--navy); }
.proof .proof__line { margin: 0; font-size: 0.9375rem; line-height: 1.45; color: var(--ink-soft, #4a5a68); text-wrap: balance; }
.proof + .section { padding-top: calc(var(--space-section) + 44px); }
@media (max-width: 900px) {
	.proof { margin-top: -36px; }
	.proof__card { padding: 22px 8px; }
	.proof__grid { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
	.proof__item { flex-direction: column; align-items: flex-start; gap: 10px; padding: 4px 16px; }
	.proof__item:nth-child(odd) { border-left: 0; }
	.proof__icon { width: 48px; height: 48px; }
	.proof .proof__claim { font-size: 1.125rem; }
	.proof .proof__line { font-size: 0.875rem; }
	.proof + .section { padding-top: calc(var(--space-section) + 28px); }
}
/* proof card: top-align so the four claims share one baseline even when the proof lines wrap differently */
.proof__item { align-items: flex-start; gap: 14px; padding: 4px 20px; }
.proof__icon { margin-top: 2px; }
@media (max-width: 900px) { .proof__item { padding: 4px 16px; } .proof__icon { margin-top: 0; } }
/* proof card: below the overlap, the band behind the card is the same grey as the next section (no white strip) */
.proof { background: linear-gradient(to bottom, transparent 56px, var(--mist) 56px); }
.proof + .section { padding-top: calc(var(--space-section) * 0.85); }
@media (max-width: 900px) {
	.proof { background: linear-gradient(to bottom, transparent 36px, var(--mist) 36px); }
	.proof + .section { padding-top: calc(var(--space-section) * 0.85); }
}
/* proof card: a tighter, softer shadow (was 22px offset / 54px blur) */
.proof__card { box-shadow: 0 10px 24px rgba(9, 22, 34, 0.15), 0 2px 6px rgba(9, 22, 34, 0.08); }
/* proof card: no shadow (the 1px border defines the edge) */
.proof__card { box-shadow: none; }
/* proof card: navy card (the grey section sits below it); icons sit on white tiles so their navy stays visible */
.proof__card { background: #0e2f56; border-color: #0e2f56; }
.proof__item { border-left-color: rgba(255, 255, 255, 0.16); }
.proof .proof__claim { color: #fff; }
.proof .proof__line { color: #b9c8d6; }
.proof__icon { width: 60px; height: 60px; padding: 8px; background: #fff; border-radius: 14px; }
.proof__icon figure { width: 100%; height: 100%; }
@media (max-width: 900px) { .proof__icon { width: 52px; height: 52px; padding: 7px; } }

/* top bar: Se habla español + a quiet free-consultation link */
.topbar__sep { margin: 0 6px; opacity: .55; }
.topbar a.topbar__book { color: #ffb48f; font-weight: 600; }
.topbar a.topbar__book:hover { color: #fff; text-decoration: underline; }

/* =====================================================================================
   FOOTER — four columns (brand + social | top services | company | contact with icons), a one-line "Serving:" strip.
   ===================================================================================== */
.site-footer .footer-grid { grid-template-columns: 1.15fr 1.25fr 1fr 1.35fr; gap: 48px; padding: 64px 0 40px; }
.site-footer h4 { font-size: 0.8125rem; letter-spacing: 0.12em; color: #fff; margin-bottom: 18px; }
.site-footer li { margin-bottom: 10px; }
.site-footer li a { font-size: 0.9375rem; }
.site-footer .footer-more { color: var(--orange); font-weight: 700; }
.site-footer .footer-more:hover { color: #fff; }
.footer-brand .footer-tagline { margin: 6px 0 0; font-size: 1rem; line-height: 1.45; }
.footer-brand .social-bar { margin-top: 20px; }
/* contact column with round icons (like the Crestwood / Psychic Ames footers) */
.footer-contact__row { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 18px; }
.footer-contact__row p { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: #dce6ee; padding-top: 3px; }
.footer-contact__row { align-items: center; gap: 14px; margin-bottom: 14px; }
.footer-contact__icon { flex: none; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.14); color: #dce6ee; }
.footer-contact__icon svg { width: 20px; height: 20px; }
.site-footer .footer-phone { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; color: #fff; letter-spacing: 0.01em; }
.footer-contact .addr-note { font-size: 0.8125rem; opacity: .75; }
.footer-areas { border-top: 1px solid rgba(255, 255, 255, 0.12); padding: 20px 0; }
.footer-areas p { margin: 0; font-size: 0.875rem; line-height: 1.9; color: #8ba0b1; }
.footer-areas strong { color: #dce6ee; font-weight: 600; margin-right: 4px; }
.footer-areas a { color: #b9c8d5; }
.footer-areas a:hover { color: var(--orange); }
.footer-areas__dot { color: rgba(255, 255, 255, 0.3); }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.12); }
@media (max-width: 1000px) { .site-footer .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; } }
@media (max-width: 560px) { .site-footer .footer-grid { grid-template-columns: 1fr; padding: 44px 0 28px; } }
.footer-areas p { text-wrap: balance; }

/* Footer contact icons: bigger glyphs, and the same orange swap + small lift on hover as the social icons */
.footer-contact__icon { transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease; }
.footer-contact__icon svg { width: 24px; height: 24px; }
.footer-contact__row:hover .footer-contact__icon { background: var(--orange); border-color: var(--orange); color: #fff; transform: translateY(-2px); }
.site-footer .social-bar a svg { width: 24px; height: 24px; }

/* Footer logo: links home; a small lift and brightening on hover */
.footer-logo a { display: inline-block; transition: transform .2s ease, filter .2s ease; }
.footer-logo a:hover { transform: translateY(-3px) scale(1.03); filter: brightness(1.12) drop-shadow(0 6px 14px rgba(232, 92, 42, 0.35)); text-decoration: none; }
.footer-logo a:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { .footer-logo a:hover { transform: none; } }

/* footer "Serving:" line centred */
.footer-areas p { text-align: center; }
.footer-areas a { white-space: nowrap; }

/* =====================================================================================
   FOOTER ICONS — solid orange circles, white glyphs; on hover: lighter orange, lift + grow, soft orange glow,
   and a slight glyph tilt (same easing/timing as the Psychic Ames footer icons).
   ===================================================================================== */
.site-footer .social-bar a, .footer-contact__icon {
	background: var(--orange); border: 0; color: #fff; width: 42px; height: 42px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 rgba(232, 92, 42, 0);
	transition: transform .35s cubic-bezier(0.16, 0.8, 0.24, 1), background-color .3s ease, box-shadow .35s ease;
}
.site-footer .social-bar a svg, .footer-contact__icon svg {
	display: block; width: 22px; height: 22px; transform: none; transition: transform .35s cubic-bezier(0.16, 0.8, 0.24, 1);
}
.site-footer .social-bar a:hover, .footer-contact__row:hover .footer-contact__icon {
	background: #f07a4a; color: #fff; transform: translateY(-4px) scale(1.08); box-shadow: 0 10px 24px rgba(232, 92, 42, 0.45), 0 2px 8px rgba(232, 92, 42, 0.25);
}
.site-footer .social-bar a:hover svg, .footer-contact__row:hover .footer-contact__icon svg { transform: rotate(8deg) scale(1.1); }
.site-footer .social-bar a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
	.site-footer .social-bar a:hover, .footer-contact__row:hover .footer-contact__icon, .site-footer .social-bar a:hover svg, .footer-contact__row:hover .footer-contact__icon svg { transform: none; }
}
.site-footer .social-bar a svg { margin: 0; }

/* Get-in-touch card: social icons get the same orange circle + hover effect as the footer icons */
.contact-info-card .social-bar a {
	background: var(--orange); border: 0; color: #fff; width: 42px; height: 42px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 rgba(232, 92, 42, 0);
	transition: transform .35s cubic-bezier(0.16, 0.8, 0.24, 1), background-color .3s ease, box-shadow .35s ease;
}
.contact-info-card .social-bar a svg { display: block; width: 22px; height: 22px; margin: 0; transform: none; transition: transform .35s cubic-bezier(0.16, 0.8, 0.24, 1); }
.contact-info-card .social-bar a:hover {
	background: #f07a4a; color: #fff; transform: translateY(-4px) scale(1.08); box-shadow: 0 10px 24px rgba(232, 92, 42, 0.45), 0 2px 8px rgba(232, 92, 42, 0.25);
}
.contact-info-card .social-bar a:hover svg { transform: rotate(8deg) scale(1.1); }
.contact-info-card .social-bar a:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .contact-info-card .social-bar a:hover, .contact-info-card .social-bar a:hover svg { transform: none; } }

/* =====================================================================================
   GET IN TOUCH — info card ("Prefer to talk?"): big phone, full-width CTA, icon + label/value rows,
   stretched to the form's height; a tap-to-call button above the form on phones.
   ===================================================================================== */
.contact-info-col { align-self: stretch; }
.contact-info-card { height: 100%; display: flex; flex-direction: column; text-align: left; padding: 34px 32px; gap: 0; }
.contact-info-card h3.cinfo__title { margin: 0 0 6px; font-family: var(--font-display); font-weight: 800; font-size: 1.625rem; line-height: 1.15; letter-spacing: -0.015em; color: var(--navy); text-align: left; }
.contact-info-card p.cinfo__sub { margin: 0 0 18px; font-size: 1rem; line-height: 1.5; color: var(--ink-soft, #4a5a68); }
.contact-info-card p.cinfo__phone { margin: 0 0 18px; line-height: 1.1; }
.contact-info-card p.cinfo__phone a { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.75rem, 1.4rem + 1vw, 2.125rem); letter-spacing: -0.01em; color: var(--orange-dark); }
.contact-info-card p.cinfo__phone a:hover { color: var(--orange); text-decoration: none; }
.contact-info-card .cinfo__cta { margin: 0 0 26px; }
.contact-info-card .cinfo__cta .wp-block-button { width: 100%; }
.contact-info-card .cinfo__cta .wp-block-button__link { width: 100%; text-align: center; }
.cinfo__rows { display: flex; flex-direction: column; gap: 18px; padding-top: 24px; border-top: 1px solid var(--line); }
.cinfo__row { display: flex; align-items: flex-start; gap: 14px; }
.cinfo__icon { flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--orange); color: #fff; display: flex; align-items: center; justify-content: center; }
.cinfo__icon svg { display: block; width: 22px; height: 22px; margin: 0; }
.cinfo__text p { margin: 0; text-align: left; }
.contact-info-card p.cinfo__label { font-family: var(--font-display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); margin: 0 0 2px; }
.contact-info-card p.cinfo__value { font-size: 1.0625rem; line-height: 1.45; color: var(--ink); margin: 0; }
.contact-info-card p.cinfo__note { font-size: 0.875rem; line-height: 1.4; color: var(--slate); margin: 3px 0 0; }
.cinfo__social { margin-top: auto; padding-top: 26px; }
.contact-info-card p.cinfo__follow { font-family: var(--font-display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); margin: 0 0 10px; text-align: left; }
.cinfo__social .social-bar { justify-content: flex-start; margin-top: 0; }
.contact-callnow { display: none; margin-bottom: 18px; }
@media (max-width: 860px) {
	.contact-callnow { display: flex; }
	.contact-callnow .wp-block-button { width: 100%; }
	.contact-callnow .wp-block-button__link { width: 100%; text-align: center; }
	.contact-info-card { padding: 26px 22px; height: auto; }
}
/* specificity fixes for the card */
.contact-info-card h3.wp-block-heading.cinfo__title { font-family: var(--font-display); font-weight: 800; font-size: 1.75rem; line-height: 1.15; letter-spacing: -0.015em; color: var(--navy); margin: 0 0 6px; }
.wp-block-buttons.contact-callnow { display: none; }
@media (max-width: 860px) { .wp-block-buttons.contact-callnow { display: flex; } }
@media (min-width: 861px) { .contact-info-card { padding: 30px 32px; } .contact-info-card .cinfo__cta { margin-bottom: 22px; } .cinfo__rows { gap: 16px; padding-top: 22px; } .cinfo__social { padding-top: 22px; } }

/* =====================================================================================
   SERVICE CARDS — whole card is the link (stretched title link), a clear hover state, and a bigger
   "Learn more" pinned to the bottom of every card so the links line up across each row.
   ===================================================================================== */
.grid--3 > .card { cursor: pointer; align-self: stretch; }
.grid--3 > .card h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.grid--3 > .card:hover, .grid--3 > .card:focus-within {
	transform: translateY(-5px); border-color: var(--line); border-top-color: var(--orange); box-shadow: 0 14px 30px rgba(18, 42, 63, 0.12);
}
.grid--3 > .card:focus-within { outline: 2px solid var(--orange); outline-offset: 2px; }
.grid--3 > .card h3 a { text-decoration: none; }
.grid--3 > .card:hover h3 a { color: var(--orange-dark); }
.grid--3 > .card p.more { margin: auto 0 0; padding-top: 16px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.grid--3 > .card p.more a { color: var(--orange-dark); }
.grid--3 > .card p.more::after { content: "\00a0→"; display: inline-block; transition: transform .2s ease; color: var(--orange-dark); }
.grid--3 > .card:hover p.more::after { transform: translateX(5px); }
.grid--3 > .card p.card__flag { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .grid--3 > .card:hover, .grid--3 > .card:hover p.more::after { transform: none; } }

/* Service cards: shorter top to bottom (same width) */
.grid--3 > .card { padding: 20px 26px 18px; }
.grid--3 > .card .icon-badge { width: 52px; height: 52px; margin-bottom: 10px; }
.grid--3 > .card h3 { margin: 0 0 6px; }
.grid--3 > .card p:not(.more):not(.card__flag) { margin: 0 0 8px; }
.grid--3 > .card p.more { padding-top: 6px; }

/* =====================================================================================
   SERVICE PAGE COMPONENTS (svc-*) — first used on Managed IT Services
   ===================================================================================== */
.svc-split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; }
.svc-split__text .lead { max-width: 34em; }
.svc-split__media figure { margin: 0; }
.svc-split__media img { width: 100%; height: auto; border-radius: 18px; box-shadow: 0 18px 44px rgba(18, 42, 63, 0.18); display: block; }
.svc-note { margin: 14px 0 0; font-size: 0.9375rem; color: var(--slate); }
.svc-split__text .wp-block-buttons { margin-top: 26px; }

.svc-facts { background: #0e2f56; padding: 34px 0; }
.svc-facts__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.svc-fact { text-align: center; padding: 4px 18px; border-left: 1px solid rgba(255, 255, 255, 0.14); }
.svc-fact:first-child { border-left: 0; }
.svc-facts .svc-fact__big { margin: 0 0 4px; font-family: var(--font-display); font-weight: 800; font-size: 2rem; line-height: 1.1; letter-spacing: -0.015em; color: #fff; }
.svc-facts .svc-fact__small { margin: 0; font-size: 1rem; line-height: 1.4; color: #b9c8d6; }

.svc-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.svc-compare__col { border-radius: 18px; padding: 30px 32px; border: 1px solid var(--line); background: #fff; }
.svc-compare__col--before { background: #f7f8fa; }
.svc-compare__col--after { border-color: var(--orange); box-shadow: 0 10px 26px rgba(232, 92, 42, 0.12); }
.svc-compare .svc-compare__label { margin: 0 0 14px; font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; color: var(--navy); }
.svc-compare__col--before .svc-compare__label { color: var(--slate); }

/* tick / cross lists */
.svc-checks, .svc-x { list-style: none; margin: 0; padding: 0; }
.svc-checks li, .svc-x li { position: relative; padding: 7px 0 7px 34px; font-size: 1.0625rem; line-height: 1.45; color: var(--ink); }
.svc-checks li::before, .svc-x li::before { position: absolute; left: 0; top: 8px; width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 800; }
.svc-checks li::before { content: "✓"; background: var(--orange); color: #fff; }
.svc-x li { color: var(--slate); }
.svc-x li::before { content: "✕"; background: #e6eaee; color: #7a8896; }

.svc-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.svc-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--navy); border-radius: 18px; padding: 24px 26px 26px; transition: transform .2s ease, box-shadow .2s ease, border-top-color .2s ease; }
.svc-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(18, 42, 63, 0.12); border-top-color: var(--orange); }
.svc-card__icon { width: 56px; height: 56px; margin-bottom: 14px; }
.svc-card__icon figure { margin: 0; width: 100%; height: 100%; }
.svc-card__icon img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.svc-card h3 { margin: 0 0 8px; font-size: 1.1875rem; line-height: 1.25; text-align: left; }
.svc-card p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }

.svc-pro { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px 36px; }
.svc-pro__item { display: flex; gap: 18px; align-items: flex-start; }
.svc-num { flex: none; margin: 0; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; line-height: 1; }
.svc-pro__item h3 { margin: 2px 0 6px; font-size: 1.1875rem; text-align: left; }
.svc-pro__item p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.svc-closing { margin: 34px auto 0; max-width: 40em; text-align: center; font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; line-height: 1.4; color: var(--navy); text-wrap: balance; }

.svc-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.svc-step { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 16px; padding: 24px 22px; }
.svc-step__num { margin: 0 0 12px; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1.1rem; }
.svc-step h3 { margin: 0 0 6px; color: #fff; font-size: 1.125rem; text-align: left; }
.svc-step p:not(.svc-step__num) { margin: 0; color: #c6d3de; font-size: 0.9375rem; line-height: 1.55; text-align: left; }
.svc-callout { margin: 30px auto 0; max-width: 46em; padding: 20px 26px; border-radius: 14px; background: rgba(232, 92, 42, 0.14); border: 1px solid rgba(232, 92, 42, 0.4); }
.svc-callout p { margin: 0; color: #fff; font-size: 1.0625rem; line-height: 1.55; text-align: center; }
.svc-callout strong { color: #ffb48f; }

.svc-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.svc-panel { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 30px 32px; display: flex; flex-direction: column; }
.svc-panel h3 { margin: 0 0 12px; font-size: 1.375rem; text-align: left; }
.svc-panel > p { margin: 0 0 12px; color: var(--ink-soft, #4a5a68); text-align: left; }
.svc-panel .wp-block-buttons { margin-top: auto; padding-top: 18px; }
.svc-panel--alt { background: #f7f8fa; }
.svc-panel .svc-panel__note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 1rem; color: var(--slate); }

.svc-co { display: grid; grid-template-columns: 1fr auto; gap: 36px; align-items: center; background: var(--orange-soft); border: 1px solid rgba(232, 92, 42, 0.3); border-radius: 20px; padding: 36px 40px; }
.svc-co .sq { margin-bottom: 0.3em; }
.svc-co p { margin: 0; }
.svc-co__cta .wp-block-buttons { margin-top: 0; }

.svc-founder { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: center; }
.svc-founder__media figure { margin: 0; }
.svc-founder__media img { width: 100%; height: auto; border-radius: 18px; display: block; }
.svc-founder__text .wp-block-buttons { margin-top: 22px; }

@media (max-width: 900px) {
	.svc-split, .svc-founder, .svc-co, .svc-compare, .svc-panels { grid-template-columns: 1fr; }
	.svc-split { gap: 30px; }
	.svc-split__media { order: -1; }
	.svc-facts__grid { grid-template-columns: repeat(2, 1fr); row-gap: 22px; }
	.svc-fact:nth-child(odd) { border-left: 0; }
	.svc-cards { grid-template-columns: 1fr; }
	.svc-pro { grid-template-columns: 1fr; }
	.svc-steps { grid-template-columns: 1fr 1fr; }
	.svc-founder { gap: 24px; }
	.svc-founder__media { max-width: 240px; }
	.svc-co { padding: 28px 24px; gap: 20px; }
	.svc-compare__col, .svc-panel { padding: 24px 22px; }
}
@media (max-width: 560px) { .svc-steps { grid-template-columns: 1fr; } .svc-facts .svc-fact__big { font-size: 1.625rem; } }
@media (min-width: 901px) and (max-width: 1100px) { .svc-cards { grid-template-columns: repeat(2, 1fr); } .svc-steps { grid-template-columns: repeat(2, 1fr); } }

/* =====================================================================================
   SERVICE PAGE HEADER — left-aligned, quieter breadcrumb, no redundant "Service" label, a stronger summary line
   and two buttons, so the header works as a small hero.
   ===================================================================================== */
.page-hero--service { padding: 34px 0 40px; }
.page-hero--service .wrap { text-align: left; }
.page-hero--service .crumbs { font-size: 0.875rem; margin-bottom: 14px; text-align: left; justify-content: flex-start; color: #9db2c2; }
.page-hero--service .crumbs .sep { font-size: 0.5rem; margin: 0 9px; vertical-align: middle; }
.page-hero--service h1 { text-align: left; font-size: clamp(2.125rem, 1.5rem + 2.2vw, 3.25rem); line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 10px; }
.page-hero--service .lead { text-align: left; margin: 0; max-width: 36em; font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem); line-height: 1.45; font-weight: 500; color: #fff; text-wrap: balance; }
.page-hero--service .page-hero__cta { margin-top: 24px; justify-content: flex-start; }
@media (max-width: 560px) {
	.page-hero--service { padding: 26px 0 30px; }
	.page-hero--service .page-hero__cta { flex-direction: column; align-items: stretch; }
	.page-hero--service .page-hero__cta .wp-block-button, .page-hero--service .page-hero__cta .wp-block-button__link { width: 100%; text-align: center; }
}
@media (max-width: 560px) { .page-hero--service h1 { font-size: 1.875rem; } }

/* Service header: centred again, no buttons (the menu already has Book a Consultation and the phone number) */
.page-hero--service .wrap, .page-hero--service h1, .page-hero--service .lead { text-align: center; }
.page-hero--service .lead { margin-left: auto; margin-right: auto; }
.page-hero--service .crumbs { justify-content: center; text-align: center; }
.page-hero--service { padding: 38px 0 40px; }

/* =====================================================================================
   CYBERSECURITY PAGE (sec-*) — threat snapshot, layer rows, checklist, review panel, emergency card
   ===================================================================================== */
.sec-snap { background: #0e2f56; border-radius: 20px; padding: 30px 32px; box-shadow: 0 18px 44px rgba(18, 42, 63, 0.22); }
.sec-snap .sec-snap__label { margin: 0 0 14px; font-family: var(--font-display); font-weight: 700; font-size: 0.84375rem; letter-spacing: 0.12em; text-transform: uppercase; color: #ffb48f; }
.sec-stat { display: flex; align-items: baseline; gap: 16px; padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.sec-snap .sec-stat__num { flex: none; margin: 0; min-width: 96px; font-family: var(--font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; letter-spacing: -0.02em; color: #fff; }
.sec-snap .sec-stat__text { margin: 0; font-size: 1rem; line-height: 1.45; color: #c6d3de; }
.sec-snap .sec-snap__good { margin: 6px 0 0; padding: 14px 16px; border-radius: 12px; background: rgba(232, 92, 42, 0.16); border: 1px solid rgba(232, 92, 42, 0.4); font-size: 1rem; line-height: 1.45; color: #fff; }
.sec-snap .sec-snap__src { margin: 12px 0 0; font-size: 1rem; color: #9db2c2; }
.sec-snap .sec-snap__src a { color: #ffb48f; }

.sec-layers { display: flex; flex-direction: column; gap: 12px; max-width: 920px; margin: 0 auto; }
.sec-layer { display: grid; grid-template-columns: 44px 1fr 260px; gap: 20px; align-items: center; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--orange); border-radius: 14px; padding: 18px 22px; transition: transform .2s ease, box-shadow .2s ease; }
.sec-layer:hover { transform: translateX(4px); box-shadow: 0 10px 24px rgba(18, 42, 63, 0.1); }
.sec-layer .sec-layer__num { margin: 0; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--navy); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1.05rem; }
.sec-layer h3 { margin: 0 0 4px; font-size: 1.25rem; text-align: left; }
.sec-layer__body p { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink-soft, #4a5a68); text-align: left; }
.sec-layer .sec-layer__stops { margin: 0; padding: 10px 14px; border-radius: 10px; background: var(--orange-soft); font-size: 1rem; font-weight: 600; line-height: 1.35; color: var(--orange-dark); text-align: left; }
.sec-layer .sec-layer__stops span { display: block; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); margin-bottom: 2px; }

.sec-fixes { display: flex; flex-direction: column; gap: 10px; max-width: 760px; margin: 0 auto; }
.sec-fix { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 22px; }
.sec-fix p { margin: 0; font-size: 1.0625rem; line-height: 1.45; color: var(--ink); }
.sec-box { flex: none; display: block; width: 26px; height: 26px; border: 2.5px solid var(--navy); border-radius: 7px; background: #fff; }
.sec-fixes__note { max-width: 44em; margin: 26px auto 22px; text-align: center; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); }

.svc-callout--light { margin: 0 auto; background: var(--orange-soft); border-color: rgba(232, 92, 42, 0.3); max-width: 920px; }
.svc-callout--light p { color: var(--ink); }
.svc-callout--light strong { color: var(--navy); }

.sec-review { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 52px; align-items: center; }
.sec-review .sq { color: #fff; }
.sec-review__lead { color: #c6d3de; font-size: 1.0625rem; line-height: 1.6; }
.sec-review .svc-checks li { color: #fff; }
.sec-review__media figure { margin: 0; }
.sec-review__media img { width: 100%; height: auto; border-radius: 18px; display: block; box-shadow: 0 18px 44px rgba(0, 0, 0, 0.35); }

.sec-emerg { max-width: 960px; margin: 0 auto; text-align: center; border: 2px solid var(--orange); border-radius: 22px; padding: 38px 36px 32px; background: #fff; box-shadow: 0 14px 34px rgba(232, 92, 42, 0.12); }
.sec-emerg .lead { margin-left: auto; margin-right: auto; }
.sec-emerg__steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin: 26px 0 8px; text-align: left; }
.sec-emerg .svc-pro__item { flex-direction: column; gap: 10px; }
.sec-emerg p.sec-emerg__phone { margin: 14px 0 8px; font-family: var(--font-display); font-weight: 800; font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem); letter-spacing: -0.01em; }
.sec-emerg p.sec-emerg__phone a { color: var(--orange-dark); }

.sec-exp { max-width: 840px; margin: 0 auto; }
.sec-exp > p { font-size: 1.0625rem; line-height: 1.65; }
.sec-chips__label { margin: 22px 0 8px; font-family: var(--font-display); font-weight: 700; font-size: 0.84375rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--slate); }
.sec-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.sec-chips .sec-chip { margin: 0; padding: 7px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-family: var(--font-display); font-weight: 700; font-size: 1rem; color: var(--navy); }

@media (max-width: 900px) {
	.sec-review { grid-template-columns: 1fr; gap: 30px; }
	.sec-review__media { order: -1; }
	.sec-layer { grid-template-columns: 40px 1fr; gap: 14px; }
	.sec-layer .sec-layer__stops { grid-column: 2; }
	.sec-emerg__steps { grid-template-columns: 1fr; }
	.sec-emerg { padding: 28px 22px; }
	.sec-snap { padding: 24px 22px; }
	.sec-snap .sec-stat__num { font-size: 2rem; min-width: 80px; }
}

/* =====================================================================================
   MICROSOFT 365 PAGE (m365-*) — self-check card, Exchange alert, lifecycle, paths, security rows, plans
   ===================================================================================== */
.m365-card { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--orange); border-radius: 20px; padding: 28px 30px; box-shadow: 0 18px 44px rgba(18, 42, 63, 0.14); }
.m365-card .sec-snap__label { color: var(--orange-dark); margin: 0 0 6px; }
.m365-card h3 { margin: 0 0 14px; font-size: 1.375rem; line-height: 1.2; text-align: left; }
.m365-q { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-top: 1px solid var(--line); }
.m365-q p { margin: 0; font-size: 1rem; line-height: 1.4; color: var(--ink); }
.m365-card .m365-card__foot { margin: 12px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--orange-soft); font-size: 1rem; line-height: 1.45; color: var(--ink); }

.m365-alert { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: center; max-width: 1020px; margin: 0 auto; background: #fff; border: 2px solid var(--orange); border-radius: 18px; padding: 26px 32px; box-shadow: 0 12px 30px rgba(232, 92, 42, 0.12); }
.m365-alert .kicker { margin-bottom: 4px; }
.m365-alert h3 { margin: 0 0 8px; font-size: 1.375rem; line-height: 1.25; text-align: left; }
.m365-alert p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.m365-alert__cta .wp-block-buttons { margin-top: 0; }

.m365-lifecycle { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; position: relative; }
.m365-stage { position: relative; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--navy); border-radius: 16px; padding: 20px 18px 22px; }
.m365-stage:not(:last-child)::after { content: "›"; position: absolute; right: -14px; top: 26px; width: 14px; text-align: center; font-size: 1.5rem; font-weight: 800; color: var(--orange); z-index: 2; }
.m365-stage .m365-stage__num { margin: 0 0 10px; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1rem; }
.m365-stage h3 { margin: 0 0 8px; font-size: 1.25rem; text-align: left; }
.m365-stage ul { margin: 0; padding: 0 0 0 18px; }
.m365-stage li { font-size: 1rem; line-height: 1.45; color: var(--ink-soft, #4a5a68); margin-bottom: 8px; text-align: left; }

h3.m365-subhead { margin: 40px 0 18px; text-align: center; color: #fff; font-size: 1.375rem; }
.m365-paths { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.m365-path { border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 14px; padding: 20px 22px; background: rgba(255, 255, 255, 0.05); }
.m365-path h3 { margin: 0 0 6px; color: #fff; font-size: 1.1875rem; text-align: left; }
.m365-path p { margin: 0; color: #c6d3de; font-size: 0.9375rem; line-height: 1.5; text-align: left; }
.section--navy .svc-closing { color: #fff; }

.m365-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; max-width: 1000px; margin: 0 auto; }
.m365-row { display: flex; align-items: flex-start; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 20px; }
.m365-tick { flex: none; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff; font-size: 0.8125rem; font-weight: 800; margin-top: 2px; }
.m365-row p { margin: 0; font-size: 1rem; line-height: 1.4; color: var(--ink); text-align: left; }
.m365-row p strong { color: var(--navy); }
.m365-row .m365-row__why { margin-top: 3px; font-size: 1rem; color: var(--slate); }
.m365-rows + .svc-callout { margin: 26px auto 0; }

.m365-finds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1000px; margin: 0 auto; }
.m365-find { background: #f7f8fa; border: 1px dashed #c3cbd3; border-radius: 14px; padding: 18px 22px; }
.m365-find h3 { margin: 0 0 4px; font-size: 1.125rem; text-align: left; }
.m365-find p { margin: 0; font-size: 0.9375rem; color: var(--ink-soft, #4a5a68); text-align: left; }
h3.m365-subhead { }
.m365-finds + h3.m365-subhead, .m365-plans { }
section h3.m365-subhead { color: var(--navy); }
.section--navy h3.m365-subhead { color: #fff; }
.m365-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; max-width: 1000px; margin: 0 auto; align-items: stretch; }
.m365-plan { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 24px 26px; }
.m365-plan h3 { margin: 0 0 8px; font-size: 1.25rem; text-align: left; }
.m365-plan p:not(.m365-plan__flag) { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.m365-plan--feat { border: 2px solid var(--orange); box-shadow: 0 14px 32px rgba(232, 92, 42, 0.16); }
.m365-plan .m365-plan__flag { position: absolute; top: -13px; left: 20px; margin: 0; padding: 4px 12px; border-radius: 999px; background: var(--orange); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 0.84375rem; letter-spacing: 0.06em; text-transform: uppercase; }

.m365-tools { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 8px; }
.m365-tool { padding: 10px 14px; border-radius: 10px; background: #eaeff4; }
.m365-tool p { margin: 0; font-size: 0.9375rem; line-height: 1.4; color: var(--ink-soft, #4a5a68); text-align: left; }
.m365-tool p strong { color: var(--navy); font-family: var(--font-display); }

@media (max-width: 1000px) {
	.m365-lifecycle { grid-template-columns: 1fr 1fr; }
	.m365-stage:not(:last-child)::after { display: none; }
}
@media (max-width: 900px) {
	.m365-alert { grid-template-columns: 1fr; padding: 22px 22px; gap: 16px; }
	.m365-paths, .m365-rows, .m365-finds, .m365-plans { grid-template-columns: 1fr; }
	.m365-card { padding: 22px 22px; }
}
@media (max-width: 560px) { .m365-lifecycle { grid-template-columns: 1fr; } }

/* ===== BUSINESS PHONE SYSTEMS PAGE (ph-*) — reuses m365-*/svc-*/sec-* components ===== */
.ph-dev { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 11px 0; }
.ph-plat .ph-best { margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; background: var(--orange-soft); font-size: 1rem; line-height: 1.4; color: var(--ink); text-align: left; }
.ph-plat .ph-best span { display: block; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--orange-dark); margin-bottom: 2px; }
.ph-feat h3 { font-size: 1.125rem; }
.ph-chips-label { text-align: center; margin-top: 30px; }
.ph-chips { justify-content: center; }
.ph-steps5 { grid-template-columns: repeat(5, 1fr); gap: 14px; }
.ph-911 { max-width: 820px; margin: 0 auto; text-align: left; padding: 34px 38px; border: 1px solid var(--line); border-left: 6px solid var(--orange); border-radius: 18px; background: #fff; }
.ph-911 .lead { max-width: none; }
.ph-911 .sq { margin-bottom: 0.3em; }
.ph-who .ph-who__for { margin: 0 0 8px; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark); }
.ph-who { border-style: solid; }
@media (max-width: 1100px) { .ph-steps5 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ph-steps5 { grid-template-columns: 1fr; } .ph-911 { padding: 24px 22px; } }

/* ===== BACKUPS & DISASTER RECOVERY PAGE (bk-*) ===== */
.bk-rule { padding: 26px 28px; }
.bk-rule h3 { margin: 0 0 8px; }
.bk-rule__row { display: flex; align-items: center; gap: 18px; padding: 8px 0; border-top: 1px solid var(--line); }
.bk-rule .bk-digit { flex: none; margin: 0; width: 52px; text-align: center; font-family: var(--font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; color: var(--orange); }
.bk-rule .bk-digit__text { margin: 0; font-size: 1.0625rem; line-height: 1.35; color: var(--ink); }
.bk-rule .sec-snap__src { margin: 10px 0 0; color: var(--slate); }
.bk-rule .sec-snap__src a { color: var(--orange-dark); }
.bk-obj { text-align: center; align-items: center; }
.bk-obj .bk-abbr { margin: 0 0 6px; font-family: var(--font-display); font-weight: 800; font-size: 2.75rem; line-height: 1; color: var(--orange); }
.bk-obj h3 { text-align: center; margin: 0 0 10px; }
.bk-obj .bk-q { font-family: var(--font-display); font-weight: 700; font-size: 1.1875rem; line-height: 1.35; color: var(--navy); text-align: center; }
.bk-obj > p { text-align: center; }
.bk-outcomes { padding: 24px 26px; }
.bk-out { border-radius: 12px; padding: 14px 18px; margin-top: 12px; }
.bk-out p { margin: 0; text-align: left; font-size: 1rem; }
.bk-out--bad { background: #f7f8fa; border: 1px solid var(--line); border-left: 4px solid #9aa6b2; }
.bk-out--good { background: var(--orange-soft); border: 1px solid rgba(232, 92, 42, 0.35); border-left: 4px solid var(--orange); }
.bk-cost { max-width: 900px; margin: 0 auto; text-align: center; }
.bk-cost .lead { margin-left: auto; margin-right: auto; }
.bk-eq { display: flex; align-items: stretch; justify-content: center; gap: 14px; flex-wrap: wrap; margin: 28px 0 4px; }
.bk-price { flex: 1 1 200px; max-width: 250px; border: 1px solid var(--line); border-radius: 16px; padding: 20px 18px; background: #fff; }
.bk-price--res { border: 2px solid var(--orange); background: var(--orange-soft); }
.bk-price .svc-fact__big { margin: 0 0 4px; font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; color: var(--navy); }
.bk-price .svc-fact__small { margin: 0; font-size: 1rem; color: var(--slate); }
.bk-plus { align-self: center; margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.75rem; color: var(--orange); }
@media (max-width: 900px) { .bk-eq { flex-direction: column; align-items: center; } .bk-price { max-width: 100%; width: 100%; } }
.bk-outcomes .bk-out p, .bk-outcomes .bk-out strong { color: var(--ink); }
.bk-outcomes .bk-out p.m365-row__why { color: var(--slate); }
.bk-outcomes h3, .bk-outcomes .sec-snap__label { color: var(--orange-dark); }
.sec-review__text .svc-checks + p { margin-top: 16px; }
.sec-review .sec-review__text a:not(.wp-block-button__link) { color: #ffb48f; }

/* ===== NETWORKING PAGE (net-*) ===== */
.net-intro { max-width: 760px; margin: 0 auto; text-align: center; }
.net-intro .lead { margin-left: auto; margin-right: auto; }
.net-intro .btn-row { justify-content: center; }
.net-spine { display: flex; align-items: stretch; justify-content: center; gap: 0; margin: 0 auto 18px; max-width: 980px; }
.net-node { flex: 1 1 0; position: relative; background: var(--navy); color: #fff; border-radius: 14px; padding: 16px 18px; text-align: center; }
.net-node + .net-node { margin-left: 34px; }
.net-node + .net-node::before { content: "\2192"; position: absolute; left: -30px; top: 50%; transform: translateY(-50%); width: 26px; text-align: center; font-size: 1.5rem; font-weight: 800; color: var(--orange); }
.net-node__name { margin: 0 0 2px; font-family: var(--font-display); font-weight: 800; font-size: 1.1875rem; color: #fff; text-align: center; }
.net-node__sub { margin: 0; font-size: 0.875rem; line-height: 1.4; color: #c6d3de; text-align: center; }
.net-zones { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; position: relative; padding-top: 18px; }
.net-zones::before { content: ""; position: absolute; top: 0; left: 10%; right: 10%; height: 18px; border: 2px solid var(--line); border-bottom: 0; border-radius: 12px 12px 0 0; }
.net-zone { background: #fff; border: 1px solid var(--line); border-top: 5px solid var(--navy); border-radius: 14px; padding: 18px 16px; display: flex; flex-direction: column; gap: 10px; }
.net-zone--guest { border-top-color: #9aa6b2; }
.net-zone--pay { border-top-color: var(--orange); }
.net-zone--iot { border-top-color: #5b7288; }
.net-zone--voice { border-top-color: #2f8f6b; }
.net-zone h3 { margin: 0; font-size: 1.125rem; line-height: 1.25; text-align: left; }
.net-zone__who { margin: 0; font-size: 0.9375rem; line-height: 1.45; color: var(--slate); text-align: left; }
.net-zone__can, .net-zone__not { margin: 0; font-size: 0.9375rem; line-height: 1.4; text-align: left; color: var(--ink); }
.net-zone__can span, .net-zone__not span { display: block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 2px; }
.net-zone__can span { color: #2f8f6b; }
.net-zone__not span { color: var(--orange-dark); }
.net-zone__not { margin-top: auto; padding-top: 10px; border-top: 1px dashed var(--line); }
.net-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 14px; }
.net-stat { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 16px; padding: 24px 22px; }
.net-stat__big { margin: 0 0 6px; font-family: var(--font-display); font-weight: 800; font-size: clamp(2.25rem, 1.6rem + 2vw, 3.25rem); line-height: 1; color: var(--orange); text-align: left; }
.net-stat__txt { margin: 0; color: #dbe5ee; font-size: 1rem; line-height: 1.5; text-align: left; }
.section--navy .sec-snap__src { color: #9fb2c4; margin: 0 0 30px; }
.section--navy .sec-snap__src a, .section--navy .svc-closing a { color: #ffb48f; }
.net-checks { grid-template-columns: repeat(3, 1fr); gap: 22px 28px; }
.net-checks h3 { color: #fff; }
.net-checks p { color: #c6d3de; }
.section--navy .net-checks .svc-num { background: var(--orange); color: #fff; }
.section--navy .svc-closing { margin-top: 28px; }
.net-svy .net-svy__label { margin: 0 0 6px; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark); text-align: left; }
.net-svy .net-svy__tag { margin: auto 0 0; padding-top: 12px; font-family: var(--font-display); font-weight: 700; color: var(--navy); text-align: left; }
.net-svy--feat { border: 2px solid var(--orange); }
.net-flow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; max-width: 980px; margin: 0 auto; }
.net-flow__step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 22px; }
.net-flow__step + .net-flow__step::before { content: "\2192"; position: absolute; left: -29px; top: 50%; transform: translateY(-50%); width: 24px; text-align: center; font-size: 1.5rem; font-weight: 800; color: var(--orange); }
.net-flow__step h3 { margin: 0 0 6px; font-size: 1.125rem; text-align: left; }
.net-flow__step p:not(.svc-step__num) { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.net-ind { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: start; }
.net-ind__lead { position: sticky; top: 110px; }
.net-ind__lead .lead, .net-ind__lead h2, .net-ind__lead .kicker { text-align: left; }
.net-ind__row { padding: 18px 0; border-top: 1px solid var(--line); }
.net-ind__row:last-child { border-bottom: 1px solid var(--line); }
.net-ind__row h3 { margin: 0 0 6px; font-size: 1.1875rem; text-align: left; }
.net-ind__row p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.net-ind__row a { color: var(--orange-dark); }
.net-proj { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: start; }
.net-proj .svc-pro { grid-template-columns: 1fr; }
.net-docs { padding: 26px 28px; }
.net-docs h3 { margin: 0 0 12px; text-align: left; }
.net-docs .sec-snap__label { text-align: left; }
.net-docs .sec-snap__src { margin: 14px 0 0; color: var(--slate); font-size: 0.9375rem; line-height: 1.5; }
@media (max-width: 1100px) { .net-zones { grid-template-columns: repeat(3, 1fr); } .net-zones::before { display: none; } .net-zones { padding-top: 0; } }
@media (max-width: 900px) {
	.net-checks { grid-template-columns: 1fr; }
	.net-stats, .net-flow, .net-ind, .net-proj { grid-template-columns: 1fr; }
	.net-ind__lead { position: static; }
	.net-spine { flex-direction: column; }
	.net-node + .net-node { margin: 26px 0 0; }
	.net-node + .net-node::before { content: "\2193"; left: 50%; top: -28px; transform: translateX(-50%); }
	.net-flow { gap: 28px; }
	.net-flow__step + .net-flow__step::before { content: "\2193"; left: 50%; top: -27px; transform: translateX(-50%); }
}
@media (max-width: 640px) { .net-zones { grid-template-columns: 1fr; } }
/* networking: staying online + firewall pair */
.net-mode h3, .net-step h3 { text-align: left; }
.net-lines { max-width: 860px; margin: 34px auto 0; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 28px; }
.net-lines h3 { margin: 0 0 10px; text-align: left; }
.net-lines .svc-checks { margin: 0 0 14px; }
.net-note { margin: 0; text-align: left; color: var(--ink-soft, #4a5a68); }
.net-note a { color: var(--orange-dark); }
.net-ha__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: center; margin-bottom: 56px; }
.net-ha__text .kicker, .net-ha__text h2, .net-ha__text .lead { text-align: left; }
.net-ha__text .sec-snap__src { margin: 14px 0 0; color: var(--slate); }
.net-ha__text .sec-snap__src a { color: var(--orange-dark); }
.net-ha__text .net-left { text-align: left; margin: 22px 0 10px; }
.net-ha { padding: 26px 24px; display: flex; flex-direction: column; gap: 6px; }
.net-ha__row { display: flex; gap: 14px; align-items: stretch; justify-content: center; }
.net-ha__box { flex: 1 1 0; background: var(--navy); border-radius: 12px; padding: 12px 14px; text-align: center; }
.net-ha__box--on { border: 3px solid var(--orange); }
.net-ha__box--sb { background: #fff; border: 2px dashed var(--navy); }
.net-ha__name { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.0625rem; color: #fff; text-align: center; }
.net-ha__sub { margin: 2px 0 0; font-size: 1rem; line-height: 1.35; color: #c6d3de; text-align: center; }
.net-ha__box--sb .net-ha__name { color: var(--navy); }
.net-ha__box--sb .net-ha__sub { color: var(--slate); }
.net-ha__arrow { margin: 0; text-align: center; font-size: 1.5rem; font-weight: 800; line-height: 1; color: var(--orange); }
.net-ha__sync { align-self: center; margin: 0; flex: none; font-weight: 700; font-size: 1rem; color: var(--orange-dark); text-align: center; }
.net-ladder-h { margin-top: 0; }
@media (max-width: 900px) { .net-ha__grid { grid-template-columns: 1fr; gap: 32px; } .net-ha__row--fw { flex-direction: column; } }
/* TYPE FLOOR (2026-10-07 audit): running text 16px, uppercase labels >= 13.5px. */
.net-node__sub, .net-ha__sub, .net-zone__who, .net-zone__can, .net-zone__not, .net-note, .net-flow__step p:not(.svc-step__num), .net-docs .sec-snap__src, .net-intro .svc-note, .m365-find p { font-size: 1rem; line-height: 1.5; }
.net-zone__can span, .net-zone__not span, .m365-plan__flag, .net-svy .net-svy__label { font-size: 0.84375rem; }
.fcard__body p:not(.more), .fcard__body .more, .fcard__body .more a { font-size: 1rem; }
.net-spine .net-node__sub { font-size: 1rem; }
/* TYPE FLOOR, other service pages (2026-10-07 audit) */
body .svc-note, body .svc-fact__small, body .svc-step p:not(.svc-step__num), body .svc-panel__note, body .sec-layer__stops, body .sec-snap__src, body .sec-snap__src a, body .sec-chip, body .m365-card__foot, body .m365-row__why, body .m365-path p, body .m365-tool p, body .svc-panel .wp-block-list li, body .ph-911 .svc-note, body .ph-911 .svc-note a { font-size: 1rem; }
body .sec-layer__stops span, body .ph-best span, body .sec-snap__label, body .sec-chips__label, body .ph-chips-label, body .ph-who__for { font-size: 0.84375rem; }
body .m365-tick { font-size: 0.875rem; }

/* ===== CLOUD / ON-PREM / HYBRID PAGE (cl-*) ===== */
.cl-guide { max-width: 1040px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.cl-row { display: grid; grid-template-columns: 160px minmax(0, 1.5fr) minmax(0, 1fr); gap: 8px 28px; align-items: start; padding: 22px 28px; border-top: 1px solid var(--line); }
.cl-row--head { padding: 14px 28px; background: #e6ecf1; border-top: 0; }
.cl-colhead { margin: 0; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--slate); text-align: left; }
.cl-pill { margin: 2px 0 0; display: inline-block; white-space: nowrap; width: fit-content; padding: 6px 14px; border-radius: 999px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.2; text-align: center; }
.cl-pill--cloud { background: #dff1fb; color: #0b4f73; }
.cl-pill--onsite { background: var(--navy); color: #fff; }
.cl-pill--hybrid { background: var(--orange-soft); color: var(--orange-dark); border: 1px solid rgba(232, 92, 42, 0.4); }
.cl-row__what h3 { margin: 0 0 4px; font-size: 1.1875rem; text-align: left; }
.cl-row__what p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.cl-row__watch { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink); text-align: left; padding-left: 16px; border-left: 3px solid var(--orange); }
.cl-row__watch a { color: var(--orange-dark); }
.cl-stats { grid-template-columns: repeat(2, 1fr); }
.cl-mistakes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 30px 0; }
.cl-mistake { background: #fff; border-radius: 16px; padding: 24px 26px; }
.cl-mistake h3 { margin: 0 0 8px; font-size: 1.25rem; color: var(--navy); text-align: left; }
.cl-mistake p { margin: 0 0 12px; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.cl-mistake__tag { font-size: 0.84375rem !important; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark) !important; margin-bottom: 6px !important; }
.cl-mistake .cl-mistake__fix { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--orange-soft); color: var(--ink); }
.cl-mistake__fix span { display: block; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--orange-dark); margin-bottom: 2px; }
.cl-own { text-align: center; max-width: 820px; margin: 0 auto; }
.cl-own h3 { color: #fff; text-align: center; margin: 0 0 8px; }
.cl-own .cl-own__p { color: #c6d3de; text-align: center; margin: 0 0 16px; }
.cl-own .sec-chips { justify-content: center; }
.cl-own .sec-snap__src { text-align: center; margin: 18px 0 0; }
.cl-clocks { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 1000px; margin: 0 auto; }
.cl-clock { padding: 28px 30px; }
.cl-clock .cl-clock__label { margin: 0 0 4px; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark); text-align: left; }
.cl-clock .cl-clock__big { margin: 0 0 8px; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem); line-height: 1.05; color: var(--navy); text-align: left; }
.cl-clock h3 { margin: 0 0 10px; text-align: left; }
.cl-clock > p { text-align: left; }
.cl-clock .sec-snap__src { margin: 14px 0 0; color: var(--slate); }
.cl-clock .sec-snap__src a { color: var(--orange-dark); }
.cl-tl__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
.cl-tl__lead .kicker, .cl-tl__lead h2, .cl-tl__lead .lead { text-align: left; }
.cl-tl { position: relative; display: flex; flex-direction: column; gap: 22px; }
.cl-tl::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 3px; background: repeating-linear-gradient(to bottom, var(--orange) 0 8px, transparent 8px 14px); }
.cl-tl__step { position: relative; display: flex; gap: 20px; align-items: flex-start; }
.cl-tl .cl-tl__dot { flex: none; position: relative; z-index: 1; margin: 0; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--orange); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1.125rem; box-shadow: 0 0 0 6px var(--paper, #eaeff4); }
.cl-tl__txt h3 { margin: 4px 0 4px; font-size: 1.1875rem; text-align: left; }
.cl-tl__txt p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
@media (max-width: 900px) {
	.cl-row { grid-template-columns: 1fr; gap: 10px; padding: 20px 22px; }
	.cl-row--head { display: none; }
	.cl-stats, .cl-mistakes, .cl-clocks, .cl-tl__grid { grid-template-columns: 1fr; }
	.cl-tl__grid { gap: 32px; }
}

/* ===== STRUCTURED CABLING PAGE (cb-*) ===== */
.cb-path { padding: 30px 28px 24px; max-width: 1100px; margin: 0 auto; }
.cb-path__row { display: flex; align-items: stretch; gap: 0; }
.cb-node { flex: 0 0 auto; width: 128px; background: var(--navy); border-radius: 12px; padding: 12px 10px; text-align: center; display: flex; flex-direction: column; justify-content: center; }
.cb-node__name { margin: 0 0 2px; font-family: var(--font-display); font-weight: 800; font-size: 1.0625rem; color: #fff; text-align: center; }
.cb-node__sub { margin: 0; font-size: 1rem; line-height: 1.3; color: #c6d3de; text-align: center; }
.cb-seg { display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; text-align: center; }
.cb-seg::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 0; transform: translateY(-50%); }
.cb-seg--cord { flex: 0 0 64px; }
.cb-seg--cord::before { border-top: 4px dashed var(--orange); }
.cb-seg--cord .cb-seg__t { position: relative; margin: -34px 0 0; background: #fff; padding: 0 4px; font-size: 1rem; font-weight: 700; color: var(--orange-dark); }
.cb-seg--link { flex: 1 1 auto; min-width: 0; padding: 14px 16px; background: var(--orange-soft); border-top: 5px solid var(--orange); border-bottom: 5px solid var(--orange); }
.cb-seg--link::before { display: none; }
.cb-seg--link .cb-seg__t { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; color: var(--navy); }
.cb-seg--link .cb-seg__s { margin: 2px 0 0; font-size: 1rem; line-height: 1.35; color: var(--ink); }
.cb-path__bracket { margin-top: 14px; border: 3px solid var(--navy); border-top: 0; border-radius: 0 0 14px 14px; padding: 10px 16px 0; text-align: center; }
.cb-path__total { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 1.125rem; color: var(--navy); text-align: center; }
.cb-specs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cb-spec { background: #fff; border: 1px solid var(--line); border-top: 6px solid var(--navy); border-radius: 16px; padding: 22px 22px 14px; }
.cb-spec--cat6a { border-top-color: var(--orange); }
.cb-spec--fiber { border-top-color: #2f8f6b; }
.cb-spec h3 { margin: 0 0 8px; font-size: 1.625rem; text-align: left; }
.cb-spec__row { padding: 10px 0; border-top: 1px solid var(--line); }
.cb-spec__k { margin: 0 0 2px; font-size: 0.84375rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--slate); text-align: left; }
.cb-spec__v { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink); text-align: left; }
.cb-lvs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cb-lv { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 24px 22px; }
.cb-lv--feat { border: 2px solid var(--orange); box-shadow: 0 10px 30px rgba(232, 92, 42, 0.12); }
.cb-lv .cb-lv__n { margin: 0 0 10px; width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--navy); color: #fff; font-family: var(--font-display); font-weight: 800; }
.cb-lv--feat .cb-lv__n { background: var(--orange); }
.cb-lv h3 { margin: 0 0 4px; font-size: 1.375rem; text-align: left; }
.cb-lv .cb-lv__q { margin: 0 0 10px; font-family: var(--font-display); font-weight: 700; font-size: 1.0625rem; color: var(--orange-dark); text-align: left; }
.cb-lv p:not(.cb-lv__n):not(.cb-lv__q) { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink-soft, #4a5a68); text-align: left; }
.cb-asks .svc-pro__item a { color: #ffb48f; }
.cb-asks { grid-template-columns: repeat(2, 1fr); }
.cb-phases { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin-bottom: 40px; }
.cb-ph { position: relative; padding: 18px 16px; background: #e6ecf1; border: 1px solid var(--line); border-left-width: 0; }
.cb-ph:first-child { border-left-width: 1px; border-radius: 14px 0 0 14px; }
.cb-ph:last-child { border-radius: 0 14px 14px 0; }
.cb-ph--feat { background: var(--orange-soft); border: 2px solid var(--orange); border-radius: 14px; margin: -8px -2px; padding: 26px 18px; z-index: 1; box-shadow: 0 12px 28px rgba(232, 92, 42, 0.18); }
.cb-ph .cb-ph__n { margin: 0 0 6px; font-family: var(--font-display); font-weight: 800; font-size: 1rem; color: var(--orange-dark); text-align: left; }
.cb-ph h3 { margin: 0 0 6px; font-size: 1.125rem; text-align: left; }
.cb-ph p:not(.cb-ph__n) { margin: 0; font-size: 1rem; line-height: 1.45; color: var(--ink-soft, #4a5a68); text-align: left; }
.cb-drivers { grid-template-columns: repeat(4, 1fr); }
.cb-docs { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; align-items: center; }
.cb-docs__text .kicker, .cb-docs__text h2, .cb-docs__text .lead { text-align: left; }
.cb-labels { padding: 26px 28px; }
.cb-labels .sec-snap__label { text-align: left; }
.cb-lbl__row { display: flex; align-items: center; gap: 14px; justify-content: center; margin: 6px 0 14px; }
.cb-lbl { flex: 1 1 0; text-align: center; background: #fff; border: 2px solid var(--navy); border-radius: 10px; padding: 12px 8px; }
.cb-lbl__where { margin: 0; font-size: 1rem; color: var(--slate); text-align: center; }
.cb-lbl__id { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 2rem; line-height: 1.1; color: var(--orange-dark); text-align: center; letter-spacing: 0.04em; }
.cb-lbl__arrow { margin: 0; font-size: 1.75rem; font-weight: 800; color: var(--orange); }
.cb-labels .sec-snap__src { margin: 0; color: var(--slate); }
.cb-partner__note { margin-top: 18px; text-align: center; }
.cb-partner__note a { color: var(--orange-dark); }
@media (max-width: 1100px) { .cb-phases { grid-template-columns: repeat(3, 1fr); gap: 12px; } .cb-ph, .cb-ph:first-child, .cb-ph:last-child { border: 1px solid var(--line); border-radius: 14px; } .cb-ph--feat { margin: 0; border: 2px solid var(--orange); } .cb-drivers { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
	.cb-specs, .cb-lvs, .cb-asks, .cb-docs { grid-template-columns: 1fr; }
	.cb-docs { gap: 32px; }
	.cb-path__row { flex-direction: column; align-items: stretch; }
	.cb-node { width: auto; }
	.cb-seg--cord { flex: 0 0 44px; }
	.cb-seg--cord::before { top: 0; bottom: 0; left: 50%; right: auto; width: 0; height: auto; transform: translateX(-50%); border-top: 0; border-left: 4px dashed var(--orange); }
	.cb-seg--cord .cb-seg__t { margin: 0; }
	.cb-seg--link { border: 0; border-left: 5px solid var(--orange); border-right: 5px solid var(--orange); }
}
@media (max-width: 640px) { .cb-phases, .cb-drivers { grid-template-columns: 1fr; } }

/* cabling: illustrations */
.cb-spec__head { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; }
.cb-spec__head h3 { margin: 0; }
.cb-spec__icon { flex: none; margin: 0; }
.cb-spec__icon img { width: 80px; height: 80px; object-fit: contain; display: block; }
.cb-ba { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 1000px; margin: 0 auto 10px; }
.cb-ba__fig { position: relative; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(18, 40, 58, 0.18); }
.cb-ba__img, .cb-ba__img img { display: block; width: 100%; height: auto; margin: 0; }
.cb-ba .cb-ba__tag { position: absolute; top: 14px; left: 14px; z-index: 1; margin: 0; padding: 6px 14px; border-radius: 999px; background: var(--navy); color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 1rem; }
.cb-ba .cb-ba__tag--after { background: var(--orange); }
.cb-ba__cap { margin: 0 0 48px; text-align: center; font-size: 1rem; color: var(--slate); }
@media (max-width: 700px) { .cb-ba { grid-template-columns: 1fr; } }

/* ICON PASS (2026-10-07): illustrated icons in cards and rows */
.net-zone__ico, .net-mode__ico, .bk-tier__ico, .ph-feat__ico, .cl-row__ico, .sec-layer__ico, .m365-row__ico { margin: 0; flex: none; }
.net-zone__ico img, .net-mode__ico img, .bk-tier__ico img, .ph-feat__ico img, .cl-row__ico img, .sec-layer__ico img, .m365-row__ico img { display: block; width: 100%; height: auto; object-fit: contain; }
.net-zone__ico, .ph-feat__ico, .net-mode__ico, .bk-tier__ico { margin-bottom: 4px; }
.net-zone__ico { width: 64px; }
.net-mode__ico, .bk-tier__ico { width: 72px; }
.ph-feat__ico { width: 64px; }
.cl-row__what { display: flex; gap: 16px; align-items: flex-start; }
.cl-row__ico { width: 56px; margin-top: 2px; }
.cl-row__what > .wp-block-group { min-width: 0; }
.sec-layer { grid-template-columns: 64px 1fr 260px; }
.sec-layer__ico { width: 64px; }
.m365-row__ico { width: 56px; margin-top: 0; }
.m365-row { align-items: center; }
.m365-plan .net-mode__ico, .m365-plan .bk-tier__ico { margin-top: 6px; }
@media (max-width: 900px) { .sec-layer { grid-template-columns: 56px 1fr; } .sec-layer__ico { width: 56px; } .sec-layer .sec-layer__stops { grid-column: 1 / -1; } .cl-row__ico { width: 48px; } }

/* ===== SECURITY & SURVEILLANCE PAGE (sc-*) ===== */
.sc-lvls { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sc-lvl { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px 14px 20px; }
.sc-lvl--top { border: 2px solid var(--orange); box-shadow: 0 10px 28px rgba(232, 92, 42, 0.14); }
.sc-lvl__img, .sc-lvl__img img { display: block; width: 100%; height: auto; margin: 0 0 10px; border-radius: 10px; }
.sc-lvl .sc-lvl__n { position: absolute; top: 22px; left: 22px; margin: 0; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--navy); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 1rem; }
.sc-lvl--top .sc-lvl__n { background: var(--orange); }
.sc-lvl h3 { margin: 0 0 2px; font-size: 1.375rem; text-align: left; }
.sc-lvl .sc-lvl__px { margin: 0 0 8px; font-family: var(--font-display); font-weight: 800; font-size: 1.125rem; color: var(--orange-dark); text-align: left; }
.sc-lvl .sc-lvl__q { margin: 0; font-size: 1rem; line-height: 1.45; color: var(--ink-soft, #4a5a68); text-align: left; }
.sc-src { text-align: center; margin: 14px 0 34px; color: var(--slate); }
.sc-src a { color: var(--orange-dark); }
.sc-aim { max-width: 900px; margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 24px 28px; }
.sc-aim h3 { margin: 0 0 8px; font-size: 1.375rem; text-align: left; }
.sc-aim__row { display: flex; align-items: center; gap: 16px; padding: 10px 0; border-top: 1px solid var(--line); }
.sc-aim__row .sc-pill { flex: 0 0 120px; text-align: center; }
.sc-aim__where { margin: 0; font-size: 1rem; line-height: 1.4; color: var(--ink); text-align: left; }
.sc-pill { display: inline-block; white-space: nowrap; padding: 6px 14px; border-radius: 999px; font-family: var(--font-display); font-weight: 700; font-size: 1rem; line-height: 1.2; margin: 0; }
.sc-pill--detect { background: #e6ecf1; color: #3b4f61; }
.sc-pill--observe { background: #dff1fb; color: #0b4f73; }
.sc-pill--recognize { background: var(--orange-soft); color: var(--orange-dark); border: 1px solid rgba(232, 92, 42, 0.4); }
.sc-pill--identify { background: var(--navy); color: #fff; }
.sc-pill--bad { background: #f3e3dd; color: #8a3a1c; }
.sc-pill--good { background: #dcf1e7; color: #1f6b4a; }
.sc-plan { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; align-items: center; }
.sc-plan__text .kicker, .sc-plan__text h2, .sc-plan__text .lead { text-align: left; }
.sc-plan .sc-text { margin: 16px 0 0; text-align: left; color: var(--ink-soft, #4a5a68); }
.sc-plan__img, .sc-plan__img img { display: block; width: 100%; height: auto; margin: 0; }
.sc-plan__fig { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 16px; box-shadow: 0 10px 30px rgba(18, 40, 58, 0.1); }
.sc-plan .sc-plan__cap { margin: 8px 0 0; text-align: center; font-size: 1rem; color: var(--slate); }
.sc-store { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 48px; align-items: center; }
.sc-store__text .kicker, .sc-store__text h2, .sc-store__text .lead { text-align: left; }
.sc-store .sc-text { margin: 16px 0 0; text-align: left; color: var(--ink-soft, #4a5a68); }
.sc-store__card { padding: 26px 28px; }
.sc-store__card .sec-snap__label { text-align: left; }
.sc-bar { display: grid; grid-template-columns: 110px 1fr 76px; gap: 12px; align-items: center; margin: 12px 0; }
.sc-bar .sc-bar__k { margin: 0; font-weight: 600; font-size: 1rem; color: var(--navy); text-align: left; }
.sc-bar__track { background: #e9eef3; border-radius: 999px; height: 22px; overflow: hidden; }
.sc-bar__fill { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--orange), #f08a5e); }
.sc-bar .sc-bar__v { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.0625rem; color: var(--orange-dark); text-align: right; }
.sc-store__card .sec-snap__src { margin: 14px 0 0; color: var(--slate); }
.sc-store__card .sec-snap__src a { color: var(--orange-dark); }
.sc-creds { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sc-cred { background: #fff; border: 1px solid var(--line); border-top: 5px solid #c9d3dc; border-radius: 16px; padding: 22px 20px; display: flex; flex-direction: column; gap: 10px; }
.sc-cred--bad { border-top-color: #d9835f; }
.sc-cred--good { border-top-color: #2f8f6b; }
.sc-cred__ico { width: 72px; margin: 0; }
.sc-cred__ico img, .sc-safe__ico img, .sc-health__ico img { display: block; width: 100%; height: auto; }
.sc-cred h3 { margin: 0 0 4px; font-size: 1.1875rem; line-height: 1.25; text-align: left; }
.sc-cred p:not(.sc-pill) { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink-soft, #4a5a68); text-align: left; }
.sc-cred .sc-pill { margin-top: auto; align-self: flex-start; }
.sc-bipa { max-width: 900px; margin: 34px auto 0; background: var(--orange-soft); border: 1px solid rgba(232, 92, 42, 0.35); border-left: 5px solid var(--orange); border-radius: 14px; padding: 20px 24px; }
.sc-bipa h3 { margin: 0 0 6px; font-size: 1.1875rem; text-align: left; }
.sc-bipa p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--ink); text-align: left; }
.sc-bipa a { color: var(--orange-dark); }
.sc-safes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sc-safe { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 16px; padding: 22px 20px; }
.sc-safe__ico { width: 72px; margin: 0 0 10px; background: #fff; border-radius: 14px; padding: 6px; }
.sc-safe h3 { margin: 0 0 8px; color: #fff; font-size: 1.1875rem; line-height: 1.25; text-align: left; }
.sc-safe p:not(.sc-safe__ico) { margin: 0; color: #c6d3de; font-size: 1rem; line-height: 1.55; text-align: left; }
.sc-safe a { color: #ffb48f; }
.sc-healths { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sc-health { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px 20px; text-align: left; }
.sc-health__ico { width: 64px; margin: 0 0 8px; }
.sc-health h3 { margin: 0 0 6px; font-size: 1.125rem; line-height: 1.25; text-align: left; }
.sc-health p:not(.sc-health__ico) { margin: 0; font-size: 1rem; line-height: 1.5; color: var(--ink-soft, #4a5a68); text-align: left; }
@media (max-width: 1100px) { .sc-lvls, .sc-creds, .sc-safes, .sc-healths { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .sc-plan, .sc-store { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 640px) { .sc-lvls, .sc-creds, .sc-safes, .sc-healths { grid-template-columns: 1fr; } .sc-bar { grid-template-columns: 92px 1fr 66px; } .sc-aim__row { flex-direction: column; align-items: flex-start; gap: 6px; } }
@media (max-width: 640px) {
	.sc-aim__row .sc-pill { flex: none; width: auto; }
	.sc-lvl { display: grid; grid-template-columns: 112px 1fr; column-gap: 16px; align-items: center; padding: 12px; }
	.sc-lvl__img { grid-row: 1 / span 3; grid-column: 1; margin: 0; }
	.sc-lvl__img img { margin: 0; }
	.sc-lvl > h3, .sc-lvl > .sc-lvl__px, .sc-lvl > .sc-lvl__q { grid-column: 2; }
	.sc-lvl .sc-lvl__n { top: 18px; left: 18px; width: 26px; height: 26px; font-size: 0.875rem; }
}
.sc-text--link a { color: var(--orange-dark); }
.sc-text strong { color: var(--navy); }

/* =====================================================================
   EDITORIAL KIT (ed-*), added 2026-10-07
   Premium-agency direction for the rebuilt service pages: serif display type with italic emphasis,
   left-aligned asymmetric layouts, hairline rules instead of boxed cards, a warm paper tone,
   numbered sections, orange used once per section.
   ===================================================================== */
:root { --paper: #eaeff4; --ed-serif: var(--font-display, "Archivo", "Segoe UI", Arial, sans-serif); --font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace; --ed-ink: #0d2233; --ed-mute: #566574; --ed-rule: rgba(13, 34, 51, 0.16); --ed-rule-inv: rgba(255, 255, 255, 0.2); }

/* Page header for the editorial pages: big serif title, quiet lead. */
body.ed-page .page-hero--service { background: var(--ed-ink); padding: clamp(2rem, 1.5rem + 2vw, 3.5rem) 0 clamp(3rem, 2rem + 4vw, 6rem); }
body.ed-page .page-hero--service h1 { font-family: var(--ed-serif); font-weight: 700; font-size: clamp(3.25rem, 2rem + 6vw, 7.25rem); line-height: 0.95; letter-spacing: -0.025em; margin: clamp(1rem, 2vw, 2rem) 0 clamp(1rem, 1.5vw, 1.5rem); max-width: 12em; }
body.ed-page .page-hero--service h1::after { display: none !important; content: none !important; }
body.ed-page .page-hero--service .lead { font-weight: 400; font-size: clamp(1.1875rem, 1.05rem + 0.6vw, 1.5rem); line-height: 1.5; color: #b9c8d5; max-width: 30em; }

.ed-sec { padding: clamp(4rem, 2.5rem + 6vw, 8.5rem) 0; background: #fff; }
.ed-sec--paper { background: var(--paper); }
.ed-sec--ink { background: var(--ed-ink); color: #cfdbe6; }
.ed-sec .wrap { max-width: 1180px; }
.ed-head { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 1.5rem clamp(2rem, 4vw, 4.5rem); align-items: start; margin-bottom: clamp(2.5rem, 2rem + 3vw, 5rem); }
.ed-head__meta { border-top: 1px solid var(--ed-rule); padding-top: 0.9rem; }
.ed-idx { margin: 0 0 0.35rem; font-family: var(--ed-serif); font-size: 1.625rem; line-height: 1; color: var(--orange-dark); text-align: left; }
.ed-kick { margin: 0; font-size: 0.84375rem; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ed-mute); text-align: left; }
.ed-title { margin: 0; font-family: var(--ed-serif); font-weight: 700; font-size: clamp(2.5rem, 1.7rem + 3.4vw, 4.75rem); line-height: 1.02; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; text-wrap: balance; }
.ed-title em { font-style: italic; color: var(--orange-dark); }
.ed-lead { margin: 1.25rem 0 0; max-width: 38em; font-size: clamp(1.125rem, 1.05rem + 0.4vw, 1.3125rem); line-height: 1.6; color: var(--ed-mute); text-align: left; }
.ed-sec--ink .ed-head__meta { border-top-color: var(--ed-rule-inv); }
.ed-sec--ink .ed-kick { color: #93a7b8; }
.ed-sec--ink .ed-idx { color: #ff9b72; }
.ed-sec--ink .ed-title { color: #fff; }
.ed-sec--ink .ed-title em { color: #ff9b72; }
.ed-sec--ink .ed-lead { color: #b9c8d5; }
.ed-sec p, .ed-sec li { text-wrap: pretty; }
.ed-sec a:not(.wp-block-button__link) { color: var(--orange-dark); text-underline-offset: 3px; }
.ed-sec--ink a:not(.wp-block-button__link) { color: #ffb48f; }
.ed-src { margin: 1.25rem 0 0; font-size: 1rem; line-height: 1.5; color: var(--ed-mute); text-align: left; }
.ed-sec--ink .ed-src { color: #93a7b8; }

.ed-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 clamp(1.5rem, 3vw, 3rem); }
.ed-step { border-top: 2px solid var(--ed-ink); padding-top: 1.25rem; }
.ed-step .ed-step__n { margin: 0 0 0.75rem; font-family: var(--ed-serif); font-size: clamp(3.5rem, 3rem + 2vw, 5rem); line-height: 0.9; color: var(--orange-dark); text-align: left; }
.ed-step h3 { margin: 0 0 0.6rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.875rem; line-height: 1.08; color: var(--ed-ink); text-align: left; }
.ed-step p:not(.ed-step__n) { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--ed-mute); text-align: left; }
.ed-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ed-rule); }
.ed-list li { margin: 0; padding: 1.05rem 0; border-bottom: 1px solid var(--ed-rule); font-size: 1.125rem; line-height: 1.5; color: var(--ed-ink); text-align: left; }
.ed-pull { margin: clamp(2rem, 4vw, 3.5rem) 0 0; padding-left: 1.5rem; border-left: 3px solid var(--orange); font-family: var(--ed-serif); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem); line-height: 1.25; color: var(--ed-ink); text-align: left; }
.ed-photo, .ed-photo img { display: block; width: 100%; height: auto; margin: 0; border-radius: 2px; }
.ed-cap { margin: 0.6rem 0 0; font-size: 1rem; color: var(--ed-mute); text-align: left; }
.ed-vs { border-top: 2px solid var(--ed-ink); }
.ed-vs__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 5fr) minmax(0, 5fr); gap: 1rem clamp(1.5rem, 3vw, 3rem); padding: 1.35rem 0; border-bottom: 1px solid var(--ed-rule); align-items: baseline; }
.ed-vs__row--head { padding: 0.9rem 0; }
.ed-vs .ed-vs__k { margin: 0; font-family: var(--ed-serif); font-size: 1.5rem; line-height: 1.1; color: var(--ed-ink); text-align: left; }
.ed-vs .ed-vs__real, .ed-vs .ed-vs__scam { margin: 0; font-size: 1.0625rem; line-height: 1.55; text-align: left; }
.ed-vs .ed-vs__real { color: var(--ed-ink); }
.ed-vs .ed-vs__scam { color: var(--ed-mute); }
.ed-vs .ed-vs__h { margin: 0; font-size: 0.84375rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ed-mute); text-align: left; }
.ed-vs .ed-vs__h--real { color: #1f6b4a; }
.ed-vs .ed-vs__h--scam { color: #8a3a1c; }
.ed-terms { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 2px solid var(--ed-ink); }
.ed-term { padding: 1.5rem clamp(1rem, 2.5vw, 2.5rem) 0.5rem 0; }
.ed-term + .ed-term { padding-left: clamp(1rem, 2.5vw, 2.5rem); border-left: 1px solid var(--ed-rule); }
.ed-term h3 { margin: 0 0 0.6rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.875rem; line-height: 1.08; color: var(--ed-ink); text-align: left; }
.ed-term p { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--ed-mute); text-align: left; }
.ed-doc { background: #fff; border: 1px solid var(--ed-rule); border-top: 4px solid var(--ed-ink); padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: 0 30px 60px -30px rgba(13, 34, 51, 0.35); }
.ed-doc__top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: 1rem; margin-bottom: 1.25rem; border-bottom: 1px solid var(--ed-rule); }
.ed-doc .ed-doc__title { margin: 0; font-family: var(--ed-serif); font-size: 1.875rem; line-height: 1; color: var(--ed-ink); text-align: left; }
.ed-doc .ed-doc__tag { margin: 0; font-size: 0.84375rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ed-mute); }
.ed-doc .ed-doc__h { margin: 1.25rem 0 0.5rem; font-size: 0.84375rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ed-mute); text-align: left; }
.ed-doc__item { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 0.5rem 1rem; padding: 0.9rem 0; border-top: 1px solid var(--ed-rule); }
.ed-doc .ed-doc__when { margin: 0; font-size: 1rem; font-weight: 600; color: var(--ed-ink); text-align: left; }
.ed-doc .ed-doc__when--today { color: var(--orange-dark); }
.ed-doc .ed-doc__what { margin: 0; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-ink); text-align: left; }
.ed-doc .ed-doc__what a { color: var(--orange-dark); }
.ed-doc .ed-doc__foot { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--ed-rule); font-family: var(--ed-serif); font-size: 1.375rem; line-height: 1.25; color: var(--ed-ink); text-align: left; }
.ed-sec .btn-row, .ed-sec .wp-block-buttons { justify-content: flex-start; margin-top: 1.75rem; }
@media (max-width: 1000px) {
	.ed-head { grid-template-columns: 1fr; gap: 1rem; }
	.ed-steps { grid-template-columns: 1fr 1fr; gap: 2.5rem 2rem; }
	.ed-terms { grid-template-columns: 1fr; }
	.ed-term + .ed-term { padding-left: 0; border-left: 0; border-top: 1px solid var(--ed-rule); margin-top: 1rem; padding-top: 1.5rem; }
	.ed-vs__row { grid-template-columns: 1fr; gap: 0.35rem; }
	.ed-vs__row--head { display: none; }
}
@media (max-width: 640px) { .ed-steps { grid-template-columns: 1fr; } .ed-doc__item { grid-template-columns: 1fr; } }

/* ---- Tech support page (ts-*) ---- */
.ts-now { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.ts-now__kick { margin-bottom: 1.25rem !important; }
.ts-now__title { font-size: clamp(2.75rem, 1.8rem + 4.4vw, 5.75rem); }
.ts-now .ed-lead { max-width: 30em; }
.ts-side { border-left: 1px solid var(--ed-rule); padding-left: clamp(1.5rem, 3vw, 3rem); }
.ts-side .ed-kick { margin-bottom: 0.5rem; }
.ts-side__row { padding: 1.1rem 0; border-top: 1px solid var(--ed-rule); }
.ts-side__row:first-of-type { border-top: 0; }
.ts-side__row h3 { margin: 0 0 0.3rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.625rem; line-height: 1.1; color: var(--ed-ink); text-align: left; }
.ts-side__row p { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: var(--ed-mute); text-align: left; }
.ts-fix { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.ts-fix__title { margin: 0.9rem 0 1.75rem !important; font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem); }
.ts-fix__photo { align-self: stretch; }
.ts-fix__photo .ed-photo, .ts-fix__photo .ed-photo img { height: 100%; object-fit: cover; }
.ts-fix__text .ed-kick { margin: 0; }
.ts-remote { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.ts-stat .ed-kick { margin-bottom: 0.75rem; }
.ts-stat .ts-stat__n { margin: 0; font-family: var(--ed-serif); font-size: clamp(6rem, 4rem + 9vw, 12rem); line-height: 0.85; letter-spacing: -0.03em; color: #ff9b72; text-align: left; }
.ts-stat .ts-stat__t { margin: 0.75rem 0 0; font-size: 1.1875rem; color: #b9c8d5; text-align: left; }
.ts-remote__text .ed-title { margin-bottom: 1.25rem; }
.ts-remote__photo, .ts-remote__photo img { max-height: 34rem; object-fit: cover; }
.ts-after { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.ts-after__text .ed-kick { margin: 0 0 1rem; }
.ts-after__title { margin-bottom: 1.5rem !important; font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem); }
.ts-after .ed-lead + .ed-lead { margin-top: 1rem; }
.ts-ladder { max-width: 52rem; }
.ts-ladder .ed-kick { margin: 0 0 1.25rem; }
@media (max-width: 1000px) { .ts-now, .ts-fix, .ts-remote, .ts-after { grid-template-columns: 1fr; } .ts-side { border-left: 0; padding-left: 0; border-top: 1px solid var(--ed-rule); padding-top: 1.5rem; } .ts-fix__photo .ed-photo, .ts-fix__photo .ed-photo img { height: auto; max-height: 28rem; } }

/* ---- Editorial tail: FAQ, service areas, related services, closing banner (body.ed-page) ---- */
body.ed-page .faq-wrap, body.ed-page .section--mist { background: #fff; }
body.ed-page .faq { max-width: 860px; margin: 0 0 0 auto; border-top: 2px solid var(--ed-ink); }
body.ed-page .faq__item { background: transparent; border: 0; border-bottom: 1px solid var(--ed-rule); border-radius: 0; box-shadow: none; margin: 0; padding: 0; }
body.ed-page .faq__item summary { font-family: var(--ed-serif); font-weight: 700; font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem); line-height: 1.2; letter-spacing: -0.005em; color: var(--ed-ink); padding: 1.25rem 2.5rem 1.25rem 0; }
body.ed-page .faq__item p { font-size: 1.0625rem; line-height: 1.65; color: var(--ed-mute); padding: 0 2.5rem 1.4rem 0; margin: 0; text-align: left; }
body.ed-page .section > .wrap > .center { text-align: left; max-width: none; margin-left: 0; }
body.ed-page .section > .wrap > .center .kicker { font-size: 0.84375rem; font-weight: 500; letter-spacing: 0.14em; color: var(--ed-mute); }
body.ed-page .section > .wrap > .center h2.sq { font-family: var(--ed-serif); font-weight: 700; font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem); line-height: 1.05; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; }
body.ed-page .section > .wrap > .center h2.sq::after { display: none !important; content: none !important; }
body.ed-page .section > .wrap > .center .lead { text-align: left; margin-left: 0; }
body.ed-page .pill-list a { background: transparent; border: 1px solid var(--ed-rule); color: var(--ed-ink); font-weight: 500; }
body.ed-page .pill-list a:hover { border-color: var(--ed-ink); background: var(--paper); }
body.ed-page .fgrid .fcard { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
body.ed-page .fgrid .fcard__media img { border-radius: 2px; }
body.ed-page .fgrid .fcard__body { padding: 1rem 0 0; }
body.ed-page .fgrid .fcard h3, body.ed-page .fgrid .fcard h3 a { font-family: var(--ed-serif); font-weight: 700; font-size: 1.75rem; line-height: 1.1; letter-spacing: -0.005em; color: var(--ed-ink); }
body.ed-page .fgrid .fcard p { color: var(--ed-mute); }
body.ed-page .fgrid .fcard .more a { color: var(--orange-dark); font-weight: 600; }
body.ed-page .section:not(.ed-sec) h2.sq { font-family: var(--ed-serif); font-weight: 700; font-size: clamp(2.25rem, 1.6rem + 2.8vw, 3.75rem); line-height: 1.05; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; }
body.ed-page .section:not(.ed-sec) h2.sq::after { display: none !important; content: none !important; }
body.ed-page .section:not(.ed-sec) .kicker { font-size: 0.84375rem; font-weight: 500; letter-spacing: 0.14em; color: var(--ed-mute); text-align: left; }
body.ed-page .section:not(.ed-sec) .lead { text-align: left; margin-left: 0; color: var(--ed-mute); }

/* ---- Editorial kit additions: rows, stat triplets ---- */
.ed-rows { border-top: 2px solid var(--ed-ink); }
.ed-row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 0.5rem clamp(1.5rem, 3vw, 3rem); padding: 1.35rem 0; border-bottom: 1px solid var(--ed-rule); align-items: baseline; }
.ed-row h3 { margin: 0; font-family: var(--ed-serif); font-weight: 700; font-size: 1.75rem; line-height: 1.1; color: var(--ed-ink); text-align: left; }
.ed-row p { margin: 0; font-size: 1.0625rem; line-height: 1.6; color: var(--ed-mute); text-align: left; }
.ed-stats3 { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--ed-ink); }
.ed-stat3 { padding: 1.75rem clamp(1rem, 2.5vw, 2.5rem) 0.5rem 0; }
.ed-stat3 + .ed-stat3 { padding-left: clamp(1rem, 2.5vw, 2.5rem); border-left: 1px solid var(--ed-rule); }
.ed-stat3 .ed-stat3__n { margin: 0 0 0.75rem; font-family: var(--ed-serif); font-size: clamp(3.5rem, 2.5rem + 4vw, 6rem); line-height: 0.95; letter-spacing: -0.02em; color: var(--orange-dark); text-align: left; }
.ed-stat3 .ed-stat3__t { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.55; color: var(--ed-ink); text-align: left; }
.ed-stat3 .ed-stat3__so { margin: 0 0 0.75rem; font-family: var(--ed-serif); font-size: 1.5rem; line-height: 1.15; color: var(--ed-ink); text-align: left; }
.ed-stat3 .ed-stat3__src { margin: 0; font-size: 1rem; text-align: left; }
@media (max-width: 1000px) { .ed-row { grid-template-columns: 1fr; } .ed-stats3 { grid-template-columns: 1fr; } .ed-stat3 + .ed-stat3 { padding-left: 0; border-left: 0; border-top: 1px solid var(--ed-rule); margin-top: 1rem; padding-top: 1.75rem; } }

/* ---- Websites / SEO page (sw-*) ---- */
.sw-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; margin-bottom: clamp(3rem, 5vw, 5rem); }
.sw-hero .ed-kick { margin-bottom: 1.25rem; }
.sw-hero__title { font-size: clamp(2.75rem, 1.8rem + 3.8vw, 5rem); margin-bottom: 1.25rem !important; }
.sw-serp { background: #fff; border: 1px solid var(--ed-rule); border-radius: 14px; padding: clamp(1rem, 2vw, 1.5rem); box-shadow: 0 40px 70px -40px rgba(13, 34, 51, 0.45); }
.sw-serp .sw-bar { margin: 0 0 1rem; padding: 0.7rem 1.1rem; border: 1px solid var(--ed-rule); border-radius: 999px; font-size: 1.0625rem; color: var(--ed-ink); text-align: left; background: #fafbfc; }
.sw-serp .sw-lab { margin: 0 0 0.5rem; font-size: 0.84375rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ed-mute); text-align: left; }
.sw-ai { border: 1px solid rgba(232, 92, 42, 0.35); background: linear-gradient(180deg, #fff7f2, #fff); border-radius: 12px; padding: 1rem 1.1rem; margin-bottom: 1rem; }
.sw-ai .sw-ai__text { margin: 0 0 0.5rem; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-ink); text-align: left; }
.sw-ai .sw-ai__src { margin: 0; font-size: 1rem; color: var(--ed-mute); text-align: left; }
.sw-pack { margin-bottom: 1rem; }
.sw-pack__row { padding: 0.6rem 0.75rem; border-top: 1px solid var(--ed-rule); }
.sw-pack__row--top { background: #f6f9fc; border-radius: 8px; border-top-color: transparent; }
.sw-pack p { margin: 0; text-align: left; }
.sw-pack .sw-pack__name { font-size: 1.0625rem; color: var(--ed-ink); }
.sw-pack .sw-pack__meta { font-size: 1rem; color: var(--ed-mute); }
.sw-org p { margin: 0 0 0.25rem; text-align: left; }
.sw-org .sw-org__url { font-size: 1rem; color: var(--ed-mute); }
.sw-org .sw-org__title { font-size: 1.25rem; line-height: 1.3; color: #1a4fb4; font-weight: 500; }
.sw-org .sw-org__desc { font-size: 1.0625rem; line-height: 1.5; color: var(--ed-ink); }
.sw-serp .sw-serp__cap { margin: 1rem 0 0; font-size: 1rem; color: var(--ed-mute); text-align: center; }
.sw-mark { display: inline-flex; align-items: center; justify-content: center; width: 1.45em; height: 1.45em; margin-right: 0.35em; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--font-display); font-size: 0.85em; font-weight: 700; line-height: 1; vertical-align: 0.05em; }
.sw-leg .ed-kick { margin-bottom: 0.75rem; }
.sw-leg__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 clamp(1.25rem, 2.5vw, 2.5rem); border-top: 2px solid var(--ed-ink); }
.sw-leg__row { padding-top: 1.25rem; }
.sw-leg__row h3 { margin: 0.6rem 0 0.4rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.625rem; line-height: 1.1; color: var(--ed-ink); text-align: left; }
.sw-leg__row p { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: var(--ed-mute); text-align: left; }
.sw-leg__row .sw-leg__n { margin: 0; text-align: left; }
.sw-local { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.sw-local__photo .ed-photo, .sw-local__photo .ed-photo img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
.sw-local__text .ed-kick { margin: 0; }
.sw-local__title { margin: 0.9rem 0 2rem !important; font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem); }
.sw-lf { align-items: start; }
.sw-lf p { text-align: left; }
.sw-lf span { display: block; font-size: 0.84375rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ed-mute); margin-bottom: 0.15rem; }
.sw-lf .sw-lf__do { margin-top: 0.85rem; color: var(--ed-ink); }
.sw-lf .sw-lf__do span { color: var(--orange-dark); }
.sw-vs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--ed-rule-inv); margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.sw-v { padding: 1.75rem clamp(1rem, 2.5vw, 2.5rem) 0.5rem 0; }
.sw-v + .sw-v { padding-left: clamp(1rem, 2.5vw, 2.5rem); border-left: 1px solid var(--ed-rule-inv); }
.sw-v .sw-v__n { margin: 0 0 0.5rem; font-family: var(--ed-serif); line-height: 0.9; color: #ff9b72; text-align: left; }
.sw-v__num { font-size: clamp(4.5rem, 3rem + 6vw, 8.5rem); letter-spacing: -0.03em; }
.sw-v__unit { font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.75rem); margin-left: 0.2em; color: #ffcdb5; }
.sw-v h3 { margin: 0 0 0.4rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.75rem; color: #fff; text-align: left; }
.sw-v p:not(.sw-v__n) { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: #b9c8d5; text-align: left; }
.sw-dl { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: baseline; padding: 1.75rem 0; border-top: 1px solid var(--ed-rule-inv); }
.sw-dl .sw-dl__n { margin: 0; font-family: var(--ed-serif); font-size: clamp(3rem, 2.4rem + 3vw, 5rem); line-height: 1; color: #ff9b72; text-align: left; }
.sw-dl .sw-dl__t { margin: 0; font-size: 1.1875rem; line-height: 1.6; color: #cfdbe6; text-align: left; max-width: 44em; }
.sw-myth { text-decoration: line-through; text-decoration-color: rgba(138, 58, 28, 0.5); }
.sw-fund { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(2rem, 5vw, 5rem); margin-top: clamp(3rem, 5vw, 5rem); align-items: start; }
.sw-fund__h { margin: 0 0 1rem; font-family: var(--ed-serif); font-weight: 700; font-size: clamp(2rem, 1.6rem + 1.6vw, 3rem); line-height: 1.05; color: var(--ed-ink); text-align: left; }
.sw-case { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.sw-case .ed-kick { margin-bottom: 0.75rem; }
.sw-case .sw-case__n { margin: 0; font-family: var(--ed-serif); font-size: clamp(5.5rem, 4rem + 8vw, 11rem); line-height: 0.85; letter-spacing: -0.03em; color: var(--orange-dark); text-align: left; }
.sw-case .sw-case__t { margin: 0.75rem 0 0; font-size: 1.1875rem; color: var(--ed-mute); text-align: left; }
.sw-case__text .ed-title { margin-bottom: 1.25rem; }
.sw-own { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sw-own__lead .ed-kick { margin-bottom: 1rem; }
.sw-proc__photo { margin-bottom: clamp(2.5rem, 4vw, 4rem); }
.sw-proc__photo, .sw-proc__photo img { max-height: 30rem; object-fit: cover; }
.sw-care { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sw-care__text .ed-kick { margin: 0 0 1rem; }
.sw-care__title { margin-bottom: 1.25rem !important; font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.75rem); }
.sw-care .ed-lead { margin-bottom: 1.75rem; }
.sw-acc { background: var(--paper); border-top: 4px solid var(--ed-ink); padding: clamp(1.5rem, 3vw, 2.5rem); }
.sw-acc .sw-acc__n { margin: 0.5rem 0; font-family: var(--ed-serif); font-size: clamp(3.5rem, 3rem + 3vw, 6rem); line-height: 0.95; color: var(--orange-dark); text-align: left; }
.sw-acc .sw-acc__t { margin: 0 0 0.75rem; font-size: 1.0625rem; line-height: 1.6; color: var(--ed-ink); text-align: left; }
@media (max-width: 1000px) {
	.sw-hero, .sw-local, .sw-fund, .sw-case, .sw-own, .sw-care { grid-template-columns: 1fr; }
	.sw-leg__list, .sw-vs { grid-template-columns: 1fr 1fr; gap: 0 2rem; }
	.sw-v + .sw-v { padding-left: 0; border-left: 0; }
	.sw-dl { grid-template-columns: 1fr; gap: 0.5rem; }
	.sw-local__photo .ed-photo, .sw-local__photo .ed-photo img { aspect-ratio: 4 / 3; }
}
@media (max-width: 640px) { .sw-leg__list, .sw-vs { grid-template-columns: 1fr; } }


/* =====================================================================
   TECH VOICE (2026-10-07): re-tune of the editorial kit for a technology-services brand.
   Archivo display at confident weights, Geist Mono for small technical labels, cool neutrals,
   faint blueprint grid on dark sections. No serif, no italic emphasis, no warm paper.
   ===================================================================== */
.ed-title em, .ed-lead em { font-style: normal; color: var(--orange-dark); }
.ed-sec--ink .ed-title em { color: #ff9b72; }
.ed-title { font-weight: 700; font-size: clamp(2rem, 1.35rem + 2.5vw, 3.5rem); line-height: 1.08; letter-spacing: -0.03em; }
body.ed-page .page-hero--service h1 { font-weight: 700; font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.5rem); line-height: 1.04; letter-spacing: -0.03em; max-width: 14em; }
body.ed-page .page-hero--service { background-color: var(--ed-ink); background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px); background-size: 56px 56px; }
.ed-sec--ink { background-image: linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px); background-size: 56px 56px; }
.ed-kick, .ed-idx, .ed-vs .ed-vs__h, .ed-doc .ed-doc__tag, .ed-doc .ed-doc__h, .sw-serp .sw-lab, .sw-lf span, .ed-doc .ed-doc__when { font-family: var(--font-mono); }
.ed-kick, .ed-vs .ed-vs__h, .ed-doc .ed-doc__tag, .ed-doc .ed-doc__h, .sw-serp .sw-lab, .sw-lf span { font-weight: 500; letter-spacing: 0.06em; }
.ed-idx { font-size: 1rem; font-weight: 500; letter-spacing: 0.04em; }
.ed-step .ed-step__n, .ed-stat3 .ed-stat3__n, .ts-stat .ts-stat__n, .sw-v__num, .sw-dl .sw-dl__n, .sw-case .sw-case__n, .sw-acc .sw-acc__n { font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.ed-step .ed-step__n { font-size: clamp(2.5rem, 2.1rem + 1.4vw, 3.5rem); }
.ed-stat3 .ed-stat3__n { font-size: clamp(2.5rem, 2rem + 2.2vw, 4rem); }
.ts-stat .ts-stat__n { font-size: clamp(4rem, 3rem + 5vw, 8rem); }
.sw-v__num { font-size: clamp(3.5rem, 2.6rem + 4vw, 6rem); }
.sw-v__unit { font-family: var(--font-display, "Archivo", sans-serif); font-weight: 700; font-size: clamp(1.25rem, 1.1rem + 0.8vw, 2rem); }
.sw-dl .sw-dl__n { font-size: clamp(2.25rem, 1.9rem + 2vw, 3.75rem); }
.sw-case .sw-case__n { font-size: clamp(3.75rem, 2.8rem + 5vw, 7.5rem); }
.sw-acc .sw-acc__n { font-size: clamp(2.5rem, 2.1rem + 2vw, 4.25rem); }
.ts-now__title { font-size: clamp(2.25rem, 1.5rem + 3vw, 4rem); }
.ts-fix__title, .ts-after__title, .sw-local__title, .sw-care__title, .sw-hero__title { font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem); }
.ed-step h3, .ed-term h3, .ed-row h3, .sw-leg__row h3, .sw-v h3, .ts-side__row h3, .ed-vs .ed-vs__k { font-size: 1.375rem; line-height: 1.2; letter-spacing: -0.015em; font-weight: 700; }
.ed-pull { font-family: var(--ed-serif); font-weight: 600; font-size: clamp(1.1875rem, 1.05rem + 0.7vw, 1.5rem); line-height: 1.4; letter-spacing: -0.01em; }
.ed-doc .ed-doc__title { font-size: 1.5rem; font-weight: 700; }
.ed-doc .ed-doc__foot { font-family: var(--ed-serif); font-weight: 600; font-size: 1.125rem; }
.sw-fund__h { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.25rem); }
.ed-stat3 .ed-stat3__so { font-size: 1.1875rem; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
body.ed-page .faq__item summary { font-family: var(--ed-serif); font-weight: 600; font-size: clamp(1.125rem, 1.05rem + 0.4vw, 1.3125rem); letter-spacing: -0.01em; }
body.ed-page .section:not(.ed-sec) h2.sq { font-size: clamp(1.9rem, 1.4rem + 2vw, 3rem); font-weight: 700; letter-spacing: -0.03em; }
body.ed-page .fgrid .fcard h3, body.ed-page .fgrid .fcard h3 a { font-weight: 700; font-size: 1.1875rem; letter-spacing: -0.01em; }

/* ---- Managed IT page (mi-*) ---- */
.mi-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.mi-hero .ed-kick { margin-bottom: 1.25rem; }
.mi-hero__title { margin-bottom: 1.25rem !important; font-size: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); }
.mi-report { background: #fff; border: 1px solid var(--ed-rule); border-top: 4px solid var(--ed-ink); border-radius: 4px; padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: 0 40px 70px -40px rgba(13, 34, 51, 0.45); }
.mi-report__top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: 0.9rem; margin-bottom: 1rem; border-bottom: 1px solid var(--ed-rule); }
.mi-report .mi-report__title { margin: 0; font-family: var(--ed-serif); font-weight: 700; font-size: 1.375rem; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; }
.mi-report .mi-report__tag { margin: 0; font-family: var(--font-mono); font-size: 0.84375rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ed-mute); }
.mi-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.75rem; margin-bottom: 1rem; }
.mi-metric { padding: 0.75rem 0.75rem 0.6rem; background: #eaeff4; border-radius: 4px; }
.mi-metric .mi-metric__n { margin: 0; font-family: var(--ed-serif); font-weight: 800; font-size: 1.625rem; line-height: 1.1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--ed-ink); text-align: left; }
.mi-metric .mi-metric__t { margin: 0.2rem 0 0; font-size: 1rem; line-height: 1.3; color: var(--ed-mute); text-align: left; }
.mi-row { display: grid; grid-template-columns: 1.25rem 6.5rem minmax(0, 1fr); gap: 0.25rem 0.75rem; align-items: baseline; padding: 0.7rem 0; border-top: 1px solid var(--ed-rule); }
.mi-row p { margin: 0; text-align: left; }
.mi-row .mi-row__k { font-family: var(--font-mono); font-size: 0.9375rem; font-weight: 500; color: var(--ed-ink); }
.mi-row .mi-row__v { font-size: 1rem; line-height: 1.45; color: var(--ed-mute); }
.mi-dot { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 50%; vertical-align: 0.05em; }
.mi-dot--ok { background: #2f9e6b; box-shadow: 0 0 0 4px rgba(47, 158, 107, 0.18); }
.mi-dot--warn { background: var(--orange); box-shadow: 0 0 0 4px rgba(232, 92, 42, 0.18); }
.mi-report .mi-report__foot { margin: 0.75rem 0 0; padding-top: 0.75rem; border-top: 1px solid var(--ed-rule); font-size: 1rem; color: var(--ed-mute); text-align: left; }
.mi-sub { margin: clamp(2.5rem, 4vw, 4rem) 0 1.25rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.75rem; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; }
.mi-gap { margin-top: clamp(2.5rem, 4vw, 4rem); }
.mi-track { position: relative; height: 5.5rem; margin: 0 0 1.5rem; }
.mi-track__line { position: absolute; left: 0; right: 0; top: 2.25rem; height: 2px; background: var(--ed-rule); }
.mi-track__pt { position: absolute; top: 1.75rem; width: 1.1rem; height: 1.1rem; margin-left: -0.55rem; border-radius: 50%; background: #9aa8b5; }
.mi-track__pt--ended { background: #8a3a1c; }
.mi-track__pt--soon { background: var(--orange); box-shadow: 0 0 0 6px rgba(232, 92, 42, 0.2); }
.mi-track__pt--later { background: #2f6f9e; }
.mi-track__pt--now { top: 1.2rem; width: 2px; height: 2.4rem; margin-left: -1px; border-radius: 0; background: var(--ed-ink); }
.mi-track__pt--now b { position: absolute; top: -1.6rem; left: 50%; transform: translateX(-50%); font-family: var(--font-mono); font-weight: 500; font-size: 0.84375rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ed-ink); }
.mi-track__yr { position: absolute; top: 3.5rem; font-family: var(--font-mono); font-size: 0.9375rem; color: var(--ed-mute); }
.mi-life__row { display: grid; grid-template-columns: 9rem minmax(0, 1fr) auto; gap: 0.5rem clamp(1rem, 3vw, 3rem); align-items: baseline; padding: 1.25rem 0; border-top: 1px solid var(--ed-rule); }
.mi-life__row:last-child { border-bottom: 1px solid var(--ed-rule); }
.mi-life .mi-life__date { margin: 0; font-family: var(--font-mono); font-size: 1rem; font-weight: 500; color: var(--ed-ink); text-align: left; }
.mi-life h3 { margin: 0 0 0.25rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.375rem; letter-spacing: -0.015em; color: var(--ed-ink); text-align: left; }
.mi-life p:not(.mi-life__date) { margin: 0; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-mute); text-align: left; }
.mi-pill { margin: 0; }
.mi-pill--ended { background: #f3e3dd; color: #8a3a1c; }
.mi-pill--soon { background: var(--orange-soft); color: var(--orange-dark); border: 1px solid rgba(232, 92, 42, 0.4); }
.mi-pill--later { background: #e3eef7; color: #1e5a86; }
.mi-bind { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-top: clamp(3rem, 5vw, 5rem); }
.mi-bind__photo .ed-photo, .mi-bind__photo .ed-photo img { width: 100%; height: auto; }
.mi-bind__h { margin: 0 0 0.75rem; font-family: var(--ed-serif); font-weight: 700; font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); letter-spacing: -0.03em; color: var(--ed-ink); text-align: left; }
.mi-bind__text p { text-align: left; font-size: 1.125rem; line-height: 1.6; color: var(--ed-ink); }
.mi-bind__text .ed-src { margin-top: 1rem; color: var(--ed-mute); font-size: 1rem; }
.mi-price { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.mi-price__title { margin: 0.9rem 0 1.75rem !important; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.mi-price .ed-kick { margin: 0; }
.mi-price__note { margin: 1.5rem 0 0 !important; }
.mi-qs { background: var(--paper); border-top: 4px solid var(--ed-ink); padding: clamp(1.5rem, 3vw, 2.5rem); }
.mi-qs .ed-kick { margin-bottom: 1rem; color: var(--ed-ink); }
.mi-q { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: 0.75rem; padding: 0.9rem 0; border-top: 1px solid var(--ed-rule); }
.mi-q .mi-q__n { margin: 0; font-family: var(--font-mono); font-size: 0.9375rem; font-weight: 500; color: var(--orange-dark); text-align: left; }
.mi-q .mi-q__t { margin: 0; font-size: 1.125rem; line-height: 1.45; color: var(--ed-ink); text-align: left; }
.mi-qs .ed-src { margin-top: 1.25rem; }
.mi-sw, .mi-co, .mi-founder { display: grid; gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.mi-sw { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.mi-sw__lead .ed-kick, .mi-co__head .ed-kick { margin: 0 0 1rem; }
.mi-co { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.mi-founder { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: center; }
.mi-founder__photo .ed-photo, .mi-founder__photo .ed-photo img { width: 100%; height: auto; border-radius: 4px; }
.mi-founder__text .ed-kick { margin: 0 0 1rem; }
.mi-founder__title { margin-bottom: 1.25rem !important; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
@media (max-width: 1000px) {
	.mi-hero, .mi-bind, .mi-price, .mi-sw, .mi-co, .mi-founder { grid-template-columns: 1fr; }
	.mi-metrics { grid-template-columns: 1fr 1fr; }
	.mi-life__row { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .mi-row { grid-template-columns: 1.25rem minmax(0, 1fr); } .mi-row .mi-row__v { grid-column: 2; } .mi-track__yr:nth-of-type(even) { display: none; } }
/* Dark-section variants for kit components */
.ed-sec--ink .ed-step { border-top-color: var(--ed-rule-inv); }
.ed-sec--ink .ed-step .ed-step__n { color: #ff9b72; }
.ed-sec--ink .ed-step h3 { color: #fff; }
.ed-sec--ink .ed-step p:not(.ed-step__n) { color: #b9c8d5; }
.ed-sec--ink .ed-rows, .ed-sec--ink .ed-list { border-top-color: var(--ed-rule-inv); }
.ed-sec--ink .ed-row, .ed-sec--ink .ed-list li { border-bottom-color: var(--ed-rule-inv); color: #e6eef5; }
.ed-sec--ink .ed-row h3 { color: #fff; }
.ed-sec--ink .ed-row p { color: #b9c8d5; }
.ed-sec--ink .ed-term h3 { color: #fff; }
.ed-sec--ink .ed-term p { color: #b9c8d5; }
.ed-sec--ink .ed-terms { border-top-color: var(--ed-rule-inv); }
.ed-sec--ink .ed-term + .ed-term { border-left-color: var(--ed-rule-inv); }
.mi-row .mi-row__k, .mi-track__yr, .mi-q .mi-q__n { font-size: 1rem; }

/* ---- Tech support pass 2 (ts-*): status, ticket, checklist, equation ---- */
.ts-status { margin: 1.25rem 0 0 !important; font-family: var(--font-mono); font-size: 0.9375rem; line-height: 1.5; color: var(--ed-mute); text-align: left; }
.ts-live { display: inline-block; width: 0.65rem; height: 0.65rem; margin-right: 0.5rem; border-radius: 50%; background: #2f9e6b; box-shadow: 0 0 0 4px rgba(47, 158, 107, 0.2); vertical-align: 0.05em; }
.ts-call { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
.ts-call__text .ed-kick { margin: 0 0 1.25rem; }
.ts-call__title { margin-bottom: 1rem !important; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); }
.ts-arc { margin-top: 2rem; border-top: 2px solid var(--ed-ink); }
.ts-arc__row { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 0.75rem; padding: 1.1rem 0; border-bottom: 1px solid var(--ed-rule); }
.ts-arc .ts-arc__n { margin: 0; font-family: var(--font-mono); font-size: 1rem; font-weight: 500; color: var(--orange-dark); text-align: left; padding-top: 0.2rem; }
.ts-arc h3 { margin: 0 0 0.25rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.015em; color: var(--ed-ink); text-align: left; }
.ts-arc p:not(.ts-arc__n) { margin: 0; font-size: 1.0625rem; line-height: 1.55; color: var(--ed-mute); text-align: left; }
.ts-ticket { background: #fff; border: 1px solid var(--ed-rule); border-top: 4px solid var(--ed-ink); border-radius: 4px; padding: clamp(1.25rem, 2.5vw, 2rem); box-shadow: 0 40px 70px -40px rgba(13, 34, 51, 0.45); }
.ts-ticket__top { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.ts-ticket .ts-ticket__label, .ts-ticket .ts-ticket__tag { margin: 0; font-family: var(--font-mono); font-size: 0.84375rem; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ed-mute); }
.ts-ticket .ts-ticket__title { margin: 0.6rem 0 0.75rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.02em; color: var(--ed-ink); text-align: left; }
.ts-ticket .ts-ticket__chips { margin: 0 0 1.25rem; text-align: left; }
.ts-chip { display: inline-block; margin: 0 0.35rem 0.25rem 0; padding: 0.2rem 0.65rem; border: 1px solid var(--ed-rule); border-radius: 999px; font-family: var(--font-mono); font-size: 0.875rem; color: var(--ed-ink); background: #eaeff4; }
.ts-chip--ok { background: #dcf1e7; border-color: #b6dfca; color: #1f6b4a; }
.ts-tl { border-top: 1px solid var(--ed-rule); }
.ts-tl__row { display: grid; grid-template-columns: 3.5rem 1rem minmax(0, 1fr); gap: 0.75rem; padding: 0.85rem 0; border-bottom: 1px solid var(--ed-rule); }
.ts-tl__row p { margin: 0; text-align: left; }
.ts-tl .ts-tl__t { font-family: var(--font-mono); font-size: 0.9375rem; color: var(--ed-mute); padding-top: 0.1rem; }
.ts-tl .ts-tl__d { padding-top: 0.45rem; }
.ts-tl__dot { display: block; width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 4px rgba(232, 92, 42, 0.18); }
.ts-tl__row:last-child .ts-tl__dot { background: #2f9e6b; box-shadow: 0 0 0 4px rgba(47, 158, 107, 0.2); }
.ts-tl__row strong { color: var(--ed-ink); }
.ts-tl__row p:not(.ts-tl__t):not(.ts-tl__d) { font-size: 1.0625rem; line-height: 1.5; color: var(--ed-mute); }
.ts-tl__row p:not(.ts-tl__t):not(.ts-tl__d) strong { display: block; color: var(--ed-ink); margin-bottom: 0.1rem; }
.ts-ready { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 clamp(1.5rem, 3vw, 3rem); border-top: 2px solid var(--ed-ink); }
.ts-ready__item { display: grid; grid-template-columns: 1.75rem minmax(0, 1fr); gap: 0.75rem; padding: 1.35rem 0; border-bottom: 1px solid var(--ed-rule); }
.ts-ready .ts-ready__box { margin: 0.2rem 0 0; }
.ts-box { display: block; width: 1.25rem; height: 1.25rem; border: 2px solid var(--ed-ink); border-radius: 3px; }
.ts-ready h3 { margin: 0 0 0.3rem; font-family: var(--ed-serif); font-weight: 700; font-size: 1.1875rem; letter-spacing: -0.015em; color: var(--ed-ink); text-align: left; }
.ts-ready p { margin: 0; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-mute); text-align: left; }
.ts-eq { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: clamp(1rem, 3vw, 2.5rem); align-items: center; margin: 2rem 0; padding: clamp(1.25rem, 3vw, 2rem) 0; border-top: 1px solid var(--ed-rule-inv); border-bottom: 1px solid var(--ed-rule-inv); }
.ts-eq .ts-eq__k { margin: 0 0 0.35rem; font-family: var(--font-mono); font-size: 1rem; font-weight: 500; color: #ff9b72; text-align: left; }
.ts-eq .ts-eq__v { margin: 0; font-size: 1.1875rem; line-height: 1.45; color: #fff; text-align: left; }
.ts-eq .ts-eq__vs { margin: 0; font-family: var(--font-mono); font-size: 1rem; color: #93a7b8; }
@media (max-width: 1000px) { .ts-call { grid-template-columns: 1fr; } .ts-ready { grid-template-columns: 1fr 1fr; } .ts-eq { grid-template-columns: 1fr; } .ts-eq .ts-eq__vs { text-align: left; } }
@media (max-width: 640px) { .ts-ready { grid-template-columns: 1fr; } .ts-tl__row { grid-template-columns: 3.25rem 1rem minmax(0, 1fr); } }
.ts-chip, .ts-status, .ts-tl .ts-tl__t { font-size: 1rem; }
/* Closing banner on editorial pages: heading was inheriting the dark section-heading colour (invisible on navy). */
/* Shared closing banner on editorial pages = the home-page banner (headline white, centred, with the orange square). */
body.ed-page .section .cta-band h2.sq { color: #fff; text-align: center; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.5rem); line-height: 1.12; letter-spacing: -0.014em; margin: 0 0 0.4em; }
body.ed-page .section .cta-band h2.sq::after { display: inline-block !important; content: "" !important; }
body.ed-page .section .cta-band p { text-align: center; color: #fff; font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.1875rem); line-height: 1.55; }
body.ed-page .section .cta-band .wp-block-buttons { justify-content: center; }
.ed-stat3 .ed-stat3__n { white-space: nowrap; }
@media (min-width: 1001px) and (max-width: 1280px) { .ed-stat3 .ed-stat3__n { font-size: clamp(2.75rem, 2rem + 3vw, 4rem); } }

/* ===== HOME: "How we work together" — a real person + three short beats ===== */
.section--hw .hw-wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; max-width: 1060px; margin: 0 auto; }
.section--hw .hw-person { margin: 0; }
.section--hw .hw-photo { margin: 0; }
.section--hw .hw-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 48% 40%; border-radius: 14px; display: block; box-shadow: 0 24px 48px -20px rgba(0,0,0,0.6); }
.section--hw .hw-person .hw-cap { margin: 0.9rem 0 0; font-size: 1rem; color: #c6d3de; text-align: left; }
.section--hw .hw-person .hw-cap strong { color: #fff; }
.section--hw .hw-main { text-align: left; }
.section--hw .hw-main .hw-kick { margin: 0 0 0.6rem; font-size: 0.8438rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); text-align: left; }
.section--hw .hw-main h2.hw-title { margin: 0 0 1.75rem; color: #fff; text-align: left; font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.5rem); line-height: 1.12; letter-spacing: -0.014em; }
.section--hw .hw-list { margin: 0 0 2rem; border-top: 1px solid rgba(255,255,255,0.18); }
.section--hw .hw-row { display: flex; align-items: baseline; gap: 1.25rem; padding: 1.1rem 0; border-bottom: 1px solid rgba(255,255,255,0.18); }
.section--hw .hw-row .hw-row__n { margin: 0; flex: none; width: 2.25rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.9375rem; letter-spacing: 0.08em; color: #ffb48f; text-align: left; }
.section--hw .hw-row h3 { margin: 0 0 0.15rem; color: #fff; font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.75rem); line-height: 1.15; text-align: left; }
.section--hw .hw-row .hw-row__b p { margin: 0; color: #c6d3de; font-size: 1.125rem; line-height: 1.45; text-align: left; }
@media (max-width: 820px) {
	.section--hw .hw-wrap { grid-template-columns: 1fr; gap: 1.75rem; }
	.section--hw .hw-photo img { aspect-ratio: 4 / 3; max-height: 340px; object-position: 48% 35%; }
	.section--hw .hw-main { order: -1; }
}

/* How we work: big numerals as the statement */
.section--hw .hw-row { align-items: center; gap: clamp(1rem, 2.5vw, 1.75rem); padding: 1.25rem 0; }
.section--hw .hw-row .hw-row__n { width: auto; min-width: 1.6em; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(3.5rem, 2.6rem + 3.6vw, 5.5rem); line-height: 0.85; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; color: var(--orange); }
.section--hw .hw-row:hover .hw-row__n { color: #ff8a5c; }
@media (max-width: 820px) { .section--hw .hw-row .hw-row__n { font-size: 3.25rem; min-width: 1.5em; } }

/* How we work v3: full-width photo, three numbered columns */
.section--hw .hw-wrap { display: block; max-width: 1080px; margin: 0 auto; }
.section--hw .hw-head { text-align: center; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); }
.section--hw .hw-head .hw-kick { margin: 0 0 0.6rem; font-size: 0.8438rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--orange); text-align: center; }
.section--hw .hw-head h2.hw-title { margin: 0; text-align: center; color: #fff; font-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.5rem); line-height: 1.12; letter-spacing: -0.014em; }
.section--hw .hw-photo { margin: 0; }
.section--hw .hw-photo img { width: 100%; aspect-ratio: auto; max-height: none; height: auto; object-fit: cover; object-position: center; border-radius: 14px; display: block; box-shadow: 0 24px 48px -20px rgba(0,0,0,0.6); }
.section--hw .hw-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 3vw, 2.5rem); margin: clamp(1.75rem, 3.5vw, 2.75rem) 0 0; border-top: 0; }
.section--hw .hw-row { flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: 1rem 0 0; border-bottom: 0; border-top: 2px solid rgba(255,255,255,0.22); }
.section--hw .hw-row .hw-row__n { font-size: clamp(3.25rem, 2.2rem + 3.4vw, 5.5rem); min-width: 0; }
.section--hw .hw-foot { margin-top: clamp(1.75rem, 3.5vw, 2.5rem); display: flex; justify-content: center; }
@media (max-width: 820px) {
	.section--hw .hw-list { grid-template-columns: 1fr; gap: 0; }
	.section--hw .hw-row { flex-direction: row; align-items: center; gap: 1.25rem; padding: 1rem 0; border-top: 0; border-bottom: 1px solid rgba(255,255,255,0.18); }
	.section--hw .hw-row .hw-row__n { font-size: 3.25rem; min-width: 1.5em; }
	.section--hw .hw-list { border-top: 1px solid rgba(255,255,255,0.18); }
}

/* How we work v4: full (uncropped) photo smaller, numbered steps on the side */
@media (min-width: 821px) {
	.section--hw .hw-wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(1.75rem, 4vw, 3.5rem); align-items: center; max-width: 1120px; }
	.section--hw .hw-head, .section--hw .hw-foot { grid-column: 1 / -1; }
	.section--hw .hw-photo { grid-column: 1; grid-row: 2; }
	.section--hw .hw-list { grid-column: 2; grid-row: 2; display: block; margin: 0; border-top: 1px solid rgba(255,255,255,0.18); }
	.section--hw .hw-row { flex-direction: row; align-items: center; gap: clamp(1rem, 2vw, 1.5rem); padding: 1.1rem 0; border-top: 0; border-bottom: 1px solid rgba(255,255,255,0.18); }
	.section--hw .hw-row .hw-row__n { font-size: clamp(3.25rem, 2.4rem + 2.6vw, 4.75rem); min-width: 1.55em; }
}
@media (min-width: 821px) {
	.section--hw .hw-wrap { row-gap: 0; }
	.section--hw .hw-head { margin-bottom: clamp(1.75rem, 3vw, 2.5rem); }
	.section--hw .hw-foot { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
}
.section--hw .hw-person { margin: 0; }
.section--hw .hw-person .hw-cap { margin: 0.5rem 0 0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: #9fb3c4; text-align: right; }
@media (min-width: 821px) { .section--hw .hw-person { grid-column: 1; grid-row: 2; } }

/* ===== AI SOLUTIONS PAGE (ai-*) ===== */
.ai-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.ai-sc { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem 1.5rem 1rem; box-shadow: 0 30px 60px -34px rgba(13,34,51,0.45); }
.ai-sc .ai-sc__title { margin: 0 0 0.5rem; padding-bottom: 0.7rem; border-bottom: 2px solid var(--ed-ink, #0d2233); font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; }
.ai-sc__row { display: grid; grid-template-columns: 5.5rem 1fr; gap: 1rem; padding: 0.8rem 0; border-bottom: 1px solid #e6ecf1; align-items: baseline; }
.ai-sc .ai-sc__k { margin: 0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
.ai-sc .ai-sc__v { margin: 0; font-size: 1.0625rem; line-height: 1.4; color: var(--ed-ink, #0d2233); text-align: left; }
.ai-sc .ai-sc__chips { margin: 0; display: flex; gap: 0.5rem; flex-wrap: wrap; text-align: left; }
.ai-chip { display: inline-block; padding: 0.3rem 0.8rem; border-radius: 999px; border: 1px solid #b7c4d0; color: #5b6b7a; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; }
.ai-chip--keep { background: var(--orange-dark, #c24a1d); border-color: var(--orange-dark, #c24a1d); color: #fff; }
.ai-sc .ai-sc__cap { margin: 0.8rem 0 0; font-size: 0.875rem; color: #5b6b7a; text-align: right; }

.ai-nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.25rem); }
.ai-num { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.5rem 1.5rem 1.25rem; display: flex; flex-direction: column; }
.ai-num .ai-num__n { margin: 0 0 0.5rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(2.75rem, 2rem + 3vw, 4.25rem); line-height: 0.95; letter-spacing: -0.035em; color: var(--orange-dark, #c24a1d); text-align: left; }
.ai-num .ai-num__t { margin: 0 0 1.1rem; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-ink, #0d2233); text-align: left; }
.ai-num .ai-num__g { margin: 0 0 1rem; margin-top: auto; text-align: left; line-height: 1; }
.ai-num .ai-num__s { margin: 0; font-size: 0.9375rem; text-align: left; }
.ai-week { display: grid; grid-template-columns: repeat(20, 1fr); gap: 3px; }
.ai-waffle { display: grid; grid-template-columns: repeat(20, 1fr); gap: 3px; }
.ai-cell { display: block; aspect-ratio: 1; border-radius: 2px; background: #dbe4ec; }
.ai-cell.is-on { background: var(--orange); }
.ai-bars { display: grid; gap: 0.5rem; }
.ai-bar { position: relative; display: block; height: 1.75rem; background: #e1e8ee; border-radius: 4px; overflow: hidden; }
.ai-bar__f { position: absolute; inset: 0 auto 0 0; display: block; background: var(--orange); border-radius: 4px; }
.ai-bar__f--14 { width: 14%; } .ai-bar__f--34 { width: 34%; } .ai-bar__f--2 { width: 1.5%; }
.ai-bar b { position: relative; display: block; padding: 0 0.6rem; line-height: 1.75rem; font-size: 0.9375rem; font-weight: 600; color: var(--ed-ink, #0d2233); }
.ai-bar:nth-child(1) b, .ai-bar:nth-child(2) b { padding-left: calc(var(--w, 0%) + 0.6rem); }
.ai-bar:nth-child(1) { --w: 14%; } .ai-bar:nth-child(2) { --w: 34%; }
.ai-flat { position: relative; display: block; padding-top: 1.1rem; }
.ai-flat__line { display: block; height: 2px; background: #b7c4d0; }
.ai-flat__tick { position: absolute; left: 1%; top: 0.55rem; width: 6px; height: 1.1rem; background: var(--orange); border-radius: 1px; }
.ai-flat b { display: block; margin-top: 0.6rem; font-size: 0.9375rem; font-weight: 600; color: var(--ed-ink, #0d2233); }

.ai-jobs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ai-job { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem; display: flex; flex-direction: column; gap: 0.35rem; }
.ai-job .ai-job__ic { width: 76px; height: 76px; margin-bottom: 0.5rem; }
.ai-job .ai-job__ic figure { margin: 0; width: 100%; height: 100%; }
.ai-job .ai-job__img, .ai-job img { width: 100%; height: 100%; object-fit: contain; display: block; border-radius: 0; }
.ai-job h3 { margin: 0; font-size: 1.375rem; line-height: 1.15; text-align: left; }
.ai-job .ai-job__t { margin: 0 0 0.6rem; font-size: 1.0625rem; line-height: 1.45; color: #4a5b6a; text-align: left; }
.ai-tag { margin: auto 0 0; align-self: flex-start; padding: 0.25rem 0.65rem; border-radius: 999px; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; text-align: left; }
.ai-tag--draft { background: #fdeee6; color: var(--orange-dark, #c24a1d); }
.ai-tag--auto { background: #e3edf5; color: #1c3a54; }
.ai-tag--int { background: #e1e8ee; color: #4a5b6a; border: 1px solid #d0dae3; }

.ai-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ai-tier { background: #fff; border-radius: 14px; padding: 1.25rem 1.25rem 1.1rem; border: 1px solid var(--ed-rule, #d7dfe6); border-top-width: 6px; }
.ai-tier--people { border-top-color: var(--ed-ink, #0d2233); }
.ai-tier--draft { border-top-color: var(--orange); }
.ai-tier--auto { border-top-color: #7aa3c4; }
.ai-tier h3 { margin: 0 0 0.75rem; font-size: 1.375rem; line-height: 1.15; text-align: left; }
.ai-tier .ai-tier__list { margin: 0 0 0.9rem; padding: 0; list-style: none; }
.ai-tier .ai-tier__list li { padding: 0.5rem 0; border-top: 1px solid #e6ecf1; font-size: 1.0625rem; line-height: 1.4; }
.ai-tier .ai-tier__foot { margin: 0; font-size: 0.9375rem; color: #5b6b7a; text-align: left; }
.ai-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.ai-note__t { margin: 0; padding: 1rem 1.25rem; border-left: 3px solid var(--orange); background: rgba(255,255,255,0.7); font-size: 1.0625rem; line-height: 1.5; text-align: left; }

.ai-risks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ai-risk { display: grid; grid-template-columns: 84px 1fr; gap: 1.1rem; align-items: start; border: 1px solid rgba(255,255,255,0.16); border-radius: 14px; padding: 1.25rem; background: rgba(255,255,255,0.03); }
.ai-risk .ai-risk__ic { width: 84px; height: 84px; background: #eaeff4; border-radius: 12px; padding: 8px; }
.ai-risk .ai-risk__ic figure { margin: 0; width: 100%; height: 100%; }
.ai-risk .ai-risk__ic img { width: 100%; height: 100%; object-fit: contain; display: block; border-radius: 0; }
.ai-risk h3 { margin: 0 0 0.4rem; color: #fff; font-size: 1.375rem; line-height: 1.15; text-align: left; }
.ai-risk .ai-risk__t { margin: 0 0 0.4rem; color: #c6d3de; font-size: 1.0625rem; line-height: 1.5; text-align: left; }
.ai-risk .ai-risk__s { margin: 0 0 0.75rem; font-size: 0.9375rem; text-align: left; }
.ai-risk .ai-risk__rule { margin: 0; padding-top: 0.7rem; border-top: 1px solid rgba(255,255,255,0.16); color: #fff; font-size: 1.0625rem; font-weight: 600; text-align: left; }
.ai-risk .ai-risk__rule span { display: inline-block; margin-right: 0.5rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: #ffb48f; }

.ai-lanes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; overflow: hidden; background: #fff; }
.ai-lane { padding: 1.25rem 1.25rem 1.1rem; border-left: 6px solid #cfd9e2; }
.ai-lane + .ai-lane { border-top: 0; border-left-width: 6px; }
.ai-lane--pub { border-left-color: #6fae7f; } .ai-lane--int { border-left-color: #e0a23a; } .ai-lane--sens { border-left-color: #c0392b; }
.ai-lane .ai-lane__k { margin: 0 0 0.4rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.5rem; line-height: 1.1; text-align: left; }
.ai-lane .ai-lane__ex { margin: 0 0 0.8rem; font-size: 1rem; color: #5b6b7a; text-align: left; }
.ai-lane .ai-lane__rule { margin: 0; font-size: 1.0625rem; line-height: 1.45; font-weight: 600; text-align: left; }
.ai-data__src { margin-top: 1rem; }

.ai-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); position: relative; }
.ai-step { position: relative; padding-top: 1.1rem; border-top: 2px solid var(--ed-ink, #0d2233); }
.ai-step .ai-step__n { margin: 0 0 0.35rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3.25rem); line-height: 0.9; color: var(--orange-dark, #c24a1d); text-align: left; }
.ai-step h3 { margin: 0 0 0.3rem; font-size: 1.25rem; line-height: 1.15; text-align: left; }
.ai-step .ai-step__t { margin: 0; font-size: 1rem; line-height: 1.45; color: #4a5b6a; text-align: left; }
.ai-outs { display: flex; gap: 0.75rem; margin-top: clamp(1.5rem, 3vw, 2.25rem); justify-content: flex-end; align-items: center; flex-wrap: wrap; }
.ai-out { margin: 0; padding: 0.55rem 1.1rem; border-radius: 999px; border: 1px solid #b7c4d0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.9375rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ed-ink, #0d2233); background: #fff; }
.ai-out--keep { background: var(--orange-dark, #c24a1d); border-color: var(--orange-dark, #c24a1d); color: #fff; }
.ai-out--stop { padding: 0; border: 0; background: transparent; }
.ai-stop { display: inline-flex; align-items: center; justify-content: center; width: 5.25rem; height: 5.25rem; background: #b3261e; color: #fff; clip-path: polygon(30% 0, 70% 0, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0 70%, 0 30%); font-family: var(--font-display, "Archivo", sans-serif); font-size: 1.0625rem; letter-spacing: 0.06em; text-transform: uppercase; }

.ai-yns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ai-yn { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem 1.5rem; }
.ai-yn .ai-yn__k { margin: 0 0 0.6rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; }
.ai-yn__k--yes { color: #2f7a46; } .ai-yn__k--no { color: #b3261e; }
.ai-yn .ai-yn__list { margin: 0; padding: 0; list-style: none; }
.ai-yn .ai-yn__list li { position: relative; padding: 0.6rem 0 0.6rem 2rem; border-top: 1px solid #e6ecf1; font-size: 1.0625rem; line-height: 1.4; }
.ai-yn .ai-yn__list li::before { position: absolute; left: 0; top: 0.55rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 700; color: #fff; }
.ai-yn__list--yes li::before { content: "\2713"; background: #2f7a46; }
.ai-yn__list--no li::before { content: "\2715"; background: #b3261e; }

.ai-found { max-width: 46rem; text-align: left; }
@media (max-width: 1000px) {
	.ai-hero__grid, .ai-tiers, .ai-lanes { grid-template-columns: 1fr; }
	.ai-jobs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ai-steps { grid-template-columns: 1fr 1fr; row-gap: 1.5rem; }
	.ai-notes, .ai-risks, .ai-yns { grid-template-columns: 1fr; }
	.ai-lane { border-top: 1px solid var(--ed-rule, #d7dfe6); }
	.ai-lane:first-child { border-top: 0; }
}
@media (max-width: 640px) {
	.ai-nums, .ai-jobs, .ai-steps { grid-template-columns: 1fr; }
	.ai-risk { grid-template-columns: 64px 1fr; }
	.ai-risk .ai-risk__ic { width: 64px; height: 64px; }
	.ai-sc__row { grid-template-columns: 1fr; gap: 0.2rem; }
	.ai-outs { justify-content: flex-start; }
}

/* AI page refinements */
.ai-week { grid-template-columns: repeat(8, 1fr); max-width: 260px; gap: 4px; }
.ai-waffle { grid-template-columns: repeat(10, 1fr); max-width: 220px; gap: 3px; }
.ai-job .ai-job__ic { width: 96px; height: 96px; }
.ai-risk { grid-template-columns: 96px 1fr; }
.ai-risk .ai-risk__ic { width: 96px; height: 96px; }
.ai-outs { justify-content: space-between; }
.ai-outs::before { content: "On the numbers, one of three:"; margin-right: auto; font-size: 1.0625rem; font-weight: 600; color: var(--ed-ink, #0d2233); }
.ai-sc .ai-sc__k, .ai-chip, .ai-tag, .ai-risk .ai-risk__rule span { font-size: 0.8438rem; }
@media (max-width: 640px) {
	.ai-risk { grid-template-columns: 72px 1fr; } .ai-risk .ai-risk__ic { width: 72px; height: 72px; }
	.ai-outs::before { flex-basis: 100%; }
	.ai-outs { justify-content: flex-start; }
}
.ai-week__cap { display: block; margin-top: 0.5rem; font-size: 0.9375rem; font-weight: 600; color: var(--ed-ink, #0d2233); }

/* ===== IT STRATEGY PAGE (st-*) ===== */
.st-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.st-mx { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem 1.5rem 1rem; box-shadow: 0 30px 60px -34px rgba(13,34,51,0.45); }
.st-mx .st-mx__title { margin: 0 0 0.9rem; padding-bottom: 0.7rem; border-bottom: 2px solid var(--ed-ink, #0d2233); font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; }
.st-plot { position: relative; margin: 0 0 1rem 1.6rem; aspect-ratio: 16 / 10; border-left: 2px solid var(--ed-ink, #0d2233); border-bottom: 2px solid var(--ed-ink, #0d2233); background: linear-gradient(#cfd9e2, #cfd9e2) center / 1px 100% no-repeat, linear-gradient(#cfd9e2, #cfd9e2) center / 100% 1px no-repeat; text-align: left; }
.st-q { position: absolute; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; }
.st-q--tl { left: 0.6rem; top: 0.5rem; color: var(--orange-dark, #c24a1d); font-weight: 600; } .st-q--tr { right: 0.6rem; top: 0.5rem; } .st-q--bl { left: 0.6rem; bottom: 0.5rem; } .st-q--br { right: 0.6rem; bottom: 0.5rem; }
.st-ax { position: absolute; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.08em; text-transform: uppercase; color: #5b6b7a; }
.st-ax--y { left: -1.6rem; top: 50%; transform: translate(-50%, -50%) rotate(-90deg); transform-origin: center; }
.st-ax--x { left: 50%; bottom: -1.4rem; transform: translateX(-50%); }
.st-dot { position: absolute; width: 1.7rem; height: 1.7rem; margin: -0.85rem 0 0 -0.85rem; border-radius: 50%; background: var(--orange); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 0.9375rem; box-shadow: 0 0 0 4px rgba(232,92,42,0.2); }
.st-dot--1 { left: 16%; top: 30%; } .st-dot--2 { left: 31%; top: 40%; } .st-dot--3 { left: 70%; top: 32%; } .st-dot--4 { left: 22%; top: 72%; } .st-dot--5 { left: 84%; top: 52%; } .st-dot--6 { left: 66%; top: 80%; background: #7a8b9a; box-shadow: 0 0 0 4px rgba(122,139,154,0.2); }
.st-leg { display: grid; grid-template-columns: 1fr 1fr; gap: 0.35rem 1.25rem; margin-top: 1.4rem; }
.st-leg__row { display: flex; gap: 0.6rem; align-items: baseline; }
.st-leg .st-leg__n { margin: 0; flex: none; width: 1.1rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; color: var(--orange-dark, #c24a1d); text-align: left; }
.st-leg .st-leg__t { margin: 0; font-size: 0.9688rem; line-height: 1.35; color: var(--ed-ink, #0d2233); text-align: left; }
.st-mx .st-mx__cap { margin: 0.8rem 0 0; font-size: 0.875rem; color: #5b6b7a; text-align: right; }

.st-clock { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 2rem); position: relative; padding-top: 1.5rem; }
.st-clock::before { content: ""; position: absolute; left: 0; right: 0; top: 0.35rem; height: 2px; background: rgba(255,255,255,0.25); }
.st-clock__item { position: relative; }
.st-clock__item::before { content: ""; position: absolute; left: 0; top: -1.5rem; margin-top: 0.05rem; width: 12px; height: 12px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 0 5px rgba(232,92,42,0.25); }
.st-clock .st-clock__d { margin: 0 0 0.5rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.05; letter-spacing: -0.02em; color: #ffb48f; text-align: left; }
.st-clock .st-clock__t { margin: 0; font-size: 1.0625rem; line-height: 1.45; color: #dbe5ee; text-align: left; }
.st-clock__src { margin-top: 1.5rem; }

.st-six { display: grid; gap: clamp(0.75rem, 2vw, 1.25rem); }
.st-gov { background: var(--ed-ink, #0d2233); color: #fff; border-radius: 14px; padding: 1.25rem 1.5rem; display: flex; align-items: baseline; gap: 1.25rem; flex-wrap: wrap; }
.st-gov .st-gov__k { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.75rem; color: #ffb48f; text-align: left; }
.st-gov .st-gov__q { margin: 0; font-size: 1.1875rem; color: #fff; text-align: left; }
.st-fns { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.25rem); }
.st-fn { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-top: 5px solid var(--orange); border-radius: 12px; padding: 1rem 1.1rem 1.1rem; }
.st-fn .st-fn__k { margin: 0 0 0.4rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.3125rem; text-align: left; }
.st-fn .st-fn__q { margin: 0; font-size: 1.0625rem; line-height: 1.4; color: #4a5b6a; text-align: left; }

.st-revs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1.5rem, 4vw, 3.5rem); }
.st-rev { display: flex; gap: 1.1rem; align-items: center; padding: 1.1rem 0; border-top: 1px solid var(--ed-rule, #d7dfe6); }
.st-rev .st-rev__ic { flex: none; width: 84px; height: 84px; }
.st-rev .st-rev__ic figure { margin: 0; width: 100%; height: 100%; }
.st-rev .st-rev__ic img { width: 100%; height: 100%; object-fit: contain; display: block; border-radius: 0; }
.st-rev h3 { margin: 0 0 0.2rem; font-size: 1.3125rem; line-height: 1.15; text-align: left; }
.st-rev .st-rev__t { margin: 0; font-size: 1.0625rem; line-height: 1.45; color: #4a5b6a; text-align: left; }

.st-deliv { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.st-docs { display: grid; gap: 0.9rem; }
.st-doc { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 12px; padding: 1rem 1.25rem; display: grid; grid-template-columns: 3rem 1fr; column-gap: 0.9rem; align-items: baseline; }
.st-doc .st-doc__n { grid-row: 1 / 3; margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2rem; line-height: 1; color: var(--orange-dark, #c24a1d); text-align: left; }
.st-doc h3 { margin: 0; font-size: 1.3125rem; line-height: 1.15; text-align: left; }
.st-doc .st-doc__t { margin: 0.15rem 0 0; font-size: 1.0625rem; color: #4a5b6a; text-align: left; }
.st-board { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.1rem 1.25rem 1.25rem; box-shadow: 0 30px 60px -38px rgba(13,34,51,0.4); }
.st-board .st-board__lab { margin: 0 0 0.8rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
.st-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.st-col { background: #eaeff4; border-radius: 10px; padding: 0.75rem; min-height: 9.5rem; }
.st-col .st-col__k { margin: 0 0 0.6rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.125rem; text-align: left; }
.st-col:nth-child(1) .st-col__k { color: var(--orange-dark, #c24a1d); }
.st-card { margin: 0 0 0.5rem; background: #fff; border: 1px solid #d7dfe6; border-radius: 8px; padding: 0.5rem 0.65rem; font-size: 0.9688rem; line-height: 1.3; text-align: left; }

.st-qa { border-top: 2px solid var(--ed-ink, #0d2233); }
.st-qa__row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid var(--ed-rule, #d7dfe6); align-items: baseline; }
.st-qa .st-qa__q { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 700; font-size: 1.25rem; line-height: 1.25; text-align: left; }
.st-qa .st-qa__a { margin: 0; font-size: 1.125rem; line-height: 1.45; color: var(--ed-ink, #0d2233); text-align: left; }
.st-qa__row--head { padding: 0.7rem 0; }
.st-steps4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 1000px) {
	.st-hero__grid, .st-deliv { grid-template-columns: 1fr; }
	.st-clock { grid-template-columns: 1fr 1fr; row-gap: 2rem; }
	.st-fns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.st-revs { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.st-clock { grid-template-columns: 1fr; }
	.st-fns, .st-steps4 { grid-template-columns: 1fr; }
	.st-cols { grid-template-columns: 1fr; }
	.st-col { min-height: 0; }
	.st-qa__row { grid-template-columns: 1fr; gap: 0.25rem; }
	.st-qa__row--head { display: none; }
	.st-leg { grid-template-columns: 1fr; }
	.st-rev .st-rev__ic { width: 64px; height: 64px; }
}
.st-qa__row--head .ed-vs__h, .st-qa__row--head p { margin: 0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; color: #5b6b7a; }
.st-qa__row--head .ed-vs__h--real { color: #2f7a46; }
@media (max-width: 640px) { .st-dot--6 { left: 56%; top: 66%; } .st-dot--5 { left: 82%; top: 46%; } .st-q { font-size: 0.75rem; } }

/* ===== HOME TECH PAGE (ht-*) ===== */
.ht-plan { position: relative; margin: 0 0 1rem; aspect-ratio: 16 / 11; display: grid; grid-template-columns: repeat(6, 1fr); grid-template-rows: repeat(4, 1fr); gap: 3px; background: var(--ed-ink, #0d2233); border: 3px solid var(--ed-ink, #0d2233); border-radius: 6px; text-align: left; overflow: hidden; }
.ht-room { position: relative; background: #eaeff4; padding: 0.4rem 0.5rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; }
.ht-room--kitchen { grid-column: 1 / 3; grid-row: 1 / 3; } .ht-room--living { grid-column: 3 / 5; grid-row: 1 / 3; background: #fdf3ec; } .ht-room--office { grid-column: 5 / 7; grid-row: 1 / 3; }
.ht-room--garage { grid-column: 1 / 4; grid-row: 3 / 5; background: repeating-linear-gradient(135deg, #dde4eb 0 6px, #eaeff4 6px 12px); } .ht-room--bed { grid-column: 4 / 7; grid-row: 3 / 5; background: repeating-linear-gradient(135deg, #e6ecf1 0 8px, #f7f9fb 8px 16px); }
.ht-signal { position: absolute; left: 50%; top: 22%; width: 70%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(circle, rgba(232,92,42,0.22) 0, rgba(232,92,42,0.12) 38%, rgba(232,92,42,0.0) 70%); pointer-events: none; }
.ht-dead { position: absolute; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: #8a2a12; background: rgba(255,255,255,0.85); padding: 0.1rem 0.4rem; border-radius: 3px; }
.ht-dead--a { left: 8%; bottom: 10%; } .ht-dead--b { right: 8%; bottom: 10%; }
.ht-dot { position: absolute; width: 1.7rem; height: 1.7rem; margin: -0.85rem 0 0 -0.85rem; border-radius: 50%; background: var(--orange); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 0.9375rem; box-shadow: 0 0 0 4px rgba(232,92,42,0.25); }
.ht-dot--1 { left: 50%; top: 24%; } .ht-dot--2 { left: 17%; top: 28%; } .ht-dot--3 { left: 84%; top: 26%; } .ht-dot--4 { left: 78%; top: 66%; } .ht-dot--5 { left: 92%; top: 40%; } .ht-dot--6 { left: 62%; top: 38%; }
.ht-map .st-leg { margin-top: 0.4rem; }

.ht-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ht-card { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem; display: flex; flex-direction: column; gap: 0.6rem; }
.ht-card h3 { margin: 0; font-size: 1.375rem; line-height: 1.15; text-align: left; }
.ht-card .ht-card__t { margin: 0; font-size: 1.0625rem; line-height: 1.5; color: #4a5b6a; text-align: left; }
.ht-card .ht-card__s { margin: auto 0 0; font-size: 0.9375rem; text-align: left; }
.ht-chk { background: #eaeff4; border-radius: 10px; padding: 0.75rem 0.9rem; }
.ht-chk .ht-chk__lab { margin: 0 0 0.4rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
.ht-chk .ht-chk__row { margin: 0; padding: 0.45rem 0; border-top: 1px solid #dde5ec; font-size: 1rem; line-height: 1.35; text-align: left; }
.ht-chk .ht-chk__row b { display: inline-flex; width: 1.4rem; height: 1.4rem; margin-right: 0.5rem; border-radius: 50%; background: var(--orange); color: #fff; align-items: center; justify-content: center; font-size: 0.8125rem; }
.ht-datebox { background: #eaeff4; border-radius: 10px; padding: 0.9rem 1rem; }
.ht-datebox .ht-date { margin: 0 0 0.3rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2rem; line-height: 1; letter-spacing: -0.02em; color: var(--orange-dark, #c24a1d); text-align: left; }
.ht-datebox .ht-date__t { margin: 0; font-size: 1rem; line-height: 1.4; text-align: left; }
.ht-321 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
.ht-r { background: #eaeff4; border-radius: 10px; padding: 0.7rem 0.5rem; text-align: center; }
.ht-r .ht-r__n { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2.75rem; line-height: 1; color: var(--orange-dark, #c24a1d); text-align: center; }
.ht-r .ht-r__t { margin: 0.2rem 0 0; font-size: 0.9375rem; line-height: 1.25; text-align: center; }

.ht-hub { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(1rem, 3vw, 2.5rem); align-items: center; }
.ht-col { margin: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.ht-col--dev { justify-content: flex-end; } .ht-col--eco { justify-content: flex-start; } .ht-col--mid { justify-content: center; }
.ht-chip { display: inline-block; padding: 0.5rem 0.9rem; border-radius: 999px; border: 1px solid rgba(255,255,255,0.3); color: #fff; font-size: 1.0625rem; }
.ht-chip--eco { background: rgba(255,255,255,0.08); }
.ht-matter { display: inline-flex; align-items: center; justify-content: center; width: 7.5rem; height: 7.5rem; border-radius: 50%; background: var(--orange); color: #fff; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.375rem; box-shadow: 0 0 0 10px rgba(232,92,42,0.25); }
.ht-hub__src { margin-top: 1.5rem; }

.ht-visit { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.ht-steps4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 1.25rem; }
.ht-sheet .ai-sc__row { grid-template-columns: 7rem 1fr; }

.ht-fam { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.ht-terms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.ht-term { border-top: 3px solid var(--orange); padding-top: 0.9rem; }
.ht-term h3 { margin: 0 0 0.3rem; font-size: 1.375rem; line-height: 1.15; text-align: left; }
.ht-term .ht-term__t { margin: 0; font-size: 1.0625rem; color: #4a5b6a; text-align: left; }

@media (max-width: 1000px) {
	.ht-cards, .ht-terms { grid-template-columns: 1fr; }
	.ht-visit, .ht-fam { grid-template-columns: 1fr; }
	.ht-hub { grid-template-columns: 1fr; justify-items: center; }
	.ht-col--dev, .ht-col--eco { justify-content: center; }
}
@media (max-width: 640px) { .ht-steps4 { grid-template-columns: 1fr; } .ht-sheet .ai-sc__row { grid-template-columns: 1fr; } .ht-room { font-size: 0.6875rem; } }
.ht-visit .ed-head, .ht-fam .ed-head { display: block; }
.ht-visit .ed-head__meta, .ht-fam .ed-head__meta { display: flex; gap: 0.75rem; align-items: baseline; border-top: 0; padding-top: 0; margin-bottom: 0.6rem; }
.ht-visit .ed-head__meta .ed-idx::after, .ht-fam .ed-head__meta .ed-idx::after { content: " ·"; }

/* ===== PRINT & DIGITAL MARKETING PAGE (mk-*) ===== */
.mk-cards { display: grid; gap: 0.9rem; margin: 0 0 1rem; }
.mk-pc { position: relative; display: block; aspect-ratio: 3 / 2; background: #fff; border: 1px solid #c9d4de; border-radius: 6px; box-shadow: 0 10px 24px -14px rgba(13,34,51,0.4); overflow: visible; text-align: left; }
.mk-pc > span { position: absolute; display: block; }
.mk-pc--front { border-top: 10px solid var(--ed-ink, #0d2233); }
.mk-logo { left: 5%; top: 8%; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 0.8438rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ed-ink, #0d2233); }
.mk-head { left: 5%; top: 26%; width: 52%; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(1.25rem, 1rem + 1.1vw, 1.75rem); line-height: 1.05; letter-spacing: -0.02em; color: var(--ed-ink, #0d2233); }
.mk-offer { left: 5%; bottom: 10%; padding: 0.3rem 0.6rem; border-radius: 4px; background: var(--orange); color: #fff; font-weight: 700; font-size: 0.9375rem; }
.mk-photo { right: 4%; top: 12%; width: 36%; height: 72%; border-radius: 4px; background: linear-gradient(160deg, #9fb3c4, #5f7a92); }
.mk-msg { left: 5%; top: 9%; width: 46%; font-size: 0.9375rem; line-height: 1.3; color: var(--ed-ink, #0d2233); font-weight: 600; }
.mk-qr { left: 5%; bottom: 10%; width: 22%; aspect-ratio: 1; display: grid !important; grid-template-columns: repeat(7, 1fr); padding: 3px; background: #fff; border: 2px solid var(--ed-ink, #0d2233); }
.mk-qr i { display: block; background: transparent; } .mk-qr i.on { background: var(--ed-ink, #0d2233); }
.mk-tel { left: 31%; bottom: 14%; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.0625rem; color: var(--orange-dark, #c24a1d); }
.mk-ind { right: 5%; top: 8%; width: 20%; padding: 0.3rem 0; border: 1px solid #9fb0bf; text-align: center; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; }
.mk-addr { right: 5%; bottom: 12%; width: 44%; height: 38%; padding: 0.4rem 0.5rem; border: 1px dashed #9fb0bf; background: #f7f9fb; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; }
.mk-n { width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--orange); color: #fff; display: flex !important; align-items: center; justify-content: center; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 0.9375rem; box-shadow: 0 0 0 4px rgba(232,92,42,0.25); }
.mk-n--1 { left: 48%; top: 22%; } .mk-n--2 { left: 33%; bottom: 14%; } .mk-n--5 { left: 36%; top: 3%; } .mk-n--3 { left: 28%; bottom: 36%; } .mk-n--4 { right: 3%; top: 38%; }
.mk-leg { margin-top: 0.4rem; }

.mk-loop { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); }
.mk-node { position: relative; border-top: 2px solid rgba(255,255,255,0.3); padding-top: 1rem; }
.mk-node:not(:last-child)::after { content: "\2192"; position: absolute; right: -1.1rem; top: -1.05rem; width: 2rem; height: 2rem; border-radius: 50%; background: var(--ed-ink, #0d2233); color: #ffb48f; display: flex; align-items: center; justify-content: center; font-size: 1.25rem; }
.mk-node .mk-node__n { margin: 0 0 0.3rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; color: #ffb48f; text-align: left; }
.mk-node h3 { margin: 0 0 0.3rem; color: #fff; font-size: 1.5rem; line-height: 1.1; text-align: left; }
.mk-node .mk-node__t { margin: 0; color: #c6d3de; font-size: 1.0625rem; line-height: 1.45; text-align: left; }

.mk-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); }
.mk-fact { border-top: 3px solid var(--orange); padding-top: 0.9rem; }
.mk-fact .mk-fact__n { margin: 0 0 0.3rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); line-height: 1; letter-spacing: -0.03em; color: var(--orange-dark, #c24a1d); text-align: left; }
.mk-fact .mk-fact__t { margin: 0; font-size: 1.0625rem; color: #4a5b6a; text-align: left; }

.mk-mail { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: start; }
.mk-mail__a, .mk-mail__b { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem 1.5rem; }
.mk-code { display: block; margin: 0 0 1.25rem; padding: 1rem 1.1rem; border-radius: 10px; background: var(--ed-ink, #0d2233); text-align: left; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); }
.mk-code span { display: block; }
.mk-code__h { margin-bottom: 0.6rem; font-size: 0.8438rem; letter-spacing: 0.08em; text-transform: uppercase; color: #8fa6b9; }
.mk-code__l { margin-top: 0.35rem; font-size: 0.875rem; line-height: 1.45; color: #dbe5ee; word-break: break-word; }
.mk-code__l b { display: inline-block; min-width: 3.5rem; color: #ffb48f; font-weight: 600; }

.mk-press { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.mk-press .ed-head { display: block; } .mk-press .ed-head__meta { display: flex; gap: 0.75rem; align-items: baseline; border-top: 0; padding-top: 0; margin-bottom: 0.6rem; } .mk-press .ed-head__meta .ed-idx::after { content: " ·"; }
.mk-diagram { position: relative; margin: 0; }
.mk-bleed { position: relative; display: block; aspect-ratio: 3 / 2; background: #f9d9cd; border-radius: 4px; padding: 6%; }
.mk-trim { position: relative; display: block; height: 100%; background: #fff; border: 2px solid var(--ed-ink, #0d2233); padding: 7%; }
.mk-safe { display: flex; align-items: center; justify-content: center; height: 100%; border: 2px dashed var(--orange); font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; text-align: center; padding: 0.5rem; }
.mk-lab { position: absolute; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; }
.mk-lab--bleed { left: 8px; top: 2px; color: #a8431f; } .mk-lab--trim { left: 8%; bottom: 7%; transform: translateY(100%); color: var(--ed-ink, #0d2233); margin-bottom: -0.1rem; }
.mk-press__list { margin: 1rem 0 1.25rem; }
.mk-case .ai-found { max-width: 46rem; }
@media (max-width: 1000px) {
	.mk-loop { grid-template-columns: 1fr 1fr; row-gap: 1.75rem; } .mk-node:not(:last-child)::after { display: none; }
	.mk-facts { grid-template-columns: 1fr 1fr; } .mk-mail, .mk-press { grid-template-columns: 1fr; }
}
@media (max-width: 640px) { .mk-loop, .mk-facts { grid-template-columns: 1fr; } }
.mk-n--5 { left: 49%; top: 4%; } .mk-n--2 { left: 47%; bottom: 12%; } .mk-n--1 { left: 56%; top: 30%; }
.mk-tel { left: 5%; top: 38%; bottom: auto; } .mk-n--3 { left: 29%; bottom: 8%; }
.mk-offer { white-space: nowrap; }
.ed-sec--ink .ed-pull { color: #fff; border-left-color: var(--orange); }
.ed-sec--ink .ed-pull::before { color: #ffb48f; }
.mk-mail .ai-yn__k, .mk-press .ai-yn__k { margin: 0 0 0.6rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; }
.mk-mail .ai-yn__k--yes { color: #2f7a46; }
.mk-mail .ai-yn__list, .mk-press .ai-yn__list { margin: 0; padding: 0; list-style: none; }
.mk-mail .ai-yn__list li, .mk-press .ai-yn__list li { position: relative; padding: 0.6rem 0 0.6rem 2rem; border-top: 1px solid #e6ecf1; font-size: 1.0625rem; line-height: 1.4; }
.mk-mail .ai-yn__list li::before, .mk-press .ai-yn__list li::before { content: "\2713"; position: absolute; left: 0; top: 0.55rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 700; color: #fff; background: #2f7a46; }
@media (max-width: 640px) {
	.mk-logo { font-size: 0.6875rem; } .mk-head { font-size: 1.05rem; width: 56%; top: 28%; }
	.mk-offer { font-size: 0.75rem; padding: 0.2rem 0.4rem; } .mk-photo { width: 28%; }
	.mk-msg { font-size: 0.75rem; width: 56%; } .mk-tel { font-size: 0.875rem; top: 42%; }
	.mk-ind, .mk-addr { font-size: 0.6875rem; } .mk-n { width: 1.35rem; height: 1.35rem; font-size: 0.8125rem; }
	.mk-n--5 { left: 56%; top: 6%; } .mk-n--2 { left: 55%; bottom: 8%; } .mk-n--1 { left: 64%; top: 34%; }
}

/* How we work v5: no photo, one column, number on top of each step */
.section--hw .hw-wrap { display: block; max-width: 760px; margin: 0 auto; }
.section--hw .hw-head { text-align: left; }
.section--hw .hw-head .hw-kick, .section--hw .hw-head h2.hw-title { text-align: left; }
.section--hw .hw-list { display: block; margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; border-top: 0; }
.section--hw .hw-row { display: block; padding: clamp(1.5rem, 3vw, 2.25rem) 0; border-top: 1px solid rgba(255,255,255,0.18); border-bottom: 0; }
.section--hw .hw-row:last-child { border-bottom: 1px solid rgba(255,255,255,0.18); }
.section--hw .hw-row .hw-row__n { display: block; margin: 0 0 0.6rem; min-width: 0; font-size: clamp(3.5rem, 2.6rem + 3.6vw, 5.5rem); line-height: 0.9; }
.section--hw .hw-row h3 { margin: 0 0 0.35rem; }
.section--hw .hw-foot { justify-content: flex-start; }
@media (min-width: 821px) {
	.section--hw .hw-wrap { display: block; max-width: 760px; }
	.section--hw .hw-list { display: block; margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; border-top: 0; }
	.section--hw .hw-row { display: block; padding: clamp(1.5rem, 3vw, 2.25rem) 0; border-top: 1px solid rgba(255,255,255,0.18); border-bottom: 0; }
	.section--hw .hw-row:last-child { border-bottom: 1px solid rgba(255,255,255,0.18); }
}
@media (max-width: 820px) {
	.section--hw .hw-list { border-top: 0; }
	.section--hw .hw-row { display: block; padding: 1.25rem 0; border-top: 1px solid rgba(255,255,255,0.18); border-bottom: 0; }
	.section--hw .hw-row:last-child { border-bottom: 1px solid rgba(255,255,255,0.18); }
	.section--hw .hw-row .hw-row__n { font-size: 3.25rem; }
}

/* How we work v6: three steps side by side, numbers share one baseline */
@media (min-width: 821px) {
	.section--hw .hw-wrap { max-width: 1080px; }
	.section--hw .hw-head { text-align: center; }
	.section--hw .hw-head .hw-kick, .section--hw .hw-head h2.hw-title { text-align: center; }
	.section--hw .hw-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
	.section--hw .hw-row, .section--hw .hw-row:last-child { padding: 1.5rem 0 0; border-top: 2px solid rgba(255,255,255,0.22); border-bottom: 0; }
	.section--hw .hw-foot { justify-content: center; }
}

/* How we work v7: center each step's text under its number */
.section--hw .hw-row { text-align: center; align-items: center; }
.section--hw .hw-row .hw-row__n, .section--hw .hw-row h3, .section--hw .hw-row .hw-row__b p { text-align: center; }
.section--hw .hw-head, .section--hw .hw-head .hw-kick, .section--hw .hw-head h2.hw-title { text-align: center; }
.section--hw .hw-foot { justify-content: center; }

/* ===== Cybersecurity page (cy-) ===== */
.cy-hero__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.cy-big { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.5rem 1.6rem 1.25rem; box-shadow: 0 30px 60px -34px rgba(13,34,51,0.45); }
.cy-big .cy-big__k { margin: 0 0 0.4rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
.cy-big .cy-big__n { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(4rem, 3rem + 4vw, 6.5rem); line-height: 0.9; letter-spacing: -0.04em; color: var(--orange-dark, #c24a1d); text-align: left; }
.cy-big .cy-big__t { margin: 0.6rem 0 1.1rem; font-size: 1.0625rem; line-height: 1.5; color: var(--ed-ink, #0d2233); text-align: left; }
.cy-big .cy-big__g { margin: 0 0 0.9rem; line-height: 1; text-align: left; }
.cy-big .cy-big__s { margin: 0; font-size: 0.9375rem; color: #5b6b7a; text-align: left; }
.cy-bars { display: grid; gap: 0.5rem; }
.cy-bar { position: relative; display: block; height: 1.9rem; background: #e1e8ee; border-radius: 4px; overflow: hidden; }
.cy-bar__f { position: absolute; inset: 0 auto 0 0; display: block; background: #9fb3c4; border-radius: 4px; }
.cy-bar--hot .cy-bar__f { background: var(--orange); }
.cy-bar b { position: relative; display: block; padding: 0 0.7rem; line-height: 1.9rem; font-size: 0.9375rem; font-weight: 600; color: var(--ed-ink, #0d2233); white-space: nowrap; }
.cy-w88 { width: 88%; } .cy-w39 { width: 39%; } .cy-w22 { width: 22%; } .cy-w20 { width: 20%; } .cy-w15 { width: 15%; }
.ai-num .cy-bar { height: 1.75rem; } .ai-num .cy-bar b { line-height: 1.75rem; }
.ai-num .cy-bars .cy-bar b { padding-left: 0.6rem; }
.ai-num .cy-bar__f { background: var(--orange); opacity: 0.85; }
.ai-num .cy-bar { overflow: visible; background: #e1e8ee; }
.ai-num .cy-bar b { color: var(--ed-ink, #0d2233); }
.ai-nums .ai-waffle { grid-template-columns: repeat(10, 1fr); max-width: 220px; gap: 3px; }

.cy-chain { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); margin-top: clamp(1rem, 2vw, 1.5rem); }
.cy-link { position: relative; padding-top: 1.1rem; border-top: 2px solid rgba(255,255,255,0.28); }
.cy-link::before { content: ""; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; background: var(--orange); transform: rotate(45deg); }
.cy-link .cy-link__n { margin: 0 0 0.35rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(2.25rem, 1.8rem + 1.6vw, 3.25rem); line-height: 0.9; color: #ff9b72; text-align: left; }
.cy-link h3 { margin: 0 0 1rem; color: #fff; font-size: 1.25rem; line-height: 1.2; text-align: left; }
.cy-link .cy-link__cut { margin: 0; padding: 0.85rem 0 0; border-top: 1px dashed rgba(255,255,255,0.28); font-size: 1rem; line-height: 1.45; color: #e6eef5; text-align: left; }
.cy-link .cy-link__cut span { display: block; margin-bottom: 0.25rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: #ffb48f; }

.cy-layers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.cy-layer { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.4rem 1.4rem 1.2rem; display: flex; flex-direction: column; }
.cy-layer .cy-layer__ico { display: block; width: 56px; height: 56px; object-fit: contain; margin: 0 0 0.9rem; }
.cy-layer h3 { margin: 0 0 0.4rem; font-size: 1.375rem; text-align: left; }
.cy-layer .cy-layer__t { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.5; color: #3d4f5f; text-align: left; }
.cy-layer .cy-layer__aim { margin: auto 0 0; padding-top: 0.8rem; border-top: 1px solid #e6ecf1; font-weight: 600; font-size: 1rem; color: var(--ed-ink, #0d2233); text-align: left; }
.cy-layer .cy-layer__aim span { display: block; margin-bottom: 0.15rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark, #c24a1d); font-weight: 500; }

.cy-fixes { display: grid; gap: 0.75rem; max-width: 52rem; }
.cy-fix { display: flex; align-items: center; gap: 1rem; background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 12px; padding: 1rem 1.2rem; }
.cy-fix p { margin: 0; font-size: 1.125rem; line-height: 1.4; color: var(--ed-ink, #0d2233); text-align: left; }

.cy-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.25rem); }
.cy-panel { border-top: 2px solid var(--ed-ink, #0d2233); padding-top: 1.1rem; }
.cy-panel h3 { margin: 0 0 0.8rem; font-size: 1.375rem; text-align: left; }
.cy-panel li { font-size: 1.0625rem; line-height: 1.5; }

.cy-rev { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.cy-rev .ai-yn__list li { color: #e6eef5; }
.cy-sheet { background: #fff; color: var(--ed-ink, #0d2233); border-radius: 14px; padding: 1.25rem 1.5rem 1rem; box-shadow: 0 30px 60px -34px rgba(0,0,0,0.6); }
.cy-sheet .cy-sheet__title { margin: 0 0 0.4rem; padding-bottom: 0.7rem; border-bottom: 2px solid var(--ed-ink, #0d2233); font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8438rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ed-ink, #0d2233); text-align: left; }
.cy-sheet__row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 0.9rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid #e6ecf1; }
.cy-sheet .cy-sheet__a { margin: 0; font-size: 1rem; line-height: 1.3; color: var(--ed-ink, #0d2233); text-align: left; }
.cy-sheet .cy-sheet__b { margin: 0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.9375rem; color: #3d4f5f; text-align: right; }
.cy-sheet .cy-sheet__c { margin: 0; text-align: right; }
.cy-pri { display: inline-block; min-width: 6.2rem; text-align: center; padding: 0.25rem 0.6rem; border-radius: 999px; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: uppercase; }
.cy-pri--hi { background: var(--orange-dark, #c24a1d); color: #fff; }
.cy-pri--mid { background: #fff; border: 1px solid #b7c4d0; color: #5b6b7a; }
.cy-sheet .cy-sheet__cap { margin: 0.8rem 0 0; font-size: 0.875rem; color: #5b6b7a; text-align: right; }

.cy-steps3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2.5rem); }
.cy-phone { margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); text-align: left; }
.cy-phone a { text-decoration: none; }
.cy-exp { max-width: 52rem; }

@media (max-width: 1000px) {
	.cy-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; }
	.cy-layers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	.cy-hero__grid, .cy-rev, .cy-panels, .cy-steps3 { grid-template-columns: 1fr; }
	.cy-chain, .cy-layers { grid-template-columns: 1fr; }
	.cy-bar b { white-space: normal; }
	.cy-sheet__row { grid-template-columns: minmax(0, 1fr) auto; }
	.cy-sheet .cy-sheet__b { grid-column: 1; text-align: left; }
	.cy-sheet .cy-sheet__c { grid-column: 2; grid-row: 1 / span 2; }
}

/* cy fixes: labels above bar tracks, smaller waffles, lists outside .ai-yn */
.cy-bars { gap: 0.85rem; }
.cy-bar { height: auto; background: none; overflow: visible; display: block; }
.cy-bar b { display: block; padding: 0; margin: 0 0 0.3rem; line-height: 1.25; font-size: 0.9375rem; font-weight: 600; color: var(--ed-ink, #0d2233); white-space: normal; }
.cy-bar__t { position: relative; display: block; height: 0.8rem; background: #e6ecf1; border-radius: 4px; overflow: hidden; }
.cy-bar__f { position: absolute; inset: 0 auto 0 0; display: block; background: #9fb3c4; border-radius: 4px; }
.cy-bar--hot .cy-bar__f, .ai-num .cy-bar__f { background: var(--orange); opacity: 1; }
.ai-num .cy-bar, .ai-num .cy-bar b { height: auto; line-height: 1.25; padding-left: 0; }
.ai-nums .ai-waffle { max-width: 150px; gap: 2px; }
.cy-panel .ai-yn__list, .cy-rev .ai-yn__list { margin: 0; padding: 0; list-style: none; }
.cy-panel .ai-yn__list li, .cy-rev .ai-yn__list li { position: relative; padding: 0.6rem 0 0.6rem 2rem; border-top: 1px solid #e6ecf1; font-size: 1.0625rem; line-height: 1.4; }
.cy-rev .ai-yn__list li { border-top-color: rgba(255,255,255,0.16); color: #e6eef5; }
.cy-panel .ai-yn__list li::before, .cy-rev .ai-yn__list li::before { content: "\2713"; position: absolute; left: 0; top: 0.55rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8125rem; font-weight: 700; color: #fff; background: #2f7a46; }
.cy-panel .ai-yn__list li strong { font-weight: 700; }
.cy-sq { display: inline-block; width: 0.34em; height: 0.34em; margin-left: 0.12em; background: var(--orange); vertical-align: baseline; }

/* ===== Exchange / Microsoft 365 page (mx-) ===== */
.mx-card h3 { margin: 0.2rem 0 1rem; font-size: 1.375rem; line-height: 1.2; text-align: left; color: var(--ed-ink, #0d2233); }
.mx-card .cy-big__s { margin-top: 1rem; }
.mx-checks { display: grid; gap: 0.5rem; }
.mx-checks .cy-fix { padding: 0.65rem 0.9rem; border-radius: 10px; background: #e6ecf1; }
.mx-checks .cy-fix p { font-size: 1rem; }
.mx-ledger .mx-ledger__date { margin: 0.2rem 0 0.4rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.5rem; line-height: 1.15; color: var(--ed-ink, #0d2233); text-align: left; }
.mx-ledger__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid #e6ecf1; }
.mx-ledger__row .cy-sheet__a { font-size: 1.0625rem; }
.mx-eos__text { text-align: left; }
.cy-rev__text .mx-eos__text .ed-lead { margin-top: 0; }
.mx-lifecycle { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); }
.mx-life .mx-life__list { margin: 0.5rem 0 0; padding: 0 0 0 1.1rem; font-size: 1rem; line-height: 1.45; color: #3d4f5f; text-align: left; }
.mx-life .mx-life__list li { margin-bottom: 0.4rem; }
.mx-mig { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(0.75rem, 2vw, 1.5rem); }
.mx-sub { margin: clamp(2.5rem, 5vw, 4rem) 0 1.25rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-weight: 500; font-size: 0.9375rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--orange-dark, #c24a1d); text-align: left; }
.mx-mfa { margin: 0 0 clamp(1.5rem, 3vw, 2.25rem); max-width: 36rem; }
.mx-sec, .mx-finds, .mx-paths { margin-top: 0; }
.mx-quote { margin-top: clamp(1.75rem, 3.5vw, 2.75rem); }
.mx-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); align-items: end; }
.mx-plan { position: relative; background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-top: 4px solid #9fb3c4; border-radius: 14px; padding: 1.4rem 1.4rem 1.2rem; }
.mx-plan--1 { min-height: 11rem; }
.mx-plan--2 { min-height: 14rem; border-top-color: #5b7289; }
.mx-plan--3 { min-height: 17rem; border-top-color: var(--orange); box-shadow: 0 24px 48px -30px rgba(13,34,51,0.4); }
.mx-plan h3 { margin: 0 0 0.5rem; font-size: 1.375rem; text-align: left; }
.mx-plan .mx-plan__flag { margin: 0 0 0.5rem; display: inline-block; padding: 0.2rem 0.6rem; border-radius: 999px; background: var(--orange-dark, #c24a1d); color: #fff; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; text-align: left; }
.mx-vers { display: flex; flex-wrap: wrap; gap: 0.5rem 0; position: relative; margin-top: clamp(1rem, 2vw, 1.5rem); }
.mx-vers::before { content: ""; position: absolute; left: 0; right: 0; top: 0.4rem; height: 2px; background: #c3d0db; }
.mx-ver { position: relative; margin: 0; flex: 1 1 0; min-width: 5.5rem; padding-top: 1.5rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.125rem; color: var(--ed-ink, #0d2233); text-align: left; }
.mx-ver::before { content: ""; position: absolute; top: 0; left: 0; width: 0.85rem; height: 0.85rem; background: #9fb3c4; transform: rotate(45deg); }
.mx-ver:last-child { color: var(--orange-dark, #c24a1d); }
.mx-ver:last-child::before, .mx-ver:nth-last-child(2)::before { background: var(--orange); }
@media (max-width: 1100px) {
	.mx-lifecycle { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mx-mig { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
	.mx-lifecycle, .mx-mig, .mx-plans { grid-template-columns: 1fr; }
	.mx-plan--1, .mx-plan--2, .mx-plan--3 { min-height: 0; }
	.mx-vers::before { display: none; }
	.mx-ver { flex: 0 0 33.33%; }
}
.mx-mfa { max-width: none; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.mx-mfa .cy-big__k { grid-column: 1 / -1; }
.mx-mfa .cy-big__n { grid-column: 1; grid-row: 2 / span 2; }
.mx-mfa .cy-big__t { grid-column: 2; align-self: end; margin: 0.4rem 0; font-size: 1.1875rem; }
.mx-mfa .cy-big__s { grid-column: 2; align-self: start; }
.cy-rev__text .ed-lead { margin-top: 1.25rem; }
.cy-rev__text .ed-title + .ed-lead { margin-top: 1.25rem; }
.cy-rev__text .ai-yn__list { margin: 1rem 0 1.25rem; }
@media (max-width: 820px) { .mx-mfa { grid-template-columns: 1fr; } .mx-mfa .cy-big__n, .mx-mfa .cy-big__t, .mx-mfa .cy-big__s { grid-column: 1; grid-row: auto; } }
.cy-rev__text .mx-eos__text { margin-top: 1.25rem; }
.cy-rev__text .mx-eos__text .ed-lead { margin-top: 0; }
.cy-rev__text > .ed-title { margin-bottom: 0.25rem; }

/* ===== Business Phone Systems page (ph-) ===== */
.ph-route { display: grid; gap: 0; position: relative; }
.ph-hop { position: relative; padding: 0.85rem 0 0.85rem 2.25rem; border-bottom: 1px solid #e6ecf1; }
.ph-hop:last-child { border-bottom: 0; }
.ph-hop::before { content: ""; position: absolute; left: 0.35rem; top: 1.15rem; width: 0.8rem; height: 0.8rem; background: #9fb3c4; transform: rotate(45deg); }
.ph-hop::after { content: ""; position: absolute; left: 0.74rem; top: 1.95rem; bottom: -0.15rem; width: 2px; background: #c3d0db; }
.ph-hop:last-child::after { display: none; }
.ph-hop--ok::before { background: var(--orange); }
.ph-hop .ph-hop__k { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.1875rem; color: var(--ed-ink, #0d2233); text-align: left; }
.ph-hop .ph-hop__v { margin: 0.1rem 0 0; font-size: 1rem; line-height: 1.4; color: #3d4f5f; text-align: left; }
.ph-hop--ok .ph-hop__k { color: var(--orange-dark, #c24a1d); }
.ph-card .cy-big__s { margin-top: 0.8rem; }
.cy-rev.mx-flip { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.ph-plat--feat { border-top: 4px solid var(--orange); box-shadow: 0 24px 48px -30px rgba(13,34,51,0.4); }
.ph-plat .cy-layer__aim.ph-best { margin: 0 0 0.8rem; padding: 0 0 0.8rem; border-top: 0; border-bottom: 1px solid #e6ecf1; }
.ph-plat .mx-plan__flag { align-self: flex-start; }
.ph-chain { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ph-chips-label { margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.cy-link .cy-link__cut { border-top: 1px dashed rgba(255,255,255,0.28); }
@media (max-width: 1000px) { .ph-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) { .ph-chain { grid-template-columns: 1fr; } .cy-rev.mx-flip { grid-template-columns: 1fr; } }
.cy-layer .cy-layer__aim.ph-best { margin: 0 0 0.8rem; padding: 0 0 0.8rem; background: none; border: 0; border-bottom: 1px solid #e6ecf1; border-radius: 0; font-size: 1.0625rem; }
.cy-layer .cy-layer__aim.ph-best span { display: block; margin-bottom: 0.15rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--orange-dark, #c24a1d); font-weight: 500; }
.cy-layer h3 + .ph-best { margin-top: 0.2rem; }

/* alignment fixes: balanced hero titles, FAQ starts at the left edge, call-quality list fills the row */
body.ed-page .page-hero--service h1 { text-wrap: balance; margin-left: auto; margin-right: auto; max-width: 16em; }
body.ed-page .page-hero--service .lead { text-wrap: balance; }
body.ed-page .faq { max-width: 900px; margin: 0; }
.cy-fixes.ph-quality { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 820px) { .cy-fixes.ph-quality { grid-template-columns: 1fr; } }
body.ed-page .page-hero--service .lead { max-width: 60em; }

/* shared tail sections (FAQ, service area, related services) are centered on rebuilt pages */
body.ed-page .section:not(.ed-sec) .center, body.ed-page .section > .wrap > .center { text-align: center; margin-left: auto; margin-right: auto; }
body.ed-page .section:not(.ed-sec) h2.sq, body.ed-page .section > .wrap > .center h2.sq { text-align: center; }
body.ed-page .section:not(.ed-sec) .kicker, body.ed-page .section > .wrap > .center .kicker { text-align: center; }
body.ed-page .section:not(.ed-sec) .lead, body.ed-page .section > .wrap > .center .lead { text-align: center; margin-left: auto; margin-right: auto; }
body.ed-page .faq { max-width: 900px; margin: 0 auto; }
body.ed-page .section:not(.ed-sec) .pill-list { justify-content: center; }
body.ed-page .section:not(.ed-sec) > .wrap > .wp-block-group:not(.center):not(.faq):not(.fgrid) { text-align: center; }

/* ===== Backups & Disaster Recovery page (bx-) ===== */
.bx-rule { display: grid; gap: 0; }
.bx-rule__row { display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); gap: 1rem; align-items: center; padding: 0.55rem 0; border-bottom: 1px solid #e6ecf1; }
.bx-rule__row:last-child { border-bottom: 0; }
.bx-rule .bx-digit { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2.75rem; line-height: 1; color: var(--orange-dark, #c24a1d); text-align: center; }
.bx-rule .bx-digit__t { margin: 0; font-size: 1.0625rem; line-height: 1.35; color: var(--ed-ink, #0d2233); text-align: left; }
.bx-card h3 { margin: 0.1rem 0 0.6rem; font-size: 1.375rem; text-align: left; color: var(--ed-ink, #0d2233); }
.bx-loop { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bx-tlwrap { margin: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem); }
.bx-tl { display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr) auto; align-items: center; gap: 0; }
.bx-tl__node { position: relative; display: block; padding: 0.7rem 0.9rem; border: 2px solid var(--ed-ink, #0d2233); border-radius: 10px; background: #fff; text-align: center; }
.bx-tl__node b { font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 1.0625rem; color: var(--ed-ink, #0d2233); }
.bx-tl__node--x { border-color: var(--orange); background: var(--orange); }
.bx-tl__node--x b { color: #fff; }
.bx-tl__seg { position: relative; display: flex; flex-direction: column; align-items: center; padding: 1.1rem 0.5rem 0; }
.bx-tl__seg::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 0; border-top: 4px solid #9fb3c4; }
.bx-tl__seg--rpo::before { border-top-style: dashed; border-top-color: var(--orange); }
.bx-tl__seg--rto::before { border-top-color: var(--ed-ink, #0d2233); }
.bx-tl__seg b { position: relative; z-index: 1; background: var(--paper, #eaeff4); padding: 0 0.5rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-weight: 500; font-size: 0.9375rem; letter-spacing: 0.1em; color: var(--orange-dark, #c24a1d); }
.bx-tl__seg i { position: relative; z-index: 1; font-style: normal; font-size: 0.9375rem; color: #3d4f5f; margin-top: 1.5rem; text-align: center; }
.bx-obj h3 { font-size: 1.375rem; }
.bx-obj .bk-abbr { margin: 0 0 0.3rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2.25rem; line-height: 1; color: var(--orange-dark, #c24a1d); text-align: left; }
.bx-out { border-radius: 10px; padding: 0.9rem 1rem; margin-top: 0.75rem; }
.bx-out--bad { background: #fdeee8; border: 1px solid #f3c3b0; }
.bx-out--good { background: #e9f4ec; border: 1px solid #b9d9c3; }
.cy-sheet .bx-out__k { margin: 0 0 0.2rem; font-weight: 700; font-size: 1.0625rem; color: var(--ed-ink, #0d2233); text-align: left; }
.cy-sheet .bx-out__t { margin: 0; font-size: 1rem; color: #3d4f5f; text-align: left; }
.cy-pri--ok { background: #2f7a46; color: #fff; }
.cy-layer .bx-tier__k { margin: 0 0 0.6rem; padding: 0 0 0.6rem; border: 0; border-bottom: 1px solid #e6ecf1; background: none; }
.bx-eq { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr); gap: clamp(0.5rem, 2vw, 1.25rem); align-items: center; }
.bx-eq__box { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.4rem 1.2rem; text-align: center; }
.bx-eq__box--res { background: var(--ed-ink, #0d2233); border-color: var(--ed-ink, #0d2233); }
.bx-eq .bx-eq__k { margin: 0 0 0.3rem; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); line-height: 1.1; color: var(--ed-ink, #0d2233); text-align: center; }
.bx-eq .bx-eq__t { margin: 0; font-size: 1rem; color: #3d4f5f; text-align: center; }
.bx-eq__box--res .bx-eq__k { color: #fff; } .bx-eq__box--res .bx-eq__t { color: #cfdbe6; }
.bx-eq .bx-eq__op { margin: 0; font-family: var(--font-display, "Archivo", sans-serif); font-weight: 800; font-size: 2.25rem; color: var(--orange-dark, #c24a1d); text-align: center; }
@media (max-width: 1000px) { .bx-loop { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) {
	.bx-loop { grid-template-columns: 1fr; }
	.bx-tl { grid-template-columns: 1fr; justify-items: stretch; gap: 0; }
	.bx-tl__seg { padding: 1rem 0; }
	.bx-tl__seg::before { left: 50%; right: auto; top: 0; bottom: 0; height: auto; border-top: 0; border-left: 4px solid #9fb3c4; }
	.bx-tl__seg--rpo::before { border-left-style: dashed; border-left-color: var(--orange); }
	.bx-tl__seg--rto::before { border-left-color: var(--ed-ink, #0d2233); }
	.bx-tl__seg i { margin-top: 0.5rem; background: var(--paper, #eaeff4); padding: 0 0.4rem; }
	.bx-eq { grid-template-columns: 1fr; }
	.bx-eq .bx-eq__op { line-height: 1; }
}

/* tail section titles (FAQ, service area, related): sized like the other section titles, never an orphaned word */
body.ed-page .section:not(.ed-sec) h2.sq, body.ed-page .section > .wrap > .center h2.sq { font-size: clamp(1.75rem, 1.2rem + 1.7vw, 2.5rem); line-height: 1.15; letter-spacing: -0.02em; text-wrap: balance; }
body.ed-page .section:not(.ed-sec) .center { margin-bottom: 28px !important; }

/* ---------- Networking page (retrofit into the ed kit) ---------- */
body.ed-page .net-checks.cy-chain { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(1.5rem, 3vw, 2.25rem); }
body.ed-page .ed-sec .net-stats { margin-bottom: 0.75rem; }
body.ed-page .ed-sec > .wrap > .ed-src { text-align: left; }
body.ed-page .net-zone, body.ed-page .net-lines, body.ed-page .net-ha.m365-card { box-shadow: none; }
body.ed-page .net-ha__text .ed-lead, body.ed-page .net-ha__text .ed-title, body.ed-page .net-ha__text .ed-kick, body.ed-page .net-ind__lead .ed-lead, body.ed-page .net-ind__lead .ed-title, body.ed-page .net-ind__lead .ed-kick { text-align: left; }
body.ed-page .net-docs { max-width: none; margin: clamp(1.5rem, 3vw, 2.25rem) 0 0; }
body.ed-page .net-docs .cy-sheet__title { color: var(--ed-ink, #0d2233); border: 0; padding: 0; margin: 0 0 0.35rem; }
@media (max-width: 900px) { body.ed-page .net-checks.cy-chain { grid-template-columns: 1fr; row-gap: 2rem; } }
body.ed-page .ed-sec .m365-plans, body.ed-page .ed-sec .m365-finds, body.ed-page .ed-sec .net-lines, body.ed-page .ed-sec .svc-panels { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }
body.ed-page .ed-sec .net-lines { margin-top: clamp(1.5rem, 3vw, 2.25rem); }

/* ---------- Cloud page (retrofit into the ed kit) ---------- */
body.ed-page .ed-sec .cl-guide { max-width: none; }
body.ed-page .ed-sec .cl-clocks { max-width: none; }
body.ed-page .mx-mig.cl-mig { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body.ed-page .cl-own { text-align: left; }
body.ed-page .cl-own__h, body.ed-page .cl-own__p { text-align: left; }
body.ed-page .cl-own .sec-chips { justify-content: flex-start; }
@media (max-width: 1100px) { body.ed-page .mx-mig.cl-mig { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ed-page .mx-mig.cl-mig { grid-template-columns: 1fr; } }
body.ed-page .cl-own { max-width: none; margin: clamp(1.75rem, 3vw, 2.5rem) 0 0; padding: 0; background: none; border: 0; box-shadow: none; }

/* ---------- Structured cabling page (retrofit into the ed kit) ---------- */
body.ed-page .cy-chain.cb-asks { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body.ed-page .cb-asks .cy-link h3 { font-size: 1.125rem; min-height: 4.2em; }
body.ed-page .ed-sec .cb-specs, body.ed-page .ed-sec .cb-lvs, body.ed-page .ed-sec .cb-phases, body.ed-page .ed-sec .cb-drivers { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }
body.ed-page .ed-sec .cb-path { max-width: none; }
body.ed-page .cb-docs__text .ed-lead, body.ed-page .cb-docs__text .ed-title, body.ed-page .cb-docs__text .ed-kick { text-align: left; }
body.ed-page .cb-labels .cy-sheet__title { color: var(--ed-ink, #0d2233); border: 0; padding: 0; margin: 0 0 0.6rem; }
@media (max-width: 1100px) { body.ed-page .cy-chain.cb-asks { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2rem; } body.ed-page .cb-asks .cy-link h3 { min-height: 0; } }
@media (max-width: 640px) { body.ed-page .cy-chain.cb-asks { grid-template-columns: 1fr; } }

/* ---------- Security & surveillance page (retrofit into the ed kit) ---------- */
body.ed-page .ed-sec .sc-lvls, body.ed-page .ed-sec .sc-creds, body.ed-page .ed-sec .sc-safes, body.ed-page .ed-sec .sc-healths { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }
body.ed-page .ed-sec .sc-aim, body.ed-page .ed-sec .sc-bipa { max-width: none; margin-left: 0; margin-right: 0; }
body.ed-page .sc-plan__text .ed-lead, body.ed-page .sc-plan__text .ed-title, body.ed-page .sc-plan__text .ed-kick, body.ed-page .sc-store__text .ed-lead, body.ed-page .sc-store__text .ed-title, body.ed-page .sc-store__text .ed-kick { text-align: left; }
body.ed-page .sc-store__card .cy-sheet__title { color: var(--ed-ink, #0d2233); border: 0; padding: 0; margin: 0 0 0.6rem; }

/* ---------- Service-area pages (city template + hub) ---------- */
body.ed-page .mx-mig.sa-mig3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ed-page .mx-mig.sa-mig4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.ed-page .mx-mig.sa-mig3 + .wp-block-buttons, body.ed-page .mx-mig.sa-mig3 + .btn-row { margin-top: clamp(1.75rem, 3vw, 2.5rem); }
body.ed-page .cy-layer .sa-more { margin: 1rem 0 0; font-weight: 700; text-align: left; }
body.ed-page .cy-layer .sa-more a { color: var(--orange-dark, #c24512); text-decoration: none; }
body.ed-page .cy-layer h3 a { color: inherit; text-decoration: none; }
body.ed-page .cy-layers.sa-cities { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ed-page .cy-rev.sa-ask { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 900px) { body.ed-page .mx-mig.sa-mig3, body.ed-page .mx-mig.sa-mig4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } body.ed-page .cy-layers.sa-cities { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.ed-page .mx-mig.sa-mig3, body.ed-page .mx-mig.sa-mig4 { grid-template-columns: 1fr; } body.ed-page .cy-layers.sa-cities { grid-template-columns: 1fr; } }
body.ed-page .ed-sec.sa-trustband { padding-top: 0; padding-bottom: clamp(1.25rem, 2.5vw, 2rem); margin-top: calc(-1 * clamp(1rem, 2vw, 2rem)); }
body.ed-page .sa-trust { justify-content: flex-start; }
body.ed-page .pill-list { justify-content: center; }
body.ed-page .more-link { text-align: center; }
body.ed-page .sa-ask { max-width: 760px; }

/* ---------- Service-area layout variants ---------- */
body.ed-page .cy-layers.sa-quad { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ed-page .sa-numlist { display: grid; gap: 0; max-width: 900px; }
body.ed-page .sa-numrow { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: 1.25rem; align-items: start; padding: 1.25rem 0; border-top: 1px solid var(--ed-line, #d9e0e6); background: none; box-shadow: none; }
body.ed-page .sa-numrow:last-child { border-bottom: 1px solid var(--ed-line, #d9e0e6); }
body.ed-page .sa-numrow h3 { margin: 0 0 0.35rem; text-align: left; }
body.ed-page .sa-numrow .ai-step__t { margin: 0; text-align: left; }
body.ed-page .cy-layers.sa-feature { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
body.ed-page .cy-layers.sa-feature .sa-feature__main { grid-row: span 2; padding: clamp(1.5rem, 3vw, 2.25rem); }
body.ed-page .cy-layers.sa-feature .sa-feature__main h3 { font-size: clamp(1.4rem, 1.2rem + 0.8vw, 1.8rem); }
body.ed-page .cy-layers.sa-feature .sa-feature__main .cy-layer__t { font-size: 1.125rem; }
body.ed-page .sa-rows { display: grid; gap: 0; }
body.ed-page .sa-row { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 1.5rem; align-items: start; padding: 1.5rem 0; border-top: 1px solid var(--ed-line, #d9e0e6); }
body.ed-page .sa-row:last-child { border-bottom: 1px solid var(--ed-line, #d9e0e6); }
body.ed-page .sa-row h3 { margin: 0 0 0.35rem; text-align: left; }
body.ed-page .sa-row p { margin: 0 0 0.35rem; text-align: left; max-width: 62ch; }
body.ed-page .sa-row__ico img { display: block; width: 64px; height: auto; }
body.ed-page .sa-row .sa-more a { color: var(--orange-dark, #c24512); font-weight: 700; text-decoration: none; }
body.ed-page .sa-story { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
body.ed-page .sa-story .ed-title, body.ed-page .sa-story .ed-kick, body.ed-page .sa-story .ed-lead { text-align: left; }
body.ed-page .sa-story__p { margin: 1rem 0 0; font-size: 1.0625rem; line-height: 1.65; color: var(--ed-mute, #4a5a68); text-align: left; }
@media (max-width: 900px) { body.ed-page .cy-layers.sa-quad, body.ed-page .cy-layers.sa-feature, body.ed-page .sa-story { grid-template-columns: 1fr; } body.ed-page .cy-layers.sa-feature .sa-feature__main { grid-row: auto; } body.ed-page .sa-row { grid-template-columns: 56px minmax(0, 1fr); gap: 1rem; } body.ed-page .sa-numrow { grid-template-columns: 3rem minmax(0, 1fr); } }
body.ed-page .cy-hero__grid .cy-sheet__row { grid-template-columns: minmax(6.5rem, 0.9fr) minmax(0, 1.5fr) auto; }
body.ed-page .cy-hero__grid .cy-sheet .cy-sheet__b { text-align: right; overflow-wrap: anywhere; }
body.ed-page .cy-layers.sa-feature { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.ed-page .cy-layers.sa-feature .sa-feature__main { grid-row: auto; grid-column: 1 / -1; }
body.ed-page .sa-numlist { max-width: none; }
@media (max-width: 900px) { body.ed-page .cy-hero__grid .cy-sheet__row { grid-template-columns: minmax(0, 1fr) auto; } body.ed-page .cy-layers.sa-feature { grid-template-columns: 1fr; } }

/* ---------- Home (rebuilt in the ed kit) ---------- */
body.ed-page .cy-chain.hm-chain { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1000px; margin-left: auto; margin-right: auto; }
body.ed-page .hm-exp { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
body.ed-page .hm-portrait img { display: block; width: 220px; height: auto; border-radius: 14px; border: 1px solid var(--ed-line, #d9e0e6); }
body.ed-page .hm-exp__text .ed-title, body.ed-page .hm-exp__text .ed-lead, body.ed-page .hm-exp__text .ed-kick, body.ed-page .hm-exp__text .sa-story__p { text-align: left; }
body.ed-page .hm-exp__text .sec-chips { justify-content: flex-start; margin: 1.25rem 0; }
body.ed-page .hm-stars { margin: 0 0 0.6rem; color: var(--orange, #e85c2a); letter-spacing: 0.15em; text-align: left; }
body.ed-page .hm-quote { font-size: 1.0625rem; line-height: 1.6; color: var(--ed-ink, #0d2233); }
body.ed-page .hm-cite { margin: 1rem 0 0; font-size: 0.9375rem; color: var(--ed-mute, #4a5a68); text-align: left; }
@media (max-width: 900px) { body.ed-page .cy-chain.hm-chain { grid-template-columns: 1fr; row-gap: 2rem; } body.ed-page .hm-exp { grid-template-columns: 1fr; } }
body.ed-page .bn-equipment-carousel { max-width: 100%; overflow: hidden; position: relative; }
body.ed-page .ed-sec { overflow-x: clip; }
@media (max-width: 700px) { body .carousel { max-width: 100%; overflow: hidden; } body { overflow-x: clip; } }

/* ---------- Clickable trust badges ---------- */
a.proof__item.proof__link { text-decoration: none; color: inherit; border-radius: 12px; transition: background-color .2s ease, transform .2s ease; }
a.proof__item.proof__link:hover, a.proof__item.proof__link:focus-visible { background: rgba(255, 255, 255, 0.08); }
a.proof__item.proof__link:focus-visible { outline: 2px solid #ff9b72; outline-offset: 2px; }
.proof__link .proof__text { display: block; }
.proof__link .proof__claim, .proof__link .proof__line { display: block; }
.proof__link .proof__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.proof + .ed-sec { padding-top: calc(clamp(3.5rem, 7vw, 6rem) + 44px); }

/* ---------- Home hero: H1 in the section-title typography, larger kicker ---------- */
body.is-home .hero .kicker, body.is-home-es .hero .kicker { font-size: clamp(1.05rem, 0.85rem + 0.9vw, 1.4rem); line-height: 1.4; letter-spacing: 0.08em; max-width: 34em; margin-bottom: 20px; }
body.is-home .hero h1, body.is-home-es .hero h1 { font-family: var(--ed-serif, var(--font-display)); font-weight: 700; font-size: clamp(2.1rem, 1.3rem + 2.5vw, 3.5rem); line-height: 1.04; letter-spacing: -0.02em; text-wrap: balance; max-width: 15em; color: #fff; margin-bottom: 0.5em; }
body.is-home .hero h1 em, body.is-home-es .hero h1 em { font-style: normal; color: #ff9b72; }

/* ---------- Cards with a "Learn more" link are clickable as a whole ---------- */
body.ed-page .cy-layer { position: relative; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
body.ed-page .cy-layer .sa-more a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
body.ed-page .cy-layer:has(.sa-more) { cursor: pointer; }
body.ed-page .cy-layer:has(.sa-more):hover { border-color: var(--orange, #e85c2a); box-shadow: 0 14px 30px -18px rgba(13, 34, 51, 0.45); transform: translateY(-2px); }
body.ed-page .cy-layer:has(.sa-more):focus-within { outline: 2px solid var(--orange, #e85c2a); outline-offset: 2px; }

/* About + Meet Abe */
body.ed-page .cy-layers.ab-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ed-page .ed-stats3 + .sec-chips__label { margin-top: clamp(2rem, 4vw, 3rem); }
@media (max-width: 900px) { body.ed-page .cy-layers.ab-three { grid-template-columns: 1fr; } }

/* Resources: blog list, single post, case study */
body.ed-page .cy-layers.ab-one { grid-template-columns: minmax(0, 1fr); max-width: 46rem; }
.post-hero-date { margin: 0.75rem 0 0; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; color: #9db2c2; text-align: left; }
.page-hero--service .post-hero-date { text-align: center; }
body.single.ed-page .page-hero--service h1 { max-width: 22em; margin-left: auto; margin-right: auto; font-size: clamp(1.9rem, 1.3rem + 2vw, 2.9rem); }
.post-list .post-card { padding: clamp(1.25rem, 3vw, 2rem) 0; border-bottom: 1px solid var(--ed-line, #d9e0e6); }
.post-list .post-card h2, .post-list .post-card h2 a { font-family: var(--font-display); font-weight: 800; letter-spacing: -0.015em; color: var(--ed-ink, #0d2233); text-decoration: none; }
.post-list .post-card h2 a:hover { color: var(--orange-dark, #c0471f); }
.post-list .post-card .post-meta { font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; color: #5b6b7a; }
.post-list .post-card .post-meta a { color: var(--orange-dark, #c0471f); text-decoration: none; }
.post-list .post-card__thumb img { border-radius: 8px; }
body.ed-page .ed-stats3 + .cy-layers { margin-top: clamp(1.5rem, 3vw, 2.5rem); }

/* AI Solutions rebuild: stack, vs, flows, tools, rules, governance */
body.ed-page .ai-stk { background: #fff; color: var(--ed-ink, #0d2233); border-radius: 14px; padding: 1.25rem 1.5rem 1.1rem; box-shadow: 0 30px 60px -34px rgba(0,0,0,0.6); }
body.ed-page .ai-stk .ai-stk__title { margin: 0 0 0.9rem; padding-bottom: 0.7rem; border-bottom: 2px solid var(--ed-ink, #0d2233); font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; text-align: left; }
body.ed-page .ai-stk__band { border-radius: 8px; padding: 0.8rem 1rem 0.85rem; margin-bottom: 0.55rem; border-left: 6px solid transparent; }
body.ed-page .ai-stk__band--use { background: #fdeee7; border-left-color: var(--orange); margin-left: 0; margin-right: 2.5rem; }
body.ed-page .ai-stk__band--conn { background: #e9f1f8; border-left-color: #5f8fb4; margin-left: 1.25rem; margin-right: 1.25rem; }
body.ed-page .ai-stk__band--gov { background: var(--ed-ink, #0d2233); color: #fff; border-left-color: #ff9b72; margin-left: 2.5rem; margin-right: 0; }
body.ed-page .ai-stk__band p { margin: 0; text-align: left; }
body.ed-page .ai-stk .ai-stk__k { font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: #5b6b7a; }
body.ed-page .ai-stk__band--gov .ai-stk__k { color: #ffb48f; }
body.ed-page .ai-stk .ai-stk__t { font-family: var(--font-display); font-weight: 800; font-size: 1.25rem; line-height: 1.2; }
body.ed-page .ai-stk .ai-stk__s { font-size: 0.9375rem; line-height: 1.4; color: #3d4f5f; }
body.ed-page .ai-stk__band--gov .ai-stk__s { color: #c6d3de; }
body.ed-page .ai-stk .ai-stk__cap { margin: 0.5rem 0 0; font-size: 0.875rem; color: #5b6b7a; text-align: right; }

body.ed-page .ai-vs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
body.ed-page .ai-vs__col { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-top: 6px solid var(--orange); border-radius: 14px; padding: 1.25rem; }
body.ed-page .ai-vs__col + .ai-vs__col { border-top-color: #5f8fb4; }
body.ed-page .ai-vs .ai-vs__k { margin: 0 0 0.35rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
body.ed-page .ai-vs h3 { margin: 0 0 0.6rem; font-size: 1.5rem; line-height: 1.15; text-align: left; }
body.ed-page .ai-vs .ai-vs__t { margin: 0 0 1rem; font-size: 1.0625rem; line-height: 1.5; text-align: left; }
body.ed-page .ai-vs .ai-vs__f { margin: 0; padding: 0.55rem 0; border-top: 1px solid #e6ecf1; font-size: 1rem; line-height: 1.4; text-align: left; }
body.ed-page .ai-vs .ai-vs__f span, body.ed-page .ai-fl__f span, body.ed-page .ai-tool__r span, body.ed-page .ai-note__t strong { font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: #5b6b7a; margin-right: 0.4rem; }

body.ed-page .ai-fl__legend { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; text-align: left; }
body.ed-page .ai-fl__key { font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.25rem 0.65rem; border-radius: 999px; border: 1px solid transparent; }
body.ed-page .ai-flows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
body.ed-page .ai-fl { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-radius: 14px; padding: 1.25rem; }
body.ed-page .ai-fl h3 { margin: 0 0 0.9rem; font-size: 1.375rem; line-height: 1.15; text-align: left; }
body.ed-page .ai-fl__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; margin-bottom: 0.9rem; }
body.ed-page .ai-fl .ai-fl__n { position: relative; margin: 0; padding: 0.6rem 0.65rem; border-radius: 8px; border: 1px solid transparent; font-size: 0.875rem; line-height: 1.3; text-align: left; }
body.ed-page .ai-fl .ai-fl__n:not(:last-child)::after { content: ""; position: absolute; right: -0.85rem; top: 50%; width: 0.6rem; height: 0.6rem; border-top: 2px solid #8da1b3; border-right: 2px solid #8da1b3; transform: translateY(-50%) rotate(45deg); }
body.ed-page .ai-fl__n--trig, body.ed-page .ai-fl__key--trig { background: var(--ed-ink, #0d2233); color: #fff; }
body.ed-page .ai-fl__n--step, body.ed-page .ai-fl__key--step { background: #e9f1f8; border-color: #c7dae9; color: #16324a; }
body.ed-page .ai-fl__n--ai, body.ed-page .ai-fl__key--ai { background: #fdeee7; border-color: #f4c5b0; color: #8a3414; }
body.ed-page .ai-fl__n--person, body.ed-page .ai-fl__key--person { background: #e6f2ea; border-color: #b9d8c5; color: #1f5a37; }
body.ed-page .ai-fl .ai-fl__f { margin: 0; padding: 0.5rem 0; border-top: 1px solid #e6ecf1; font-size: 0.9688rem; line-height: 1.4; text-align: left; }

body.ed-page .ai-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
body.ed-page .ai-tool { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-top: 6px solid var(--ed-ink, #0d2233); border-radius: 14px; padding: 1.25rem; }
body.ed-page .ai-tool h3 { margin: 0 0 0.25rem; font-size: 1.5rem; line-height: 1.15; text-align: left; }
body.ed-page .ai-tool .ai-tool__tag { margin: 0 0 0.85rem; font-size: 1rem; color: var(--orange-dark, #c0471f); font-weight: 600; text-align: left; }
body.ed-page .ai-tool .ai-tool__r { margin: 0; padding: 0.55rem 0; border-top: 1px solid #e6ecf1; font-size: 1rem; line-height: 1.45; text-align: left; }
body.ed-page .ai-tool .ai-tool__r span { display: block; margin-bottom: 0.15rem; }
body.ed-page .ai-tool .ai-tool__s { margin: 0.6rem 0 0; font-size: 0.875rem; text-align: left; }
body.ed-page .ai-decline { margin: 1.25rem 0 0; font-size: 1.0625rem; color: #3d4f5f; text-align: left; }

body.ed-page .ai-rules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
body.ed-page .ai-rule { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-left: 6px solid var(--orange); border-radius: 14px; padding: 1.25rem; }
body.ed-page .ai-rule h3 { margin: 0 0 0.6rem; font-size: 1.3125rem; line-height: 1.2; text-align: left; }
body.ed-page .ai-rule .ai-rule__t { margin: 0 0 0.6rem; font-size: 1.0625rem; line-height: 1.5; text-align: left; }
body.ed-page .ai-rule .ai-rule__s { margin: 0; font-size: 0.875rem; text-align: left; }

body.ed-page .ai-gov { border-top: 2px solid var(--ed-ink, #0d2233); }
body.ed-page .ai-gov__row { display: grid; grid-template-columns: 3rem minmax(0, 1fr) 15rem; gap: 1.25rem; align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--ed-rule, #d7dfe6); }
body.ed-page .ai-gov .ai-gov__n { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 2.25rem; line-height: 0.9; color: var(--orange-dark, #c0471f); text-align: left; }
body.ed-page .ai-gov h3 { margin: 0 0 0.3rem; font-size: 1.375rem; line-height: 1.15; text-align: left; }
body.ed-page .ai-gov .ai-gov__t { margin: 0; font-size: 1.0625rem; line-height: 1.5; text-align: left; }
body.ed-page .ai-gov .ai-gov__plan { margin: 0; padding: 0.4rem 0.7rem; border-radius: 8px; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.04em; line-height: 1.35; text-align: left; }
body.ed-page .ai-gov__plan--in { background: #e6f2ea; color: #1f5a37; }
body.ed-page .ai-gov__plan--up { background: #fdeee7; color: #8a3414; }
body.ed-page .ai-nist__t { margin: 1.5rem 0 0.5rem; font-size: 1.0625rem; text-align: left; }
body.ed-page .ai-steps.st-steps3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) {
	body.ed-page .ai-flows, body.ed-page .ai-vs, body.ed-page .ai-tools, body.ed-page .ai-rules { grid-template-columns: 1fr; }
	body.ed-page .ai-gov__row { grid-template-columns: 2.5rem minmax(0, 1fr); }
	body.ed-page .ai-gov .ai-gov__plan { grid-column: 2; }
	body.ed-page .ai-steps.st-steps3 { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	body.ed-page .ai-fl__row { grid-template-columns: 1fr; gap: 0.9rem; }
	body.ed-page .ai-fl .ai-fl__n:not(:last-child)::after { right: auto; left: 50%; top: auto; bottom: -0.75rem; transform: translateX(-50%) rotate(135deg); }
	body.ed-page .ai-stk__band--use, body.ed-page .ai-stk__band--conn, body.ed-page .ai-stk__band--gov { margin-left: 0; margin-right: 0; }
}

/* Menu: the current page in a dropdown is marked in navy, not orange (orange reads as a heading or a hover) */
.main-nav--v2 .bn-sublink[aria-current="page"] { color: var(--navy, #1b3a54); font-weight: 700; background: #eef3f7; border-radius: 6px; }
.main-nav--v2 .bn-sublink[aria-current="page"]:hover, .main-nav--v2 .bn-sublink[aria-current="page"]:focus-visible { color: var(--orange-dark); background: var(--orange-soft, #fdeee7); }

/* Spanish landing page */
.topbar a.topbar__lang { color: inherit; text-decoration: none; }
.topbar a.topbar__lang:hover { color: #fff; text-decoration: underline; }
body.ed-page .cy-layers.es-services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.ed-page .ai-notes.es-note { grid-template-columns: minmax(0, 1fr); margin-top: 1.75rem; }
body.ed-page .es-ct { background: #fff; border: 1px solid var(--ed-rule, #d7dfe6); border-top: 6px solid var(--orange); border-radius: 14px; padding: 1.5rem; }
body.ed-page .es-ct .es-ct__k { margin: 0 0 0.25rem; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.8125rem; letter-spacing: 0.1em; text-transform: uppercase; color: #5b6b7a; text-align: left; }
body.ed-page .es-ct .es-ct__phone { margin: 0 0 1rem; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.6rem); line-height: 1.05; text-align: left; }
body.ed-page .es-ct .es-ct__phone a { color: var(--orange-dark, #c0471f); text-decoration: none; }
body.ed-page .es-ct .es-ct__r { margin: 0; padding: 0.7rem 0; border-top: 1px solid #e6ecf1; font-size: 1.0625rem; line-height: 1.45; text-align: left; }
body.ed-page .es-ct .es-ct__r span { display: block; font-family: var(--font-mono, "Geist Mono", ui-monospace, monospace); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: #5b6b7a; margin-bottom: 0.15rem; }
@media (max-width: 1000px) { body.ed-page .cy-layers.es-services { grid-template-columns: 1fr; } }
@media (min-width: 640px) and (max-width: 1000px) { body.ed-page .cy-layers.es-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Footer on tablet and phone: brand on top, Services and Company side by side, contact below, and a tidy left-aligned
   area list. Replaces the single long stack, the centred "Serving" line with dangling dots, and the chat-bubble overlap. */
@media (max-width: 1000px) {
	.site-footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 28px; padding: 44px 0 28px; }
	.site-footer .footer-brand, .site-footer .footer-contact { grid-column: 1 / -1; }
	.site-footer .footer-logo img { width: 150px !important; height: auto; }
	.site-footer .footer-brand .footer-tagline { font-size: 0.9375rem; }
	.site-footer .footer-brand .social-bar { margin-top: 16px; }
	.site-footer h4 { margin-bottom: 10px; }
	.site-footer li { margin-bottom: 0; }
	.site-footer li a { display: inline-block; padding: 7px 0; line-height: 1.3; font-size: 0.9375rem; }
	.footer-areas p { text-align: left; text-wrap: pretty; line-height: 1.5; }
	.footer-areas strong { display: block; margin: 0 0 8px; }
	.footer-areas a { display: inline-block; margin: 0 16px 8px 0; padding: 2px 0; }
	.footer-areas__dot { display: none; }
	.footer-bottom p { text-align: left; }
}
@media (max-width: 560px) {
	.site-footer .footer-grid { column-gap: 20px; padding-top: 36px; }
	.site-footer .footer-contact .footer-contact__row p { font-size: 0.9375rem; }
	.site-footer .footer-contact { margin-left: -20px; margin-right: -20px; }
	.footer-bottom { padding-bottom: 88px; }
}
@media (min-width: 561px) and (max-width: 1000px) {
	.site-footer .footer-brand { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 32px; align-items: center; }
	.site-footer .footer-brand .footer-logo { grid-row: 1 / span 2; margin: 0; }
	.site-footer .footer-brand .footer-tagline { align-self: end; margin: 0; }
	.site-footer .footer-brand .social-bar { align-self: start; margin-top: 14px; }
}

/* How we work (home): step number, title and text centred at every width. */
body.is-home .hero .btn-row,body.is-home-es .hero .btn-row{ justify-content: center }
body.ed-page .hm-exp__text .sec-chips{ justify-content: center }
body.is-home-es .hero .kicker{ max-width: 40em }
@media (max-width: 700px){body.is-home-es .hero .kicker{font-size: clamp(0.5rem, 3.2vw, 1rem);letter-spacing: 0;max-width: none}}
body.ed-page .hm-exp__text .btn-row{ justify-content: center }
body.ed-page .hm-how .wp-block-buttons{ justify-content: center }
body.ed-page .hm-how .cy-link{text-align: center}
body.ed-page .hm-how .cy-link::before{left: 50%;margin-left: -6px}
body.ed-page .hm-how .cy-link .cy-link__n,body.ed-page .hm-how .cy-link h3,body.ed-page .hm-how .cy-link .cy-link__cut{text-align: center}

/* Phones: "How we work" (home, both languages) and the whole footer are centred. */
@media (max-width: 560px) {
	body.ed-page .hm-how .ed-head__meta, body.ed-page .hm-how .ed-head__body { text-align: center; }
	body.ed-page .hm-how .ed-head__meta p, body.ed-page .hm-how .ed-title, body.ed-page .hm-how .ed-lead { text-align: center; margin-left: auto; margin-right: auto; }
	body.ed-page .hm-how .cy-link { text-align: center; }
	body.ed-page .hm-how .cy-link::before { left: 50%; margin-left: -6px; }
	body.ed-page .hm-how .cy-link .cy-link__n, body.ed-page .hm-how .cy-link h3, body.ed-page .hm-how .cy-link .cy-link__cut { text-align: center; }
	body.ed-page .hm-how .wp-block-buttons { justify-content: center; }

	.site-footer .footer-grid { padding-left: 26px; padding-right: 26px; text-align: center; }
	.site-footer .footer-grid h4, .site-footer .footer-grid p, .site-footer .footer-grid li, .site-footer .footer-grid li a { text-align: center; }
	.site-footer .footer-logo { margin-left: auto; margin-right: auto; }
	.site-footer .footer-logo img { margin: 0 auto; display: block; }
	.site-footer .social-bar { justify-content: center; }
	/* Contact: the block is centred, but its rows share one left edge so the icons and text line up */
	.site-footer .footer-contact { display: grid; grid-template-columns: fit-content(100%); justify-content: center; }
	.site-footer .footer-contact h4 { justify-self: center; }
	.site-footer .footer-contact__row { flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; margin-bottom: 14px; text-align: left; }
	.site-footer .footer-contact__row p { text-align: left; padding-top: 0; }
	.footer-areas, .footer-areas p, .footer-bottom p { text-align: center; }
	.footer-areas a { margin: 0 8px 8px; }
	.footer-bottom p { padding-left: 14px; padding-right: 14px; text-wrap: balance; }
}

/* Phone hero: show the photo as a band at the top with the face centred, and let the text card sit below it. */
@media (max-width: 560px) {
	body .hero.hero--img, body .hero.hero--img.hero--parallax {
		background-image: url(../img/hero-mobile.webp), linear-gradient(#0e2f56,#0e2f56) !important;
		background-size: auto 320px, 100% 100% !important;
		background-position: 82% 0, 0 0 !important;
		background-repeat: no-repeat, no-repeat !important;
		background-attachment: scroll, scroll !important;
	}
	body .hero.hero--img::before { background: linear-gradient(180deg, rgba(13,34,51,0) 0, rgba(13,34,51,0) 230px, #0e2f56 322px); }
	body .hero.hero--img .wrap { padding-top: 250px; }
}
@media (min-width: 561px) and (max-width: 860px) {
	body .hero.hero--img, body .hero.hero--img.hero--parallax { background-position: 88% center, center !important; }
}

.topbar .lang-short { display: none; }

/* Phones: the running text is already 17px, but the small supporting text (breadcrumbs, captions, links, labels, footer)
   sat at 13 to 14.9px. Nudge it up so nothing needed is hard to read or hard to tap. */
@media (max-width: 600px) {
	body .crumbs, body .crumbs a, body .crumbs span { font-size: 0.9375rem; }
	body .ed-kick, body .kicker, body .cy-sheet .cy-sheet__title, body .sec-chips__label, body .m365-plan__flag, body .mi-report__tag, body .net-svy__label, body .ai-vs .ai-vs__k, body .es-ct .es-ct__k { font-size: 0.875rem; }
	body .cy-sheet .cy-sheet__cap, body .cinfo__note, body .proof__line, body .ai-fl .ai-fl__n { font-size: 0.9375rem; }
	body .ai-gov .ai-gov__plan { font-size: 0.8125rem; }
	body .pill-list a, body .pill-list .pill { font-size: 1rem; }
	.site-footer li a, .site-footer .footer-brand .footer-tagline, .site-footer .footer-more { font-size: 1rem; }
	.footer-areas p, .footer-areas a, .footer-areas strong { font-size: 0.9375rem; }
	.footer-bottom p { font-size: 0.875rem; }
	.footer-contact .addr-note { font-size: 0.875rem; }
	.site-footer h4 { font-size: 0.875rem; }
	.post-list .post-card .post-meta { font-size: 0.875rem; }
}

/* Mobile menu as a left drawer: about 85% of the screen, the page stays visible (dimmed) on the right, larger type. */
@media (max-width: 940px) {
	body.bn-nav2 .main-nav.main-nav--v2.open { right: auto; left: 0; width: min(85vw, 520px); max-height: calc(100dvh - 117px); border-radius: 0 0 18px 0; border-right: 1px solid var(--line); box-shadow: 10px 12px 32px rgba(9, 22, 34, 0.28); z-index: 120; }
	body.nav-open::after { content: ""; position: fixed; inset: 0; background: rgba(9, 22, 34, 0.5); z-index: 100; }
	body.nav-open .site-header { position: sticky; top: 0; z-index: 110; }
	.main-nav--v2 .bn-link { font-size: 1.25rem; padding: 15px 10px; min-height: 52px; }
	.main-nav--v2 .bn-sublink { font-size: 1.125rem; padding: 13px 12px; line-height: 1.3; }
	.main-nav--v2 .bn-col__title { font-size: 0.875rem; padding-left: 12px; margin-top: 8px; }
	.main-nav--v2 .bn-toggle, .submenu-toggle { width: 48px; height: 48px; }
	body.bn-nav2 .main-nav--v2 a.nav-book { font-size: 1.125rem; padding: 16px 20px; }
}
@media (max-width: 940px) {
	body.bn-nav2 .main-nav--v2 .bn-toggle, body.bn-nav2 .main-nav--v2 .bn-toggle--chev { width: 48px; min-width: 48px; height: 48px; justify-self: end; }
}
@media (max-width: 940px) {
	body.bn-nav2 .main-nav--v2 button.bn-link svg { padding: 14px; margin: -8px -6px -8px 8px; }
}

/* Phones: Services and Company read left-aligned, and the pair sits so the space on the left matches the space on the right. */
@media (max-width: 560px) {
	.site-footer .footer-grid { grid-template-columns: minmax(0, 1fr) max-content; column-gap: 22px; padding-left: 8px; padding-right: 8px; }
	.site-footer .footer-grid > div:nth-child(2), .site-footer .footer-grid > div:nth-child(3) { text-align: left; }
	.site-footer .footer-grid > div:nth-child(2) :is(h4, p, li, li a), .site-footer .footer-grid > div:nth-child(3) :is(h4, p, li, li a) { text-align: left; }
	.site-footer .footer-contact { margin-left: 0; margin-right: 0; }
}

/* HOME SECTION RHYTHM (2026-10-11): Woodstock / Contact / FAQ / Blog were all white. Alternate white and grey (home only):
   Contact and Blog sit on the grey, the two contact cards turn white so they stay distinct. */
body.is-home #contact, body.is-home #from-the-blog { background: var(--paper, #eaeff4); }
body.is-home #contact .contact-form-col, body.is-home #contact .contact-info-card { background: #fff; border: 1px solid var(--line); }

/* MOBILE READABILITY (2026-10-11): long-form body text 16px -> 17px on phones (plain paragraphs and list items only, so
   cards, labels and components keep their own sizes); blog posts 18px with a little more line height.
   Home badges (proof card): icon tile and text centred in each cell. */
@media (max-width: 700px) {
	main p[class="wp-block-paragraph"], main li:not([class]) { font-size: 1.0625rem; line-height: 1.6; }
	body.single-post .entry-content p, body.single-post .entry-content li { font-size: 1.125rem; line-height: 1.65; }
	.proof__item { align-items: center; text-align: center; }
	.proof__icon { margin-left: auto; margin-right: auto; }
}

/* HOME: centred "Why choose us" cards and Experience portrait/button on phones */
@media (max-width: 700px) {
	body.is-home .sa-quad .cy-layer { align-items: center; text-align: center; }
	body.is-home .sa-quad .cy-layer .cy-layer__ico { margin: 0 auto 0.9rem; }
	body.is-home .sa-quad .cy-layer h3, body.is-home .sa-quad .cy-layer .cy-layer__t { text-align: center; }
	body.is-home .hm-portrait { margin: 0 auto; text-align: center; }
	body.is-home .hm-portrait img { margin: 0 auto; }
	body.is-home .hm-exp__text .btn-row { justify-content: center; }
}

/* CONTACT CARD: centred "Follow us" label and icons (all screen sizes) */
.cinfo__social { text-align: center; }
.cinfo__social .social-bar { justify-content: center; }
.contact-info-card p.cinfo__follow { text-align: center; }


/* HOME: centred "What we do" cards on phones */
@media (max-width: 700px) {
	body.is-home .cy-layers .cy-layer { align-items: center; text-align: center; }
	body.is-home .cy-layers .cy-layer .cy-layer__ico { margin: 0 auto 0.9rem; }
	body.is-home .cy-layers .cy-layer h3,
	body.is-home .cy-layers .cy-layer .cy-layer__t,
	body.is-home .cy-layers .cy-layer .cy-layer__aim,
	body.is-home .cy-layers .cy-layer .sa-more { text-align: center; }
}

/* SPANISH HOME: centred buttons under "Bienvenido" */
body.is-home-es .ed-head + .btn-row { justify-content: center; }
@media (max-width: 700px) {
	body.is-home-es .ed-head + .btn-row { flex-direction: column; align-items: stretch; }
	body.is-home-es .ed-head + .btn-row .wp-block-button__link { width: 100%; text-align: center; }
}

/* SPANISH HOME: centred sections, buttons and cards */
body.is-home-es section.ed-sec .btn-row { justify-content: center; }
body.is-home-es .hm-chain .cy-link { text-align: center; }
body.is-home-es .hm-chain .cy-link__n, body.is-home-es .hm-chain .cy-link h3, body.is-home-es .hm-chain .cy-link__cut { text-align: center; margin-inline: auto; }
body.is-home-es .net-ind__lead .btn-row { flex-wrap: nowrap; gap: 10px; }
@media (max-width: 700px) {
	body.is-home-es .cy-layers .cy-layer { align-items: center; text-align: center; }
	body.is-home-es .cy-layers .cy-layer .cy-layer__ico { margin: 0 auto 0.9rem; }
	body.is-home-es .cy-layers .cy-layer h3,
	body.is-home-es .cy-layers .cy-layer .cy-layer__t,
	body.is-home-es .cy-layers .cy-layer .sa-more { text-align: center; }
	body.is-home-es .net-ind__lead .btn-row .wp-block-button__link { padding-inline: 12px; font-size: 0.8125rem; white-space: normal; text-align: center; }
}

/* SPANISH HOME: larger subline in the closing call-to-action band */
body.is-home-es .cta-band .wp-block-heading + p { font-size: 1.375rem; line-height: 1.5; }
@media (max-width: 700px) { body.is-home-es .cta-band .wp-block-heading + p { font-size: 1.1875rem; } }

/* SPANISH HOME, Contacto: buttons centred under both columns on one line (desktop) */
@media (min-width: 901px) {
	body.is-home-es #contacto .net-ind { align-content: start; row-gap: 0; }
	body.is-home-es #contacto .net-ind__lead { display: contents; }
	body.is-home-es #contacto .net-ind__lead > :not(.btn-row) { grid-column: 1; }
	body.is-home-es #contacto .net-ind__list { grid-column: 2; grid-row: 1 / span 3; }
	body.is-home-es #contacto .net-ind__lead > .btn-row { grid-column: 1 / -1; grid-row: 4; justify-content: center; margin-top: 36px; gap: 16px; }
	body.is-home-es #contacto .net-ind__lead .btn-row .wp-block-button__link { white-space: nowrap; }
}

/* CONTACT FORM: left-aligned labels, fields and placeholders (button text stays centred) */
.frm-fluent-form, .frm-fluent-form .ff-el-group, .frm-fluent-form .ff-el-input--label, .frm-fluent-form label,
.frm-fluent-form .ff-el-form-control, .frm-fluent-form input, .frm-fluent-form textarea, .frm-fluent-form select,
.frm-fluent-form .ff-t-cell, .frm-fluent-form .ff_t_cell, .frm-fluent-form .ff-el-help-message, .frm-fluent-form .error { text-align: left; }
.frm-fluent-form .ff-btn-submit { text-align: center; }

/* Logged-in admin bar: on phones (<=600px) WordPress lets the bar scroll away, so the sticky header must not keep a 46px offset */
@media (max-width: 600px) { html body.admin-bar .site-header { top: 0; } }

/* BLOG CARDS: the whole card is clickable (stretched "Read more" link) */
.post-card-mini { position: relative; cursor: pointer; transition: box-shadow .2s ease, transform .2s ease; }
.post-card-mini .more::before { content: ""; position: absolute; inset: 0; z-index: 2; }
.post-card-mini:hover { box-shadow: 0 14px 30px -18px rgba(13, 34, 51, 0.45); transform: translateY(-2px); }
.post-card-mini:hover h3 a { color: var(--orange-dark, #c24512); }
.post-card-mini:focus-within { outline: 2px solid var(--orange, #e85c2a); outline-offset: 2px; }

/* HOME "Who we help": centred button on phones */
@media (max-width: 700px) { body.is-home .net-ind__lead .btn-row { justify-content: center; } }

/* PHONES: centred h2 headings (long-form blog articles keep left-aligned headings) */
@media (max-width: 700px) {
	body:not(.single-post) h2, body:not(.single-post) .wp-block-heading.ed-title { text-align: center; }
}

/* PHONES: section headers fully centred (index, kicker, h2 and lead together) */
@media (max-width: 700px) {
	body:not(.single-post) .ed-head, body:not(.single-post) .ed-head__meta, body:not(.single-post) .ed-head__body { text-align: center; align-items: center; justify-content: center; }
	body:not(.single-post) .ed-head .ed-idx, body:not(.single-post) .ed-head .ed-kick, body:not(.single-post) .ed-head .ed-lead,
	body:not(.single-post) .ed-head .ed-title { text-align: center; margin-inline: auto; }
	body:not(.single-post) .ed-head__meta { display: flex; flex-direction: column; gap: 2px; }
}

/* PHONES: drop the first phrase of a heading where the full line is too long */
@media (max-width: 700px) { .bn-hide-m { display: none; } }

/* CONTACT CARD: centred title, sub line and phone number (all screen sizes) */
.contact-info-card h3.cinfo__title, .contact-info-card h3.wp-block-heading.cinfo__title, .contact-info-card p.cinfo__sub, .contact-info-card p.cinfo__phone { text-align: center; }

/* SPANISH HOME: centred founder portrait on phones */
@media (max-width: 700px) {
	body.is-home-es .hm-portrait { margin: 0 auto; text-align: center; }
	body.is-home-es .hm-portrait img { margin: 0 auto; }
}

/* SPANISH HOME, Contacto card: centred "Llámenos" label and phone number (all screen sizes) */
body.is-home-es .es-ct p.es-ct__k, body.is-home-es .es-ct p.es-ct__phone { text-align: center; }

/* 3CX chat bubble: 15% larger (default 60px). */
call-us-selector{ --call-us-main-button-width: 69px }

/* Top bar: pointing hand before the Espanol link (inherits the text colour). */
.topbar a.topbar__lang .lang-hand{ display: inline-block;height: 1em;width: 2.01em;margin-left: 1.5px;margin-right: 0.5em;vertical-align: -0.12em;background-color: currentColor;-webkit-mask: url(../img/lang-hand.png) no-repeat center / contain;mask: url(../img/lang-hand.png) no-repeat center / contain }
@media (min-width: 941px) and (max-width: 1199px){ body.bn-nav2 .topbar .wrap{ padding-left: 16px;padding-right: 16px } }

/* BLOG POST BODY TYPE (2026-10-30): larger, easier-to-read text on single posts */
body.single-post .entry-content p,
body.single-post .entry-content li { font-size: 1.125rem; line-height: 1.7; }
body.single-post .entry-content p { margin-bottom: 1.1em; }
body.single-post .entry-content li { margin-bottom: 0.4em; }
body.single-post .entry-content h3 { font-size: clamp(1.375rem, 1.25rem + 0.5vw, 1.5rem); line-height: 1.25; }
