/* ICAEPA THEME: tokens, base, layout, header, footer. Built by MEGAONE. */
:root {
	/* Brand (ICAEPA logo palette). Change colours here only. */
	--icaepa-primary: #13779f;
	--icaepa-primary-dark: #1a5269;
	--icaepa-ink: #20313a;
	--icaepa-sky: #21b7f0;
	--icaepa-sky-soft: #e8f6fc;
	--icaepa-text: #33454f;
	--icaepa-muted: #5b6e78;
	--icaepa-surface: #ffffff;
	--icaepa-bg: #f6f9fb;
	--icaepa-border: #dce6eb;
	--icaepa-success: #1b7f4d;
	--icaepa-warning: #9a6700;
	--icaepa-danger: #b42318;
	--icaepa-info: #13779f;
	--icaepa-focus: #0b97ce;

	--icaepa-font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--icaepa-font-head: "Source Serif 4", Georgia, "Times New Roman", serif;

	--icaepa-radius: 10px;
	--icaepa-radius-lg: 18px;
	--icaepa-shadow-sm: 0 1px 2px rgba(32, 49, 58, .06), 0 1px 3px rgba(32, 49, 58, .08);
	--icaepa-shadow-md: 0 6px 20px rgba(32, 49, 58, .09);
	--icaepa-shadow-lg: 0 18px 44px rgba(32, 49, 58, .14);
	--icaepa-ease: .2s ease;
	--icaepa-gutter: clamp(1rem, 4vw, 2rem);
	--icaepa-section: clamp(3rem, 7vw, 5.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body.icaepa {
	margin: 0;
	background: var(--icaepa-surface);
	color: var(--icaepa-text);
	font-family: var(--icaepa-font-body);
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
.icaepa img, .icaepa svg { max-width: 100%; height: auto; }
.icaepa a { color: var(--icaepa-primary); text-underline-offset: .18em; transition: color var(--icaepa-ease); }
.icaepa a:hover { color: var(--icaepa-primary-dark); }
.icaepa h1, .icaepa h2, .icaepa h3, .icaepa h4 {
	font-family: var(--icaepa-font-head);
	color: var(--icaepa-ink);
	line-height: 1.2;
	margin: 0 0 .6em;
	font-weight: 600;
	letter-spacing: -.01em;
}
.icaepa h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); font-weight: 700; }
.icaepa h2 { font-size: clamp(1.7rem, 3.4vw, 2.3rem); }
.icaepa h3 { font-size: clamp(1.2rem, 2vw, 1.4rem); }
.icaepa p { margin: 0 0 1.1em; }
.icaepa :focus-visible { outline: 3px solid var(--icaepa-focus); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.icaepa-skip { position: absolute; left: 1rem; top: -4rem; z-index: 200; background: var(--icaepa-ink); color: #fff !important; padding: .7rem 1rem; border-radius: var(--icaepa-radius); }
.icaepa-skip:focus { top: 1rem; }

.icaepa-container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: var(--icaepa-gutter); }
.icaepa-container--narrow { max-width: 820px; }
.icaepa-section { padding-block: var(--icaepa-section); }
.icaepa-section--tint { background: var(--icaepa-bg); }
.icaepa-section--sky { background: var(--icaepa-sky-soft); }
.icaepa-section--dark { background: var(--icaepa-primary-dark); color: #e7f1f5; }
.icaepa-section--dark h2, .icaepa-section--dark h3 { color: #fff; }
.icaepa-main:focus { outline: none; }

/* Header */
.icaepa-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--icaepa-border); }
.admin-bar .icaepa-header { top: 32px; }
.icaepa-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 72px; }
.icaepa-brand { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--icaepa-ink) !important; }
.icaepa-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.icaepa-brand__name { font-family: var(--icaepa-font-head); font-weight: 700; font-size: 1.35rem; letter-spacing: .02em; }
.icaepa-brand__sub { font-size: .72rem; color: var(--icaepa-muted); letter-spacing: .04em; text-transform: uppercase; }
.icaepa-logo img, .icaepa-logo .custom-logo { width: auto; height: 44px; display: block; }
.icaepa-logo--mark { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--icaepa-primary); color: #fff; font-family: var(--icaepa-font-head); font-weight: 700; font-size: 1.4rem; }
.icaepa-nav { display: flex; align-items: center; gap: 1.5rem; }
.icaepa-menu { display: flex; align-items: center; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.icaepa-menu a { display: block; padding: .55rem .85rem; border-radius: 8px; color: var(--icaepa-ink); text-decoration: none; font-weight: 500; font-size: .95rem; }
.icaepa-menu a:hover, .icaepa-menu [aria-current="page"], .icaepa-menu .current-menu-item > a { background: var(--icaepa-sky-soft); color: var(--icaepa-primary-dark); }
.icaepa-menu li { position: relative; }
.icaepa-menu .sub-menu { position: absolute; left: 0; top: 100%; min-width: 220px; list-style: none; margin: 0; padding: .5rem; background: #fff; border: 1px solid var(--icaepa-border); border-radius: var(--icaepa-radius); box-shadow: var(--icaepa-shadow-md); display: none; }
.icaepa-menu li:hover > .sub-menu, .icaepa-menu li:focus-within > .sub-menu { display: block; }
.icaepa-navtoggle { display: none; background: transparent; border: 1px solid var(--icaepa-border); border-radius: 10px; padding: .55rem; color: var(--icaepa-ink); cursor: pointer; }

@media (max-width: 960px) {
	.icaepa-navtoggle { display: inline-flex; }
	.icaepa-nav { position: absolute; inset: 100% 0 auto 0; flex-direction: column; align-items: stretch; gap: 1rem; padding: 1rem var(--icaepa-gutter) 1.5rem; background: #fff; border-bottom: 1px solid var(--icaepa-border); box-shadow: var(--icaepa-shadow-md); display: none; max-height: calc(100vh - 72px); overflow-y: auto; }
	.icaepa-nav.is-open { display: flex; }
	.icaepa-menu { flex-direction: column; align-items: stretch; }
	.icaepa-menu a { padding: .8rem .5rem; }
	.icaepa-menu .sub-menu { position: static; display: block; box-shadow: none; border: 0; padding: 0 0 0 1rem; }
}
@media (max-width: 782px) { .admin-bar .icaepa-header { top: 46px; } }

/* Footer */
.icaepa-footer { background: var(--icaepa-ink); color: #c7d5dc; }
.icaepa-footer a { color: #e7f1f5; text-decoration: none; }
.icaepa-footer a:hover { color: var(--icaepa-sky); text-decoration: underline; }
.icaepa-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2.5rem; padding-block: 4rem 3rem; }
.icaepa-footer__title { font-family: var(--icaepa-font-body) !important; font-size: .8rem !important; letter-spacing: .12em; text-transform: uppercase; color: #fff !important; margin-bottom: 1rem !important; font-weight: 600 !important; }
.icaepa-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.icaepa-footer__address { font-style: normal; display: grid; gap: .25rem; }
.icaepa-brand--light, .icaepa-brand--light .icaepa-brand__name { color: #fff !important; }
.icaepa-footer__about p { margin-top: 1rem; max-width: 36ch; }
.icaepa-footer__bar { border-top: 1px solid rgba(255, 255, 255, .12); font-size: .875rem; }
.icaepa-footer__barinner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 1.5rem; padding-block: 1.25rem; }
.icaepa-footer__barinner p { margin: 0; }
.icaepa-footer__legal { display: flex; gap: 1.25rem; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
@media (max-width: 800px) { .icaepa-footer__grid { grid-template-columns: 1fr; gap: 2rem; padding-block: 3rem 2rem; } }

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