/* MaH Quests theme styles: layout pieces that theme.json cannot express.
   Brand: #4150b1 indigo, #06c7ff cyan, #8766ac violet, #d77185 rose (MaH Quests CI). */

:root {
	--mq-indigo: #4150b1;
	--mq-cyan: #06c7ff;
	--mq-violet: #8766ac;
	--mq-rose: #d77185;
	--mq-navy: #0b1030;
	--mq-navy-2: #131a45;
	--mq-ink: #141a3a;
	--mq-slate: #555d7e;
	--mq-line: #e3e6f2;
	--mq-mist: #f5f6fc;
	--mq-brand: linear-gradient(90deg, #4150b1 0%, #06c7ff 50%, #d77185 100%);
	--mq-brand-light: linear-gradient(90deg, #06c7ff 0%, #8766ac 55%, #d77185 100%);
	--mq-radius: 14px;
	--mq-shadow: 0 1px 2px rgba(11, 16, 48, .06), 0 12px 32px rgba(11, 16, 48, .08);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 3px solid var(--mq-cyan); outline-offset: 3px; border-radius: 4px; }
::selection { background: rgba(6, 199, 255, .25); }
img { height: auto; }

/* ---------- Header ---------- */
.mq-header {
	position: sticky; top: 0; z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--mq-line);
}
.admin-bar .mq-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mq-header { top: 46px; } }
.mq-header__inner { min-height: 84px; padding-top: 6px; padding-bottom: 6px; align-items: center !important; }
.mq-header .wp-block-site-logo img, .mq-header .mq-logo img { width: 92px !important; height: auto; display: block; }
.mq-header .mq-logo { margin: 0; }
.mq-header .wp-block-navigation a { color: var(--mq-ink); text-decoration: none; }
.mq-header .wp-block-navigation a:hover { color: var(--mq-indigo); }
.mq-header .wp-block-navigation .current-menu-item > a,
.mq-header .wp-block-navigation [aria-current="page"] { color: var(--mq-indigo); box-shadow: inset 0 -2px 0 var(--mq-cyan); }
.mq-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--mq-line) !important; border-radius: 12px; padding: 8px !important;
	box-shadow: var(--mq-shadow); min-width: 260px !important;
}
.mq-header .wp-block-navigation__submenu-container a { padding: 10px 12px !important; border-radius: 8px; }
.mq-header .wp-block-navigation__submenu-container a:hover { background: var(--mq-mist); }
.mq-header .wp-block-button__link { padding: .7rem 1.2rem; font-size: .95rem; }
@media (max-width: 1080px) { .mq-header .mq-header__cta { display: none; } }

/* ---------- Sections ---------- */
.mq-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.mq-section--mist { background: var(--mq-mist); }
.mq-section--dark { background: var(--mq-navy); color: #c9d0ec; }
.mq-section--dark :is(h1, h2, h3, h4) { color: #fff; }
.mq-section--dark a:not(.wp-block-button__link) { color: var(--mq-cyan); }
.mq-section-head { max-width: 760px; margin-bottom: 2.5rem !important; }
.mq-section-head p:not(.mq-kicker) { color: var(--mq-slate); font-size: 1.125rem; }
.mq-section--dark .mq-section-head p:not(.mq-kicker) { color: #b9c2e4; }

.mq-kicker, .mq-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .8rem !important; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	margin-bottom: .75rem !important;
}
.mq-kicker { color: var(--mq-indigo); display: inline-flex; align-items: center; gap: .6rem; }
.mq-kicker::before { content: ""; width: 28px; height: 3px; border-radius: 3px; background: var(--mq-brand); }
.mq-section--dark .mq-kicker { color: var(--mq-cyan); }
.mq-lead { font-size: 1.2rem !important; line-height: 1.6; }

/* ---------- Hero ---------- */
.mq-hero {
	position: relative; overflow: hidden; isolation: isolate;
	background:
		url("../img/hero-network.svg") no-repeat right -40px center / min(58vw, 760px) auto,
		radial-gradient(900px 480px at 85% 0%, rgba(65, 80, 177, .55), transparent 65%),
		linear-gradient(160deg, var(--mq-navy) 0%, #151d55 100%);
	color: #c9d0ec;
	padding-top: clamp(4rem, 10vw, 7.5rem); padding-bottom: clamp(4rem, 9vw, 7rem);
}
.mq-hero::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--mq-brand);
}
.mq-hero > * { position: relative; z-index: 1; }
.mq-hero h1 { color: #fff; max-width: 15ch; }
.mq-hero .mq-lead, .mq-hero p { color: #c9d0ec; max-width: 58ch; }
.mq-hero .mq-eyebrow { color: var(--mq-cyan); }
.mq-hero .wp-block-buttons { margin-top: 2rem; }
.mq-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--mq-cyan); color: var(--mq-navy); }
.mq-hero .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; }
.mq-hero .is-style-outline .wp-block-button__link { border: 2px solid rgba(255, 255, 255, .55); color: #fff; background: transparent; }
.mq-hero .is-style-outline .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .06); }
.mq-hero--page { padding-top: clamp(3.5rem, 8vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 4.5rem); background-size: min(46vw, 600px) auto, auto, auto; }
.mq-hero--page h1 { max-width: 22ch; font-size: clamp(2.1rem, 4.4vw, 3.1rem) !important; }
@media (max-width: 860px) {
	.mq-hero {
		background:
			radial-gradient(600px 360px at 100% 0%, rgba(65, 80, 177, .55), transparent 65%),
			linear-gradient(160deg, var(--mq-navy) 0%, #151d55 100%);
	}
	.mq-hero h1 { max-width: none; }
}

/* ---------- Proof bar ---------- */
.mq-stats { gap: 0 !important; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--mq-radius); margin-top: 3rem !important; }
.mq-stats > .wp-block-column { padding: 1.5rem 1.6rem; border-left: 1px solid rgba(255, 255, 255, .1); }
.mq-stats > .wp-block-column:first-child { border-left: 0; }
.mq-stat-num {
	font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(1.8rem, 3vw, 2.4rem) !important; line-height: 1.1;
	background: var(--mq-brand-light); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 0 !important;
}
.mq-stat-label { color: #b9c2e4; font-size: .95rem !important; margin-top: .4rem !important; line-height: 1.45; }
@media (max-width: 781px) {
	.mq-stats { display: grid !important; grid-template-columns: 1fr 1fr; }
	.mq-stats > .wp-block-column { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .1); }
	.mq-stats > .wp-block-column:nth-child(-n+2) { border-top: 0; }
	.mq-stats > .wp-block-column:nth-child(even) { border-left: 1px solid rgba(255, 255, 255, .1); }
	.mq-stats > .wp-block-column { padding: 1.1rem 1rem; }
	.mq-stat-num { font-size: 1.45rem !important; }
	.mq-stat-label { font-size: .85rem !important; }
}
@media (max-width: 600px) { .mq-header .mq-logo img { width: 72px !important; } .mq-header__inner { min-height: 68px; } }

/* ---------- Cards ---------- */
.mq-card {
	background: #fff; border: 1px solid var(--mq-line); border-radius: var(--mq-radius);
	padding: 1.75rem !important; box-shadow: var(--mq-shadow); height: 100%;
	transition: transform .18s ease, border-color .18s ease;
}
.mq-card > :first-child { margin-top: 0; }
.mq-card > :last-child { margin-bottom: 0; }
.mq-card h3 { font-size: 1.15rem !important; margin-bottom: .5rem; }
.mq-card p { color: var(--mq-slate); }
.mq-card:hover { transform: translateY(-3px); border-color: rgba(65, 80, 177, .35); }
.mq-card--accent { position: relative; overflow: hidden; }
.mq-card--accent::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--mq-brand); }
.mq-section--dark .mq-card { background: var(--mq-navy-2); border-color: rgba(255, 255, 255, .1); box-shadow: none; }
.mq-section--dark .mq-card p { color: #b9c2e4; }
.mq-card .mq-more a, .mq-more a { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: .95rem; text-decoration: none; }
.mq-card .mq-more a::after, .mq-more a::after { content: " \2192"; }

.mq-grid { gap: 1.5rem !important; }
.mq-grid > .wp-block-column { display: flex; flex-direction: column; }
.mq-grid > .wp-block-column > .mq-card { flex: 1; }

.mq-num {
	display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px;
	background: var(--mq-brand); color: #fff !important; font-family: var(--wp--preset--font-family--heading);
	font-weight: 700; font-size: 1rem !important; margin-bottom: 1rem !important;
}
.mq-tag {
	display: inline-block; font-family: var(--wp--preset--font-family--heading); font-size: .72rem !important; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; color: var(--mq-indigo) !important; background: rgba(65, 80, 177, .08);
	padding: .3rem .7rem; border-radius: 999px; margin-bottom: .9rem !important;
}
.mq-metrics { border-top: 1px solid var(--mq-line); padding-top: .9rem; margin-top: 1rem !important; font-size: .9rem !important; color: var(--mq-ink) !important; font-weight: 500; }

/* ---------- Lists, steps, tables ---------- */
.mq-checks { list-style: none; padding-left: 0 !important; display: grid; gap: .75rem; }
.mq-checks li { position: relative; padding-left: 2rem; }
.mq-checks li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1.15rem; height: 1.15rem; border-radius: 6px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 6.5' stroke='white' stroke-width='2.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat, linear-gradient(135deg, #4150b1, #06c7ff);
}
.mq-checks--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
@media (max-width: 700px) { .mq-checks--2 { grid-template-columns: 1fr; } }

.mq-steps { list-style: none; padding-left: 0 !important; counter-reset: mq; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.mq-steps li { counter-increment: mq; position: relative; padding-top: 3.4rem; color: var(--mq-slate); }
.mq-steps li::before {
	content: "0" counter(mq); position: absolute; top: 0; left: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.6rem;
	background: var(--mq-brand); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.mq-steps li::after { content: ""; position: absolute; top: 1.1rem; left: 3.2rem; right: 0; height: 1px; background: var(--mq-line); }
.mq-steps strong { display: block; color: var(--mq-ink); font-family: var(--wp--preset--font-family--heading); font-size: 1.1rem; margin-bottom: .35rem; }
@media (max-width: 900px) { .mq-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mq-steps { grid-template-columns: 1fr; } }

.mq-table table { border-collapse: separate; border-spacing: 0; border: 1px solid var(--mq-line); border-radius: var(--mq-radius); overflow: hidden; width: 100%; background: #fff; }
.mq-table th, .mq-table td { border: 0; border-bottom: 1px solid var(--mq-line); padding: .9rem 1.1rem; text-align: left; vertical-align: top; }
.mq-table thead th { background: var(--mq-navy); color: #fff; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: .85rem; letter-spacing: .02em; border-bottom: 3px solid transparent; border-image: var(--mq-brand) 1; }
.mq-table tbody tr:nth-child(even) td { background: var(--mq-mist); }
.mq-table tbody tr:last-child td { border-bottom: 0; }
.mq-table td:last-child { font-weight: 600; color: var(--mq-indigo); }
.mq-table table.has-fixed-layout { table-layout: auto; }
.mq-table.wp-block-table { overflow-x: auto; }
.mq-table figcaption { color: var(--mq-slate); font-size: .9rem; margin-top: .75rem; text-align: left; }

/* ---------- Badges ---------- */
.mq-badges { gap: 1rem !important; align-items: center; }
.mq-badges .wp-block-image { margin: 0 !important; }
.mq-badges .wp-block-image img {
	height: 96px !important; width: auto !important; max-width: none; background: #fff; border: 1px solid var(--mq-line);
	border-radius: 12px; padding: 8px; display: block;
}
@media (max-width: 600px) { .mq-badges .wp-block-image img { height: 72px !important; } }
.mq-cred { border: 1px solid var(--mq-line); border-radius: 12px; padding: .8rem 1.1rem !important; background: #fff; }
.mq-cred p { margin: 0 !important; line-height: 1.35; }
.mq-cred p:first-child { font-family: var(--wp--preset--font-family--heading); font-weight: 600; color: var(--mq-ink); }
.mq-cred p + p { font-size: .85rem; color: var(--mq-slate); }

/* ---------- Callouts, CTA band ---------- */
.mq-callout { border-left: 4px solid var(--mq-cyan); background: var(--mq-mist); border-radius: 0 12px 12px 0; padding: 1.25rem 1.5rem !important; }
.mq-cta {
	position: relative; overflow: hidden;
	background: radial-gradient(700px 300px at 90% 120%, rgba(215, 113, 133, .35), transparent 60%),
		radial-gradient(700px 300px at 0% -40%, rgba(6, 199, 255, .25), transparent 60%), var(--mq-navy);
	color: #c9d0ec;
}
.mq-cta h2 { color: #fff; }
.mq-cta .wp-block-button__link { background: var(--mq-cyan); color: var(--mq-navy); }
.mq-cta .wp-block-button__link:hover { background: #fff; color: var(--mq-navy); }

/* ---------- Footer ---------- */
.mq-footer { position: relative; background: #070b24; color: #9aa4c9; font-size: .95rem; }
.mq-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--mq-brand); }
.mq-footer a { color: #dfe4f7; text-decoration: none; }
.mq-footer a:hover { color: var(--mq-cyan); text-decoration: underline; }
.mq-footer h4 { color: #fff; font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1rem; }
.mq-footer ul { list-style: none; padding-left: 0; margin: 0; display: grid; gap: .55rem; }
.mq-footer .mq-logo img { width: 150px; }
.mq-footer .mq-tagline { font-family: var(--wp--preset--font-family--heading); font-size: .78rem !important; letter-spacing: .06em; text-transform: uppercase; color: var(--mq-violet); }
.mq-footer .mq-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .08); font-size: .85rem; }
.mq-footer .mq-badges .wp-block-image img { height: 64px !important; border-color: transparent; }

/* ---------- Content pages ---------- */
.mq-prose { max-width: 760px; }
.mq-prose h2 { margin-top: 2.5rem; font-size: 1.6rem; }
.mq-prose h3 { margin-top: 1.75rem; }

/* ---------- Contact form (from the MaH Quests Site Essentials plugin) ---------- */
.mq-form { display: grid; gap: 1.1rem; }
.mq-form, .mq-form * { box-sizing: border-box; }
.mq-form p { margin: 0; }
.mq-form .mq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 640px) { .mq-form .mq-row { grid-template-columns: 1fr; } }
.mq-form label { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: .9rem; margin-bottom: .35rem; color: var(--mq-ink); }
.mq-form input[type="text"], .mq-form input[type="email"], .mq-form input[type="tel"], .mq-form select, .mq-form textarea {
	width: 100%; font: inherit; color: var(--mq-ink); background: #fff; border: 1px solid #cfd4e8; border-radius: 10px; padding: .8rem .95rem;
}
.mq-form textarea { min-height: 150px; resize: vertical; }
.mq-form :is(input, select, textarea):focus { border-color: var(--mq-indigo); outline: 3px solid rgba(6, 199, 255, .35); outline-offset: 0; }
.mq-form .mq-consent { display: flex; gap: .7rem; align-items: flex-start; font-size: .9rem; color: var(--mq-slate); }
.mq-form .mq-consent input { margin-top: .25rem; width: 18px; height: 18px; flex: none; }
.mq-form .mq-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.mq-form button {
	justify-self: start; border: 0; cursor: pointer; background: var(--mq-indigo); color: #fff; font-family: var(--wp--preset--font-family--heading);
	font-weight: 600; font-size: 1rem; padding: .9rem 1.6rem; border-radius: 10px;
}
.mq-form button:hover { background: var(--mq-navy-2); }
.mq-notice { padding: 1rem 1.2rem; border-radius: 10px; margin-bottom: 1rem; }
.mq-notice--ok { background: #e7f8ef; color: #135c35; border: 1px solid #b8e6cb; }
.mq-notice--err { background: #fdecef; color: #8a1f33; border: 1px solid #f3c1cb; }

/* ---------- Facts awaiting confirmation: highlighted for signed-in editors only ---------- */
body.logged-in .mq-confirm { background: rgba(215, 113, 133, .16); outline: 1px dashed var(--mq-rose); border-radius: 3px; padding: 0 .15em; cursor: help; }
body.logged-in .mq-confirm::after { content: "confirm"; font: 600 .62rem/1 var(--wp--preset--font-family--heading); letter-spacing: .06em; text-transform: uppercase; color: #fff; background: var(--mq-rose); border-radius: 4px; padding: .15rem .3rem; margin-left: .3rem; vertical-align: middle; }
mark.mq-confirm { color: inherit; background: none; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.mq-card { transition: none; }
}

/* CTA row and credential tiles */
.mq-cta__row { align-items: center !important; }
.mq-cta__row > .wp-block-column:last-child .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .mq-cta__row > .wp-block-column:last-child .wp-block-buttons { justify-content: flex-start; } }
.mq-creds { gap: 1rem !important; margin-top: 1rem; margin-bottom: 1.5rem; }
.mq-creds .mq-cred { min-width: 170px; }
.mq-section-head h2 { margin-top: 0; }
.wp-block-post-date { color: var(--mq-slate); font-size: .85rem; }
.mq-hero .wp-block-post-date { color: #b9c2e4; }
.wp-block-post-title a { color: inherit; text-decoration: none; }
.wp-block-post-title a:hover { color: var(--mq-indigo); }
.mq-hero .wp-block-post-title { color: #fff; }
.mq-field-error { display: block; color: #8a1f33; font-size: .85rem; margin-top: .3rem; }
.mq-optional { color: var(--mq-slate); font-weight: 400; }
.mq-section--dark .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: var(--mq-cyan); color: var(--mq-navy); }
.mq-section--dark .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: #fff; }

/* Use the menu button (overlay) below 1100px so the header never wraps onto two lines */
@media (max-width: 1100px) {
	.mq-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.mq-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.mq-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.mq-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.15rem; }
.mq-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding: 0 0 0 1rem !important; }
.mq-header .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) { align-items: flex-start !important; justify-content: flex-start !important; text-align: left; }

/* Client and technology logos, CloudPOE media */
.mq-client-logo { margin-bottom: 1rem; }
.mq-client-logo .wp-block-image img { height: 64px !important; width: auto !important; max-width: 100%; border: 0 !important; padding: 0 !important; background: transparent !important; }
.mq-client-name { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 1.15rem !important; color: var(--mq-ink) !important; margin-bottom: .8rem !important; }
.mq-card-logo { margin-bottom: .8rem; }
.mq-card-logo .wp-block-image img { height: 56px !important; border: 0 !important; padding: 4px 0 !important; }
.mq-tech .wp-block-image img { height: 88px !important; padding: 18px 22px !important; }
.mq-cloudpoe-logo .wp-block-image img { height: 84px !important; }
.mq-wa-row, .mq-video-row { align-items: center !important; }
.mq-wa-row .wp-block-image img { width: 100%; height: auto; }
.mq-section--dark .mq-badges .wp-block-image img { border-color: transparent; }
.mq-caption { color: var(--mq-slate); font-size: .9rem !important; margin-top: .6rem !important; }
.mq-section--dark .mq-caption { color: #b9c2e4; }
.wp-block-video video { width: 100%; border-radius: var(--mq-radius); box-shadow: var(--mq-shadow); background: var(--mq-navy); display: block; }
.mq-shots .wp-block-image img { border-radius: var(--mq-radius); border: 1px solid var(--mq-line); box-shadow: var(--mq-shadow); width: 100%; }
.mq-section--dark .mq-card .mq-tag { color: var(--mq-cyan) !important; background: rgba(6, 199, 255, .1); }
.mq-card .mq-badges:not(.mq-tech) .wp-block-image img { height: 64px !important; border: 0 !important; padding: 0 !important; background: transparent !important; }
.mq-card-logo .wp-block-image img { height: 48px !important; }

/* ---------- Team: vendor certification tiles and photo ---------- */
.mq-creds-label { margin-top: 1.5rem !important; margin-bottom: .6rem !important; }
.mq-vendor-creds { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem !important; margin-top: 0; margin-bottom: 0; }
.mq-vendor-creds .mq-cred { min-width: 0; padding: .65rem .9rem !important; border-left: 3px solid var(--mq-indigo); }
.mq-vendor-creds .mq-cred:nth-child(3n+2) { border-left-color: var(--mq-cyan); }
.mq-vendor-creds .mq-cred:nth-child(3n) { border-left-color: var(--mq-violet); }
.mq-avatar { margin-bottom: 1rem; }
.mq-avatar .wp-block-image img { width: 96px !important; height: 96px !important; object-fit: cover; border-radius: 50% !important; border: 3px solid #fff !important; box-shadow: 0 0 0 2px var(--mq-cyan); padding: 0 !important; }
