/* Readable type scale, viewport hero and generated editorial images. */
:root{--header-height:96px;--text-small:14px;--text-body:16px}
small,sub,sup{font-size:var(--text-small)}
.eyebrow{font-size:14px;letter-spacing:.12em;line-height:1.5}
.button{font-size:16px}
.main-nav,.nav-dropdown>button{font-size:15px}
.main-nav{gap:20px}
.header-inner{gap:24px}
.locale{font-size:16px;font-weight:600;padding:8px 2px}
.locale-divider{font-size:14px}
.nav-tools .button{font-size:14px}
.theme-toggle{display:grid;place-items:center;width:44px;height:44px;padding:10px;flex-shrink:0}
.theme-icon{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.theme-icon-sun{display:none}
[data-theme=light] .theme-icon-sun{display:block}
[data-theme=light] .theme-icon-moon{display:none}
.hero,.hero-inner{min-height:0;height:calc(100svh - var(--header-height))}
.hero-inner{align-items:center}
.hero-copy{padding:32px 0;width:58%}
.hero h1{font-size:clamp(48px,min(6.8vw,10svh),102px)}
.hero-copy .eyebrow{font-size:14px;letter-spacing:.12em}
.hero-copy p{font-size:18px}
.hero .hero-actions{margin-top:28px}
.home-event{padding:0;justify-content:flex-start;overflow:hidden}
.home-event-cover{width:100%;height:230px;object-fit:cover}
.home-event-copy{padding:30px}
.home-event h3{margin-top:20px}
.article-detail-cover{width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:32px}
.author-photo{width:72px;height:72px;object-fit:cover;border-radius:50%;flex-shrink:0}
.author-intro{display:flex;gap:32px;align-items:center;margin-bottom:50px}
.author-intro .author-photo{width:160px;height:160px}
.author-intro .lead-paragraph{margin:0;max-width:720px}
.event-thumbnail{width:160px;height:100px;object-fit:cover;flex-shrink:0}
@media(max-width:1120px){
 :root{--header-height:82px}
 .site-header{height:82px}
 .header-inner{width:calc(100% - 48px);gap:16px}
 .menu-toggle{display:block;margin-left:auto}
 .main-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--bg);padding:25px 32px;border-bottom:1px solid var(--line);max-height:calc(100dvh - 82px);overflow:auto}
 .main-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:4px}
 .main-nav>a,.nav-dropdown>button{font-size:18px;padding:12px;text-align:left;width:100%}
 .submenu{position:static;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;width:auto;margin:5px 0 10px}
 .nav-dropdown.is-open .submenu{display:block}
 .nav-tools{margin-left:0}
 .hero-copy{width:66%}
 .hero-art{width:80%;right:-16%;opacity:.75}
}
@media(max-width:640px){
 :root{--header-height:74px}
 .site-header{height:74px}
 .header-inner{width:calc(100% - 32px);gap:10px}
 .main-nav{top:74px;max-height:calc(100dvh - 74px)}
 .nav-tools{gap:6px}
 .locale{font-size:16px}
 .hero-inner{align-items:flex-start}
 .hero-copy{width:100%;padding:32px 0 0}
 .hero h1{font-size:clamp(38px,min(10vw,7svh),60px);line-height:1.02;gap:4px}
 .hero-copy .eyebrow{font-size:14px;letter-spacing:.08em;margin-bottom:20px;max-width:340px}
 .hero-copy p{font-size:16px;margin-top:22px;max-width:350px}
 .hero .hero-actions{margin-top:22px;gap:10px}
 .hero .button{font-size:14px;min-height:46px;padding:12px 14px}
 .hero-art{width:110%;right:-6%;opacity:1}
 .home-event-copy{padding:24px}
 .home-event-cover{height:210px}
 .author-intro{align-items:flex-start;flex-direction:column;gap:24px}
 .author-intro .author-photo{width:120px;height:120px}
 .event-thumbnail{width:100%;height:180px}
 .event-card>div:not(.date-block){flex:1;min-width:180px}
 .event-card>.button{margin-left:0}
}
@media(max-height:620px){
 .hero-copy{padding-block:18px}
 .hero-copy .eyebrow{margin-bottom:12px}
 .hero-copy p{margin-top:16px}
 .hero .hero-actions{margin-top:16px}
 .hero h1{font-size:clamp(32px,7.7svh,64px)}
}

/* Original partner marks retain their own colours in both themes. */
.social-links{flex-wrap:wrap;gap:20px}
.social-links a{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:14px}
.social-icon{width:22px;height:22px;flex:none}
.partner-logo-frame{display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e9ec;border-radius:6px;padding:14px;height:100px;width:220px;max-width:100%;overflow:hidden}
.partner-logo-frame-dark{background:#172126;border-color:#26373e}
.partner-logo-frame img,.partner-name .partner-logo-frame img{width:100%;height:100%;object-fit:contain;margin:0;background:transparent;filter:none}
.partner-name{height:auto;min-height:160px;gap:18px;align-items:flex-start;justify-content:flex-start}
.partner-name h2{font-size:24px;line-height:1.25;margin:0}
.partner-wordmarks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:16px;align-items:start}
.partner-wordmarks>a,.partner-wordmarks>a:last-child{display:flex;flex-direction:column;align-items:center;gap:12px;border:0;padding:0;text-align:center;font-size:14px;line-height:1.4;letter-spacing:0}
.partner-wordmarks .partner-logo-frame{width:100%;height:78px;padding:12px}
.partner-wordmarks>a:hover .partner-logo-frame{border-color:var(--accent,#00acc0)}
@media(max-width:1120px){.partner-wordmarks{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px}}
@media(max-width:640px){.partner-wordmarks{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-wordmarks .partner-logo-frame{height:90px}.partner-name{min-height:160px}}

.locale{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.locale-flag{display:block;width:22px;height:14px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #84949a40;flex:none}

html{scroll-padding-top:calc(var(--header-height) + 18px)}

.event-gallery-section{margin-block:48px}.event-gallery-section h2{font-size:32px;margin-bottom:24px}
.event-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.event-gallery-photo{padding:0;border:1px solid var(--line);background:var(--surface);overflow:hidden;border-radius:6px;cursor:zoom-in}
.event-gallery-photo img{display:block;width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .3s ease}
.event-gallery-photo:hover img{transform:scale(1.025)}
.event-sources{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:14px;margin-bottom:40px}.event-sources a{color:var(--ink);text-decoration:underline}
@media(max-width:640px){.event-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

/* Original PDF outlines and the original HunTech wordmark. */
.brand-logo{display:block;width:150px;height:79px;object-fit:contain;flex:none}
.brand .light-logo{display:none}
[data-theme=light] .brand .dark-logo{display:none}
[data-theme=light] .brand .light-logo{display:block}
.footer-grid .brand-logo{width:205px;height:108px}

/* Continuous partner rail; duplicate group has no accessibility or focus targets. */
.partner-marquee{overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent);padding:8px 0 12px}
.marquee-track{display:flex;width:max-content;animation:partner-travel 46s linear infinite}
.partner-wordmarks.marquee-group{display:flex;flex-wrap:nowrap;gap:24px;padding-right:24px;align-items:stretch;flex:none}
.marquee-group>a,.marquee-group>a:last-child{width:174px;flex:none;padding:0;border:0}
.marquee-group .partner-logo-frame{width:174px;height:90px;transition:border-color .25s,transform .3s}
.marquee-group>a:hover .partner-logo-frame{transform:translateY(-3px)}
.partner-marquee:hover .marquee-track,.partner-marquee:focus-within .marquee-track,.partner-marquee.is-paused .marquee-track{animation-play-state:paused}
@keyframes partner-travel{to{transform:translateX(-50%)}}

/* Editorial imagery for the company and its three service areas. */
.service-row-image{width:250px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;margin-left:auto;transition:transform .4s,filter .4s}
.service-overview .service-row{gap:28px}
.service-overview .service-row>div{flex:1}
.service-overview .service-row>span:last-child{margin-left:0}
.service-overview .service-row:hover .service-row-image{transform:translateY(-4px);filter:brightness(1.1)}
.service-imagery,.about-imagery{margin:0 0 56px;position:relative;overflow:hidden;border-radius:8px;border:1px solid var(--line);background:var(--surface)}
.service-imagery img{display:block;width:100%;aspect-ratio:16/8;object-fit:cover}
.service-imagery figcaption{display:flex;justify-content:space-between;gap:20px;padding:20px 24px;font-size:14px;color:var(--muted)}
.service-imagery figcaption span:first-child{color:var(--ink);font-size:18px}
.about-imagery img{display:block;width:100%;height:440px;object-fit:cover}
.about-imagery figcaption{padding:20px 24px;font-size:16px;color:var(--ink)}
.about-imagery-secondary{width:75%;margin:36px 0 60px auto}
.about-imagery-secondary img{height:360px}

/* A quieter layer of motion on the homepage, with native scrolling. */
.home-page .product-screen{transition:transform .55s var(--ease),box-shadow .55s,border-color .4s}
.home-page .product-screen:hover{transform:translateY(-7px);border-color:var(--accent);box-shadow:0 24px 60px #01a8be22}
.home-page .product-screen img{transition:transform .65s var(--ease)}
.home-page .product-screen:hover img{transform:scale(1.015)}
.home-page .feature-short li{transition:transform .3s,color .3s}
.home-page .feature-short li:hover{transform:translateX(6px);color:var(--accent-text)}
.home-page .service-row{position:relative;transition:padding .35s var(--ease)}
.home-page .service-row::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#01a8be16,transparent);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.home-page .service-row:hover,.home-page .service-row:focus-visible{padding-left:16px}
.home-page .service-row:hover::before,.home-page .service-row:focus-visible::before{transform:scaleX(1)}
.home-page .home-event{transition:transform .45s var(--ease),box-shadow .45s,border-color .3s;border:1px solid var(--line)}
.home-page .home-event:hover,.home-page .home-event:focus-visible{transform:translateY(-6px);border-color:var(--accent);box-shadow:0 20px 45px #01a8be15}
.home-page .home-event-cover,.home-page .article-cover img{transition:transform .65s var(--ease)}
.home-page .home-event:hover .home-event-cover,.home-page .article-card:hover .article-cover img{transform:scale(1.035)}
.home-page .home-event-copy{position:relative;background:var(--surface)}
.home-page .article-card .inline-link span,.home-page .home-event .inline-link span{display:inline-block;transition:transform .3s}
.home-page .article-card:hover .inline-link span,.home-page .home-event:hover .inline-link span{transform:translate(4px,-4px)}
@media(max-width:1120px){.brand-logo{width:132px;height:69px}}
@media(max-width:640px){
 .brand-logo{width:96px;height:51px}
 .header-inner{gap:8px}
 .menu-toggle{width:28px;min-width:28px;padding:0;flex:none}
 .theme-toggle{width:36px;height:40px;padding:6px}
 .nav-tools{gap:4px}
 .locale-flag{width:18px;height:12px}
 .service-overview .service-row{display:grid;grid-template-columns:32px 1fr 28px;gap:16px}
 .service-row-image{grid-column:2/4;grid-row:2;width:100%;margin:0}
 .service-imagery,.about-imagery{margin-bottom:32px}
 .service-imagery img{aspect-ratio:16/10}
 .service-imagery figcaption{flex-direction:column;gap:8px;padding:16px}
 .about-imagery img{height:260px}
 .about-imagery-secondary{width:100%;margin:24px 0 36px}
 .about-imagery-secondary img{height:260px}
 .partner-wordmarks.marquee-group{gap:16px;padding-right:16px}
 .marquee-group>a,.marquee-group>a:last-child,.marquee-group .partner-logo-frame{width:152px}
}
@media(prefers-reduced-motion:reduce){
 .marquee-track{animation:none}
 .partner-marquee{overflow-x:auto;mask-image:none}
 .marquee-group[aria-hidden]{display:none}
 .home-page .product-screen,.home-page .product-screen img,.home-page .feature-short li,.home-page .service-row,.home-page .service-row::before,.home-page .home-event,.home-page .home-event-cover,.home-page .article-cover img,.service-row-image{transition:none}
 .home-page .product-screen:hover,.home-page .home-event:hover,.service-overview .service-row:hover .service-row-image{transform:none}
}

/* Matching image frames across research and event cards. */
.form-grid .field-label{display:block;color:var(--ink);font-size:14px}
.form-grid .field-label>span{display:inline;color:var(--accent-text)}
.home-page .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.home-page .article-cover,.home-page .home-event-cover{height:auto;aspect-ratio:16/9;width:100%;object-fit:cover}
.home-page .article-cover{width:calc(100% - 2px);margin-inline:1px;border:0}
.home-page .article-cover .custom-cover{width:100%;height:100%;object-fit:cover}
.home-page .home-event{min-width:0}

/* The same column widths in every announcement row. */
.event-card{display:grid;grid-template-columns:160px 100px minmax(0,1fr) 183px;gap:32px;align-items:center}
.event-card[hidden]{display:none}
.event-card .event-thumbnail{grid-column:1;width:160px;height:100px;object-fit:cover}
.event-card .date-block{grid-column:2;width:100%;height:110px;flex:none}
.event-card .event-summary{grid-column:3;min-width:0;flex:none}
.event-card>.button{grid-column:4;width:100%;margin-left:0;justify-content:space-between}
@media(max-width:980px) and (min-width:641px){
 .event-card{grid-template-columns:110px 82px minmax(0,1fr) 155px;gap:20px}
 .event-card .event-thumbnail{width:110px;height:90px}
 .event-card h2{font-size:25px}
}
@media(max-width:640px){
 .home-page .insight-grid{grid-template-columns:minmax(0,1fr)}
 .event-card{grid-template-columns:80px minmax(0,1fr);gap:20px}
 .event-card .event-thumbnail{grid-column:1/-1;grid-row:1;width:100%;height:auto;aspect-ratio:16/9}
 .event-card .date-block{grid-column:1;grid-row:2;width:80px;height:90px}
 .event-card .event-summary{grid-column:2;grid-row:2;min-width:0}
 .event-card>.button{grid-column:2;grid-row:3}
 .event-card:not(:has(.event-thumbnail)) .date-block,.event-card:not(:has(.event-thumbnail)) .event-summary{grid-row:1}
 .event-card:not(:has(.event-thumbnail))>.button{grid-row:2}
}
