/* ==========================================================================
   ICRR theme: block styles and editor helpers (front-end layout lives in site.css)
   Tokens come from theme.json (--wp--preset--*). Only what theme.json can't
   express lives here. Matches the signed-off mockups in mockups/site-restyle.
   ========================================================================== */

:root {
	--icrr-navy: var(--wp--preset--color--navy);
	--icrr-blue: var(--wp--preset--color--blue);
	--icrr-aqua: var(--wp--preset--color--aqua);
	--icrr-line: var(--wp--preset--color--line);
	--icrr-soft: var(--wp--preset--color--soft);
	--icrr-muted: var(--wp--preset--color--muted);
	--icrr-measure: var(--wp--custom--measure, 38rem);
	--icrr-radius: var(--wp--custom--radius--card, 14px);
	--icrr-arch: var(--wp--custom--radius--arch, 120px);
	--icrr-ease: cubic-bezier(.2, .7, .2, 1);
	--icrr-fw-display: var(--wp--custom--font-weight--display, 600);
}

body { -webkit-font-smoothing: antialiased; }
h1, h2 { font-weight: var(--icrr-fw-display); }

/* --- Small label (eyebrow) ----------------------------------------------- */
.is-style-eyebrow, .icrr-eyebrow {
	font-family: var(--wp--preset--font-family--noto-sans) !important;
	font-size: var(--wp--preset--font-size--xs) !important;
	font-weight: 700 !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--icrr-aqua) !important;
	margin-bottom: .5rem !important;
}
.is-style-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.55; }

/* --- Calls to action: no rounded buttons -----------------------------------
   Default button = underlined link with an arrow; the underline thickens downwards
   and turns aqua on hover. "Block" style = square solid button for forms and the
   few calls that need weight. */
.wp-block-button__link { text-decoration: none !important; display: inline-flex; align-items: center; gap: .5em; padding: 0 0 6px !important; background: linear-gradient(var(--icrr-aqua), var(--icrr-aqua)) 0 100% / 100% 0 no-repeat !important; transition: background-size .4s var(--icrr-ease), color .25s; }
.wp-block-button__link::after { content: "→"; display: inline-block; transition: transform .25s; }
.wp-block-button__link:hover { background-size: 100% 3px !important; }
.wp-block-button__link:hover::after { transform: translateX(5px); }
.is-style-outline-white > .wp-block-button__link, .has-navy-background-color .wp-block-button__link, .icrr-hero .wp-block-button__link { color: #fff; }
.icrr-hero .wp-block-button:first-child .wp-block-button__link { color: var(--icrr-aqua); }
.icrr-hero .wp-block-buttons { gap: 36px; }
.is-style-block > .wp-block-button__link { background: var(--icrr-navy) !important; color: #fff; padding: 13px 22px !important; }
.is-style-block > .wp-block-button__link:hover { background: var(--icrr-blue) !important; }
.has-navy-background-color .is-style-block > .wp-block-button__link { background: var(--icrr-navy) !important; color: #fff; padding: 13px 22px !important; }
.icrr-header .wp-block-button__link { color: var(--icrr-navy); text-decoration-color: var(--icrr-aqua); font-size: 15px; }
.icrr-header .wp-block-button__link::after { content: none; }
.icrr-header .wp-block-button__link::before { content: ""; width: 8px; height: 8px; background: var(--icrr-aqua); }
.icrr-arrow-link { font-weight: 600; display: inline-flex; gap: .5em; align-items: center; text-decoration: none !important; padding-bottom: 6px; background: linear-gradient(var(--icrr-aqua), var(--icrr-aqua)) 0 100% / 100% 0 no-repeat; transition: background-size .4s var(--icrr-ease); }
.icrr-arrow-link::after { content: "→"; transition: transform .25s; }
.icrr-arrow-link:hover { background-size: 100% 3px; }
.icrr-arrow-link:hover::after { transform: translateX(4px); }

/* --- Images: square, curving on hover; arch shapes for banners ------------ */
.is-style-square-hover img { border-radius: 0; transition: border-radius .5s var(--icrr-ease); }
.is-style-square-hover:hover img, a:hover .is-style-square-hover img { border-radius: 56px 0 56px 0; }
.is-style-arch img { border-radius: var(--icrr-arch) var(--icrr-arch) var(--icrr-arch) 0; transition: border-radius .6s var(--icrr-ease); }
.is-style-arch:hover img { border-radius: var(--icrr-arch) var(--icrr-arch) 0 var(--icrr-arch); }
.is-style-arch-flip img { border-radius: 0 var(--icrr-arch) var(--icrr-arch) var(--icrr-arch); transition: border-radius .6s var(--icrr-ease); }
.is-style-arch-flip:hover img { border-radius: var(--icrr-arch) 0 var(--icrr-arch) var(--icrr-arch); }
@media (max-width: 900px) {
	.is-style-arch img, .is-style-arch-flip img, .is-style-arch:hover img, .is-style-arch-flip:hover img { border-radius: 64px 64px 64px 0; }
}

/* --- Cards and callouts --------------------------------------------------- */
.is-style-card { background: #fff; border: 1px solid var(--icrr-line); border-radius: var(--icrr-radius); padding: 1.25rem; transition: transform .25s, box-shadow .25s, border-color .25s; }
.is-style-card:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--card); border-color: #d6eef3; }
.is-style-card h3, .is-style-card h4 { font-family: var(--wp--preset--font-family--noto-sans); font-size: var(--wp--preset--font-size--minor); margin: .5rem 0 .375rem; }
.is-style-card p { font-size: var(--wp--preset--font-size--sm); line-height: 1.55; color: #4b5563; margin: 0; }
.is-style-callout { background: var(--wp--preset--color--aqua-50); border-left: 4px solid var(--icrr-aqua); border-radius: var(--icrr-radius); padding: 1.375rem 1.5rem; }
.is-style-callout p { color: var(--icrr-navy); font-size: var(--wp--preset--font-size--lead); margin: 0; }
.is-style-callout-navy { background: var(--icrr-navy); border-left: 4px solid var(--icrr-aqua); border-radius: var(--icrr-radius); padding: 1.375rem 1.5rem; color: #fff; }
.is-style-callout-navy p { color: #fff; font-size: var(--wp--preset--font-size--lead); margin: 0; }

/* --- Icons ---------------------------------------------------------------- */
.icrr-icon { display: block; width: 48px; height: 48px; color: var(--icrr-navy); --ic-wash: var(--icrr-aqua); --ic-wash-o: .42; }
.icrr-icon.is-sm { width: 32px; height: 32px; }
.icrr-icon.is-lg { width: 72px; height: 72px; --ic-stroke: 1.5; }
.icrr-icon.is-wash-purple { --ic-wash: var(--wp--preset--color--purple); --ic-wash-o: .3; }
.has-navy-background-color .icrr-icon, .icrr-dark .icrr-icon { color: #fff; --ic-wash-o: .6; }
.icrr-icon-block { line-height: 0; }

/* --- Stat row (key figures) ---------------------------------------------- */
.icrr-stats { gap: 14px !important; }
.icrr-stat { background: var(--icrr-soft); border: 1px solid var(--icrr-line); border-radius: var(--icrr-radius); padding: 18px 18px 16px !important; }
.icrr-stat .icrr-stat-figure { font-family: var(--wp--preset--font-family--livvic); font-weight: var(--icrr-fw-display); font-size: 2rem; line-height: 1.1; color: var(--icrr-navy); margin: 0; }
.icrr-stat p:not(.icrr-stat-figure) { font-size: var(--wp--preset--font-size--sm); line-height: 1.45; color: #4b5563; margin: 6px 0 0; }

/* --- Section navigation (left column on article pages) -------------------- */
.icrr-sidenav { position: sticky; top: 24px; font-size: 14px; }
.icrr-sidenav ol, .icrr-sidenav ul { list-style: none; padding: 0; margin: 0 0 28px; border-left: 2px solid var(--icrr-line); }
.icrr-sidenav li a { display: block; padding: 6px 0 6px 14px; margin-left: -2px; border-left: 2px solid transparent; color: var(--wp--preset--color--body); text-decoration: none; }
.icrr-sidenav li a:hover { color: var(--icrr-aqua); }
.icrr-sidenav li.is-current a, .icrr-sidenav li.current_page_item a { border-color: var(--icrr-aqua); color: var(--icrr-navy); font-weight: 600; }
@media (max-width: 900px) { .icrr-sidenav { position: static; } }
