/* ==========================================================================
   IPTREK — structural CSS
   Only what theme.json cannot express. Everything visual (colour, type,
   spacing) is a token in theme.json — change it there, not here.
   ========================================================================== */

/* --- Sticky header ------------------------------------------------------ */

.ipt-header {
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: saturate(140%) blur(10px);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	background-color: rgba(255, 255, 255, 0.88);
	border-bottom: 1px solid var(--wp--preset--color--line);
	transition: box-shadow 0.2s ease;
}

.admin-bar .ipt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ipt-header { top: 46px; } }

/* --- Navigation --------------------------------------------------------- */

.ipt-header .wp-block-navigation .wp-block-navigation-item__content {
	padding-block: 0.45rem;
	color: var(--wp--preset--color--navy);
	border-bottom: 2px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.ipt-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.ipt-header .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--ink);
	border-bottom-color: var(--wp--preset--color--teal);
}

.ipt-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.ipt-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--ink);
	border-bottom-color: var(--wp--preset--color--teal);
}

/* Dropdown submenus */
.ipt-header .wp-block-navigation .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-container,
.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	box-shadow: var(--wp--preset--shadow--lift);
	background-color: var(--wp--preset--color--white);
	padding-block: 0.4rem;
	min-width: 288px;
}

.ipt-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.55rem 1.1rem;
	border-bottom: 0;
	border-left: 2px solid transparent;
	width: 100%;
}

.ipt-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	border-bottom: 0;
	border-left-color: var(--wp--preset--color--teal);
	background-color: var(--wp--preset--color--paper);
}

/* --- Eyebrow / kicker label -------------------------------------------- */

.ipt-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.11em;
	line-height: 1.4;
	margin-bottom: var(--wp--preset--spacing--20);
}

.ipt-eyebrow::before {
	content: "";
	display: inline-block;
	width: 1.6rem;
	height: 1px;
	background: currentColor;
	vertical-align: middle;
	margin-right: 0.7rem;
	opacity: 0.75;
}

/* --- Cards -------------------------------------------------------------- */

.ipt-card {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
	height: 100%;
}

.ipt-card:hover {
	border-color: var(--wp--preset--color--teal);
	box-shadow: var(--wp--preset--shadow--md);
}

/* Card with a coloured rule along the top edge */
.ipt-card--ruled { border-top: 3px solid var(--wp--preset--color--teal); }

/* Make the whole card clickable when it contains a single "stretched" link */
.ipt-card--linked { position: relative; }
.ipt-card--linked a.ipt-stretch::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Equal-height columns inside a Columns block of cards */
.ipt-cards .wp-block-column { display: flex; }
.ipt-cards .wp-block-column > .ipt-card { flex: 1 1 auto; }

/* --- Numbered process steps -------------------------------------------- */

.ipt-step { counter-increment: ipt-step; position: relative; }

.ipt-steps { counter-reset: ipt-step; }

.ipt-step > .ipt-step__num {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--teal-deep);
	border-top: 2px solid var(--wp--preset--color--teal);
	padding-top: 0.7rem;
	display: block;
	margin-bottom: 0.85rem;
}

/* --- Layered synergy diagram (Governance -> Platforms -> Infrastructure) - */

.ipt-layers { display: grid; gap: 0.55rem; }

.ipt-layer {
	border: 1px solid var(--wp--preset--color--line);
	border-left: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	padding: 1.1rem 1.35rem;
	background: var(--wp--preset--color--white);
	position: relative;
}

.ipt-layer + .ipt-layer::before {
	content: "";
	position: absolute;
	top: -0.55rem;
	left: 2.1rem;
	width: 1px;
	height: 0.55rem;
	background: var(--wp--preset--color--line);
}

.ipt-layer__label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--mute);
	display: block;
	margin-bottom: 0.3rem;
}

/* Inset each successive layer slightly to read as a stack */
.ipt-layers .ipt-layer:nth-child(2) { margin-inline-start: clamp(0px, 3vw, 2rem); }
.ipt-layers .ipt-layer:nth-child(3) { margin-inline-start: clamp(0px, 6vw, 4rem); }

/* --- Definition rows (spec-sheet look) ---------------------------------- */

.ipt-rows { border-top: 1px solid var(--wp--preset--color--line); }

.ipt-row {
	display: grid;
	grid-template-columns: minmax(9rem, 22%) 1fr;
	gap: var(--wp--preset--spacing--30);
	padding-block: 1.15rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	align-items: start;
}

.ipt-row__key {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--wp--preset--color--mute);
	padding-top: 0.2rem;
}

@media (max-width: 600px) {
	.ipt-row { grid-template-columns: 1fr; gap: 0.35rem; }
}

/* --- Dark sections ------------------------------------------------------ */

.ipt-dark { color: var(--wp--preset--color--mist); }
.ipt-dark :where(h1, h2, h3, h4, h5) { color: var(--wp--preset--color--white); }
.ipt-dark :where(h6, .ipt-eyebrow) { color: var(--wp--preset--color--teal); }
.ipt-dark .ipt-card {
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.16);
}
.ipt-dark .ipt-card:hover { border-color: var(--wp--preset--color--teal); background: rgba(255, 255, 255, 0.07); }
.ipt-dark .ipt-row, .ipt-dark .ipt-rows { border-color: rgba(255, 255, 255, 0.16); }
.ipt-dark .ipt-layer { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.16); border-left-color: var(--wp--preset--color--teal); }

/* --- Hero with photographic background ---------------------------------- */

.ipt-hero { position: relative; isolation: isolate; }
.ipt-hero .wp-block-cover__image-background { filter: saturate(0.72) contrast(1.04); }

/* --- Stat band ---------------------------------------------------------- */

.ipt-stat__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--3xl);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1;
	color: var(--wp--preset--color--ink);
	display: block;
}

.ipt-dark .ipt-stat__value { color: var(--wp--preset--color--white); }

.ipt-stat__label {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--mute);
	display: block;
	margin-top: 0.4rem;
}

/* --- Logo / technology strip ------------------------------------------- */

.ipt-techstrip {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.55rem;
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.ipt-techstrip li {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: 0.04em;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	padding: 0.4rem 0.75rem;
	color: var(--wp--preset--color--steel);
	background: var(--wp--preset--color--white);
}

.ipt-dark .ipt-techstrip li {
	border-color: rgba(255, 255, 255, 0.2);
	background: transparent;
	color: var(--wp--preset--color--mist);
}

/* --- Secondary / ghost button ------------------------------------------ */

.wp-block-button.is-style-ipt-ghost .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--line);
}

.wp-block-button.is-style-ipt-ghost .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

.ipt-dark .wp-block-button.is-style-ipt-ghost .wp-block-button__link {
	color: var(--wp--preset--color--white);
	border-color: rgba(255, 255, 255, 0.35);
}

.ipt-dark .wp-block-button.is-style-ipt-ghost .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ink);
}

/* Text-only arrow link style */
.wp-block-button.is-style-ipt-arrow .wp-block-button__link {
	background: transparent;
	border-color: transparent;
	color: var(--wp--preset--color--teal-deep);
	padding-inline: 0;
	padding-block: 0.35rem;
}

.wp-block-button.is-style-ipt-arrow .wp-block-button__link::after {
	content: " \2192";
	transition: transform 0.15s ease;
	display: inline-block;
}

.wp-block-button.is-style-ipt-arrow .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border-color: transparent;
}

.wp-block-button.is-style-ipt-arrow .wp-block-button__link:hover::after { transform: translateX(3px); }

/* --- Checklist ---------------------------------------------------------- */

ul.is-style-ipt-check { list-style: none; padding-left: 0; }

ul.is-style-ipt-check > li {
	position: relative;
	padding-left: 1.85rem;
	margin-bottom: 0.7rem;
}

ul.is-style-ipt-check > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 0.62rem;
	height: 0.34rem;
	border-left: 2px solid var(--wp--preset--color--teal);
	border-bottom: 2px solid var(--wp--preset--color--teal);
	transform: rotate(-45deg);
}

/* --- Post / blog cards -------------------------------------------------- */

.ipt-postcard .wp-block-post-featured-image img { border-radius: 2px; }
.ipt-postcard .wp-block-post-title { margin-block: 0.7rem 0.45rem; }
.ipt-postcard .wp-block-post-title a { text-decoration: none; }
.ipt-postcard .wp-block-post-title a:hover { text-decoration: underline; }

/* --- Footer ------------------------------------------------------------- */

.ipt-footer a { text-decoration: none; }
.ipt-footer a:hover { text-decoration: underline; }
.ipt-footer .wp-block-navigation { row-gap: 0.35rem; }

/* --- Accessibility ------------------------------------------------------ */

:where(a, button, input, select, textarea, .wp-block-button__link):focus-visible {
	outline: 2px solid var(--wp--preset--color--teal);
	outline-offset: 2px;
	border-radius: 1px;
}

.skip-link:focus {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
	padding: 0.75rem 1.25rem;
	z-index: 1000;
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* --- Print -------------------------------------------------------------- */

@media print {
	.ipt-header, .ipt-footer, .ipt-cta { display: none !important; }
	body { color: #000; }
}

/* --- Comparison table (on-premises vs cloud) ---------------------------- */

.ipt-compare { overflow-x: auto; margin-block: var(--wp--preset--spacing--30); }

.ipt-compare table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--sm);
	min-width: 44rem;
}

.ipt-compare th,
.ipt-compare td {
	text-align: left;
	vertical-align: top;
	padding: 1rem 1.15rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.ipt-compare thead th {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.09em;
	font-weight: 400;
	color: var(--wp--preset--color--mute);
	border-bottom: 2px solid var(--wp--preset--color--ink);
	white-space: nowrap;
}

.ipt-compare thead th:nth-child(2) {
	color: var(--wp--preset--color--teal-deep);
	border-bottom-color: var(--wp--preset--color--teal);
}

.ipt-compare tbody th {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	width: 9.5rem;
}

.ipt-compare td.ipt-yes {
	background: var(--wp--preset--color--teal-wash);
	color: var(--wp--preset--color--navy);
	box-shadow: inset 2px 0 0 var(--wp--preset--color--teal);
}

.ipt-compare tbody tr:last-child th,
.ipt-compare tbody tr:last-child td { border-bottom: 0; }

/* --- Trust bar ---------------------------------------------------------- */

.ipt-trustbar .wp-block-column { border-left: 2px solid var(--wp--preset--color--teal); padding-left: 1.15rem; }
.ipt-trustbar p { margin-bottom: 0; }
.ipt-trustbar strong { color: var(--wp--preset--color--white); display: block; }

@media (max-width: 781px) {
	.ipt-trustbar .wp-block-column { border-left-width: 2px; }
}

/* --- Technology strip band --------------------------------------------- */

.ipt-strip {
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.ipt-strip strong { color: var(--wp--preset--color--ink); }

/* --- Pillar hero fallback when no featured image is set ----------------- */

.wp-block-cover.ipt-hero:not(:has(img.wp-block-cover__image-background)) {
	background-color: var(--wp--preset--color--ink);
	background-image: linear-gradient(135deg, #12283A 0%, #1B4257 60%, #12283A 100%);
}

/* ==========================================================================
   Product imagery — logo mastheads, screenshot grids, logo walls
   ========================================================================== */

/* --- Product masthead --------------------------------------------------- */

.ipt-mast {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
	border: 1px solid var(--wp--preset--color--line);
	border-left: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	padding: 1.5rem 1.75rem;
	margin-block: var(--wp--preset--spacing--30);
}

.ipt-mast__logo {
	flex: 0 0 auto;
	width: auto;
	max-width: 190px;
	object-fit: contain;
}

.ipt-mast__text { flex: 1 1 20rem; min-width: 0; }

.ipt-mast__text strong {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	letter-spacing: -0.016em;
	color: var(--wp--preset--color--ink);
	line-height: 1.25;
}

.ipt-mast__text span {
	display: block;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--slate);
	margin-top: 0.35rem;
}

.ipt-mast__note {
	font-size: var(--wp--preset--font-size--xs) !important;
	color: var(--wp--preset--color--mute) !important;
	margin-top: 0.6rem !important;
}

.ipt-dark .ipt-mast {
	background: rgba(255, 255, 255, 0.05);
	border-color: rgba(255, 255, 255, 0.16);
	border-left-color: var(--wp--preset--color--teal);
}
.ipt-dark .ipt-mast__text strong { color: var(--wp--preset--color--white); }
.ipt-dark .ipt-mast__text span { color: var(--wp--preset--color--mist); }

/* --- Screenshot grid ---------------------------------------------------- */

.ipt-shots {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: var(--wp--preset--spacing--30);
	margin-block: var(--wp--preset--spacing--30);
}

.ipt-shots figure { margin: 0; }

.ipt-shots img,
.ipt-wideshot img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	background: var(--wp--preset--color--paper);
}

.ipt-shots figcaption,
.ipt-wideshot figcaption {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
	margin-top: 0.6rem;
	line-height: 1.45;
}

.ipt-shots__note {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
	margin-top: 0.75rem;
}

.ipt-wideshot { margin: var(--wp--preset--spacing--40) 0; }

/* --- Logo wall ---------------------------------------------------------- */

.ipt-logowall {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	list-style: none;
	padding: 0;
	margin: 0;
}

.ipt-logowall li { flex: 0 0 auto; }

.ipt-logowall a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 6.25rem;
	min-width: 11rem;
	padding: 1rem 1.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.ipt-logowall a:hover {
	border-color: var(--wp--preset--color--teal);
	box-shadow: var(--wp--preset--shadow--md);
}

.ipt-logowall img {
	max-height: 3.5rem;
	max-width: 9.5rem;
	width: auto;
	height: auto;
	object-fit: contain;
}

.ipt-logowall.is-dark a {
	background: rgba(255, 255, 255, 0.96);
	border-color: rgba(255, 255, 255, 0.2);
}

@media (max-width: 600px) {
	.ipt-logowall a { min-width: 8.5rem; height: 4.5rem; padding: 0.75rem 1rem; }
	.ipt-logowall img { max-height: 2rem; max-width: 7rem; }
}

/* --- IPTREK brand mark -------------------------------------------------- */

.ipt-brand {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	border-radius: 2px;
	/* The wordmark artwork carries its own deep-blue field, so it is presented
	   as a plate. The hairline keeps its edge from floating on the white header. */
	box-shadow: 0 0 0 1px rgba(18, 40, 58, 0.14);
	transition: box-shadow 0.18s ease;
}

.ipt-brand:hover { box-shadow: 0 0 0 1px var(--wp--preset--color--teal); }
.ipt-brand:focus-visible { outline: 2px solid var(--wp--preset--color--teal); outline-offset: 3px; }

.ipt-brand img {
	display: block;
	height: 40px;
	width: auto;
	border-radius: 2px;
}

@media (max-width: 600px) { .ipt-brand img { height: 34px; } }

/* On the ink footer the artwork sits close in value to the background, so it
   gets a lighter hairline instead. */
.ipt-brand--footer { box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18); }
.ipt-brand--footer:hover { box-shadow: 0 0 0 1px var(--wp--preset--color--teal); }
.ipt-brand--footer img { height: 46px; }

/* ==========================================================================
   Portfolio page — comparison matrices, decision router, architecture figure
   ========================================================================== */

.ipt-matrix { overflow-x: auto; margin-block: var(--wp--preset--spacing--30); }

.ipt-matrix table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--sm);
	/* Fits the 760px content column without scrolling; scrolls below that. */
	min-width: 40rem;
}

.ipt-matrix th,
.ipt-matrix td {
	text-align: left;
	vertical-align: top;
	padding: 0.95rem 1.1rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.ipt-matrix thead th {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.09em;
	font-weight: 400;
	color: var(--wp--preset--color--mute);
	border-bottom: 2px solid var(--wp--preset--color--ink);
	white-space: nowrap;
}

.ipt-matrix tbody th {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	width: var(--ipt-col1, 11rem);
}

.ipt-matrix tbody tr:hover td,
.ipt-matrix tbody tr:hover th { background: var(--wp--preset--color--paper); }

.ipt-matrix tbody tr:last-child th,
.ipt-matrix tbody tr:last-child td { border-bottom: 0; }

.ipt-matrix__note {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
	margin-top: 0.75rem;
}

/* --- Rating meter ------------------------------------------------------- */

.ipt-rating { display: inline-flex; gap: 3px; align-items: center; }

.ipt-rating i {
	width: 9px;
	height: 9px;
	border-radius: 1px;
	background: var(--wp--preset--color--line);
	display: block;
}

.ipt-rating i.on { background: var(--wp--preset--color--teal); }

/* --- Decision router ---------------------------------------------------- */

.ipt-router {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: var(--wp--preset--spacing--20);
	margin-block: var(--wp--preset--spacing--30);
}

.ipt-router__card {
	display: block;
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--line);
	border-top: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	padding: 1.5rem 1.5rem 1.35rem;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.ipt-router__card:hover {
	border-color: var(--wp--preset--color--teal);
	border-top-color: var(--wp--preset--color--teal);
	box-shadow: var(--wp--preset--shadow--md);
	text-decoration: none;
}

.ipt-router__q {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--teal-deep);
	line-height: 1.4;
	min-height: 2.8em;
}

.ipt-router__a {
	display: block;
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--xl);
	font-weight: 700;
	letter-spacing: -0.018em;
	color: var(--wp--preset--color--ink);
	margin: 0.55rem 0 0.4rem;
}

.ipt-router__n {
	display: block;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--slate);
	line-height: 1.5;
}

/* --- Diagram figure ----------------------------------------------------- */

.ipt-figure { margin: var(--wp--preset--spacing--40) 0; }

.ipt-figure svg {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
}

.ipt-figure figcaption {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
	margin-top: 0.7rem;
	line-height: 1.5;
}

/* --- Upgrade-path callout ---------------------------------------------- */

.ipt-path {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex-wrap: wrap;
	border-left: 3px solid var(--wp--preset--color--teal);
	background: var(--wp--preset--color--paper);
	padding: 1.1rem 1.35rem;
	border-radius: 2px;
	margin-block: 0.75rem;
	font-size: var(--wp--preset--font-size--sm);
}

.ipt-path strong {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--md);
	color: var(--wp--preset--color--ink);
	white-space: nowrap;
}

.ipt-path em {
	font-style: normal;
	font-family: var(--wp--preset--font-family--mono);
	color: var(--wp--preset--color--teal-deep);
}

/* --- Traceability chain ------------------------------------------------- */

.ipt-chain { margin-block: var(--wp--preset--spacing--30); }

.ipt-chain ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 0.35rem;
	counter-reset: ipt-chain;
}

.ipt-chain li {
	counter-increment: ipt-chain;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	border: 1px solid var(--wp--preset--color--line);
	border-left: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	background: var(--wp--preset--color--white);
	padding: 0.5rem 0.85rem;
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--ink);
}

.ipt-chain li::before {
	content: counter(ipt-chain, decimal-leading-zero);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
}

.ipt-chain li:not(:last-child)::after {
	content: "→";
	color: var(--wp--preset--color--teal);
	margin-left: 0.15rem;
}

/* --- Stage / sprint map ------------------------------------------------- */

.ipt-stagemap { border-top: 1px solid var(--wp--preset--color--line); margin-block: var(--wp--preset--spacing--30); }

.ipt-stagemap__row {
	display: grid;
	grid-template-columns: minmax(13rem, 34%) 1fr;
	gap: var(--wp--preset--spacing--30);
	padding-block: 1rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
	align-items: baseline;
}

.ipt-stagemap .k {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--md);
}

.ipt-stagemap .v {
	font-size: var(--wp--preset--font-size--sm);
	color: var(--wp--preset--color--slate);
}

.ipt-stagemap .v b {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--wp--preset--color--teal-deep);
	font-weight: 400;
	white-space: nowrap;
}

@media (max-width: 700px) {
	.ipt-stagemap__row { grid-template-columns: 1fr; gap: 0.35rem; }
}

/* --- Path callout inner span ------------------------------------------- */

.ipt-path span { flex: 1 1 18rem; color: var(--wp--preset--color--slate); }

/* ==========================================================================
   Contrast fixes
   ========================================================================== */

/* --- Dropdown submenus (Services, About) -------------------------------- */
/*
 * The Navigation block's overlay colours (used for the mobile menu) leak into
 * the desktop submenu container, which left light text on a light panel. Both
 * background AND text colour are pinned here, with enough weight to beat the
 * has-*-color utility classes core prints on the container itself.
 */

.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container,
.ipt-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--white) !important;
	color: var(--wp--preset--color--ink) !important;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	box-shadow: var(--wp--preset--shadow--lift);
	padding-block: 0.4rem;
	min-width: 288px;
}

.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container a,
.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container a:visited {
	color: var(--wp--preset--color--navy) !important;
	background-color: transparent !important;
	padding: 0.6rem 1.15rem;
	border-bottom: 0;
	border-left: 2px solid transparent;
	width: 100%;
	text-decoration: none;
}

.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container a:hover,
.ipt-header .wp-block-navigation .wp-block-navigation__submenu-container a:focus-visible {
	color: var(--wp--preset--color--ink) !important;
	background-color: var(--wp--preset--color--paper) !important;
	border-left-color: var(--wp--preset--color--teal);
	border-bottom: 0;
}

/* Top-level items keep the light-header treatment even when the block carries
   an overlay background class. */
.ipt-header .wp-block-navigation > ul > li > .wp-block-navigation-item__content,
.ipt-header .wp-block-navigation .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content,
.ipt-header .wp-block-navigation .wp-block-navigation-submenu > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--navy);
}

.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
	background-color: transparent !important;
	color: inherit !important;
}

/* The submenu chevron inherits the link colour rather than the overlay colour. */
.ipt-header .wp-block-navigation__submenu-icon { color: currentColor; }

/* The mobile overlay stays dark on purpose — restore its colours there. */
.ipt-header .wp-block-navigation__responsive-container.is-menu-open,
.ipt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--white) !important;
	border: 0;
	box-shadow: none;
}

.ipt-header .wp-block-navigation__responsive-container.is-menu-open a,
.ipt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	color: var(--wp--preset--color--white) !important;
}

/* --- Footer legibility -------------------------------------------------- */
/* Navy ground rather than near-black, and body text light enough to read. */

.ipt-footer { color: var(--wp--preset--color--haze); }
.ipt-footer p, .ipt-footer li { color: var(--wp--preset--color--haze); }
.ipt-footer a { color: var(--wp--preset--color--mist); text-decoration: none; }
.ipt-footer a:hover, .ipt-footer a:focus-visible {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
}
.ipt-footer h6 { color: var(--wp--preset--color--teal) !important; }
.ipt-footer .ipt-techstrip li {
	border-color: rgba(255, 255, 255, 0.26);
	color: var(--wp--preset--color--mist);
}

/* --- Desktop menu bar must never inherit an overlay ground -------------- */
/*
 * Belt and braces: even if overlay colours are re-added in the Site Editor,
 * the desktop bar stays transparent on the light header. Only .is-menu-open
 * (the mobile overlay) is allowed a background.
 */

.ipt-header .wp-block-navigation,
.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open),
.ipt-header .wp-block-navigation__container {
	background-color: transparent !important;
	background-image: none !important;
}

.ipt-header .wp-block-navigation:not(.is-menu-open),
.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open),
.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-item__content {
	color: var(--wp--preset--color--navy) !important;
}

.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation-item__content:hover,
.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation-item__content:focus-visible {
	color: var(--wp--preset--color--ink) !important;
}

/* Submenu links keep their own colour, set above, rather than the bar's. */
.ipt-header .wp-block-navigation__responsive-container:not(.is-menu-open)
	.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--wp--preset--color--navy) !important;
}

/* Mobile overlay: dark ground, light text, on purpose. */
.ipt-header .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--white) !important;
}

.ipt-header .wp-block-navigation__responsive-container.is-menu-open
	.wp-block-navigation-item__content {
	color: var(--wp--preset--color--white) !important;
	border-bottom: 0;
}

/* ==========================================================================
   Section-band tone
   The trust bar, the layered stack band and the pillar hero sit on "marine" —
   one step lighter than the footer navy, in the same hue family, so the dark
   areas read as part of the page rather than dropped in from elsewhere.
   ========================================================================== */

/* Labels on any dark ground use the lighter teal — the brand teal does not
   carry enough contrast against marine at label sizes. */
.ipt-dark :where(h6, .ipt-eyebrow) { color: var(--wp--preset--color--teal-light); }
.ipt-dark .ipt-layer__label { color: var(--wp--preset--color--haze); }
.ipt-dark .ipt-stat__label { color: var(--wp--preset--color--haze); }

/* Pillar heroes with no featured image get depth rather than a flat slab. */
.wp-block-cover.ipt-hero:not(:has(img.wp-block-cover__image-background)) {
	background-color: var(--wp--preset--color--marine);
	background-image: linear-gradient(135deg, #2A5F79 0%, #25566E 45%, #1B4257 100%);
}

/* The trust bar's rules pick up the lighter teal too. */
.ipt-trustbar .wp-block-column { border-left-color: var(--wp--preset--color--teal-light); }
.ipt-trustbar strong { color: var(--wp--preset--color--white); }

/* Layer cards inside the marine band need a touch more separation than they
   did on the near-black ground. */
.ipt-dark .ipt-layer {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.22);
	border-left-color: var(--wp--preset--color--teal-light);
}

.ipt-dark .ipt-card {
	background: rgba(255, 255, 255, 0.07);
	border-color: rgba(255, 255, 255, 0.22);
}

.ipt-dark .ipt-techstrip li { border-color: rgba(255, 255, 255, 0.28); }

/* ==========================================================================
   Contact Form 7 — styled to match the theme.
   Only loads visually if the plugin is active; harmless otherwise.
   ========================================================================== */

.wpcf7 { margin-top: var(--wp--preset--spacing--30); }

.wpcf7-form p { margin-bottom: var(--wp--preset--spacing--30); }

.ipt-form-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 0 var(--wp--preset--spacing--30);
}

.wpcf7-form label {
	display: block;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	margin-bottom: 0.4rem;
}

/* "required" marker written as a span inside the label */
.wpcf7-form label span {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--mute);
	margin-left: 0.45rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form select,
.wpcf7-form textarea {
	width: 100%;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--md);
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	padding: 0.75rem 0.9rem;
	line-height: 1.5;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	margin-top: 0.25rem;
}

.wpcf7-form textarea { min-height: 9rem; resize: vertical; }

.wpcf7-form :where(input, select, textarea):focus {
	outline: none;
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 0 0 3px var(--wp--preset--color--teal-wash);
}

.wpcf7-form ::placeholder { color: var(--wp--preset--color--mute); opacity: 1; }

/* Quiz field — the human check */
.ipt-quiz {
	background: var(--wp--preset--color--paper);
	border-left: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	padding: 1.1rem 1.35rem;
}
.ipt-quiz label { margin-bottom: 0.2rem; }
.ipt-quiz .wpcf7-quiz-label {
	display: block;
	font-weight: 400;
	color: var(--wp--preset--color--slate);
	font-size: var(--wp--preset--font-size--sm);
	margin-bottom: 0.4rem;
}
.ipt-quiz input { max-width: 14rem; }

/* Honeypot must never be visible or focusable */
.wpcf7-form .ipt-hp,
.wpcf7-form input[name^="honeypot"] {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}

/* Submit button — inherits the theme button treatment */
.wpcf7-form input[type="submit"] {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--teal-deep);
	border: 1px solid var(--wp--preset--color--teal-deep);
	border-radius: 2px;
	padding: 0.9rem 1.75rem;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.wpcf7-form input[type="submit"]:hover {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
}
.wpcf7-form input[type="submit"]:disabled { opacity: 0.55; cursor: progress; }

/* Validation and response messages */
.wpcf7-not-valid-tip {
	font-size: var(--wp--preset--font-size--xs);
	color: #A8322A;
	margin-top: 0.35rem;
}
.wpcf7-form :where(input, select, textarea).wpcf7-not-valid { border-color: #A8322A; }

.wpcf7-response-output {
	border: 1px solid var(--wp--preset--color--line);
	border-left: 3px solid var(--wp--preset--color--mute);
	border-radius: 2px;
	padding: 1rem 1.25rem !important;
	margin: var(--wp--preset--spacing--30) 0 0 !important;
	font-size: var(--wp--preset--font-size--sm);
}
.wpcf7 form.sent .wpcf7-response-output {
	border-left-color: var(--wp--preset--color--teal);
	background: var(--wp--preset--color--teal-wash);
	color: var(--wp--preset--color--navy);
}
.wpcf7 form:where(.invalid, .unaccepted, .failed, .aborted) .wpcf7-response-output {
	border-left-color: #A8322A;
	background: #FBF0EF;
	color: #7A241E;
}

.wpcf7-spinner { margin-left: 0.75rem; }

/* ==========================================================================
   Quform 2.x
   Selectors verified against the installed plugin (styles.min.css and
   quform.min.js), not guessed. Structure is:
     .quform > .quform-form-inner > .quform-elements
       .quform-element.quform-element-{type}.quform-element-{id}[.quform-has-error]
         .quform-spacer
           .quform-label > label.quform-label-text > span.quform-required
           .quform-inner > .quform-input > .quform-field
             .quform-error > .quform-error-inner > .quform-error-text
   Rules are scoped .quform .quform-element ... (0,3,0) so they beat the
   plugin's own theme sheets (.quform-theme-x .quform-... = 0,2,0) without
   needing !important. Set the form's theme to "Minimal" for least conflict.
   ========================================================================== */

.quform { margin-top: var(--wp--preset--spacing--30); }

.quform .quform-element { margin-bottom: var(--wp--preset--spacing--30); }
.quform .quform-elements > .quform-element:last-child { margin-bottom: 0; }

/* --- Labels ------------------------------------------------------------- */

.quform .quform-element .quform-label { margin-bottom: 0.4rem; }

.quform .quform-element .quform-label-text {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	line-height: 1.4;
}

.quform .quform-element .quform-label-text .quform-required {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 400;
	color: var(--wp--preset--color--teal-deep);
	margin-left: 0.35rem;
}

.quform .quform-element .quform-description {
	font-size: var(--wp--preset--font-size--xs);
	color: var(--wp--preset--color--mute);
	line-height: 1.5;
	margin-top: 0.4rem;
}

/* --- Fields ------------------------------------------------------------- */

.quform .quform-element .quform-field,
.quform .quform-element .quform-input > input,
.quform .quform-element .quform-input > select,
.quform .quform-element .quform-input > textarea {
	width: 100%;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--md);
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	padding: 0.75rem 0.9rem;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.quform .quform-element .quform-field-textarea { min-height: 9rem; resize: vertical; }

.quform .quform-element .quform-field:focus {
	outline: none;
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 0 0 3px var(--wp--preset--color--teal-wash);
}

.quform .quform-element .quform-field::placeholder {
	color: var(--wp--preset--color--mute);
	opacity: 1;
}

/* Multi-column rows: the plugin uses .quform-element-row / -column. */
.quform .quform-element-row { margin-left: calc(var(--wp--preset--spacing--30) * -0.5); margin-right: calc(var(--wp--preset--spacing--30) * -0.5); }
.quform .quform-element-column { padding-left: calc(var(--wp--preset--spacing--30) * 0.5); padding-right: calc(var(--wp--preset--spacing--30) * 0.5); }

/* --- Image captcha ------------------------------------------------------ */

.quform .quform-element-captcha .quform-inner {
	background: var(--wp--preset--color--paper);
	border-left: 3px solid var(--wp--preset--color--teal);
	border-radius: 2px;
	padding: 1.1rem 1.35rem;
}

.quform .quform-element-captcha .quform-captcha-image img,
.quform .quform-element-captcha .quform-captcha-image {
	border-radius: 2px;
	background: var(--wp--preset--color--white);
}

.quform .quform-element-captcha .quform-field-captcha { max-width: 14rem; }

/* --- Submit ------------------------------------------------------------- */

.quform .quform-element-submit .quform-button-submit,
.quform .quform-element-submit button {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 600;
	line-height: 1.2;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--teal-deep);
	border: 1px solid var(--wp--preset--color--teal-deep);
	border-radius: 2px;
	padding: 0.9rem 1.75rem;
	cursor: pointer;
	box-shadow: none;
	text-shadow: none;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.quform .quform-element-submit .quform-button-submit:hover,
.quform .quform-element-submit button:hover {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
}

.quform .quform-loading-spinner { color: var(--wp--preset--color--mute); }

/* --- Validation --------------------------------------------------------- */
/* .quform-has-error is added to the element by quform.min.js on failure. */

.quform .quform-element.quform-has-error .quform-field {
	border-color: #A8322A;
	background-color: #FDF7F6;
}

.quform .quform-element .quform-error-inner,
.quform .quform-element .quform-error-text {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--xs);
	color: #A8322A;
	line-height: 1.5;
}

.quform .quform-element .quform-error-icon { color: #A8322A; }

/* --- Form-level messages ------------------------------------------------ */

.quform .quform-success-message,
.quform .quform-error-message {
	border: 1px solid var(--wp--preset--color--line);
	border-left-width: 3px;
	border-radius: 2px;
	padding: 1.15rem 1.35rem;
	margin-bottom: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--sm);
	line-height: 1.6;
}

.quform .quform-success-message {
	border-left-color: var(--wp--preset--color--teal);
	background: var(--wp--preset--color--teal-wash);
	color: var(--wp--preset--color--navy);
}

.quform .quform-success-message .quform-success-message-content :where(p):last-child { margin-bottom: 0; }
.quform .quform-success-message .quform-success-message-icon { color: var(--wp--preset--color--teal-deep); }

.quform .quform-error-message {
	border-left-color: #A8322A;
	background: #FBF0EF;
	color: #7A241E;
}

.quform .quform-error-message .quform-error-message-title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 700;
	color: #7A241E;
}

/* The honeypot element is hidden by the plugin itself via .quform-sr-only
   plus an inline style. Nothing is added here on purpose — overriding it
   risks making the trap visible. */


/* ---------------------------------------------------------------------------
   Insights posts
   --------------------------------------------------------------------------- */

/* Reference list. Numbered to match the [1]…[n] markers in the body, with the
   provenance of each source shown beneath the citation — primary, secondary or
   paywalled. That distinction is the point of the component, so it is styled
   rather than left to prose. */

.ipt-refs {
	border-top: 2px solid var(--wp--preset--color--ink);
	padding-top: 22px;
	margin-top: 8px;
}

.ipt-refs__title {
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	margin: 0 0 18px;
}

.ipt-refs ol {
	margin: 0;
	padding-left: 1.4em;
	list-style: decimal;
}

.ipt-refs li {
	margin-bottom: 16px;
	padding-left: 0.3em;
	font-size: 0.92rem;
	line-height: 1.62;
	color: var(--wp--preset--color--slate);
}

.ipt-refs li::marker {
	color: var(--wp--preset--color--teal-deep);
	font-weight: 700;
}

.ipt-refs .ipt-ref__cite { display: block; }

.ipt-refs .ipt-ref__status {
	display: block;
	margin-top: 4px;
	font-size: 0.8rem;
	color: var(--wp--preset--color--mute);
	font-style: italic;
}

.ipt-refs a { color: var(--wp--preset--color--teal-deep); }

/* Superscript reference markers in running text. */
.entry-content sup,
.wp-block-post-content sup {
	font-size: 0.68em;
	line-height: 0;
	font-weight: 700;
	color: var(--wp--preset--color--teal-deep);
	padding-left: 1px;
}

/* Pull quote used to set an outside voice apart from IPTREK's own. */
.ipt-pull {
	border-left: 3px solid var(--wp--preset--color--teal);
	background: var(--wp--preset--color--paper);
	padding: 26px 30px;
	margin: 40px 0;
}

.ipt-pull p {
	margin: 0;
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.14rem;
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
}

.ipt-pull cite {
	display: block;
	margin-top: 12px;
	font-style: normal;
	font-size: 0.84rem;
	color: var(--wp--preset--color--mute);
}

/* Post cards in the Insights archive. */
.ipt-postcard { height: 100%; }
.ipt-postcard .wp-block-post-title { margin-top: 6px; }
.ipt-postcard .wp-block-post-featured-image { margin-bottom: 18px; }
.ipt-postcard .wp-block-post-featured-image img { border-radius: 2px; }

@media (max-width: 600px) {
	.ipt-pull { padding: 20px 22px; margin: 30px 0; }
	.ipt-pull p { font-size: 1.04rem; }
}
