/*
Theme Name: IEL Care Site
Description: Responsive IEL Care theme.
Version: 0.2.3
Text Domain: iel-care-site
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;scroll-padding-top:90px;scrollbar-gutter:stable}
.publication-default-cover-image{filter:brightness(.35)}
body{margin:0;color:var(--iel-color-ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.7;word-break:keep-all;overflow-wrap:break-word}
img{max-width:100%;height:auto}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--iel-color-focus);outline-offset:5px}[hidden]{display:none!important}h1,h2,h3,h4,p{margin-top:0}button{color:inherit}ul{padding-left:1.3em}.screen-reader-text,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:20px;top:-100px;z-index:1000;background:var(--iel-color-white);padding:10px 20px}.skip-link:focus{top:10px}.iel-container{width:min(1266px,calc(100% - 48px));margin-inline:auto}
.site-header{position:fixed;z-index:50;top:calc(8px + env(safe-area-inset-top,0px) + var(--nav-admin-offset));left:50%;transform:translateX(-50%);width:85.14586%;max-width:1634.801px;min-height:57px;padding:10px 46.766px;display:flex;align-items:center;border-radius:100px;background:transparent;isolation:isolate;color:#111;transition-property:none}.site-header::before{content:"";position:absolute;z-index:0;inset:0;border-radius:inherit;background:rgba(255,255,255,.1);backdrop-filter:blur(50px);-webkit-backdrop-filter:blur(50px);transform:translateZ(0);pointer-events:none}.site-header>*{position:relative;z-index:1}.site-brand{display:flex;align-items:center;gap:12.56px;flex-shrink:0}.site-brand-mark{width:52.03px;height:25.565px;object-fit:contain}.site-brand span{font-size:13px;font-weight:600;line-height:16px}.primary-navigation{display:flex;margin-left:auto;gap:57.78px;align-items:center;font-size:16px;font-weight:500;line-height:normal}.primary-navigation a{white-space:nowrap}.header-search{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:34.443px;height:34.443px;border-radius:3px;background:rgba(0,0,0,.2);text-decoration:none}.header-search::before{content:"";position:absolute;left:-33.938px;top:6px;height:20.4px;border-left:1px solid currentColor;opacity:.2;pointer-events:none}.header-search svg{display:block;flex:none}.header-search-label{display:none}.header-search:hover{background:rgba(0,0,0,.25);text-decoration:none}.menu-toggle{display:none}.site-footer{background:#171717;color:#b9b9b9;padding:110px max(24px,8.6vw) 280px}.footer-content{display:grid;grid-template-columns:1fr 125px 155px;gap:32px;max-width:1590px;margin:auto}.footer-logo{display:block;width:254px;height:36px;object-fit:contain;object-position:left;margin-bottom:40px}.footer-company address{font-style:normal;font-size:14px;line-height:1.7}.site-footer h2{font-size:16px;line-height:1.5;font-weight:400;color:#fff;margin:0 0 10px}.site-footer ul{list-style:none;margin:0;padding:0}.site-footer li{font-size:16px;line-height:1.5;color:#949494}.site-footer button{padding:0;border:0;background:none;text-align:left;font:inherit;color:inherit}.footer-copyright{max-width:1590px;margin:40px auto 0;padding-top:15px;border-top:1px solid #444;font-size:13px;color:#949494}.pending-dialog{border:0;border-radius:20px;padding:38px;max-width:calc(100% - 40px);box-shadow:0 20px 100px #0003;text-align:center}.pending-dialog::backdrop{background:#0007}.pending-dialog h2{font-size:23px;font-weight:500}.pending-dialog button{border:0;border-radius:30px;background:#FF0000;color:#fff;padding:10px 34px}.pending-dialog form{margin:0}body:not(.home) main{max-width:1266px;margin:0 auto;padding:130px 24px 80px;min-height:60vh}
@media(max-width:1100px) and (min-width:769px){.site-header{width:94%;padding-inline:25px}.primary-navigation{gap:36px}.header-search::before{left:-18px}}
@media(max-width:768px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){html{scroll-padding-top:76px}.iel-container{width:calc(100% - 48px)}.site-header{width:calc(100% - 32px);min-height:51.635px;padding:10px 19.227px;background:transparent}.site-header::before{background:rgba(255,255,255,.2)}.site-brand{gap:5.614px;margin-right:auto}.site-brand-mark{width:38.534px;height:21.61px;align-self:center}.site-brand span{font-size:9px;font-weight:800;line-height:11px;align-self:center}.menu-toggle{position:relative;display:block;width:38px;height:31.635px;background:none;border:0;padding:0}.menu-stroke{position:absolute;right:0;height:2px}.menu-stroke-long{width:20.066px;top:6.44px}.menu-stroke-short{width:12.718px;top:13.03px}.primary-navigation{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;border-radius:22px;background:#fff;padding:16px 24px;box-shadow:0 10px 30px #0002;font-size:16px}.primary-navigation.is-open{display:flex}.primary-navigation a{padding:11px 0}.primary-navigation .header-search{display:flex;width:100%;height:auto;min-height:44px;gap:10px;background:transparent;border-radius:0;border-top:1px solid #e8e8e8;margin-top:8px;justify-content:flex-start}.header-search::before{display:none}.header-search-label{display:inline}.site-footer{padding:72px 24px 56px}.footer-content{grid-template-columns:1fr 1fr;gap:80px 15px}.footer-company{grid-column:1/-1}.footer-logo{width:168px;height:24px;margin-bottom:25px}.footer-company address{font-size:14px}.footer-copyright{margin-top:55px;padding-top:13px}.site-footer li,.site-footer h2{font-size:16px}.site-footer{padding-bottom:210px}}
@media(max-width:767px){html{scrollbar-gutter:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@font-face{font-family:Pretendard;font-style:normal;font-weight:100 900;font-display:optional;src:url('assets/fonts/PretendardSite.woff2') format('woff2')}
.primary-menu{display:flex;align-items:center;gap:31.62px;list-style:none;margin:0;padding:0}
@media(max-width:1100px) and (min-width:769px){.primary-menu{gap:20px}}
@media(max-width:768px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){.primary-menu{display:flex;flex-direction:column;align-items:stretch;gap:0}.primary-menu a{display:block}}
@media(min-width:769px) and (max-width:900px){.site-header{padding-inline:20px}.primary-navigation,.primary-menu{gap:14px;font-size:14px}.site-brand{gap:8px}.site-brand-mark{width:43px;height:26px}.site-brand span{font-size:11px}.primary-navigation{gap:30px}.header-search::before{left:-15px}}
/* Keep feedback on the actionable element, including image-backed controls. */
:where(a[href],button,summary):not(.iel-faq-summary):not(.detail-action):not(:disabled):not([aria-disabled="true"]){transition:filter var(--iel-motion-fast) ease,background-color var(--iel-motion-fast) ease,color var(--iel-motion-fast) ease;text-underline-offset:.2em}
@media(hover:hover){
 :where(a[href],button,summary):not(.iel-faq-summary):not(.detail-action):not(.directional-control):not(.upper-contact-options a):not(:disabled):not([aria-disabled="true"]):hover{filter:brightness(.88)}
 :where(.site-footer a,.site-footer button,.lower-address a):not(:disabled):not([aria-disabled="true"]):hover{text-decoration:underline}
 summary:not(.iel-faq-summary):not([aria-disabled="true"]):hover{background-color:rgb(0 0 0 / 4%)}
}

/* Canonical quick-contact styles live in assets/css/quick-contact.css. */
@media(hover:hover) and (pointer:fine){
 :where(.primary-navigation a):not(:disabled):not([aria-disabled="true"]):hover{text-decoration:underline}
 .menu-toggle:not(:disabled):not([aria-disabled="true"]):hover .menu-stroke{opacity:.7}
}
:where(a[href],button,summary):not(:disabled):not([aria-disabled="true"]):focus-visible{outline:3px solid #a32424;outline-offset:5px}
@media(prefers-reduced-motion:reduce){:where(a[href],button,summary){transition:none!important}}
/* Disclosure navigation: registered parent links remain independently navigable. */
.navigation-disclosure{position:relative;display:flex;align-items:center;gap:7px}
.navigation-submenu-toggle{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:inherit;font:inherit;white-space:nowrap;cursor:pointer}
.navigation-submenu-toggle-icon{padding:8px 2px}
.navigation-chevron{display:block;flex:none;width:13px;height:8px;transform:rotate(90deg);transition:transform var(--iel-motion-fast) ease}
.navigation-submenu-toggle[aria-expanded="true"] .navigation-chevron{transform:rotate(270deg)}
.primary-navigation .sub-menu{position:absolute;top:calc(100% + 18px);left:-20px;min-width:200px;list-style:none;margin:0;padding:10px;border-radius:14px;background:#fff;color:#111;box-shadow:0 10px 30px #0002}
.primary-navigation .sub-menu[hidden]{display:none}
.primary-navigation .sub-menu a{display:block;padding:12px 14px;border-radius:8px;font-size:15px}
@media(min-width:769px) and (hover:hover) and (pointer:fine){.primary-navigation .sub-menu a:hover{background:#f5f5f5}}
@media(max-width:768px) and (hover:hover) and (pointer:fine){.navigation-submenu-toggle:not(.navigation-submenu-toggle-icon):not(:disabled):not([aria-disabled="true"]):hover{text-decoration:underline}}
@media(max-width:768px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){.navigation-disclosure{flex-wrap:wrap;gap:0}.navigation-disclosure>a{flex:1}.navigation-submenu-toggle{padding:11px 0}.navigation-submenu-toggle-icon{min-width:44px;min-height:44px;justify-content:center}.primary-navigation .sub-menu{position:static;flex-basis:100%;min-width:0;padding:0 0 8px 12px;box-shadow:none;border-radius:0}.primary-navigation .sub-menu a{font-size:14px;padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.navigation-chevron{transition:none}}

/* Theme values describe foreground; retain the original translucent header surface. */
:root{--nav-admin-offset:0px;--nav-clearance:90px;--iel-panel-in:240ms;--iel-panel-out:180ms;--iel-panel-enter-ease:cubic-bezier(.22,1,.36,1);--iel-panel-exit-ease:cubic-bezier(.4,0,1,1)}
html{scroll-padding-top:var(--nav-clearance)}
body.admin-bar{--nav-admin-offset:32px}

.site-header[data-nav-foreground="light"]{color:#fff}
.site-header[data-nav-foreground],.site-header[data-nav-foreground] *{transition-property:none}
.site-header :is(.site-brand-mark,.menu-stroke,.search-circle,.search-handle){filter:brightness(0)}
.site-header[data-nav-foreground="light"] :is(.site-brand-mark,.menu-stroke,.search-circle,.search-handle){filter:brightness(0) invert(1)}
.site-header :is(a[href],button):hover{filter:none}
.site-header :is(a[href],button){color:inherit}
.site-header :is(a[href],button):focus-visible{outline-color:currentColor}
.site-header .sub-menu{max-height:calc(100dvh - var(--nav-clearance) - 32px);overflow-y:auto}
.skip-link:focus{top:calc(8px + var(--nav-admin-offset) + env(safe-area-inset-top,0px))}
@media(max-width:782px){body.admin-bar{--nav-admin-offset:46px}}

/* Quiet panel motion: only compact navigation surfaces use the shared
 * entrance/exit treatment. The header shell and its authored geometry stay
 * static so the panel feels like a calm extension of the existing surface. */
@keyframes iel-quiet-panel-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes iel-quiet-panel-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}
@keyframes iel-quiet-disclosure-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes iel-quiet-disclosure-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}

@media(max-width:768px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){
 :root{--nav-clearance:80px}
 .site-header .primary-navigation{top:calc(100% + 8px);color:#111;max-height:calc(100dvh - var(--nav-clearance) - 16px);overflow-y:auto;overscroll-behavior:contain}
 .site-header .sub-menu{max-height:none;overflow:visible}
}

/* Text flow shared by fixed design copy and editable content. */
.iel-design-copy{display:block;min-width:0;max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:break-word}
.iel-copy-segment{display:inline;min-width:0;max-width:100%}
.iel-design-copy>br.iel-break-both{display:revert}
@media(min-width:768px){.iel-design-copy>br.iel-break-desktop{display:revert}.iel-design-copy>.iel-copy-mobile,.iel-design-copy>br.iel-break-mobile{display:none}.iel-design-copy>.iel-copy-desktop{display:inline}}
@media(max-width:767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){.iel-design-copy>.iel-copy-desktop,.iel-design-copy>br.iel-break-desktop{display:none}.iel-design-copy>.iel-copy-mobile{display:inline}.iel-design-copy>br.iel-break-mobile{display:revert}}
:where(.upper-profile-copy,.directory-team-member-copy,.team-member-profile-introduction,.publication-card-copy){min-width:0}
:where(.upper-profile-copy,.directory-team-member-copy,.team-member-profile-intro,.team-member-profile-list,.lower-faq-answer,.publication-answer,.publication-article-body,.directory-case-study-summary,.lower-case-study-body){overflow-wrap:anywhere}

@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:optional;src:url('assets/fonts/InterSite.woff2') format('woff2')}
.footer-sitemap ul,.footer-social ul{font-family:Inter,Pretendard,sans-serif;font-optical-sizing:none}
.footer-company{min-width:0}.footer-company address{max-width:283px;overflow-wrap:anywhere}
.footer-legal{max-width:1590px;margin:40px auto 0;min-width:0}.footer-legal ul{display:flex;flex-wrap:wrap;gap:0 24px;margin:0;padding:0;list-style:none}.footer-legal li{min-width:0}.footer-legal a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}

/* Figma outer shadow for the shared top navigation bar. */
.site-header{box-shadow:0 5px 20px 0 rgba(0,0,0,.05)}

/* Official is a secondary external link; search shares the header foreground. */
.header-official{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:none;min-height:34.443px;padding:6px 0;border:0;border-radius:0;font-size:16px;font-weight:500;color:inherit;text-decoration:none}
.primary-navigation .header-official:hover,.primary-navigation .header-search:hover{text-decoration:none}
.site-header .header-official,.site-header .header-official:hover{background:transparent}
@media(min-width:769px){.primary-navigation{gap:28px}.header-search::before{left:-15px}.site-header .header-search,.site-header .header-search:hover{background:transparent}.header-search svg{color:inherit}}
@media(min-width:769px) and (max-width:1100px){.primary-navigation{gap:18px}.primary-menu{gap:18px}.header-search::before{left:-10px}}
@media(min-width:769px) and (max-width:900px){.site-header{width:calc(100% - 24px);padding-inline:16px}.primary-navigation,.primary-menu{gap:10px}.header-official{padding-inline:0}.header-search::before{left:-6px}}
@media(max-width:768px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){.primary-navigation .header-official{align-self:flex-start;padding:8px 0;min-height:44px;margin-top:8px}.site-header[data-nav-foreground] .primary-navigation .header-official:hover{background:transparent}}

/* BEGIN FIGMA TYPOGRAPHY */
@media(min-width:768px){
/* 418:745 */
.footer-copyright{font-size:13px;font-weight:400;line-height:1.5;letter-spacing:0em}
}
@media(max-width:767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px){
/* 445:849 */
.footer-copyright{font-size:15px;font-weight:400;line-height:1.7;letter-spacing:0em}
}
/* END FIGMA TYPOGRAPHY */

/* Quiet feedback preserves control geometry and photo crops. */
/* Directional and detail-action controls own their own feedback. */
/* Shared contact surfaces use the same lift feedback on every public route. */
.iel-hover-surface:not(.directional-control):not(.detail-action):not(.upper-profile-more):not(.lower-case-study-link):not(.directory-case-study-detail):not(.directory-team-member-link),
.upper-contact-options a,
.case-study-filter.is-active,
.publication-tabs a[aria-current],
.site-search-types a[aria-current],
.location-map-info-actions a,
.location-map-info-actions button {
	filter: none !important;
	transform-origin: center;
	transition: background-color var(--iel-motion-fast) var(--iel-motion-ease), color var(--iel-motion-fast) var(--iel-motion-ease), box-shadow var(--iel-motion-fast) var(--iel-motion-ease) !important;
}

.upper-contact-options a {
	transition: transform var(--iel-motion-contact) cubic-bezier(0, 0, .5, 1), background-color var(--iel-motion-fast) var(--iel-motion-ease), color var(--iel-motion-fast) var(--iel-motion-ease), box-shadow var(--iel-motion-contact) cubic-bezier(0, 0, .5, 1) !important;
}

@media (hover: hover) and (pointer: fine) {
	.iel-hover-surface:not(.directional-control):not(.detail-action):not(.upper-profile-more):not(.lower-case-study-link):not(.directory-case-study-detail):not(.directory-team-member-link):not(.quick-contact-item):not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover,
	.upper-contact-options a:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover,
	.case-study-filter.is-active:not(.is-disabled):not([aria-disabled="true"]):hover,
	.publication-tabs a[aria-current]:not(.is-disabled):not([aria-disabled="true"]):hover,
	.site-search-types a[aria-current]:not(.is-disabled):not([aria-disabled="true"]):hover,
	.location-map-info-actions a:not(.is-disabled):not([aria-disabled="true"]):hover,
	.location-map-info-actions button:not(:disabled):not(.is-disabled):not([aria-disabled="true"]):hover {
		filter: none !important;
		transform: none;
		box-shadow: 2px 4px 16px rgb(0 0 0 / 16%);
	}

	.upper-contact-options a:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover {
		transform: scale(1.01);
	}
}

@media (prefers-reduced-motion: reduce) {
	.iel-hover-surface:not(.directional-control):not(.detail-action):not(.upper-profile-more):not(.lower-case-study-link):not(.directory-case-study-detail):not(.directory-team-member-link),
	.upper-contact-options a,
	.case-study-filter.is-active,
	.publication-tabs a[aria-current],
	.site-search-types a[aria-current],
	.location-map-info-actions a,
	.location-map-info-actions button {
		transition: none !important;
	}

	.iel-hover-surface:not(.directional-control):not(.detail-action):not(.upper-profile-more):not(.lower-case-study-link):not(.directory-case-study-detail):not(.directory-team-member-link):hover,
	.upper-contact-options a:not(:disabled):not([aria-disabled="true"]):not(.is-disabled):hover,
	.case-study-filter.is-active:hover,
	.publication-tabs a[aria-current]:hover,
	.site-search-types a[aria-current]:hover,
	.location-map-info-actions a:hover,
	.location-map-info-actions button:hover {
		transform: none !important;
	}
}

/*
 * Responsive shell guardrails.
 * Keep the navigation in one layout from 768px through the tablet range so
 * the 768/769 boundary cannot swap a compressed desktop bar for a mobile bar.
 * The mobile disclosure remains available through the existing <=768 rules;
 * the explicit <=767 override below makes the three shell ranges intentional.
 */
.site-header,
.primary-navigation,
.primary-menu,
.footer-content,
.footer-company,
.footer-sitemap,
.footer-social {
	min-width: 0;
}

.site-header {
	width: min(85.14586%, calc(100% - 32px));
	padding-inline: clamp(16px, 3.05vw, 46.766px);
}

.primary-navigation {
	flex: 1 1 auto;
	justify-content: flex-end;
	min-width: 0;
}

.primary-menu {
	min-width: 0;
}

@media (min-width: 1200px) {
	.primary-menu {
		flex: 0 1 auto;
	}
}

/* Tablet: retain the full navigation/search behavior without squeezing it. */
@media (min-width: 768px) and (max-width: 1199px) {
	html {
		scroll-padding-top: 90px;
	}

	.site-header {
		width: calc(100% - 32px);
		min-height: 57px;
		padding-inline: clamp(16px, 3vw, 32px);
	}

	.site-brand {
		gap: clamp(8px, 1.25vw, 12.56px);
		height: auto;
		margin-right: 0;
		transform: none;
	}

	.site-brand-mark {
		width: clamp(43px, 4.35vw, 52.03px);
		height: 26px;
		align-self: center;
	}

	.site-brand span {
		align-self: center;
		font-size: clamp(13px, 1.35vw, 16px);
		font-weight: 600;
		line-height: 16px;
	}

	.primary-navigation,
	.header-official {
		font-size: clamp(13px, 1.35vw, 16px);
	}

	/* Cancel the <=768 mobile menu geometry at exactly 768px. */
	.menu-toggle {
		display: none;
	}

	.site-header .primary-navigation {
		position: static;
		display: flex;
		flex: 1 1 auto;
		flex-direction: row;
		align-items: center;
		gap: clamp(10px, 2.15vw, 28px);
		padding: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		max-height: none;
		overflow: visible;
		color: inherit;
	}

	.site-header .primary-menu {
		display: flex;
		flex: 0 1 auto;
		flex-direction: row;
		align-items: center;
		gap: clamp(8px, 1.55vw, 18px);
	}

	.site-header .primary-navigation a {
		padding: 0;
	}

	.site-header .primary-navigation .header-official {
		align-self: center;
		min-height: 44px;
		margin-top: 0;
		padding: 8px 0;
		white-space: nowrap;
	}

	.site-header .primary-navigation .header-search {
		width: 44px;
		height: 44px;
		min-height: 44px;
		margin-top: 0;
		padding: 0;
		border-top: 0;
		background: transparent;
		border-radius: 3px;
		justify-content: center;
	}

	.site-header .header-search::before {
		left: clamp(-10px, -1vw, -6px);
		top: 12px;
		height: 20px;
	}

	.site-header .header-search-label {
		display: none;
	}

	.site-header .navigation-disclosure {
		flex-wrap: nowrap;
		gap: 3px;
	}

	.site-header .navigation-disclosure > a {
		flex: 0 1 auto;
	}

	.site-header .navigation-submenu-toggle {
		min-width: 32px;
		min-height: 44px;
		padding: 8px 2px;
		justify-content: center;
	}

	.site-header .primary-navigation .sub-menu {
		position: absolute;
		left: -20px;
		min-width: 200px;
		padding: 10px;
		border-radius: 14px;
		box-shadow: 0 10px 30px #0002;
	}

	.site-footer {
		padding: 88px clamp(24px, 5vw, 72px) 160px;
	}

	.footer-content {
		grid-template-columns: minmax(0, 1fr) minmax(110px, 140px) minmax(110px, 140px);
		gap: 32px clamp(20px, 3vw, 48px);
	}

	.footer-company {
		grid-column: auto;
	}

	.footer-logo {
		width: min(254px, 100%);
		height: auto;
		aspect-ratio: 254 / 36;
	}

	.footer-copyright {
		margin-top: 40px;
	}
}

/* Mobile endpoint also covers touch WebViews that expose a wider layout viewport. */
@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
	.site-header {
		width: calc(100% - 32px);
		padding-inline: 19.227px;
	}

	/* Expand only the hit area; retain the existing two-stroke glyph offsets. */
	.site-header .menu-toggle {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}

	.site-footer {
		padding-bottom: max(72px, calc(72px + env(safe-area-inset-bottom, 0px)));
	}

	.footer-content {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 48px 16px;
	}

	.footer-logo {
		width: min(168px, 100%);
		height: auto;
		aspect-ratio: 254 / 36;
	}

	.site-footer > p:not(.footer-copyright) {
		margin: 32px 0 0;
	}
}

/*
 * Global header alignment contract.
 *
 * Keep this block last: older endpoint rules above are retained for unrelated
 * pages, while this block is the single responsive owner for the shared pill.
 * The grid keeps the primary menu, external link, and search hit area on one
 * explicit horizontal line instead of distributing free space between peers.
 */
:root {
	--header-fit-floor: 720px;
	--header-fit-buffer: 16px;
	--header-menu-gap: clamp(18px, 1.647vw, 31.62px);
	--header-menu-action-gap: clamp(20px, 1.76vw, 33.81px);
	--header-official-search-gap: clamp(32px, 3.49vw, 67.02px);
}

.site-header {
	width: min(85.14586%, 1634.801px);
	max-width: 1634.801px;
	padding-inline: clamp(23.4px, 3.05vw, 46.766px);
	display: flex;
	align-items: center;
}

@media (min-width: 768px) {
	.site-header {
		background: rgba(255, 255, 255, 0.1);
	}
}

.site-header .site-brand {
	flex: 0 0 auto;
	margin-inline-end: 0;
}

.site-header .primary-navigation {
	position: static;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	flex: 1 1 auto;
	min-width: 0;
	margin-inline-start: auto;
	gap: 0;
	padding: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	max-height: none;
	overflow: visible;
	color: inherit;
}

.site-header .primary-menu {
	grid-column: 1;
	justify-self: end;
	display: flex;
	flex: 0 1 auto;
	flex-direction: row;
	align-items: center;
	min-width: max-content;
	gap: var(--header-menu-gap);
	list-style: none;
	margin: 0 var(--header-menu-action-gap) 0 0;
	padding: 0;
}

.site-header .primary-navigation a {
	padding: 0;
	white-space: nowrap;
}

.site-header .primary-navigation .header-official {
	grid-column: 2;
	align-self: center;
	min-width: max-content;
	min-height: 44px;
	margin: 0 var(--header-official-search-gap) 0 0;
	padding: 8px 0;
	font-size: inherit;
	line-height: normal;
	white-space: nowrap;
}

.site-header .primary-navigation .header-search {
	grid-column: 3;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	margin: 0;
	padding: 0;
	background: transparent;
	border-radius: 3px;
	justify-content: center;
}

.site-header .primary-navigation .header-search::before {
	left: calc(var(--header-official-search-gap) / -2);
	top: 12px;
	height: 20px;
}

.site-header .primary-navigation .header-search-label {
	display: none;
}

/*
 * Desktop text boxes in the source frame are authored at whole-pixel widths.
 * The variable webfont resolves to fractional glyph widths, so give the five
 * top-level menu slots the same measured boxes while retaining the authored
 * 31.62px flex gap.  min-width:auto still lets an unusually long CMS label
 * grow the slot; the fit observer then promotes the header to compact mode.
 */
@media (min-width: 1200px) {
	.site-header .primary-menu > :nth-child(1),
	.site-header .primary-menu > :nth-child(2),
	.site-header .primary-menu > :nth-child(3),
	.site-header .primary-menu > :nth-child(4),
	.site-header .primary-menu > :nth-child(5) {
		display: flex;
		align-items: center;
		list-style: none;
		flex: 0 0 auto;
	}

	.site-header .primary-menu > :nth-child(1) {
		inline-size: 61.544px;
		flex-basis: 61.544px;
	}

	.site-header .primary-menu > :nth-child(2) {
		inline-size: 72.7394px;
		flex-basis: 72.7394px;
		letter-spacing: -0.077px;
	}

	.site-header .primary-menu > :nth-child(3) {
		inline-size: 57.2628px;
		flex-basis: 57.2628px;
		letter-spacing: -0.652px;
	}

	.site-header .primary-menu > :nth-child(4) {
		inline-size: 47.8644px;
		flex-basis: 47.8644px;
	}

	.site-header .primary-menu > :nth-child(4) .navigation-submenu-toggle {
		gap: 7.208px;
	}

	.site-header .primary-menu > :nth-child(5) {
		inline-size: 56.08594px;
		flex-basis: 56.08594px;
		word-spacing: -3.133px;
	}
}

.site-header .menu-toggle {
	display: none;
}

@media (min-width: 768px) and (max-width: 1199px) {
	.site-header {
		width: calc(66.145833vw + 228px);
	}

	.site-header .site-brand {
		gap: clamp(8px, 1.25vw, 12.56px);
		height: auto;
		transform: none;
	}

	.site-header .site-brand-mark {
		width: clamp(43px, 4.35vw, 52.03px);
		height: 26px;
		align-self: center;
	}

	.site-header .site-brand span,
	.site-header .primary-navigation,
	.site-header .header-official {
		font-size: clamp(13px, 1.35vw, 16px);
	}

	.site-header .site-brand span {
		align-self: center;
		font-weight: 600;
		line-height: 16px;
	}
}

/* Mobile is the no-JavaScript fallback; JavaScript may also set this mode at
 * any wider width when the authored labels no longer fit. */
@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
	.site-header {
		width: calc(100% - 32px);
		padding-inline: 19.227px;
	}

	.site-header .site-brand {
		gap: 5.614px;
		margin-inline-end: auto;
	}

	.site-header .site-brand-mark {
		width: 38.534px;
		height: 21.61px;
		align-self: center;
	}

	.site-header .site-brand span {
		align-self: center;
		font-size: 9px;
		font-weight: 800;
		line-height: 11px;
	}

	.site-header .menu-toggle {
		position: relative;
		display: block;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
		margin-inline-start: auto;
		padding: 0;
		border: 0;
		background: none;
	}

	.site-header .primary-navigation {
		display: none;
		position: absolute;
		top: calc(100% + 8px);
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		max-height: calc(100dvh - var(--nav-clearance) - 16px);
		overflow-y: auto;
		overscroll-behavior: contain;
		padding: 16px 19.227px;
		border-radius: 22px;
		background: #fff;
		box-shadow: 0 10px 30px #0002;
		color: #111;
	}

	.site-header .primary-navigation.is-open {
		display: flex;
		animation: iel-quiet-panel-in var(--iel-panel-in) var(--iel-panel-enter-ease) both;
	}

	.site-header .primary-navigation.is-closing {
		display: flex;
		pointer-events: none;
		animation: iel-quiet-panel-out var(--iel-panel-out) var(--iel-panel-exit-ease) both;
	}
}

/* Content-fit compact mode.  This selector intentionally outranks both the
 * legacy 768px media query and the desktop grid so the toggle always owns the
 * right edge when the menu is hidden. */
.site-header[data-nav-compact="true"] .site-brand {
	margin-inline-end: auto;
}

.site-header[data-nav-compact="true"] .menu-toggle {
	position: relative;
	display: block;
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	margin-inline-start: auto;
	padding: 0;
	border: 0;
	background: none;
}

.site-header[data-nav-compact="true"] .primary-navigation {
	display: none;
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	grid-template-columns: none;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	max-height: calc(100dvh - var(--nav-clearance) - 16px);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 16px 24px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 10px 30px #0002;
	color: #111;
}

.site-header[data-nav-compact="true"] .primary-navigation.is-open {
	display: flex;
	animation: iel-quiet-panel-in var(--iel-panel-in) var(--iel-panel-enter-ease) both;
}

.site-header[data-nav-compact="true"] .primary-navigation.is-closing {
	display: flex;
	pointer-events: none;
	animation: iel-quiet-panel-out var(--iel-panel-out) var(--iel-panel-exit-ease) both;
}

@media (prefers-reduced-motion: reduce) {
	.site-header .primary-navigation.is-open,
	.site-header .primary-navigation.is-closing {
		animation: none !important;
		transform: none;
		opacity: 1;
	}
}

.site-header[data-nav-compact="true"] .primary-menu {
	grid-column: auto;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
	gap: 0;
	margin: 0;
}

.site-header[data-nav-compact="true"] .primary-menu > :nth-child(1),
.site-header[data-nav-compact="true"] .primary-menu > :nth-child(2),
.site-header[data-nav-compact="true"] .primary-menu > :nth-child(3),
.site-header[data-nav-compact="true"] .primary-menu > :nth-child(4),
.site-header[data-nav-compact="true"] .primary-menu > :nth-child(5) {
	display: block;
	inline-size: auto;
	flex: 0 1 auto;
	flex-basis: auto;
	letter-spacing: normal;
	word-spacing: normal;
}

.site-header[data-nav-compact="true"] .primary-navigation a {
	padding: 11px 0;
}

.site-header[data-nav-compact="true"] .primary-navigation .header-official {
	grid-column: auto;
	align-self: flex-start;
	min-width: 0;
	min-height: 44px;
	margin: 8px 0 0;
	padding: 8px 0;
}

.site-header[data-nav-compact="true"] .primary-navigation .header-search {
	grid-column: auto;
	display: flex;
	width: 100%;
	height: auto;
	min-width: 0;
	min-height: 44px;
	gap: 10px;
	margin: 8px 0 0;
	padding: 0;
	justify-content: flex-start;
	border-top: 1px solid #e8e8e8;
	background: transparent;
}

.site-header[data-nav-compact="true"] .header-search::before {
	display: none;
}

.site-header[data-nav-compact="true"] .header-search-label {
	display: inline;
}

/*
 * The compact panel is part of the header's content, not a second inset
 * coordinate system. Keep its top-level links on the same x-axis as the
 * brand mark; tablet compact mode follows the header's fluid inset.
 */
@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
	/* Figma 445:879 places the mobile pill 0.445px left of the viewport
	 * midpoint; keeping that fractional offset also aligns every real child,
	 * not only the shell edge. */
	/* Keep the visual shell at its authored 51.635px height while allocating
	 * the full 44px menu hit area inside the shell. */
	.site-header {
		height: 51.635px;
		min-height: 51.635px;
		padding-block: 3.8175px;
	}

	.site-header[data-nav-compact="true"] .primary-navigation {
		padding-inline: 19.227px;
	}

	.site-header {
		left: calc(50% - 0.445px);
	}

	.site-header .menu-toggle {
		align-self: flex-start;
	}

	.site-header .menu-stroke-long {
		top: calc(50% - 4.297px);
	}

	.site-header .menu-stroke-short {
		top: calc(50% + 2.297px);
	}
}

@media (min-width: 768px) {
	.site-header[data-nav-compact="true"] .primary-navigation {
		padding-inline: clamp(23.4px, 3.05vw, 46.766px);
	}

	/*
	 * The legacy <=768px rule supplies these properties only at the exact
	 * boundary.  Once the viewport reaches 769px the compact button is still
	 * rendered, but its image strokes otherwise fall back to normal-flow
	 * positioning.  Keep the two visible strokes anchored to the 44px hit area
	 * for every content-fit compact width, and center that visual group on the
	 * same cross-axis as the tablet/desktop brand content.
	 */
	.site-header[data-nav-compact="true"] .menu-stroke {
		position: absolute;
		right: 0;
		height: 2px;
	}

	.site-header[data-nav-compact="true"] .menu-stroke-long {
		width: 20.066px;
		top: calc(50% - 4.297px);
	}

	.site-header[data-nav-compact="true"] .menu-stroke-short {
		width: 12.718px;
		top: calc(50% + 2.297px);
	}
}

/* Optional, editor-authored GEO content remains a normal, readable section. */
.iel-geo-content {
	max-width: 920px;
	margin: 56px auto 0;
	padding: 28px 32px;
	border: 1px solid #e5e5e5;
	border-radius: 20px;
	background: #fafafa;
}

.iel-geo-content h2,
.iel-geo-content h3 {
	margin: 0 0 16px;
}

.iel-geo-content h3 {
	font-size: 1.05em;
}

.iel-geo-content p {
	line-height: 1.8;
}

.iel-geo-content details {
	padding: 14px 0;
	border-top: 1px solid #e5e5e5;
}

.iel-geo-content summary {
	cursor: pointer;
	font-weight: 600;
}

.iel-geo-content ul {
	margin: 0;
	padding-left: 20px;
}

.iel-geo-content .iel-geo-questions,
.iel-geo-content .iel-geo-sources {
	margin-top: 28px;
}

/*
 * Feed disclosure refresh.
 *
 * Keep this block scoped to the default feed disclosure so WordPress menus
 * supplied by administrators retain their existing upgrade behavior. The
 * panel stays a quiet, compact list instead of competing with the header as
 * a second navigation surface.
 */
:root {
	--publication-submenu-accent: #8d1f1f;
	--publication-submenu-panel-width: min(220px, calc(100vw - 32px));
}

.site-header .publication-disclosure {
	gap: 8px;
}

.site-header .publication-disclosure > .navigation-submenu-toggle {
	min-height: 44px;
	padding: 8px 4px;
	border-radius: 10px;
}

.site-header .publication-disclosure > .navigation-submenu-toggle:focus-visible {
	outline-offset: 3px;
}

.site-header .publication-disclosure .navigation-chevron {
	width: 10px;
	height: 10px;
	-webkit-mask-size: 200% 200%;
	mask-size: 200% 200%;
	transform: rotate(90deg);
	transition: transform var(--iel-motion-panel) ease;
}

.site-header .publication-disclosure > .navigation-submenu-toggle[aria-expanded="true"] .navigation-chevron {
	transform: rotate(270deg);
}

.site-header .publication-disclosure > #publication-submenu {
	position: absolute;
	top: calc(100% + 10px);
	inset-inline-end: 0;
	inset-inline-start: auto;
	display: block;
	width: var(--publication-submenu-panel-width);
	min-width: 0;
	max-width: calc(100vw - 32px);
	margin: 0;
	padding: 8px;
	list-style: none;
	border: 1px solid rgb(17 17 17 / 10%);
	border-radius: 14px;
	background: #fff;
	color: #111;
	box-shadow: 0 10px 30px rgb(29 18 12 / 10%);
}

.site-header .publication-disclosure > #publication-submenu > li {
	min-width: 0;
	margin: 0;
	padding: 0;
}

.site-header .publication-disclosure > #publication-submenu > li > a {
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
	min-height: 44px;
	padding: 10px 12px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #111;
	text-decoration: none;
	transition: background-color var(--iel-motion-location) ease, color var(--iel-motion-location) ease;
}

.site-header .publication-disclosure > #publication-submenu > li > a:hover {
	background: #f5f5f5;
	text-decoration: none;
}

.site-header .publication-disclosure > #publication-submenu > li > a:focus-visible {
	outline: 3px solid var(--publication-submenu-accent);
	outline-offset: 3px;
}

.site-header .publication-disclosure > #publication-submenu > li > a[aria-current="page"] {
	background: #f5f5f5;
}

.site-header .publication-disclosure .publication-submenu-index,
.site-header .publication-disclosure .publication-submenu-arrow {
	display: none;
}

.site-header .publication-disclosure .publication-submenu-label {
	min-width: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
	.site-header .publication-disclosure > .navigation-submenu-toggle {
		width: 100%;
		justify-content: space-between;
		min-height: 48px;
		padding: 10px 0;
	}

	.site-header .publication-disclosure > #publication-submenu {
		position: static;
		width: auto;
		max-width: none;
		margin: 0;
		padding: 4px 0 8px 12px;
		border: 0;
		border-inline-start: 1px solid #e8e0da;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.site-header .publication-disclosure > #publication-submenu > li > a {
		min-height: 44px;
		padding: 8px 12px;
		border-radius: 8px;
	}
}

.site-header[data-nav-compact="true"] .publication-disclosure > .navigation-submenu-toggle {
	width: 100%;
	justify-content: space-between;
	min-height: 48px;
	padding: 10px 0;
}

.site-header[data-nav-compact="true"] .publication-disclosure > #publication-submenu {
	position: static;
	width: auto;
	max-width: none;
	margin: 0;
	padding: 4px 0 8px 12px;
	border: 0;
	border-inline-start: 1px solid #e8e0da;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.site-header[data-nav-compact="true"] .publication-disclosure > #publication-submenu > li > a {
	min-height: 44px;
	padding: 8px 12px;
	border-radius: 8px;
}

@media (forced-colors: active) {
	.site-header .publication-disclosure > #publication-submenu {
		border-color: CanvasText;
		background: Canvas;
		box-shadow: none;
	}

	.site-header .publication-disclosure > #publication-submenu > li > a {
		border-color: CanvasText;
		background: Canvas;
		color: CanvasText;
	}

	.site-header .publication-disclosure > #publication-submenu > li > a[aria-current="page"] {
		border-color: Highlight;
		background: Highlight;
		color: HighlightText;
		box-shadow: none;
	}

	.site-header .publication-disclosure .publication-submenu-index,
	.site-header .publication-disclosure .publication-submenu-arrow {
		color: CanvasText;
	}
}

@media (prefers-reduced-motion: reduce) {
	.site-header .publication-disclosure .navigation-chevron,
	.site-header .publication-disclosure > #publication-submenu > li > a {
		transition: none;
	}
}

.iel-geo-content .iel-geo-reviewed {
	margin: 22px 0 0;
	color: #666;
}

@media (max-width: 767px), (pointer: coarse) and (min-width: 768px) and (max-width: 1199px) {
	.iel-geo-content {
		margin: 38px 25px 0;
		padding: 22px 20px;
		border-radius: 16px;
	}
}
