/**
 * BERKE ICONOGRAPHY & VISUAL ACCENT SYSTEM v1.0 — canonical shell calibration.
 * berke-logical-layout: strict
 *
 * Meaning first: Aqua=water/service, Teal=diagnosis/maintenance,
 * Green=verified/result/contact, Amber=attention/risk, Navy=structure/info.
 * Text stays neutral; accents live primarily on icon/surface.
 */

/* Semantic tone variables can live on the icon itself or its parent. */
.berke-icon-tone--aqua {
	--berke-icon-fg: var(--berke-icon-aqua);
	--berke-icon-bg: var(--berke-icon-aqua-bg);
	--berke-icon-border: var(--berke-icon-aqua-border);
}
.berke-icon-tone--teal {
	--berke-icon-fg: var(--berke-icon-teal);
	--berke-icon-bg: var(--berke-icon-teal-bg);
	--berke-icon-border: var(--berke-icon-teal-border);
}
.berke-icon-tone--green {
	--berke-icon-fg: var(--berke-icon-green);
	--berke-icon-bg: var(--berke-icon-green-bg);
	--berke-icon-border: var(--berke-icon-green-border);
}
.berke-icon-tone--amber {
	--berke-icon-fg: var(--berke-icon-amber);
	--berke-icon-bg: var(--berke-icon-amber-bg);
	--berke-icon-border: var(--berke-icon-amber-border);
}
.berke-icon-tone--navy {
	--berke-icon-fg: var(--berke-icon-navy);
	--berke-icon-bg: var(--berke-icon-navy-bg);
	--berke-icon-border: var(--berke-icon-navy-border);
}

/* Reusable primitives for future pages. */
.berke-icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	color: var(--berke-icon-fg, var(--berke-icon-navy));
}
.berke-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: var(--berke-icon-stroke);
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}
.berke-icon--nav { width: var(--berke-icon-glyph-nav); height: var(--berke-icon-glyph-nav); }
.berke-icon--action { width: var(--berke-icon-glyph-action); height: var(--berke-icon-glyph-action); }
.berke-icon--section { width: var(--berke-icon-glyph-section); height: var(--berke-icon-glyph-section); }
.berke-icon--feature { width: var(--berke-icon-glyph-feature); height: var(--berke-icon-glyph-feature); }
.berke-icon-surface {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	color: var(--berke-icon-fg, var(--berke-icon-navy));
	background: var(--berke-icon-bg, var(--berke-icon-navy-bg));
	border: 1px solid var(--berke-icon-border, var(--berke-icon-navy-border));
	border-radius: var(--berke-radius-sm);
}

/* -------------------------------------------------------------------------
 * Header — restrained semantic accents + optical calibration.
 * ---------------------------------------------------------------------- */
body.berke-iconography-v1 .berke-navigation-item--services { --berke-icon-fg: var(--berke-icon-aqua); --berke-icon-bg: var(--berke-icon-aqua-bg); --berke-icon-border: var(--berke-icon-aqua-border); }
body.berke-iconography-v1 .berke-navigation-item--cooperation { --berke-icon-fg: var(--berke-icon-amber); --berke-icon-bg: var(--berke-icon-amber-bg); --berke-icon-border: var(--berke-icon-amber-border); }
body.berke-iconography-v1 .berke-navigation-item--about { --berke-icon-fg: var(--berke-icon-teal); --berke-icon-bg: var(--berke-icon-teal-bg); --berke-icon-border: var(--berke-icon-teal-border); }
body.berke-iconography-v1 .berke-navigation-item--contact { --berke-icon-fg: var(--berke-icon-green); --berke-icon-bg: var(--berke-icon-green-bg); --berke-icon-border: var(--berke-icon-green-border); }
body.berke-iconography-v1 .berke-navigation-item--projects { --berke-icon-fg: var(--berke-icon-navy); --berke-icon-bg: var(--berke-icon-navy-bg); --berke-icon-border: var(--berke-icon-navy-border); }

body.berke-iconography-v1 .berke-site-header .berke-nav-icon {
	color: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
	background: var(--berke-icon-bg, var(--berke-icon-navy-bg)) !important;
	border-color: var(--berke-icon-border, var(--berke-icon-navy-border)) !important;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.28) !important;
	transition: transform var(--berke-motion-duration-base) var(--berke-motion-ease-standard), color var(--berke-transition), background-color var(--berke-transition), border-color var(--berke-transition) !important;
}
body.berke-iconography-v1 .berke-site-header .berke-nav-icon--top { width: var(--berke-icon-surface-nav) !important; height: var(--berke-icon-surface-nav) !important; }
body.berke-iconography-v1 .berke-site-header .berke-nav-icon--top svg { width: var(--berke-icon-glyph-nav) !important; height: var(--berke-icon-glyph-nav) !important; }
body.berke-iconography-v1 .berke-site-header .berke-nav-icon--column svg { width: var(--berke-icon-glyph-action) !important; height: var(--berke-icon-glyph-action) !important; }
body.berke-iconography-v1 .berke-site-header .berke-nav-icon--item svg { width: var(--berke-icon-glyph-nav) !important; height: var(--berke-icon-glyph-nav) !important; }
body.berke-iconography-v1 .berke-site-header .berke-nav-icon svg,
body.berke-iconography-v1 .berke-header-tool svg,
body.berke-iconography-v1 .berke-mobile-tool__icon svg {
	fill: none;
	stroke: currentColor;
	stroke-width: var(--berke-icon-stroke) !important;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Service-family meaning in the mega menu. */
body.berke-iconography-v1 .berke-mega-menu__column--sky { --berke-icon-fg: var(--berke-icon-aqua); --berke-icon-bg: var(--berke-icon-aqua-bg); --berke-icon-border: var(--berke-icon-aqua-border); }
body.berke-iconography-v1 .berke-mega-menu__column--aqua { --berke-icon-fg: var(--berke-icon-teal); --berke-icon-bg: var(--berke-icon-teal-bg); --berke-icon-border: var(--berke-icon-teal-border); }
body.berke-iconography-v1 .berke-mega-menu__column--indigo { --berke-icon-fg: var(--berke-icon-amber); --berke-icon-bg: var(--berke-icon-amber-bg); --berke-icon-border: var(--berke-icon-amber-border); }
body.berke-iconography-v1 .berke-mega-menu__column .berke-nav-icon { color: var(--berke-icon-fg) !important; background: var(--berke-icon-bg) !important; border-color: var(--berke-icon-border) !important; }

body.berke-iconography-v1 .berke-menu > li > a:hover .berke-nav-icon,
body.berke-iconography-v1 .berke-menu > li > a:focus-visible .berke-nav-icon,
body.berke-iconography-v1 .berke-mega-menu__trigger:hover .berke-nav-icon,
body.berke-iconography-v1 .berke-mega-menu__trigger:focus-visible .berke-nav-icon,
body.berke-iconography-v1 .berke-mega-menu__trigger[aria-expanded="true"] .berke-nav-icon,
body.berke-iconography-v1 .berke-mega-menu__list a:hover .berke-nav-icon,
body.berke-iconography-v1 .berke-mega-menu__list a:focus-visible .berke-nav-icon {
	transform: translateY(-1px);
}

body.berke-iconography-v1 .berke-header-tool,
body.berke-iconography-v1 .berke-mobile-tool__icon {
	color: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
	background: var(--berke-icon-bg, var(--berke-icon-navy-bg)) !important;
	border-color: var(--berke-icon-border, var(--berke-icon-navy-border)) !important;
}
body.berke-iconography-v1 .berke-header-tool svg,
body.berke-iconography-v1 .berke-mobile-tool__icon svg { width: var(--berke-icon-glyph-action) !important; height: var(--berke-icon-glyph-action) !important; }
body.berke-iconography-v1 .berke-header-tool:hover {
	color: #fff !important;
	background: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
	border-color: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
}
body.berke-iconography-v1 .berke-header-tool:focus-visible {
	color: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
	background: var(--berke-icon-bg, var(--berke-icon-navy-bg)) !important;
	border-color: var(--berke-icon-fg, var(--berke-icon-navy)) !important;
	outline: 3px solid rgba(75,184,221,.34) !important;
	outline-offset: 2px !important;
}

body.berke-iconography-v1 .berke-header-cta__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 1.85rem;
	height: 1.85rem;
	color: #fff;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.16);
	border-radius: .58rem;
	transition: transform var(--berke-transition), background-color var(--berke-transition);
}
body.berke-iconography-v1 .berke-header-cta__icon svg {
	width: 1rem;
	height: 1rem;
	fill: none;
	stroke: currentColor;
	stroke-width: var(--berke-icon-stroke-compact);
	stroke-linecap: round;
	stroke-linejoin: round;
}
body.berke-iconography-v1 .berke-header-cta:hover .berke-header-cta__icon,
body.berke-iconography-v1 .berke-header-cta:focus-visible .berke-header-cta__icon,
body.berke-iconography-v1 .berke-mobile-cta:hover .berke-header-cta__icon,
body.berke-iconography-v1 .berke-mobile-cta:focus-visible .berke-header-cta__icon {
	transform: translateY(-1px);
	background: rgba(255,255,255,.18);
}

/* -------------------------------------------------------------------------
 * Footer — semantic diversity with calibrated glyph/surface size.
 * ---------------------------------------------------------------------- */
body.berke-iconography-v1 .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon,
body.berke-iconography-v1 .berke-footer-brand__promise > span,
body.berke-iconography-v1 .berke-footer-scope-list li > span {
	color: var(--berke-icon-fg, #a8e4f4) !important;
	border-color: var(--berke-icon-border, rgba(75,184,221,.18)) !important;
	transition: transform var(--berke-transition), background-color var(--berke-transition), border-color var(--berke-transition) !important;
}
body.berke-iconography-v1 .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon {
	width: var(--berke-icon-surface-footer) !important;
	height: var(--berke-icon-surface-footer) !important;
}
body.berke-iconography-v1 .berke-footer-principle__icon svg,
body.berke-iconography-v1 .berke-footer-contact__icon svg {
	width: var(--berke-icon-glyph-footer) !important;
	height: var(--berke-icon-glyph-footer) !important;
	fill: none;
	stroke: currentColor;
	stroke-width: var(--berke-icon-stroke) !important;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Dark footer gets lighter foreground tones for reliable graphical contrast. */
body.berke-iconography-v1 .berke-site-footer .berke-icon-tone--aqua { --berke-icon-fg: #75d0e7; --berke-icon-border: rgba(117,208,231,.22); }
body.berke-iconography-v1 .berke-site-footer .berke-icon-tone--teal { --berke-icon-fg: #79d4c5; --berke-icon-border: rgba(121,212,197,.22); }
body.berke-iconography-v1 .berke-site-footer .berke-icon-tone--green { --berke-icon-fg: #91d6ac; --berke-icon-border: rgba(145,214,172,.22); }
body.berke-iconography-v1 .berke-site-footer .berke-icon-tone--amber { --berke-icon-fg: #f0c47a; --berke-icon-border: rgba(240,196,122,.22); }
body.berke-iconography-v1 .berke-site-footer .berke-icon-tone--navy { --berke-icon-fg: #9fc0df; --berke-icon-border: rgba(159,192,223,.22); }

body.berke-iconography-v1 .berke-icon-tone--aqua .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon.berke-icon-tone--aqua,
body.berke-iconography-v1 .berke-footer-scope-list .berke-icon-tone--aqua > span { background: rgba(75,184,221,.11) !important; }
body.berke-iconography-v1 .berke-icon-tone--teal .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon.berke-icon-tone--teal,
body.berke-iconography-v1 .berke-footer-scope-list .berke-icon-tone--teal > span { background: rgba(72,190,170,.11) !important; }
body.berke-iconography-v1 .berke-icon-tone--green .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon.berke-icon-tone--green,
body.berke-iconography-v1 .berke-footer-brand__promise.berke-icon-tone--green > span { background: rgba(93,190,135,.11) !important; }
body.berke-iconography-v1 .berke-icon-tone--amber .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact__icon.berke-icon-tone--amber,
body.berke-iconography-v1 .berke-footer-scope-list .berke-icon-tone--amber > span { background: rgba(224,166,67,.11) !important; }
body.berke-iconography-v1 .berke-footer-contact__icon.berke-icon-tone--navy { background: rgba(133,172,211,.11) !important; }

body.berke-iconography-v1 .berke-footer-principle:hover .berke-footer-principle__icon,
body.berke-iconography-v1 .berke-footer-contact li:hover .berke-footer-contact__icon,
body.berke-iconography-v1 .berke-footer-guides a:hover .berke-footer-link-arrow,
body.berke-iconography-v1 .berke-footer-guides a:focus-visible .berke-footer-link-arrow { transform: translateY(-1px); }

/* Canonical shell type floor remains enforced after historical layers. */
body.berke-iconography-v1 .berke-mobile-tool { font-size: var(--berke-type-control) !important; font-weight: 700 !important; }
body.berke-iconography-v1 .berke-footer-principle strong { font-size: var(--berke-type-small) !important; line-height: var(--berke-leading-compact) !important; }
body.berke-iconography-v1 .berke-footer-principle > div > span { font-size: var(--berke-type-caption) !important; line-height: var(--berke-leading-compact) !important; }

/* Tablet/mobile: same semantics, quieter surfaces and lower motion density. */
@media (max-width: 63.999rem) {
	body.berke-iconography-v1 .berke-header-cta__icon { width: 1.75rem; height: 1.75rem; }
	body.berke-iconography-v1 .berke-site-header .berke-nav-icon { box-shadow: none !important; }
}
@media (max-width: 47.999rem) {
	body.berke-iconography-v1 .berke-site-header .berke-nav-icon--top { width: 1.9rem !important; height: 1.9rem !important; }
	body.berke-iconography-v1 .berke-site-header .berke-nav-icon--top svg { width: 1.05rem !important; height: 1.05rem !important; }
	body.berke-iconography-v1 .berke-footer-principle__icon,
	body.berke-iconography-v1 .berke-footer-contact__icon { width: 2.35rem !important; height: 2.35rem !important; }
}

@media (prefers-reduced-motion: reduce) {
	body.berke-iconography-v1 .berke-site-header .berke-nav-icon,
	body.berke-iconography-v1 .berke-header-tool,
	body.berke-iconography-v1 .berke-header-cta__icon,
	body.berke-iconography-v1 .berke-footer-principle__icon,
	body.berke-iconography-v1 .berke-footer-contact__icon,
	body.berke-iconography-v1 .berke-footer-brand__promise > span,
	body.berke-iconography-v1 .berke-footer-scope-list li > span,
	body.berke-iconography-v1 .berke-footer-link-arrow { transition: none !important; transform: none !important; }
}
