/* =========================================================
   Into The Blue — main stylesheet
   Bold campaign-modern: navy / electric blue / signal coral
   ========================================================= */

:root {
	--itb-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--itb-header-h: 84px;
}

html { scroll-behavior: smooth; }

/* Horizontal-overflow containment lives on each decorative section
   (.itb-marquee/.itb-hero/.itb-cta/.itb-stats all clip internally). We must NOT
   put overflow on any ancestor of the header — that breaks its position:sticky. */
html, body { max-width: 100%; }

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

::selection { background: var(--wp--preset--color--coral); color: #fff; }

a { text-decoration: none; }

/* Even, intentional line breaks; kills lone-word orphans on headlines. */
h1, h2, h3, .itb-hero__title, .itb-mission__statement { text-wrap: balance; }

/* Skip link (visible on keyboard focus) */
.itb-skip-link {
	position: absolute; left: 1rem; top: -120px; z-index: 1000;
	background: var(--wp--preset--color--coral); color: #fff;
	font-family: var(--wp--preset--font-family--heading); font-weight: 700;
	padding: .75rem 1.25rem; border-radius: 4px;
	transition: top .2s var(--itb-ease);
}
.itb-skip-link:focus { top: 1rem; color: #fff; }

:where(a:focus-visible, button:focus-visible, .wp-block-button__link:focus-visible, input:focus-visible, textarea:focus-visible) {
	outline: 3px solid var(--wp--preset--color--blue);
	outline-offset: 3px;
}

/* Utility display type */
.itb-display {
	font-family: var(--wp--preset--font-family--display) !important;
	font-weight: 400 !important;
	text-transform: uppercase;
	letter-spacing: 0.005em;
	line-height: 0.94;
}

.itb-eyebrow {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	font-size: 0.8rem;
	color: var(--wp--preset--color--blue);
	margin: 0 0 1rem;
}
.itb-eyebrow.is-on-dark { color: #8FB6FF; }
.itb-eyebrow::before {
	content: "";
	display: inline-block;
	width: 28px;
	height: 2px;
	background: var(--wp--preset--color--coral);
	vertical-align: middle;
	margin-right: 0.6rem;
	transform: translateY(-3px);
}

/* =========================================================
   Buttons
   ========================================================= */
.wp-block-button__link {
	transition: transform .25s var(--itb-ease), background-color .25s var(--itb-ease), box-shadow .25s var(--itb-ease);
	display: inline-flex;
	align-items: center;
	gap: .55rem;
}
.wp-block-button__link:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -12px rgba(255, 90, 77, 0.6);
}
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--navy) !important;
	border: 2px solid currentColor;
	box-shadow: none;
}
.is-style-outline .wp-block-button__link:hover {
	color: var(--wp--preset--color--blue) !important;
	transform: translateY(-2px);
}
/* On dark backgrounds */
.has-white-color .is-style-outline .wp-block-button__link,
.itb-on-dark .is-style-outline .wp-block-button__link { color: #fff !important; }

/* =========================================================
   Header
   ========================================================= */
/* The header GROUP lives inside a <header class="wp-block-template-part"> wrapper
   that is only header-height tall. A sticky element only travels within its parent,
   so sticky must sit on the page-tall wrapper, not on .itb-header itself. */
header.wp-block-template-part:has(.itb-header) {
	position: sticky;
	top: 0;
	z-index: 100;
}
.itb-header {
	position: relative;
	z-index: 100;
	width: 100%;
	background: transparent;
}
/* Frosted background lives on a pseudo-element so the header itself does NOT
   become a containing block for the nav overlay's position:fixed (backdrop-filter
   would clamp the full-screen mobile menu to the header's height). */
.itb-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.86);
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	transition: background-color .35s var(--itb-ease), box-shadow .35s var(--itb-ease);
}
.itb-header.is-stuck::before {
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 10px 30px -22px rgba(10, 31, 68, 0.6);
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.itb-header__bar { min-height: var(--itb-header-h); padding-block: .5rem; }
.itb-brand { margin: 0; }
.itb-brand a {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.6rem;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--wp--preset--color--navy);
	line-height: 1;
	transition: color .25s var(--itb-ease);
}
.itb-brand a:hover { color: var(--wp--preset--color--blue); }
.itb-brand__dot { color: var(--wp--preset--color--coral); }
.itb-nav a {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--navy);
	position: relative;
}
.itb-nav a::after {
	content: "";
	position: absolute;
	left: 0; bottom: -6px;
	width: 100%; height: 2px;
	background: var(--wp--preset--color--coral);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .3s var(--itb-ease);
}
.itb-nav a:hover { color: var(--wp--preset--color--blue); }
.itb-nav a:hover::after { transform: scaleX(1); }
/* Active page indicator */
.itb-nav .current-menu-item > a,
.itb-nav [aria-current="page"] { color: var(--wp--preset--color--blue); }
.itb-nav [aria-current="page"]::after { transform: scaleX(1); }
.itb-header__cta .wp-block-button__link { padding: .7rem 1.4rem; font-size: .82rem; }

/* Mobile nav overlay — brand panel */
.itb-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: linear-gradient(160deg, #060F26 0%, #0A1F44 70%, #143A8C 140%);
	padding: clamp(1.5rem, 6vw, 3rem);
}
.itb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	justify-content: center;
	align-items: flex-start;
	gap: 1.25rem;
}
.itb-nav .wp-block-navigation__responsive-container.is-menu-open a {
	font-family: var(--wp--preset--font-family--display);
	text-transform: uppercase;
	font-size: clamp(2rem, 9vw, 3.25rem);
	line-height: 1.05;
	color: #fff;
	letter-spacing: 0.01em;
}
.itb-nav .wp-block-navigation__responsive-container.is-menu-open a:hover,
.itb-nav .wp-block-navigation__responsive-container.is-menu-open [aria-current="page"] { color: #7FA8FF; }
.itb-nav .wp-block-navigation__responsive-container.is-menu-open a::after { display: none; }
.itb-nav .wp-block-navigation__responsive-container-open svg,
.itb-nav .wp-block-navigation__responsive-container-close svg { fill: currentColor; }
.itb-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); }
.itb-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { color: var(--wp--preset--color--coral); }

/* =========================================================
   Generic section helpers
   ========================================================= */
.itb-section { padding-block: var(--wp--preset--spacing--60); }
.itb-on-dark, .itb-on-dark :where(h1,h2,h3,h4,p,li) { color: #fff; }
.itb-lead { font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.6; color: var(--wp--preset--color--slate); }
.itb-on-dark .itb-lead { color: #C9D7F5; }

/* =========================================================
   Hero
   ========================================================= */
.itb-hero { position: relative; overflow: clip; isolation: isolate; }
.itb-hero__media { position: absolute; inset: 0; z-index: -2; }
.itb-hero__media img,
.itb-hero .wp-block-cover__image-background { object-fit: cover; width: 100%; height: 100%; }
.itb-hero::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(180deg, rgba(6,15,38,0.55) 0%, rgba(6,15,38,0.2) 40%, rgba(6,15,38,0.7) 100%),
		linear-gradient(115deg, rgba(6,15,38,0.97) 0%, rgba(10,31,68,0.9) 55%, rgba(20,58,140,0.74) 100%);
}
.itb-hero__inner { padding-block: clamp(7rem, 16vw, 12rem) clamp(4rem, 9vw, 7rem); }
.itb-hero__title { color: #fff; max-width: 16ch; }
.itb-hero__title .itb-accent { color: #7FA8FF; display: block; }
.itb-hero__lead { color: #C9D7F5; max-width: 54ch; }
.itb-hero__actions { margin-top: 2.2rem; }
.itb-hero__glow {
	position: absolute; z-index: -1; width: 46vw; height: 46vw; max-width: 620px; max-height: 620px;
	right: -8vw; top: -10vw; border-radius: 50%;
	background: radial-gradient(circle, rgba(30,107,255,0.55), transparent 62%);
	filter: blur(20px); pointer-events: none;
}
.itb-hero__rule {
	width: 64px; height: 4px; background: var(--wp--preset--color--coral);
	border: 0; margin: 0 0 1.6rem;
}

/* =========================================================
   Page hero (interior pages)
   ========================================================= */
.itb-pagehero { position: relative; overflow: clip; isolation: isolate; }
.itb-pagehero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(125deg, #060F26 0%, #0A1F44 55%, #143A8C 120%);
}
.itb-pagehero::after {
	content: ""; position: absolute; z-index: -1; width: 38vw; height: 38vw; max-width: 520px; max-height: 520px;
	right: -6vw; top: -14vw; border-radius: 50%;
	background: radial-gradient(circle, rgba(30,107,255,0.45), transparent 62%); filter: blur(10px);
}
.itb-pagehero__inner { padding-block: clamp(6.5rem, 13vw, 9.5rem) clamp(3rem, 6vw, 5rem); }
.itb-pagehero h1 { color: #fff; }
.itb-pagehero .itb-lead, .itb-pagehero p { color: #C9D7F5; }

/* =========================================================
   Stats / credentials bar + marquee
   ========================================================= */
.itb-stats { background: var(--wp--preset--color--navy); position: relative; overflow: clip; }
.itb-stats__grid { gap: clamp(1.5rem, 4vw, 3rem); }
.itb-stat { text-align: left; }
.itb-stat__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(3rem, 7vw, 5rem);
	line-height: 1;
	color: #fff;
	display: flex; align-items: baseline; gap: .1rem;
}
.itb-stat__num .itb-suffix { color: var(--wp--preset--color--coral); }
.itb-stat__label {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.82rem;
	color: #9FBDF5;
	margin-top: .5rem;
}
.itb-stat + .itb-stat { position: relative; }

.itb-marquee {
	margin-top: clamp(2.5rem, 5vw, 4rem);
	border-top: 1px solid rgba(255,255,255,0.12);
	border-bottom: 1px solid rgba(255,255,255,0.12);
	padding-block: 1.1rem;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	        mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.itb-marquee__track {
	display: flex; gap: 3.5rem; width: max-content;
	animation: itb-scroll 38s linear infinite;
}
.itb-marquee__item {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700; font-size: 1rem;
	text-transform: uppercase; letter-spacing: 0.08em;
	color: rgba(255,255,255,0.62);
	white-space: nowrap; display: inline-flex; align-items: center; gap: 3.5rem;
}
.itb-marquee__item::after { content: "★"; color: var(--wp--preset--color--coral); font-size: .7rem; transform: translateX(1.75rem); }
@keyframes itb-scroll { to { transform: translateX(-50%); } }

/* =========================================================
   Mission
   ========================================================= */
.itb-mission { position: relative; }
.itb-mission__statement {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700;
	font-size: clamp(1.5rem, 3.2vw, 2.4rem);
	line-height: 1.28;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--navy);
}
.itb-mission__statement .itb-hl { color: var(--wp--preset--color--blue); }

/* =========================================================
   Cards (services preview)
   ========================================================= */
.itb-card {
	background: #fff;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: clamp(1.6rem, 2.4vw, 2.2rem) !important;
	transition: transform .35s var(--itb-ease), box-shadow .35s var(--itb-ease), border-color .35s var(--itb-ease);
	height: 100%;
	position: relative; overflow: hidden;
}
.itb-card::before {
	content: ""; position: absolute; left: 0; top: 0; height: 4px; width: 0;
	background: linear-gradient(90deg, var(--wp--preset--color--blue), var(--wp--preset--color--coral));
	transition: width .4s var(--itb-ease);
}
.itb-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -34px rgba(10,31,68,0.5); border-color: transparent; }
.itb-card:hover::before { width: 100%; }
.itb-card__icon {
	width: 60px; height: 60px; border-radius: 12px;
	display: grid; place-items: center; margin-bottom: 1.3rem;
	background: var(--wp--preset--color--sky);
	transition: background .35s var(--itb-ease);
}
.itb-card__icon img, .itb-card__icon svg { width: 30px; height: 30px; }
.itb-card__icon svg { stroke: var(--wp--preset--color--blue); transition: stroke .35s var(--itb-ease); }
.itb-card:hover .itb-card__icon { background: linear-gradient(135deg, var(--wp--preset--color--blue), var(--wp--preset--color--blue-deep)); }
.itb-card:hover .itb-card__icon svg { stroke: #fff; }
.itb-card__title { font-size: 1.25rem !important; margin: 0 0 .5rem; }
.itb-card__text { color: var(--wp--preset--color--slate); font-size: .98rem; margin: 0; }

/* =========================================================
   Services — detailed
   ========================================================= */
.itb-svc {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 8px;
	background: #fff;
	padding: clamp(1.6rem, 3vw, 2.6rem) !important;
	height: 100%;
	transition: box-shadow .35s var(--itb-ease), transform .35s var(--itb-ease);
}
.itb-svc:hover { box-shadow: 0 30px 60px -34px rgba(10,31,68,0.45); transform: translateY(-4px); }
.itb-svc__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.3rem; }
.itb-svc__icon {
	flex: 0 0 auto; width: 56px; height: 56px; border-radius: 12px;
	display: grid; place-items: center;
	background: linear-gradient(135deg, var(--wp--preset--color--blue), var(--wp--preset--color--blue-deep));
}
.itb-svc__icon svg { width: 28px; height: 28px; stroke: #fff; }
.itb-svc__head h3 { font-size: 1.35rem !important; margin: 0; }
.itb-svc__list { list-style: none; margin: 0; padding: 0; }
.itb-svc__list li {
	position: relative; padding-left: 1.6rem; padding-block: .42rem;
	color: var(--wp--preset--color--navy); font-size: 1rem;
	border-top: 1px solid #EDF1FA;
}
.itb-svc__list li:first-child { border-top: 0; }
.itb-svc__list li::before {
	content: ""; position: absolute; left: 0; top: 0.95rem;
	width: 8px; height: 8px; border-radius: 2px;
	background: var(--wp--preset--color--coral);
	transform: rotate(45deg);
}

/* =========================================================
   Team
   ========================================================= */
.itb-member {
	background: #fff; border: 1px solid var(--wp--preset--color--line);
	border-radius: 10px; overflow: hidden; height: 100%;
	transition: transform .4s var(--itb-ease), box-shadow .4s var(--itb-ease);
}
.itb-member:hover { transform: translateY(-6px); box-shadow: 0 36px 70px -38px rgba(10,31,68,0.55); }
.itb-member__photo { position: relative; overflow: hidden; aspect-ratio: 4 / 3.4; margin: 0; }
.itb-member__photo img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	filter: grayscale(100%) contrast(1.06) brightness(1.02);
	transition: filter .5s var(--itb-ease), transform .6s var(--itb-ease);
}
.itb-member__photo::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(30,107,255,0.30) 0%, rgba(10,31,68,0.72) 100%);
	mix-blend-mode: multiply;
	transition: opacity .5s var(--itb-ease);
}
.itb-member:hover .itb-member__photo img { filter: grayscale(0%) contrast(1) brightness(1); transform: scale(1.04); }
.itb-member:hover .itb-member__photo::after { opacity: 0.15; }
.itb-member__body { padding: clamp(1.4rem, 2.2vw, 1.9rem); }
.itb-member__name { font-size: 1.5rem !important; margin: 0 0 .25rem; }
.itb-member__role { color: var(--wp--preset--color--blue); font-weight: 600; font-family: var(--wp--preset--font-family--heading); font-size: .92rem; margin: 0 0 .2rem; }
.itb-member__spec { color: var(--wp--preset--color--slate); font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 1rem; }
.itb-member__bio { color: #3A4866; font-size: .98rem; margin: 0 0 1.2rem; }
.itb-tags { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.itb-tag {
	font-family: var(--wp--preset--font-family--heading);
	font-size: .72rem; font-weight: 600; letter-spacing: .04em;
	text-transform: uppercase; color: var(--wp--preset--color--blue-deep);
	background: var(--wp--preset--color--sky);
	border-radius: 100px; padding: .35rem .75rem;
}

/* =========================================================
   Contact
   ========================================================= */
.itb-contact__info .itb-contact__row { display: flex; gap: 1rem; align-items: flex-start; padding-block: 1rem; border-top: 1px solid var(--wp--preset--color--line); }
.itb-contact__info .itb-contact__row:first-of-type { border-top: 0; }
.itb-contact__ico { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 10px; background: var(--wp--preset--color--sky); display: grid; place-items: center; }
.itb-contact__ico svg { width: 22px; height: 22px; stroke: var(--wp--preset--color--blue); }
.itb-contact__row h4 { font-size: .8rem !important; text-transform: uppercase; letter-spacing: .1em; color: var(--wp--preset--color--slate); margin: 0 0 .15rem; }
.itb-contact__row p { margin: 0; font-size: 1.05rem; color: var(--wp--preset--color--navy); font-weight: 500; }

.itb-contact__form {
	background: #fff; border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px; padding: clamp(1.6rem, 3vw, 2.6rem);
	box-shadow: 0 30px 60px -40px rgba(10,31,68,0.4);
}
.itb-contact__form input,
.itb-contact__form textarea,
.itb-contact__form select {
	width: 100%; border: 1px solid var(--wp--preset--color--line); border-radius: 6px;
	padding: .85rem 1rem; font: inherit; font-size: 1rem; color: var(--wp--preset--color--navy);
	background: #FBFCFF; transition: border-color .25s var(--itb-ease), box-shadow .25s var(--itb-ease);
}
.itb-contact__form input:focus,
.itb-contact__form textarea:focus {
	border-color: var(--wp--preset--color--blue); box-shadow: 0 0 0 3px rgba(30,107,255,0.15); outline: none;
}
.itb-contact__form label { font-weight: 600; font-size: .9rem; color: var(--wp--preset--color--navy); display: block; margin-bottom: .4rem; }
.itb-field { margin-bottom: 1.1rem; }
.itb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.itb-submit {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .9rem;
	color: #fff; background: var(--wp--preset--color--coral); border: 0; border-radius: 4px;
	padding: 1rem 2rem; cursor: pointer; width: 100%;
	transition: transform .25s var(--itb-ease), background-color .25s var(--itb-ease), box-shadow .25s var(--itb-ease);
}
.itb-submit:hover { background: var(--wp--preset--color--blue); transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(30,107,255,.6); }
.itb-submit[disabled] { opacity: .6; cursor: progress; transform: none; box-shadow: none; }
.itb-form-success {
	background: #E9F9EF; border: 1px solid #9FE3B8; color: #156c3a;
	border-radius: 8px; padding: 1rem 1.2rem; margin-bottom: 1.4rem; font-weight: 600; font-size: .98rem;
}
.itb-form-error {
	background: #FDECEA; border: 1px solid #F4B5AE; color: #B22414;
	border-radius: 8px; padding: 1rem 1.2rem; margin-bottom: 1.4rem; font-weight: 600; font-size: .98rem;
}

/* =========================================================
   CTA band
   ========================================================= */
.itb-cta { position: relative; overflow: clip; }
.itb-cta::before {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: linear-gradient(120deg, var(--wp--preset--color--blue) 0%, var(--wp--preset--color--blue-deep) 55%, #0A1F44 100%);
}
.itb-cta > * { position: relative; z-index: 1; }
.itb-cta__ring {
	position: absolute; z-index: 0; width: 420px; height: 420px; border-radius: 50%;
	border: 1px solid rgba(255,255,255,0.18); right: -120px; bottom: -160px;
}

/* =========================================================
   Footer
   ========================================================= */
.itb-footer__wordmark {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.9rem; letter-spacing: .02em; color: #fff; margin: 0 0 .6rem;
}
.itb-footer__tag { font-family: var(--wp--preset--font-family--heading); font-weight: 600; margin: 0 0 1rem; }
.itb-footer__label { color: #8FB6FF !important; text-transform: uppercase; letter-spacing: .14em; margin: 0 0 1rem; }
.itb-footer__links { list-style: none; margin: 0; padding: 0; }
.itb-footer__links li { padding-block: .35rem; }
.itb-footer__links a, .itb-footer__contact a { color: #C9D7F5; transition: color .25s var(--itb-ease); }
.itb-footer__links a:hover, .itb-footer__contact a:hover { color: #fff; }
.itb-footer__contact { color: #C9D7F5; font-size: .95rem; line-height: 1.7; margin: 0 0 1rem; }
.itb-footer__contact strong { color: #fff; }
.itb-footer__bottom { border-top: 1px solid rgba(255,255,255,0.12); }

/* =========================================================
   Scroll reveal
   ========================================================= */
/* Progressive enhancement: content is visible by default; the hidden-then-reveal
   behavior only applies once JS confirms it is active (html.itb-js). If JS fails
   to load or run, nothing is ever hidden. */
.itb-js .itb-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--itb-ease), transform .7s var(--itb-ease); will-change: opacity, transform; }
.itb-js .itb-reveal.is-visible { opacity: 1; transform: none; }
.itb-reveal[data-delay="1"] { transition-delay: .08s; }
.itb-reveal[data-delay="2"] { transition-delay: .16s; }
.itb-reveal[data-delay="3"] { transition-delay: .24s; }
.itb-reveal[data-delay="4"] { transition-delay: .32s; }
.itb-reveal[data-delay="5"] { transition-delay: .40s; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 781px) {
	.itb-header__cta { display: none !important; }
	.itb-stat { text-align: center; }
	.itb-stat__num { justify-content: center; }
	.itb-footer__grid { gap: 2rem !important; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.itb-marquee__track { animation: none; }
	.itb-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
	* { transition-duration: 0.001ms !important; }
}

/* =========================================================
   ============  W P A   P O S T E R   L A Y E R  ===========
   Vintage union / Federal Art Project screenprint aesthetic:
   cream paper, navy ink, union red, WPA gold — sunbursts,
   halftone, paper grain, flat emblems, hard-offset "letterpress".
   ========================================================= */

:root {
	--itb-paper: var(--wp--preset--color--paper);
	--itb-navy: var(--wp--preset--color--navy);
	--itb-brick: var(--wp--preset--color--brick);
	--itb-gold: var(--wp--preset--color--gold);
	--itb-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- Paper base + global grain veil ---- */
body { background-color: var(--itb-paper); }
body::after {
	content: ""; position: fixed; inset: 0; z-index: 9998; pointer-events: none;
	background-image: var(--itb-grain);
	opacity: 0.05; mix-blend-mode: multiply;
}

/* ---- Sunburst + halftone reusable textures (pseudo layers) ---- */
.itb-rays::before {
	content: ""; position: absolute; inset: -10% -10% 0 -10%; z-index: 0; pointer-events: none;
	background: repeating-conic-gradient(from -6deg at 50% 24%, rgba(230,165,44,0.16) 0deg 5deg, transparent 5deg 11deg);
	-webkit-mask-image: radial-gradient(120% 90% at 50% 24%, #000 0%, transparent 70%);
	        mask-image: radial-gradient(120% 90% at 50% 24%, #000 0%, transparent 70%);
}
.itb-dots::after {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background-image: radial-gradient(currentColor 1px, transparent 1.6px);
	background-size: 8px 8px; opacity: 0.10;
}

/* ---- Eyebrow → WPA kicker with rules + star ---- */
.itb-eyebrow {
	color: var(--itb-brick);
	display: inline-flex; align-items: center; gap: .55rem;
	letter-spacing: 0.2em;
}
.itb-eyebrow::before {
	content: "★"; background: none; width: auto; height: auto;
	transform: none; margin: 0; color: var(--itb-gold); font-size: 0.9em;
}
.itb-eyebrow::after {
	content: ""; display: inline-block; width: 34px; height: 3px;
	background: var(--itb-brick);
}
.itb-eyebrow.is-on-dark { color: var(--itb-gold); }
.itb-eyebrow.is-on-dark::before { color: var(--itb-paper); }
.itb-eyebrow.is-on-dark::after { background: var(--itb-gold); }

/* ---- Buttons → flat letterpress with hard offset ---- */
.wp-block-button__link {
	border: 2.5px solid var(--itb-navy) !important;
	border-radius: 2px !important;
	box-shadow: 5px 5px 0 var(--itb-navy) !important;
	font-family: var(--wp--preset--font-family--display) !important;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}
.wp-block-button__link:hover {
	transform: translate(-2px, -2px);
	box-shadow: 7px 7px 0 var(--itb-navy) !important;
	background-color: var(--itb-navy) !important;
	color: var(--itb-gold) !important;
}
.itb-on-dark .wp-block-button__link,
.itb-cta .wp-block-button__link,
.itb-pagehero .wp-block-button__link {
	border-color: var(--itb-gold) !important;
	box-shadow: 5px 5px 0 rgba(0,0,0,0.45) !important;
}
.itb-on-dark .wp-block-button__link:hover,
.itb-cta .wp-block-button__link:hover,
.itb-pagehero .wp-block-button__link:hover {
	box-shadow: 7px 7px 0 rgba(0,0,0,0.5) !important;
	background-color: var(--itb-gold) !important; color: var(--itb-navy) !important;
}
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
	border-width: 2.5px !important;
}

/* ---- HERO → poster: posterized photo, duotone, sunburst, halftone ---- */
.itb-hero { border-bottom: 9px solid var(--itb-gold); }
.itb-hero__media img,
.itb-hero .wp-block-cover__image-background {
	filter: grayscale(1) contrast(1.35) brightness(0.92);
}
.itb-hero::before {
	background:
		radial-gradient(150% 130% at 58% 34%, rgba(20,58,140,0.50) 0%, rgba(10,31,68,0.93) 52%, rgba(6,15,38,0.98) 100%);
}
.itb-hero::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: radial-gradient(rgba(243,233,207,0.16) 1px, transparent 1.7px);
	background-size: 7px 7px;
	-webkit-mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
	        mask-image: linear-gradient(90deg, #000 0%, transparent 55%);
}
.itb-hero__title .itb-accent { color: var(--itb-gold); }
.itb-hero__rule { background: var(--itb-brick); }

/* ---- PAGE HERO → poster ---- */
.itb-pagehero { border-bottom: 9px solid var(--itb-gold); }
.itb-pagehero::before {
	background:
		repeating-conic-gradient(from -6deg at 50% 18%, rgba(230,165,44,0.14) 0deg 5deg, transparent 5deg 11deg),
		linear-gradient(125deg, #060F26 0%, #0A1F44 55%, #143A8C 120%);
}
.itb-pagehero h1 .itb-accent { color: var(--itb-gold) !important; }

/* ---- STATS → navy poster, gold numerals, rules ---- */
.itb-stats {
	background: var(--itb-navy);
	border-block: 6px solid var(--itb-gold);
	position: relative; overflow: clip;
}
.itb-stats::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background: repeating-conic-gradient(from -8deg at 50% 50%, rgba(230,165,44,0.10) 0deg 5deg, transparent 5deg 11deg);
	-webkit-mask-image: radial-gradient(80% 120% at 50% 50%, #000, transparent 75%);
	        mask-image: radial-gradient(80% 120% at 50% 50%, #000, transparent 75%);
}
.itb-stats > * { position: relative; z-index: 1; }
.itb-stat__num { color: var(--itb-gold); }
.itb-stat__num .itb-suffix { color: var(--itb-brick); }
.itb-stat__label { color: var(--itb-paper); opacity: .85; }
.itb-stat + .itb-stat::before { background: rgba(230,165,44,0.3); }

/* ---- MARQUEE → aged banner ---- */
.itb-marquee {
	border-color: rgba(230,165,44,0.35);
	background: rgba(0,0,0,0.18);
}
.itb-marquee__item { color: rgba(243,233,207,0.7); }
.itb-marquee__item::after { content: "★"; color: var(--itb-gold); }

/* ---- MISSION → paper plate with rule ---- */
.itb-mission { border-top: 4px double var(--itb-navy); }
.itb-mission__statement { color: var(--itb-navy); }
.itb-mission__statement .itb-hl { color: var(--itb-brick); }

/* =========================================================
   SERVICES PREVIEW → artistic poster "index", not boxes
   ========================================================= */
.itb-services {
	background: var(--itb-paper-deep, #E7D4A6) !important;
	border-block: 4px double var(--itb-navy);
	counter-reset: svc;
}
.itb-services .wp-block-columns { position: relative; }
/* strip the modern card chrome */
.itb-services .itb-card {
	background: transparent !important;
	border: 0 !important;
	border-top: 3px solid var(--itb-navy) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 1.75rem 0 0 !important;
	overflow: visible;
}
.itb-services .itb-card::before {
	counter-increment: svc;
	content: "Nº " counter(svc, decimal-leading-zero);
	position: static; width: auto; height: auto; background: none;
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.95rem; letter-spacing: 0.12em;
	color: var(--itb-brick); margin-bottom: 0.75rem;
}
.itb-services .itb-card:hover { transform: translateY(-4px); }
/* emblem seal */
.itb-card__icon {
	width: 84px; height: 84px; border-radius: 50%;
	background: var(--itb-navy) !important;
	border: 3px solid var(--itb-navy);
	box-shadow: 0 0 0 3px var(--itb-paper-deep, #E7D4A6), 0 0 0 6px var(--itb-navy);
	display: grid; place-items: center; margin-bottom: 1.2rem;
	transition: transform .35s var(--itb-ease), background-color .35s var(--itb-ease);
}
.itb-services .itb-card:hover .itb-card__icon { transform: rotate(-6deg); background: var(--itb-brick) !important; }
.itb-card__icon svg { width: 42px !important; height: 42px !important; stroke: none !important; fill: var(--itb-gold); }
.itb-card__title {
	font-family: var(--wp--preset--font-family--display) !important;
	text-transform: uppercase; letter-spacing: 0.01em;
	color: var(--itb-navy); font-size: 1.45rem !important;
	line-height: 1.05; padding-bottom: .5rem; position: relative;
}
.itb-card__title::after {
	content: ""; display: block; width: 42px; height: 4px;
	background: var(--itb-brick); margin-top: .6rem;
}
.itb-card__text { color: #3A3320; }

/* =========================================================
   SERVICES DETAIL → "Program of Work" ledger, not boxes
   ========================================================= */
.itb-services + * .itb-svc, .itb-svc {
	background: transparent !important;
	border: 0 !important;
	border-top: 3px solid var(--itb-navy) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 1.75rem 0 0.5rem !important;
}
.itb-svc:hover { transform: none; box-shadow: none; }
.itb-svc__head {
	flex-direction: column; align-items: flex-start; gap: .9rem;
	position: relative;
}
.itb-svc__icon {
	width: 76px; height: 76px; border-radius: 50%;
	background: var(--itb-navy) !important;
	box-shadow: 0 0 0 3px var(--itb-paper), 0 0 0 6px var(--itb-navy);
}
.itb-svc__icon svg { width: 38px !important; height: 38px !important; stroke: none !important; fill: var(--itb-gold); }
.itb-svc__head h3 {
	font-family: var(--wp--preset--font-family--display) !important;
	text-transform: uppercase; color: var(--itb-navy);
	font-size: 1.55rem !important; line-height: 1.02;
}
.itb-svc__list li { color: var(--itb-navy); border-top-color: rgba(10,31,68,0.14); }
.itb-svc__list li::before {
	content: "★"; background: none; width: auto; height: auto;
	transform: none; top: .5rem; color: var(--itb-brick); font-size: .8rem;
}

/* =========================================================
   TEAM → posterized duotone portraits, poster frames
   ========================================================= */
.itb-team { border-top: 4px double var(--itb-navy); }
.itb-member {
	background: var(--itb-paper) !important;
	border: 3px solid var(--itb-navy) !important;
	border-radius: 0 !important;
	box-shadow: 8px 8px 0 var(--itb-navy) !important;
}
.itb-member:hover { transform: translate(-3px,-3px); box-shadow: 12px 12px 0 var(--itb-brick) !important; }
.itb-member__photo { border-bottom: 3px solid var(--itb-navy); }
.itb-member__photo img {
	filter: grayscale(1) contrast(1.35) brightness(1.05) sepia(0.22) !important;
}
.itb-member__photo::after {
	background: linear-gradient(180deg, rgba(30,110,255,0) 0%, rgba(10,31,68,0.85) 100%) !important;
	mix-blend-mode: multiply !important; opacity: 1 !important;
}
.itb-member:hover .itb-member__photo img { filter: grayscale(1) contrast(1.35) brightness(1.05) sepia(0.22) !important; transform: scale(1.03); }
.itb-member:hover .itb-member__photo::after { opacity: 1 !important; }
.itb-member__name { font-family: var(--wp--preset--font-family--display) !important; text-transform: uppercase; color: var(--itb-navy); }
.itb-member__role { color: var(--itb-brick); }
.itb-member__spec { color: var(--itb-teal); }
.itb-tag {
	background: transparent; color: var(--itb-navy);
	border: 2px solid var(--itb-navy); border-radius: 0;
}

/* ---- CTA → union-red poster with sunburst + stars ---- */
.itb-cta { border-block: 6px solid var(--itb-gold); }
.itb-cta::before {
	background:
		repeating-conic-gradient(from -8deg at 50% 42%, rgba(243,233,207,0.12) 0deg 5deg, transparent 5deg 11deg),
		linear-gradient(160deg, var(--itb-brick) 0%, #A82A1A 60%, #0A1F44 160%) !important;
}
.itb-cta__ring { border-color: rgba(243,233,207,0.3); }
.itb-cta .itb-display { color: var(--itb-paper) !important; }

/* ---- FOOTER → ink with gold rules + stars ---- */
.itb-footer { border-top: 6px solid var(--itb-gold); }
.itb-footer__wordmark { color: var(--itb-gold); }
.itb-footer__label { color: var(--itb-gold) !important; }
.itb-footer__bottom { border-top-color: rgba(230,165,44,0.3); }

/* ---- Active nav + brand dot in WPA accent ---- */
.itb-brand__dot { color: var(--itb-brick); }
.itb-nav .current-menu-item > a,
.itb-nav [aria-current="page"] { color: var(--itb-brick); }
.itb-nav [aria-current="page"]::after { background: var(--itb-brick); }
.itb-nav a::after { background: var(--itb-brick); }

/* ---- Contact form → poster framing ---- */
.itb-contact__form {
	background: var(--itb-paper) !important;
	border: 3px solid var(--itb-navy) !important;
	border-radius: 0 !important;
	box-shadow: 8px 8px 0 var(--itb-navy) !important;
}
.itb-contact__ico { background: var(--itb-navy) !important; border-radius: 50%; }
.itb-contact__ico svg { stroke: var(--itb-gold) !important; }
.itb-submit {
	border-radius: 2px; border: 2.5px solid var(--itb-navy);
	box-shadow: 5px 5px 0 var(--itb-navy);
	font-family: var(--wp--preset--font-family--display); letter-spacing: .03em;
}
.itb-submit:hover { background: var(--itb-navy); color: var(--itb-gold); transform: translate(-2px,-2px); box-shadow: 7px 7px 0 var(--itb-navy); }

@media (max-width: 781px) {
	.wp-block-button__link { box-shadow: 4px 4px 0 var(--itb-navy) !important; }
	.itb-member { box-shadow: 5px 5px 0 var(--itb-navy) !important; }
}

/* =========================================================
   ===========  B L U E - F O R W A R D   +   ============
   ===========  R E A D A B I L I T Y   pass  ============
   Lean the poster into the brand: blue dominant, gold as the
   warm accent, red reserved for rare punctuation. Calmer
   texture and stronger type contrast for readability.
   ========================================================= */

/* Calmer grain so type stays crisp */
body::after { opacity: 0.028; }

/* Larger, higher-contrast body copy */
body { font-size: clamp(1.05rem, 0.62rem + 0.9vw, 1.18rem); line-height: 1.72; }
p { max-width: 68ch; }
.itb-hero__lead, .itb-pagehero p, .itb-mission__statement, .itb-cta p, .itb-stat__label,
.itb-footer__contact, .itb-footer__tag, .itb-tag, .itb-marquee__item, .itb-eyebrow { max-width: none; }

/* Service surface = cool paper */
.itb-services { background: var(--wp--preset--color--paper-deep) !important; }

/* Accents → "into the blue" */
.itb-hero__title .itb-accent { color: var(--wp--preset--color--skyblue); }
.itb-pagehero h1 .itb-accent { color: var(--wp--preset--color--skyblue) !important; }
.itb-hero__rule { background: var(--wp--preset--color--blue); }
.itb-mission__statement { color: var(--wp--preset--color--navy); }
.itb-mission__statement .itb-hl { color: var(--wp--preset--color--blue-deep); }

/* Emblem seals: navy disc · gold glyph · electric-blue ring */
.itb-card__icon { box-shadow: 0 0 0 3px var(--wp--preset--color--paper-deep), 0 0 0 6px var(--wp--preset--color--blue) !important; }
.itb-svc__icon { box-shadow: 0 0 0 3px var(--wp--preset--color--paper), 0 0 0 6px var(--wp--preset--color--blue) !important; }
.itb-services .itb-card:hover .itb-card__icon { background: var(--wp--preset--color--blue) !important; }

/* Titles, underlines, list ticks, nav → blue (no red) */
.itb-card__title, .itb-svc__head h3 { color: var(--wp--preset--color--navy); }
.itb-card__title::after { background: var(--wp--preset--color--blue); height: 4px; width: 48px; }
.itb-card__text { color: #2A3A57; font-size: 1.02rem; line-height: 1.62; }
.itb-svc__list li { color: #16243F; font-size: 1.02rem; line-height: 1.5; }
.itb-svc__list li::before { color: var(--wp--preset--color--blue); }
.itb-nav a::after, .itb-nav [aria-current="page"]::after { background: var(--wp--preset--color--blue); }
.itb-nav .current-menu-item > a, .itb-nav [aria-current="page"] { color: var(--wp--preset--color--blue); }

/* Index numerals (Nº 01) → blue */
.itb-services .itb-card::before { color: var(--wp--preset--color--blue-deep); }

/* Team: blue roles, calm specs, electric-blue lift shadow */
.itb-member__role { color: var(--wp--preset--color--blue-deep); }
.itb-member__spec { color: var(--wp--preset--color--slate); }
.itb-member__bio { color: #2A3A57; }
.itb-member:hover { box-shadow: 12px 12px 0 var(--wp--preset--color--blue) !important; }

/* Stats numerals: gold stays (best contrast on navy) but tie suffix to red punch */
.itb-stat__num { color: var(--wp--preset--color--gold); }

/* CTA → BLUE poster (was red) with a gold sunburst */
.itb-cta::before {
	background:
		repeating-conic-gradient(from -8deg at 50% 42%, rgba(230,165,44,0.16) 0deg 5deg, transparent 5deg 11deg),
		linear-gradient(155deg, var(--wp--preset--color--blue) 0%, #1450C8 50%, #0A1F44 130%) !important;
}

/* Calmer hero halftone */
.itb-hero::after {
	background-image: radial-gradient(rgba(243,233,207,0.10) 1px, transparent 1.7px);
}

/* High-contrast buttons on dark / poster fields → gold (pop against blue) */
.itb-hero .is-style-fill .wp-block-button__link,
.itb-cta .is-style-fill .wp-block-button__link {
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy) !important;
	border-color: var(--wp--preset--color--navy) !important;
}
.itb-hero .is-style-fill .wp-block-button__link:hover,
.itb-cta .is-style-fill .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--navy) !important;
}

/* Contact form submit → blue */
.itb-submit { background: var(--wp--preset--color--blue); }
.itb-submit:hover { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--gold); }

/* Footer wordmark stays gold; links cool blue-tint */
.itb-footer__links a, .itb-footer__contact a { color: #BFD2F2; }
.itb-footer__links a:hover, .itb-footer__contact a:hover { color: var(--wp--preset--color--gold); }

/* =========================================================
   ===========  D A R K   H E A D E R  +  L O G O  =========
   The ITB logo has white "IT" letters on transparent, so the
   header runs navy (frosted → solid on scroll) for contrast.
   ========================================================= */
.itb-header { background: transparent; }
.itb-header::before {
	background: rgba(10, 31, 68, 0.80);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	        backdrop-filter: saturate(140%) blur(10px);
}
.itb-header.is-stuck::before {
	background: rgba(10, 31, 68, 0.97);
	box-shadow: 0 12px 30px -22px rgba(0, 0, 0, 0.75);
	border-bottom: 1px solid rgba(230, 165, 44, 0.38);
}

/* Logo sizing */
.itb-logo, .itb-logo img, .itb-header .wp-block-site-logo img { width: 182px; height: auto; max-width: 182px; }
.itb-logo a { display: block; line-height: 0; }

/* Nav on a dark header */
.itb-nav a { color: #EAF1FF; }
.itb-nav a:hover { color: var(--wp--preset--color--gold); }
.itb-nav a::after,
.itb-nav [aria-current="page"]::after { background: var(--wp--preset--color--gold); }
.itb-nav .current-menu-item > a,
.itb-nav [aria-current="page"] { color: var(--wp--preset--color--gold); }
.itb-nav .wp-block-navigation__responsive-container-open { color: #ffffff; }

/* Header CTA → gold (pops on navy) */
.itb-header__cta .wp-block-button__link {
	background-color: var(--wp--preset--color--gold) !important;
	color: var(--wp--preset--color--navy) !important;
	border-color: var(--wp--preset--color--navy) !important;
	box-shadow: 4px 4px 0 rgba(0,0,0,0.4) !important;
}
.itb-header__cta .wp-block-button__link:hover {
	background-color: #ffffff !important;
	color: var(--wp--preset--color--navy) !important;
}

@media (max-width: 781px) {
	.itb-logo, .itb-logo img, .itb-header .wp-block-site-logo img { width: 150px; max-width: 150px; }
}

/* =========================================================
   ==========  R E T R O   L O G O   P A L E T T E  =========
   Matches the supplied ITB logo: warm cream paper, deep navy,
   muted steel blue, burnt-rust accent. The header runs CREAM
   (the logo's "INTO THE BLUE" text is navy on transparent, so
   it needs a light field) — this also fixes nav links that were
   navy-on-navy on the old dark header.
   ========================================================= */

/* ---- Header → cream ---- */
.itb-header__bar { min-height: 108px; }
.itb-header::before {
	background: rgba(236, 222, 184, 0.86);
	-webkit-backdrop-filter: saturate(118%) blur(8px);
	        backdrop-filter: saturate(118%) blur(8px);
}
.itb-header.is-stuck::before {
	background: rgba(236, 222, 184, 0.975);
	box-shadow: 0 12px 28px -22px rgba(11, 32, 52, 0.6);
	border-bottom: 2px solid var(--wp--preset--color--navy);
}
/* Nav links: navy on cream (readable on scroll — the reported bug) */
.itb-nav a { color: var(--wp--preset--color--navy) !important; }
.itb-nav a:hover { color: var(--wp--preset--color--brick) !important; }
.itb-nav a::after,
.itb-nav [aria-current="page"]::after { background: var(--wp--preset--color--brick); }
.itb-nav .current-menu-item > a,
.itb-nav [aria-current="page"] { color: var(--wp--preset--color--brick) !important; }
.itb-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); }
/* Header CTA → rust on cream */
.itb-header__cta .wp-block-button__link {
	background-color: var(--wp--preset--color--brick) !important;
	color: #fff !important;
	border-color: var(--wp--preset--color--navy) !important;
	box-shadow: 4px 4px 0 var(--wp--preset--color--navy) !important;
}
.itb-header__cta .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--navy) !important;
	color: var(--wp--preset--color--paper) !important;
}
/* Logo (aspect ~1.87) */
.itb-logo, .itb-logo img, .itb-header .wp-block-site-logo img { width: 188px; max-width: 188px; height: auto; }

/* ---- Accent remaps (override stale literal colors from earlier layers) ---- */
/* Sunbursts → faint cream */
.itb-stats::before {
	background: repeating-conic-gradient(from -8deg at 50% 50%, rgba(236,222,184,0.10) 0deg 5deg, transparent 5deg 11deg);
}
/* CTA → navy/steel poster (was a stale electric-blue gradient) */
.itb-cta::before {
	background:
		repeating-conic-gradient(from -8deg at 50% 42%, rgba(236,222,184,0.10) 0deg 5deg, transparent 5deg 11deg),
		linear-gradient(155deg, var(--wp--preset--color--blue) 0%, var(--wp--preset--color--navy) 58%, var(--wp--preset--color--ink) 130%) !important;
}
/* Rust accent marks */
.itb-hero { border-bottom-color: var(--wp--preset--color--brick); }
.itb-pagehero { border-bottom-color: var(--wp--preset--color--brick); }
.itb-card__title::after { background: var(--wp--preset--color--brick); }
.itb-services .itb-card::before { color: var(--wp--preset--color--brick); }
.itb-mission__statement .itb-hl { color: var(--wp--preset--color--brick); }
.itb-member__role { color: var(--wp--preset--color--blue-deep); }
.itb-stat__num .itb-suffix { color: var(--wp--preset--color--brick); }
/* Stat numerals → cream (logo's ITB is cream) */
.itb-stat__num { color: var(--wp--preset--color--paper); }

@media (max-width: 781px) {
	.itb-header__bar { min-height: 84px; }
	.itb-logo, .itb-logo img, .itb-header .wp-block-site-logo img { width: 144px; max-width: 144px; }
}


/* ===== Elementor DOM adaptation for the ITB design ===== */
.e-con, .e-con-inner { --gap: 0; }
.elementor-element .elementor-widget-container { margin: 0; }
.itb-hero, .itb-stats, .itb-services, .itb-cta, .itb-mission, .itb-pagehero { width: 100%; }

/* Section vertical rhythm */
.itb-stats, .itb-services, .itb-mission, .itb-cta { padding-block: var(--wp--preset--spacing--60); }
.itb-services { background: var(--wp--preset--color--paper-deep); border-block: 4px double var(--wp--preset--color--navy); }
.itb-mission { border-top: 4px double var(--wp--preset--color--navy); }

/* Boxed inner max-width + side padding */
.itb-stats > .e-con-inner, .itb-services > .e-con-inner, .itb-cta > .e-con-inner, .itb-mission > .e-con-inner { max-width: 1280px; margin-inline: auto; width: 100%; padding-inline: clamp(1.25rem,5vw,4rem); }
.itb-stats, .itb-services, .itb-cta, .itb-mission { padding-inline: clamp(1.25rem,5vw,4rem); }

/* HERO */
.itb-hero { overflow: clip; isolation: isolate; border-bottom: 9px solid var(--wp--preset--color--brick); }
.itb-hero > .e-con-inner, .itb-hero { padding: 0; }
.itb-hero__inner { max-width: 1120px; margin-inline: auto; width: 100%; padding: clamp(8rem,15vw,12rem) clamp(1.25rem,5vw,4rem) clamp(4rem,8vw,7rem); display: flex; flex-direction: column; gap: 1.3rem; }
.itb-hero__title .elementor-heading-title { font-family: var(--wp--preset--font-family--display); color: #fff; font-size: clamp(3rem,7vw,6rem); line-height: .95; text-transform: uppercase; letter-spacing: .005em; text-wrap: balance; }
.itb-hero__title .itb-accent { color: var(--wp--preset--color--skyblue); display: block; }
.itb-hero__lead .elementor-widget-container, .itb-hero__lead p { color: #D7E0EE; font-size: clamp(1.1rem,2vw,1.35rem); max-width: 56ch; line-height: 1.6; }
.itb-hero__actions { margin-top: 1rem; }

/* Eyebrow (now a text-editor widget) */
.itb-eyebrow p { margin: 0; font-family: var(--wp--preset--font-family--heading); font-weight: 700; text-transform: uppercase; letter-spacing: .2em; font-size: .82rem; color: var(--wp--preset--color--brick); }
.itb-eyebrow.is-on-dark p { color: var(--wp--preset--color--skyblue); }

/* Buttons (Elementor) */
.elementor-button { border-radius: 2px; font-family: var(--wp--preset--font-family--heading); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .9rem; border: 2.5px solid var(--wp--preset--color--navy); box-shadow: 5px 5px 0 var(--wp--preset--color--navy); padding: .95rem 1.7rem; transition: transform .2s, box-shadow .2s, background-color .2s; }
.elementor-button:hover { transform: translate(-2px,-2px); box-shadow: 7px 7px 0 var(--wp--preset--color--navy); }
.itb-btn-fill .elementor-button { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--navy); }
.itb-btn-fill .elementor-button:hover { background: #fff; color: var(--wp--preset--color--navy); }
.itb-btn-outline .elementor-button { background: transparent; color: #fff; border-color: #fff; box-shadow: 5px 5px 0 rgba(0,0,0,.4); }
.itb-btn-outline .elementor-button:hover { background: rgba(255,255,255,.1); color:#fff; }

/* STATS */
.itb-stats__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: clamp(1.5rem,4vw,3rem); }

/* MISSION */
.itb-mission__row { align-items: center; }
.itb-mission h2 .elementor-heading-title, .itb-mission h2 { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.9rem,4vw,2.8rem); color: var(--wp--preset--color--navy); line-height: 1.05; }
.itb-mission__statement p { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: clamp(1.35rem,3vw,2.1rem); line-height: 1.3; color: var(--wp--preset--color--navy); margin: 0; }
.itb-mission__statement .itb-hl { color: var(--wp--preset--color--brick); }

/* SERVICES */
.itb-services__title .elementor-heading-title { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; font-size: clamp(2rem,4.5vw,3.2rem); color: var(--wp--preset--color--navy); margin-bottom: clamp(1.5rem,4vw,2.5rem); }
.itb-services__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.75rem; }
.itb-services .itb-card { background: transparent !important; border: 0 !important; border-top: 3px solid var(--wp--preset--color--navy) !important; border-radius: 0 !important; box-shadow: none !important; padding: 1.75rem 0 0 !important; display: flex; flex-direction: column; gap: .75rem; }
.itb-card__title .elementor-heading-title { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; font-size: 1.4rem; color: var(--wp--preset--color--navy); line-height: 1.05; }
.itb-card__title .elementor-heading-title::after { content: ""; display: block; width: 46px; height: 4px; background: var(--wp--preset--color--brick); margin-top: .55rem; }
.itb-card__text p { color: #2A3A57; font-size: 1rem; line-height: 1.6; margin: 0; }

/* CTA */
.itb-cta { position: relative; overflow: clip; text-align: center; border-block: 6px solid var(--wp--preset--color--gold); }
.itb-cta::before { content:""; position:absolute; inset:0; z-index:0; background: repeating-conic-gradient(from -8deg at 50% 42%, rgba(236,222,184,0.10) 0deg 5deg, transparent 5deg 11deg), linear-gradient(155deg, var(--wp--preset--color--blue) 0%, var(--wp--preset--color--navy) 58%, var(--wp--preset--color--ink) 130%); }
.itb-cta > .e-con-inner { position: relative; z-index: 1; display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.itb-cta h2 .elementor-heading-title, .itb-cta h2 { font-family: var(--wp--preset--font-family--display); text-transform: uppercase; color:#fff; font-size: clamp(2rem,5vw,3.4rem); line-height: 1; }
.itb-cta__lead p { color: var(--wp--preset--color--paper); font-size: clamp(1.05rem,2vw,1.3rem); max-width: 60ch; margin: 0; }

/* Responsive */
@media (max-width: 1024px){ .itb-services__grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 781px){ .itb-stats__grid{ grid-template-columns: repeat(2,1fr);} .itb-services__grid{ grid-template-columns: 1fr;} .itb-mission__row{ flex-direction: column !important;} .itb-mission__col{ width:100% !important;} }

/* ===== Adaptation round 2: pages ===== */
.itb-pagehero{ position:relative; overflow:clip; isolation:isolate; border-bottom:9px solid var(--wp--preset--color--brick);} 
.itb-pagehero__inner{ max-width:1100px; margin-inline:auto; width:100%; padding: clamp(6.5rem,12vw,9rem) clamp(1.25rem,5vw,4rem) clamp(3rem,6vw,5rem); display:flex; flex-direction:column; gap:1rem;} 
.itb-pagehero h1 .elementor-heading-title{ font-family:var(--wp--preset--font-family--display); color:#fff; font-size:clamp(3rem,7vw,5.5rem); line-height:.95; text-transform:uppercase;} 
.itb-pagehero .itb-accent{ color:var(--wp--preset--color--skyblue);} 
.itb-pagehero .itb-lead p{ color:#D7E0EE; font-size:clamp(1.1rem,2vw,1.35rem); max-width:60ch; margin:0;} 
/* services detail */
.itb-services-detail{ padding-block:var(--wp--preset--spacing--60); padding-inline:clamp(1.25rem,5vw,4rem);} 
.itb-services-detail > .e-con-inner{ max-width:1180px; margin-inline:auto; width:100%;} 
.itb-svc__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem 2.5rem;} 
.itb-svc{ display:flex; flex-direction:column; gap:.6rem; padding-top:1.75rem !important; border-top:3px solid var(--wp--preset--color--navy);} 
.itb-svc__head h3{ font-family:var(--wp--preset--font-family--display); text-transform:uppercase; color:var(--wp--preset--color--navy); font-size:1.5rem; line-height:1.02; margin:0;} 
/* team */
.itb-team{ padding-block:var(--wp--preset--spacing--60); padding-inline:clamp(1.25rem,5vw,4rem); border-top:4px double var(--wp--preset--color--navy);} 
.itb-team > .e-con-inner{ max-width:1180px; margin-inline:auto; width:100%;} 
.itb-team__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.75rem;} 
.itb-member{ background:var(--wp--preset--color--paper) !important; border:3px solid var(--wp--preset--color--navy); box-shadow:8px 8px 0 var(--wp--preset--color--navy); overflow:hidden; padding:0 !important; gap:0 !important;} 
.itb-member__photo{ position:relative; overflow:hidden; aspect-ratio:4/3.2; width:100%; margin:0; border-bottom:3px solid var(--wp--preset--color--navy);} 
.itb-member__photo img{ width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1) contrast(1.3) brightness(1.05) sepia(.22);} 
.itb-member__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(94,126,150,0) 0%,rgba(11,32,52,.78) 100%); mix-blend-mode:multiply;} 
.itb-member__body{ padding:clamp(1.3rem,2.2vw,1.8rem); display:flex; flex-direction:column; gap:.45rem;} 
.itb-member__name .elementor-heading-title{ font-family:var(--wp--preset--font-family--display); text-transform:uppercase; color:var(--wp--preset--color--navy); font-size:1.5rem; line-height:1;} 
.itb-member__role p{ color:var(--wp--preset--color--blue-deep); font-weight:600; font-family:var(--wp--preset--font-family--heading); font-size:.9rem; margin:0;} 
.itb-member__spec p{ color:var(--wp--preset--color--slate); text-transform:uppercase; letter-spacing:.06em; font-size:.78rem; margin:0;} 
.itb-member__bio p{ color:#2A3A57; font-size:.97rem; line-height:1.55; margin:.4rem 0 .6rem;} 
.itb-tags{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:0; padding:0;} 
.itb-tag{ font-family:var(--wp--preset--font-family--heading); font-size:.7rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--wp--preset--color--navy); border:2px solid var(--wp--preset--color--navy); border-radius:0; padding:.32rem .6rem;} 
/* contact */
.itb-contact{ padding-block:var(--wp--preset--spacing--60); padding-inline:clamp(1.25rem,5vw,4rem);} 
.itb-contact > .e-con-inner{ max-width:1180px; margin-inline:auto; width:100%;} 
.itb-contact__row-wrap{ align-items:flex-start;} 
.itb-contact__form{ background:var(--wp--preset--color--paper); border:3px solid var(--wp--preset--color--navy); box-shadow:8px 8px 0 var(--wp--preset--color--navy); padding:clamp(1.5rem,3vw,2.4rem);} 
.itb-contact__form .elementor-field-group{ margin-bottom:1rem;} 
.itb-contact__form label.elementor-field-label{ font-family:var(--wp--preset--font-family--heading); font-weight:600; font-size:.9rem; color:var(--wp--preset--color--navy); margin-bottom:.35rem;} 
.itb-contact__form .elementor-field-textual{ width:100%; border:1px solid var(--wp--preset--color--line); border-radius:6px; padding:.8rem 1rem; font:inherit; font-size:1rem; color:var(--wp--preset--color--navy); background:#FBF7EC;} 
.itb-contact__form .elementor-field-textual:focus{ border-color:var(--wp--preset--color--blue); box-shadow:0 0 0 3px rgba(94,126,150,.25); outline:none;} 
.itb-contact__form .elementor-button{ width:100%; background:var(--wp--preset--color--brick); color:#fff; border-color:var(--wp--preset--color--navy);} 
@media (max-width:781px){ .itb-svc__grid{ grid-template-columns:1fr;} .itb-team__grid{ grid-template-columns:1fr;} .itb-contact__row-wrap{ flex-direction:column !important;} .itb-contact__left,.itb-contact__right{ width:100% !important;} .itb-member{ box-shadow:5px 5px 0 var(--wp--preset--color--navy);} }

/* ===== Elementor header / footer ===== */
.itb-elheader{ background:rgba(236,222,184,.95); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); position:sticky; top:0; z-index:200; border-bottom:2px solid var(--wp--preset--color--navy); min-height:88px;} 
.itb-elheader__logo img{ width:172px; max-width:172px; height:auto; display:block;} 
.itb-elheader__nav .elementor-item{ font-family:var(--wp--preset--font-family--heading) !important; font-weight:600 !important; color:var(--wp--preset--color--navy) !important; text-transform:none !important; font-size:.95rem !important; } 
.itb-elheader__nav .elementor-item:hover, .itb-elheader__nav .elementor-item.elementor-item-active{ color:var(--wp--preset--color--brick) !important;} 
.itb-elheader__cta .elementor-button{ background:var(--wp--preset--color--brick); color:#fff; border-color:var(--wp--preset--color--navy); box-shadow:4px 4px 0 var(--wp--preset--color--navy); padding:.7rem 1.3rem; font-size:.82rem;} 
.itb-elheader__cta .elementor-button:hover{ background:var(--wp--preset--color--navy); color:var(--wp--preset--color--gold);} 
.itb-elfooter{ background:var(--wp--preset--color--ink); border-top:6px solid var(--wp--preset--color--brick); padding:clamp(3.5rem,7vw,5.5rem) clamp(1.25rem,5vw,4rem) clamp(2rem,4vw,3rem);} 
.itb-elfooter__inner{ max-width:1280px; margin-inline:auto;} 
.itb-elfooter__grid{ display:grid; grid-template-columns:1.5fr 1fr 1.2fr 1.5fr; gap:2.5rem;} 
.itb-elfooter .itb-footer__wordmark{ font-family:var(--wp--preset--font-family--display); color:#fff; font-size:1.9rem; margin:0 0 .5rem;} 
.itb-elfooter .itb-footer__tag{ font-family:var(--wp--preset--font-family--heading); font-weight:600; color:var(--wp--preset--color--skyblue); margin:0;} 
.itb-elfooter .itb-footer__label{ color:var(--wp--preset--color--skyblue); text-transform:uppercase; letter-spacing:.14em; font-size:.85rem; margin:0 0 1rem;} 
.itb-elfooter .itb-footer__links{ list-style:none; margin:0; padding:0;} .itb-elfooter .itb-footer__links li{ padding-block:.3rem;} 
.itb-elfooter a{ color:#CFE0D6; } .itb-elfooter a:hover{ color:#fff;} 
.itb-elfooter .itb-footer__contact{ color:#C7D6CC; font-size:.95rem; line-height:1.7; margin:0 0 1rem;} .itb-elfooter .itb-footer__contact strong{ color:#fff;} 
.itb-elfooter__bottom{ border-top:1px solid rgba(255,255,255,.14); margin-top:2.5rem; padding-top:1.4rem; } .itb-elfooter__bottom p{ color:#8FA3A8; font-size:.85rem; margin:0;} 
@media (max-width:880px){ .itb-elfooter__grid{ grid-template-columns:1fr 1fr;} } @media (max-width:600px){ .itb-elfooter__grid{ grid-template-columns:1fr;} } 

/* ===== Stats fix + polish ===== */
.itb-stats{ background:var(--wp--preset--color--navy) !important; border-block:6px solid var(--wp--preset--color--brick); padding-block:clamp(3rem,6vw,4.5rem) !important; position:relative; overflow:clip;} 
.itb-stats > .e-con-inner{ position:relative; z-index:1;} 
.itb-stat{ text-align:center;} 
.itb-stat__num{ font-family:var(--wp--preset--font-family--display); font-size:clamp(3rem,7vw,5rem); line-height:1; color:var(--wp--preset--color--paper); display:flex; align-items:baseline; justify-content:center; gap:.05em;} 
.itb-stat__num .itb-suffix{ color:var(--wp--preset--color--brick);} 
.itb-stat__label{ font-family:var(--wp--preset--font-family--heading); font-weight:600; text-transform:uppercase; letter-spacing:.1em; font-size:.8rem; color:var(--wp--preset--color--skyblue); margin-top:.5rem;} 
.itb-marquee{ margin-top:clamp(2rem,5vw,3rem); border-top:1px solid rgba(143,169,188,.3); border-bottom:1px solid rgba(143,169,188,.3); padding-block:1rem; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);} 
.itb-marquee__track{ display:flex; gap:3.5rem; width:max-content; animation:itb-scroll 38s linear infinite;} 
.itb-marquee__item{ font-family:var(--wp--preset--font-family--heading); font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:rgba(236,222,184,.7); white-space:nowrap;} 
@keyframes itb-scroll{ to{ transform:translateX(-50%);}} 
@media(prefers-reduced-motion:reduce){ .itb-marquee__track{ animation:none;} }

/* ===== Grid overrides (beat Elementor container flex) ===== */
.itb-services__grid{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:1.75rem !important;} 
.itb-svc__grid{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.5rem 2.5rem !important;} 
.itb-team__grid{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.75rem !important;} 
@media(max-width:1024px){ .itb-services__grid{ grid-template-columns:repeat(2,1fr) !important;} }
@media(max-width:781px){ .itb-services__grid,.itb-svc__grid,.itb-team__grid{ grid-template-columns:1fr !important;} }

/* ===== Grid: also target boxed container inner wrapper ===== */
.itb-services__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:1.75rem !important; max-width:none !important;} 
.itb-svc__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.5rem 2.5rem !important; max-width:none !important;} 
.itb-team__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.75rem !important; max-width:none !important;} 
.itb-team__grid, .itb-svc__grid, .itb-services__grid{ width:100%;} 
@media(max-width:1024px){ .itb-services__grid > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important;} }
@media(max-width:781px){ .itb-services__grid > .e-con-inner,.itb-svc__grid > .e-con-inner,.itb-team__grid > .e-con-inner{ grid-template-columns:1fr !important;} }

/* ===== FIX double-grid squeeze: grid only on inner wrapper ===== */
.itb-services__grid, .itb-svc__grid, .itb-team__grid{ display:block !important; width:100% !important; max-width:none !important;} 
.itb-services__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:1.75rem !important; width:100% !important; max-width:none !important;} 
.itb-svc__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.5rem 2.5rem !important; width:100% !important; max-width:none !important;} 
.itb-team__grid > .e-con-inner{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:1.75rem !important; width:100% !important; max-width:none !important;} 
@media(max-width:1024px){ .itb-services__grid > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important;} }
@media(max-width:781px){ .itb-services__grid > .e-con-inner, .itb-svc__grid > .e-con-inner, .itb-team__grid > .e-con-inner{ grid-template-columns:1fr !important;} }

/* ================= QA FIX PASS (audit) ================= */
/* Display headings on dark sections — the heading IS .elementor-heading-title (no nested htag) */
.itb-pagehero .elementor-heading-title{ font-family:var(--wp--preset--font-family--display) !important; color:#ECDEB8 !important; font-size:clamp(2.6rem,6vw,5.25rem) !important; line-height:1.04 !important; text-transform:uppercase; text-wrap:balance; }
.itb-pagehero .itb-accent{ color:var(--wp--preset--color--brick) !important; }
.itb-pagehero .itb-lead, .itb-pagehero .itb-lead p{ color:#DCE5EE !important; }
.itb-cta .elementor-heading-title{ font-family:var(--wp--preset--font-family--display) !important; color:#ECDEB8 !important; font-size:clamp(2rem,5vw,3.4rem) !important; line-height:1.02 !important; }
.itb-cta__lead, .itb-cta__lead p, .itb-cta p{ color:#ECDEB8 !important; }
.itb-cta{ padding-inline:clamp(1.25rem,5vw,4rem); }
.itb-hero__title .elementor-heading-title{ color:#fff !important; text-shadow:0 2px 14px rgba(0,0,0,.4); }
.itb-hero__title .itb-accent{ color:var(--wp--preset--color--brick) !important; }
.itb-mission .elementor-heading-title{ font-family:var(--wp--preset--font-family--heading) !important; color:var(--wp--preset--color--navy) !important; font-size:clamp(1.9rem,4vw,2.8rem) !important; line-height:1.06 !important; }
.itb-services__title .elementor-heading-title{ color:var(--wp--preset--color--navy) !important; }
/* Eyebrows always legible */
.itb-eyebrow, .itb-eyebrow p, .itb-eyebrow .elementor-widget-container{ color:var(--wp--preset--color--brick) !important; margin:0; }
.itb-eyebrow p{ font-family:var(--wp--preset--font-family--heading); font-weight:700; text-transform:uppercase; letter-spacing:.2em; font-size:.82rem;}
.itb-eyebrow.is-on-dark, .itb-eyebrow.is-on-dark p{ color:#D9C9A0 !important; }
/* Stronger hero veil so the accent reads over the lighter photo area */
.itb-hero::before{ background:linear-gradient(118deg, rgba(11,32,52,.97) 0%, rgba(22,52,79,.9) 50%, rgba(22,52,79,.72) 100%) !important; }
/* Page-hero: centered symmetric sunburst, kill the off-center glow */
.itb-pagehero::before{ background: repeating-conic-gradient(from -6deg at 50% 35%, rgba(143,169,188,.12) 0deg 5deg, transparent 5deg 11deg), linear-gradient(160deg,#0B2034 0%,#16344F 60%,#1d4a72 135%) !important; }
.itb-pagehero::after{ display:none !important; }
/* CTA sunburst centered */
.itb-cta::before{ background: repeating-conic-gradient(from -8deg at 50% 45%, rgba(236,222,184,.10) 0deg 5deg, transparent 5deg 11deg), linear-gradient(160deg,#5E7E96 0%,#16344F 62%,#0B2034 135%) !important; }
/* Stat labels a touch brighter */
.itb-stat__label{ color:#BCC9D5 !important; }
/* Team photos: rectangular navy duotone + framed */
.itb-member__photo{ position:relative !important; aspect-ratio:4/3.3; overflow:hidden; margin:0;}
.itb-member__photo .elementor-widget-container, .itb-member__photo a, .itb-member__photo figure{ height:100%; margin:0; display:block;}
.itb-member__photo img{ width:100% !important; height:100% !important; object-fit:cover !important; display:block; border-radius:0 !important; filter:grayscale(1) contrast(1.15) brightness(1.04);}
.itb-member__photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(94,126,150,.12) 0%, rgba(11,32,52,.8) 100%); mix-blend-mode:multiply; pointer-events:none;}
.itb-member__spec, .itb-member__spec p{ color:#41566b !important;}
/* Contact form fields: visible borders + focus */
.itb-contact__form .elementor-field-textual{ border:1.5px solid #5E7E96 !important; background:#FBF7EC !important;}
.itb-contact__form .elementor-field-textual:focus{ border-color:var(--wp--preset--color--brick) !important; box-shadow:0 0 0 3px rgba(192,70,24,.18) !important; outline:none;}
.itb-contact__row{ align-items:center !important;}
/* ---- Responsive ---- */
@media(max-width:1024px){
 .itb-contact__row-wrap{ flex-direction:column !important;}
 .itb-contact__left, .itb-contact__right{ width:100% !important;}
 .itb-svc__grid > .e-con-inner{ grid-template-columns:repeat(2,1fr) !important;}
}
@media(max-width:900px){
 .itb-services__grid > .e-con-inner, .itb-svc__grid > .e-con-inner, .itb-team__grid > .e-con-inner{ grid-template-columns:1fr !important;}
}
@media(max-width:600px){
 .itb-elheader__cta{ display:none !important;}
 .itb-elheader__logo img{ width:140px !important; max-width:140px !important;}
 .itb-elheader{ min-height:72px;}
 .itb-eyebrow::after{ display:none !important;}
}
@media(max-width:480px){
 .itb-pagehero .elementor-heading-title{ font-size:clamp(2rem,9vw,2.5rem) !important; line-height:1.08 !important;}
 .itb-hero__title .elementor-heading-title{ font-size:clamp(2.4rem,11vw,3rem) !important;}
 .itb-cta .elementor-heading-title{ font-size:1.9rem !important;}
 .itb-stat__num{ font-size:clamp(2.3rem,12vw,3rem) !important;}
 .itb-stat__label{ font-size:.72rem !important;}
}

/* ================= TYPOGRAPHY POLISH ================= */
/* Anton is condensed — add tracking + word-spacing so display caps read clearly */
.itb-display, .itb-display .elementor-heading-title,
.itb-services__title .elementor-heading-title,
.itb-cta .elementor-heading-title,
.itb-card__title .elementor-heading-title,
.itb-member__name .elementor-heading-title,
.itb-svc__head h3,
.itb-footer__wordmark, .itb-elfooter .itb-footer__wordmark{ letter-spacing:0.045em !important; word-spacing:0.08em !important; }
/* Big hero / page-hero: lighter tracking (already huge), a little line breathing room */
.itb-hero__title .elementor-heading-title, .itb-pagehero .elementor-heading-title{ letter-spacing:0.025em !important; word-spacing:0.06em !important; line-height:1.08 !important; }
/* Section title rhythm */
.itb-services__title .elementor-heading-title{ margin-bottom:clamp(1.75rem,4vw,2.75rem) !important; }
.itb-card__title .elementor-heading-title{ line-height:1.12 !important; }
.itb-svc__head h3{ line-height:1.12 !important; }
.itb-member__name .elementor-heading-title{ line-height:1.1 !important; }
/* A touch more space after the rust underline on card titles */
.itb-card__title .elementor-heading-title::after{ margin-top:.7rem !important; }

/* ================= CTA centering fix ================= */
.itb-cta{ display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; text-align:center !important; }
.itb-cta > *{ position:relative; z-index:1; }
.itb-cta .elementor-widget{ width:100%; }
.itb-cta .elementor-heading-title{ text-align:center !important; }
.itb-cta__lead, .itb-cta__lead p{ text-align:center !important; max-width:60ch; margin-left:auto !important; margin-right:auto !important; }
.itb-cta__actions{ display:flex !important; justify-content:center !important; align-items:center !important; width:100%; }
.itb-cta__actions .elementor-button-wrapper, .itb-cta .elementor-widget-button{ text-align:center; }
/* tighten the band so content is vertically balanced */
.itb-cta{ padding-block:clamp(3.5rem,7vw,5.5rem) !important; gap:1.1rem; }

/* ================= Navbar justification fix ================= */
.itb-elheader{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; justify-content:space-between !important; align-items:center !important; gap:1.5rem; }
.itb-elheader__logo{ flex:0 0 auto; }
.itb-elheader__right{ display:flex !important; flex-direction:row !important; align-items:center !important; gap:clamp(1.25rem,2.5vw,2.25rem) !important; width:auto !important; margin-left:auto !important; flex:0 1 auto; }
.itb-elheader__nav{ width:auto !important; }
.itb-elheader__nav .elementor-nav-menu{ display:flex; gap:clamp(1rem,2vw,2rem); }

/* ================= Team photos: full color + hover animation ================= */
.itb-member__photo{ overflow:hidden !important; position:relative !important; }
.itb-member__photo img{ filter:none !important; transition:transform .55s cubic-bezier(.22,1,.36,1) !important; will-change:transform; }
.itb-member__photo::after{ display:none !important; }
.itb-member{ transition:transform .35s cubic-bezier(.22,1,.36,1), box-shadow .35s cubic-bezier(.22,1,.36,1) !important; }
.itb-member:hover{ transform:translate(-5px,-5px) !important; box-shadow:14px 14px 0 var(--wp--preset--color--brick) !important; }
.itb-member:hover .itb-member__photo img{ transform:scale(1.07) !important; }
@media(prefers-reduced-motion:reduce){ .itb-member, .itb-member__photo img{ transition:none !important; } .itb-member:hover{ transform:none !important; } .itb-member:hover .itb-member__photo img{ transform:none !important; } }

/* ================= Navbar refinement ================= */
.itb-elheader{ min-height:82px !important; background:rgba(236,222,184,.94) !important; border-bottom:1px solid rgba(22,52,79,.18) !important; padding-block:0 !important; padding-inline:clamp(1.25rem,4vw,3rem) !important; transition:box-shadow .3s ease, background-color .3s ease; }
.itb-elheader.is-stuck{ background:rgba(236,222,184,.985) !important; box-shadow:0 10px 30px -20px rgba(11,32,52,.55) !important; border-bottom-color:rgba(22,52,79,.3) !important; }
.itb-elheader__logo img{ width:168px !important; max-width:168px !important; }
/* Nav links: refined uppercase + animated rust underline */
.itb-elheader__nav .elementor-item{ font-family:var(--wp--preset--font-family--heading) !important; font-weight:600 !important; text-transform:uppercase !important; letter-spacing:.09em !important; font-size:.8rem !important; color:var(--wp--preset--color--navy) !important; position:relative; padding:6px 2px !important; transition:color .25s ease; }
.itb-elheader__nav .elementor-item::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--wp--preset--color--brick); transform:scaleX(0); transform-origin:left; transition:transform .3s cubic-bezier(.22,1,.36,1); }
.itb-elheader__nav .elementor-item:hover, .itb-elheader__nav .elementor-item.elementor-item-active{ color:var(--wp--preset--color--brick) !important; }
.itb-elheader__nav .elementor-item:hover::after, .itb-elheader__nav .elementor-item.elementor-item-active::after{ transform:scaleX(1); }
.itb-elheader__nav .elementor-nav-menu--main .elementor-item{ padding-block:6px !important; }
/* CONTACT US button: cleaner letterpress */
.itb-elheader__cta .elementor-button{ font-family:var(--wp--preset--font-family--heading) !important; font-weight:700 !important; text-transform:uppercase; letter-spacing:.09em !important; font-size:.74rem !important; padding:.72rem 1.45rem !important; background:var(--wp--preset--color--brick) !important; color:#fff !important; border:2px solid var(--wp--preset--color--navy) !important; border-radius:2px !important; box-shadow:3px 3px 0 var(--wp--preset--color--navy) !important; transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease; }
.itb-elheader__cta .elementor-button:hover{ transform:translate(-2px,-2px); box-shadow:5px 5px 0 var(--wp--preset--color--navy) !important; background:var(--wp--preset--color--navy) !important; color:var(--wp--preset--color--gold) !important; }

/* ================= MOBILE NAV FIX ================= */
/* Hamburger toggle: clear navy, good tap target */
.itb-elheader .elementor-menu-toggle{ color:var(--wp--preset--color--navy) !important; padding:6px !important; }
.itb-elheader .elementor-menu-toggle svg{ width:30px !important; height:30px !important; fill:var(--wp--preset--color--navy) !important; }
.itb-elheader .elementor-menu-toggle.elementor-active{ color:var(--wp--preset--color--brick) !important; }
.itb-elheader .elementor-menu-toggle.elementor-active svg{ fill:var(--wp--preset--color--brick) !important; }
/* Open dropdown panel: brand navy with big cream links */
.itb-elheader__nav .elementor-nav-menu--dropdown, .itb-elheader__nav nav.elementor-nav-menu--dropdown{ background-color:var(--wp--preset--color--navy) !important; border-top:3px solid var(--wp--preset--color--brick) !important; box-shadow:0 18px 30px -18px rgba(11,32,52,.6); margin-top:6px; border-radius:0 0 4px 4px; overflow:hidden; }
.itb-elheader__nav .elementor-nav-menu--dropdown .elementor-item{ color:var(--wp--preset--color--paper) !important; font-family:var(--wp--preset--font-family--display) !important; text-transform:uppercase !important; letter-spacing:.03em !important; font-size:1.45rem !important; line-height:1.2 !important; padding:.95rem 1.4rem !important; border-bottom:1px solid rgba(143,169,188,.18) !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown .elementor-item:hover, .itb-elheader__nav .elementor-nav-menu--dropdown .elementor-item.elementor-item-active{ background:rgba(192,70,24,.18) !important; color:#fff !important; }
/* Keep Contact reachable: show a compact CTA button on mobile (override earlier hide) */
@media(max-width:600px){
 .itb-elheader__cta{ display:flex !important; }
 .itb-elheader__cta .elementor-button{ padding:.55rem 1rem !important; font-size:.66rem !important; letter-spacing:.06em !important; box-shadow:2px 2px 0 var(--wp--preset--color--navy) !important; }
 .itb-elheader__logo img{ width:124px !important; max-width:124px !important; }
 .itb-elheader{ gap:.5rem !important; padding-inline:1rem !important; min-height:68px !important; }
 .itb-elheader__right{ gap:.6rem !important; }
}
@media(max-width:360px){
 .itb-elheader__cta .elementor-button{ padding:.5rem .7rem !important; font-size:.6rem !important; }
 .itb-elheader__logo img{ width:104px !important; max-width:104px !important; }
}

/* ---- Mobile dropdown: stack items full width ---- */
.itb-elheader__nav{ position:static !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown{ width:100% !important; left:0 !important; right:0 !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown > ul, .itb-elheader__nav .elementor-nav-menu--dropdown .elementor-nav-menu{ display:block !important; width:100% !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown li, .itb-elheader__nav .elementor-nav-menu--dropdown .menu-item{ display:block !important; width:100% !important; float:none !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown .elementor-item{ display:block !important; width:100% !important; text-align:left !important; }
.itb-elheader__nav .elementor-nav-menu--dropdown .elementor-item:last-child{ border-bottom:0 !important; }

/* ---- Mobile header: keep logo + hamburger + compact CTA on ONE row ---- */
.itb-elheader{ flex-wrap:nowrap !important; }
.itb-elheader__right{ flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; gap:.6rem !important; width:auto !important; }
.itb-elheader__nav{ width:auto !important; flex:0 0 auto !important; display:flex !important; align-items:center; }
.itb-elheader__nav > .elementor-widget-container{ width:auto !important; }
.itb-elheader__cta{ flex:0 0 auto !important; width:auto !important; }
.itb-elheader__cta > .elementor-widget-container{ width:auto !important; }
@media(max-width:1024px){ .itb-elheader .elementor-menu-toggle{ display:flex !important; align-items:center; } }

/* ---- Header right group: the boxed inner wrapper must be a ROW ---- */
.itb-elheader__right > .e-con-inner{ display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center !important; gap:clamp(.6rem,2vw,2rem) !important; width:auto !important; max-width:none !important; }
.itb-elheader__right{ width:auto !important; }
.itb-elheader__nav{ width:auto !important; flex:0 0 auto !important; }
.itb-elheader__cta{ flex:0 0 auto !important; }

/* ================= MOBILE NAV + CONTENT FIXES (round 2) ================= */
/* Desktop (>1024): Contact is the CTA button — hide the redundant inline menu link (last item) */
@media(min-width:1025px){ .itb-elheader__nav .elementor-nav-menu--main > li:last-child{ display:none !important; } }
/* Mobile/tablet (<=1024): hide the inline CTA (it overflowed the viewport); Contact lives in the hamburger menu */
@media(max-width:1024px){ .itb-elheader__cta{ display:none !important; } }
/* Mission stacks cleanly with even side padding on phones/tablet */
@media(max-width:900px){ .itb-mission__row, .itb-mission__row > .e-con-inner{ flex-direction:column !important; align-items:flex-start !important; } .itb-mission__col{ width:100% !important; } .itb-mission{ padding-inline:clamp(1.25rem,5vw,2rem) !important; } }
/* Footer: clear the floating accessibility widget; keep long strings off the edge */
@media(max-width:767px){ .itb-elfooter{ padding-bottom:96px !important; } }
.itb-elfooter .itb-footer__contact, .itb-elfooter .itb-footer__contact a{ overflow-wrap:anywhere; word-break:break-word; }
/* Stat labels a touch larger on phones */
@media(max-width:480px){ .itb-stat__label{ font-size:.78rem !important; } }

/* ---- Contact info rows: allow long email/address to wrap on tiny screens ---- */
.itb-contact__info{ width:100%; max-width:100%; }
.itb-contact__row{ min-width:0; max-width:100%; }
.itb-contact__row > div{ min-width:0; flex:1 1 auto; }
.itb-contact__row h4, .itb-contact__row p, .itb-contact__row a{ overflow-wrap:anywhere; word-break:break-word; }

/* ================= 2026-07-01 BUGFIX PASS ================= */
/* 1) STICKY HEADER FIX — position:sticky was on .itb-elheader, but a sticky
   element only travels within its PARENT, and Elementor's theme-builder
   wrapper (header.elementor-location-header) is only header-height tall.
   Sticky must live on the wrapper, whose parent (body) is page-tall. */
header.elementor-location-header{ position:sticky; top:0; z-index:200; }
.itb-elheader{ position:relative; z-index:auto; }

/* 2) Hamburger toggle must never render on desktop (an earlier unscoped
   `display:flex !important` was overriding Elementor's desktop hide). */
@media(min-width:1025px){ .itb-elheader .elementor-menu-toggle{ display:none !important; } }

/* ================= 2026-07-01 FEATURES + POLISH ================= */
/* Brand text selection + visible keyboard focus */
::selection{ background:var(--wp--preset--color--brick); color:var(--wp--preset--color--paper); }
:focus-visible{ outline:3px solid var(--wp--preset--color--brick); outline-offset:2px; }

/* Smooth in-page scrolling, with room for the sticky header */
html{ scroll-behavior:smooth; scroll-padding-top:110px; }
@media(prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* Slightly slimmer desktop logo (header was rendering 101px tall) */
@media(min-width:1025px){ .itb-elheader__logo img{ width:152px !important; max-width:152px !important; } }

/* Condensing header: slims down once stuck (desktop) */
.itb-elheader{ transition:box-shadow .3s ease, background-color .3s ease, min-height .3s ease !important; }
.itb-elheader__logo img{ transition:width .3s ease; }
@media(min-width:1025px){
 .itb-elheader.is-stuck{ min-height:64px !important; }
 .itb-elheader.is-stuck .itb-elheader__logo img{ width:126px !important; }
}

/* Scroll progress bar along the header's bottom edge */
.itb-progress{ position:absolute; left:0; right:0; bottom:-1px; height:3px; pointer-events:none; z-index:5; }
.itb-progress__bar{ height:100%; width:100%; background:var(--wp--preset--color--brick); transform:scaleX(0); transform-origin:left; }

/* Back-to-top: letterpress square, bottom-left (Ally widget owns the right edge) */
.itb-btt{ position:fixed; left:18px; bottom:18px; z-index:180; width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:var(--wp--preset--color--paper); color:var(--wp--preset--color--navy); border:2px solid var(--wp--preset--color--navy); border-radius:2px; box-shadow:3px 3px 0 var(--wp--preset--color--navy); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease, visibility .25s, background-color .2s ease, color .2s ease; }
.itb-btt.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.itb-btt:hover{ background:var(--wp--preset--color--brick); color:#fff; }
.itb-btt:active{ transform:translate(2px,2px); box-shadow:1px 1px 0 var(--wp--preset--color--navy); }
.itb-btt svg{ width:20px; height:20px; display:block; }
@media(max-width:600px){ .itb-btt{ width:42px; height:42px; left:12px; bottom:12px; } }

/* Marquee: pause on hover / keyboard focus */
.itb-marquee:hover .itb-marquee__track, .itb-marquee:focus-within .itb-marquee__track{ animation-play-state:paused; }

/* Buttons: letterpress press-down on click */
.itb-btn-fill:active, .itb-btn-outline:active, .itb-elheader__cta .elementor-button:active, .itb-contact__form .elementor-button:active{ transform:translate(2px,2px) !important; box-shadow:1px 1px 0 var(--wp--preset--color--navy) !important; }

/* Elementor form: sending state */
.elementor-form .elementor-button[disabled], .elementor-form .elementor-button.is-sending{ opacity:.75; cursor:wait; }

/* ---- 404 page ---- */
.itb-404{ min-height:72vh; display:flex; align-items:center; text-align:center; }
.itb-404 > .e-con-inner{ align-items:center !important; }
.itb-404__inner, .itb-404__inner > .e-con-inner{ align-items:center !important; }
.itb-404__code .elementor-heading-title{ font-family:var(--wp--preset--font-family--display); font-size:clamp(6.5rem,18vw,13rem); line-height:.92; color:transparent; -webkit-text-stroke:3px var(--wp--preset--color--paper); paint-order:stroke fill; text-shadow:7px 7px 0 rgba(192,70,24,.5); letter-spacing:.04em; }
.itb-404 .itb-pagehero__title .elementor-heading-title{ margin-top:.4rem; }
.itb-404__actions{ justify-content:center !important; margin-top:1.2rem; }
.itb-404__actions > .e-con-inner{ justify-content:center !important; }
