:root {
    --av-night: #101c2b;
    --av-deep: #162b42;
    --av-ink: #101c2b;
    --av-muted: #40566b;
    --av-blue: #075db7;
    --av-link: #0756a4;
    --av-cyan: #119dcb;
    --av-green: #75c900;
    --av-accent: #b7e57d;
    --av-line: #d3dfe9;
    --av-paper: #f3f7fa;
    --av-radius: 12px;
    --av-shadow: 0 14px 38px #12344e0d;
    --av-font: "Segoe UI", system-ui, -apple-system, sans-serif;
    --av-mono: "Cascadia Mono", Consolas, monospace;
}

.av-site { margin: 0; color: var(--av-ink); background: #fff; font: 400 16px/1.6 var(--av-font); }
.av-site *, .av-site *::before, .av-site *::after { box-sizing: border-box; }
.av-site img { max-width: 100%; height: auto; display: block; }
.av-site a { color: var(--av-link); }
.av-site input, .av-site textarea, .av-site select, .av-site button { font: inherit; }
.av-site button, .av-site summary { cursor: pointer; }
.av-site [hidden] { display: none !important; }
.av-site [id] { scroll-margin-top: 100px; }
.av-site :focus-visible { outline: 3px solid var(--av-blue); outline-offset: 4px; }
.av-site p { margin: 0 0 1em; }
.av-site h1, .av-site h2, .av-site h3 { line-height: 1.08; margin: 0 0 .5em; font-weight: 730; letter-spacing: -.045em; }
.av-site h1 { font-size: clamp(2.6rem, 5.4vw, 5.15rem); }
.av-site h2 { font-size: clamp(2rem, 3.4vw, 3.65rem); }
.av-site h3 { font-size: clamp(1.2rem, 1.65vw, 1.6rem); letter-spacing: -.032em; }
.av-shell { width: min(100% - 64px, 1260px); margin-inline: auto; }
.av-section { padding-block: clamp(60px, 8vw, 116px); }
.av-tint { background: var(--av-paper); }
.av-dark { background: var(--av-night); color: #fff; }
.av-dark :focus-visible, .av-final :focus-visible { outline-color: var(--av-accent); }
.av-dark a { color: #d4e8f7; }
.av-eyebrow { font-weight: 750; font-size: .75rem; line-height: 1.4; letter-spacing: .15em; text-transform: uppercase; color: var(--av-link); }
.av-dark .av-eyebrow, .av-final .av-eyebrow { color: var(--av-accent); }
.av-site .av-eyebrow { margin-bottom: 1rem; }
.av-icon { display: inline-block; flex: none; vertical-align: middle; }
.av-btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 11px 19px; border: 1px solid transparent; border-radius: 8px; text-decoration: none; font-weight: 730; line-height: 1.35; transition: transform .18s, background-color .18s, border-color .18s; }
.av-btn .av-icon { width: 18px; height: 18px; }
.av-btn:hover { transform: translateY(-2px); }
.av-btn:disabled { opacity: .65; cursor: wait; transform: none; }
.av-site .av-btn-primary { background: var(--av-blue); color: #fff; }
.av-site .av-btn-primary:hover { background: #084988; }
.av-site .av-btn-secondary { background: #fff; border-color: #a6bcc9; color: var(--av-ink); }
.av-site .av-btn-secondary:hover { background: #eaf3fc; }
.av-actions { display: flex; flex-wrap: wrap; gap: 13px; }
.av-skip { position: fixed; z-index: 20; inset: 12px auto auto 12px; padding: 10px 15px; background: #fff; transform: translateY(-150%); }
.av-skip:focus { transform: none; }

.av-header { position: sticky; top: 0; z-index: 10; background: #fbfdff; border-bottom: 1px solid var(--av-line); }
.av-header-inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.av-header-brand { display: flex; align-items: center; flex: none; }
.av-logo { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; text-decoration: none; }
.av-logo img { width: 72px; height: 66px; object-fit: contain; }
.av-brand-signature { border-inline-start: 1px solid var(--av-line); margin-inline-start: 14px; padding-inline-start: 14px; color: var(--av-muted); font: 650 .69rem/1.35 var(--av-mono); letter-spacing: .065em; text-transform: uppercase; }
.av-nav { display: flex; align-items: center; gap: clamp(16px, 2.5vw, 36px); font-weight: 640; font-size: .93rem; }
.av-nav > a, .av-mega > summary { color: var(--av-ink); text-decoration: none; }
.av-nav a:hover, .av-nav [aria-current="page"], .av-mega[open] > summary { color: var(--av-link); }
.av-nav .av-nav-cta { margin-left: .2rem; }
.av-mega > summary { display: flex; align-items: center; gap: 5px; list-style: none; padding-block: 12px; }
.av-mega > summary::-webkit-details-marker, .av-faq summary::-webkit-details-marker { display: none; }
.av-mega > summary .av-icon { width: 16px; height: 16px; }
.av-mega-panel { position: absolute; top: calc(100% + 1px); left: 50%; transform: translateX(-50%); width: min(1060px, calc(100% - 64px)); background: #fff; color: var(--av-ink); display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 22px; border: 1px solid var(--av-line); padding: 26px; border-radius: 0 0 var(--av-radius) var(--av-radius); box-shadow: 0 22px 42px #0a1e3026; }
.av-mega-panel a { display: block; text-decoration: none; color: var(--av-ink); padding: .43rem .35rem; border-radius: 5px; }
.av-mega-panel a:hover { background: var(--av-paper); }
.av-mega-panel .av-mega-all { grid-column: 1/-1; border-top: 1px solid var(--av-line); padding-top: 13px; color: var(--av-link); }
.av-menu-toggle { display: none; }

/* The homepage header occupies the top of the video without adding to the hero height. */
.av-home { --av-hero-header-height: 83px; }
.av-home .av-header {
    margin-block-end: calc(-1 * var(--av-hero-header-height));
    background: transparent;
    border-color: #b7d0e035;
    transition: background-color .25s, border-color .25s, box-shadow .25s;
}
.av-home .av-header::before {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: linear-gradient(180deg, #101c2bd6, #101c2b9c); transition: opacity .24s;
}
.av-home .av-header.av-scrolled::before { opacity: 0; }
.av-home .av-logo img { width: 77px; height: 70px; filter: drop-shadow(0 0 1px #d0eaff9c); }
.av-home .av-header.av-scrolled { background: #f9fcff; border-color: var(--av-line); box-shadow: 0 4px 16px #102d4810; }
.av-home .av-header.av-scrolled .av-logo img { filter: none; }
.av-home .av-header.av-scrolled .av-brand-signature { color: var(--av-muted); border-color: var(--av-line); }
.av-home .av-header.av-scrolled .av-nav > a:not(.av-nav-cta),
.av-home .av-header.av-scrolled .av-mega > summary { color: var(--av-ink); }
.av-home .av-header.av-scrolled :focus-visible { outline-color: var(--av-blue); }
html:not(.av-js) .av-home .av-header { background: #101c2be8; }
.av-home .av-brand-signature { color: #d8e8f8; border-color: #b7d0e055; }
.av-home .av-nav > a:not(.av-nav-cta), .av-home .av-mega > summary { color: #fff; }
.av-home .av-nav > a:not(.av-nav-cta):hover, .av-home .av-mega > summary:hover, .av-home .av-mega[open] > summary { color: var(--av-accent); }
.av-home .av-header :focus-visible { outline-color: #83c7ff; }
.av-home .av-mega-panel :focus-visible { outline-color: var(--av-blue); }

.av-hero {
    position: relative; isolation: isolate; overflow: hidden;
    background: var(--av-night); color: #fff;
}
.av-hero-inner {
    position: relative; min-height: 100vh; min-height: 100svh;
    display: grid; grid-template-rows: 1fr auto; align-items: center;
    gap: clamp(28px, 4vh, 52px);
    padding-block: calc(var(--av-hero-header-height) + 32px) 76px;
}
.av-hero-copy { max-width: min(100%, 680px); padding-block: 12px; }
.av-hero-copy > *, .av-hero-index { animation: av-enter .45s cubic-bezier(.18,.64,.3,1) both; }
.av-hero-copy h1 { animation-delay: .055s; }
.av-hero-copy .av-hero-lead { animation-delay: .12s; }
.av-hero-copy .av-actions { animation-delay: .18s; }
.av-hero-index { animation-delay: .24s; }
@keyframes av-enter { from { transform: translateY(7px); } to { transform: none; } }
.av-hero :focus-visible { outline-color: var(--av-accent); }
.av-hero .av-eyebrow { color: #dcf0fb; }
.av-site .av-hero h1 { font-size: clamp(2.8rem, 5.65vw, 6.05rem); line-height: 1; margin-block: .16em .32em; letter-spacing: -.065em; }
.av-hero h1 em { display: block; color: #8bc9ff; font-style: normal; }
.av-signal { display: inline-block; width: 12px; height: 4px; margin: 0 6px 3px 0; background: var(--av-green); }
.av-site .av-hero-lead { color: #e5edf5; font-size: clamp(1rem, 1.35vw, 1.23rem); max-width: 47ch; margin-bottom: 1.55em; }
.av-site .av-btn-hero-secondary { color: #fff; border-color: #b8cee3; background: #101c2bb3; }
.av-site .av-btn-hero-secondary:hover { background: #193a5c; }

.av-hero-frame { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.av-hero-frame::after {
    content: ""; position: absolute; inset: 0;
    background:
        linear-gradient(90deg, #0b1728fa 0%, #0b1728f2 23%, #0b1728d1 43%, #0b172852 69%, #0b172815 100%),
        linear-gradient(0deg, #0b1728e0, transparent 26%, transparent 83%, #0b17285c);
}
.av-hero-media, .av-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; }
.av-hero-media img, .av-hero-video { width: 100%; height: 100%; object-fit: cover; object-position: 9% 48%; }
.av-hero-video { opacity: 0; transition: opacity .24s ease; }
.av-hero-video.av-hero-playing { opacity: 1; }

.av-hero-footer {
    display: flex; justify-content: space-between; align-items: center;
    gap: 18px 28px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid #b7d0e06b;
}
.av-hero-index {
    display: flex; flex-wrap: wrap; gap: 10px 22px;
    color: #daeaf5; font: 650 .72rem/1.45 var(--av-mono); letter-spacing: .05em; text-transform: uppercase;
}
.av-site .av-hero-index a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #eaf4ff; text-decoration: none; }
.av-hero-index a:hover { text-decoration: underline; }
.av-hero-index .av-icon { width: 19px; color: var(--av-accent); }
.av-hero-playback { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 12px; min-height: 44px; color: #dbe8f4; font-size: .79rem; }
.av-site .av-hero-toggle { min-width: 128px; min-height: 44px; border: 1px solid #a3b9d1; border-radius: 6px; background: #101c2bdf; color: #fff; padding: 6px 9px; font-size: .79rem; font-weight: 700; }
.av-hero-toggle:disabled { visibility: hidden; }
.av-hero-toggle:hover { background: #193a5c; }

.av-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: clamp(24px, 4vw, 45px); }
.av-heading h2, .av-final h2 { margin-bottom: 0; }
.av-heading > p { max-width: 370px; color: var(--av-muted); margin-bottom: 0; }
.av-dark .av-heading > p { color: #bfd2dd; }
.av-index { color: var(--av-link); font: 700 .85rem/1.3 var(--av-mono); letter-spacing: .04em; }
.av-expertise-grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: 16px; }
.av-expertise-group { grid-column: span 5; transition: box-shadow .2s, transform .2s; }
.av-expertise-group:focus-within { box-shadow: var(--av-shadow); }
@media (hover: hover) {
    .av-expertise-group:hover { box-shadow: var(--av-shadow); transform: translateY(-3px); }
}
.av-expertise-group:nth-child(4n + 1), .av-expertise-group:nth-child(4n + 4) {
    grid-column: span 7;
    display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); column-gap: 18px; align-content: start;
}
.av-expertise-group:has(.av-expertise-image) .av-expertise-label { grid-column: 1/-1; }
.av-expertise-image { grid-column: 2; grid-row: 2; width: 100%; height: 100% !important; min-height: 150px; max-height: 250px; object-fit: cover; border-radius: 7px; }
.av-expertise-group:has(.av-expertise-image) .av-expertise-list { grid-column: 1; grid-row: 2; }
.av-expertise-group { min-width: 0; padding: clamp(17px, 2.3vw, 28px); border: 1px solid var(--av-line); border-top: 3px solid var(--av-blue); border-radius: var(--av-radius); background: var(--av-paper); }
.av-expertise-group:nth-child(4n + 2) { background: #eef5fc; border-top-color: var(--av-cyan); }
.av-expertise-group:nth-child(4n + 3) {
    border-top-color: var(--av-green);
    background: linear-gradient(145deg, var(--av-paper) 55%, #e2effa);
}
.av-expertise-label { display: flex; gap: 12px; align-items: center; padding-bottom: 14px; }
.av-expertise-label .av-index { padding: 5px 7px; background: #fff; border: 1px solid var(--av-line); }
.av-expertise-label h3 { margin: 0; }
.av-expertise-list { list-style: none; padding: 0; margin: 0; }
.av-expertise-list a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 13px 0; border-top: 1px solid var(--av-line); color: var(--av-ink); text-decoration: none; }
.av-expertise-list a:hover { color: var(--av-link); }
.av-expertise-list a > .av-icon { width: 17px; color: var(--av-link); transition: transform .2s ease; }
.av-expertise-list a:hover > .av-icon { transform: translateX(3px); }
.av-expertise-text { min-width: 0; display: grid; gap: 4px; line-height: 1.35; overflow-wrap: anywhere; }
.av-expertise-text strong { font-size: 1rem; }
.av-expertise-text > span { color: var(--av-muted); font-size: .87rem; }
.av-expertise-text .av-expertise-action { color: var(--av-link); font-size: .76rem; font-weight: 680; }
@media (hover: hover) and (pointer: fine) {
    .av-expertise-action { opacity: 0; transform: translateY(3px); transition: opacity .18s, transform .18s; }
    .av-expertise-list a:is(:hover,:focus-visible) .av-expertise-action { opacity: 1; transform: none; }
}
.av-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.av-site .av-card { display: flex; flex-direction: column; color: var(--av-ink); text-decoration: none; overflow: hidden; border: 1px solid var(--av-line); border-radius: var(--av-radius); background: #fff; box-shadow: var(--av-shadow); transition: transform .2s, box-shadow .2s, border-color .2s; }
.av-card:hover { transform: translateY(-4px); box-shadow: 0 16px 35px #143b521c; border-color: #7ebdb8; }
.av-card > img { width: 100%; aspect-ratio: 2.13; object-fit: cover; }
.av-card-body { display: flex; flex-direction: column; flex: 1; align-items: flex-start; padding: clamp(20px, 2.6vw, 31px); }
.av-card-body > .av-eyebrow { margin: .85rem 0 .55rem; }
.av-card-body > h2 { font-size: 1.55rem; }
.av-card-body > p:not(.av-eyebrow), .av-split p, .av-sector p, .av-inset p { color: var(--av-muted); }
.av-card-icon { display: grid; place-items: center; border-radius: 9px; background: #e3effb; color: var(--av-link); width: 41px; height: 41px; }
.av-card-icon .av-icon { width: 22px; height: 22px; }
.av-site .av-card-link { display: inline-flex; align-items: center; gap: 7px; margin-top: auto; font-weight: 720; text-decoration-thickness: 1px; text-underline-offset: 3px; color: var(--av-link); }
.av-card-link .av-icon { width: 16px; height: 16px; }
.av-card:hover .av-card-link { text-decoration: underline; }
.av-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(26px, 6vw, 94px); align-items: center; }
.av-split p:last-child, .av-inset p:last-child, .av-sector p:last-child { margin-bottom: 0; }
.av-split .av-eyebrow { color: var(--av-link); }
.av-dark .av-split .av-eyebrow { color: var(--av-accent); }
.av-qual-list { padding: 0; margin: 0; list-style: none; display: grid; gap: 9px; }
.av-qual-list li { padding: .8em 1em; display: flex; align-items: baseline; gap: 12px; background: #fff; border: 1px solid var(--av-line); border-radius: 8px; }
.av-qual-list strong { color: var(--av-link); font-variant-numeric: tabular-nums; }
.av-method { background: #eaf2f8; border-block: 1px solid var(--av-line); }
.av-timeline { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 0; margin: 0; list-style: none; }
.av-timeline li { min-width: 0; }
.av-timeline details { background: #fff; border: 1px solid var(--av-line); border-radius: var(--av-radius); }
.av-timeline details[open] { border-color: #8eb5dc; box-shadow: var(--av-shadow); }
.av-timeline summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 8px; align-items: center; min-height: 62px; padding: 10px; list-style: none; }
.av-timeline summary::-webkit-details-marker { display: none; }
.av-method-index { display: grid; justify-items: center; gap: 2px; font: 700 .8rem/1.3 var(--av-mono); color: var(--av-link); padding: 5px 6px; background: #e8f1fb; border-radius: 3px; }
.av-method-title { font-size: .89rem; font-weight: 700; line-height: 1.25; }
.av-timeline .av-icon { width: 15px; height: 15px; color: var(--av-link); transition: transform .18s; }
.av-timeline details[open] summary > .av-icon { transform: rotate(180deg); }
.av-timeline details > p { color: var(--av-muted); font-size: .85rem; margin: 0; padding: 0 12px 12px; }
@media (min-width: 1130px) {
    .av-timeline { grid-template-columns: repeat(6,minmax(0,1fr)); }
    .av-timeline::before { content: ""; position: absolute; top: 31px; inset-inline: 0; border-top: 1px dashed #7195b7; }
    .av-timeline li { position: relative; }
}
.av-reveal-ready { opacity: 0; transform: translateY(13px); transition: opacity .45s, transform .45s; }
.av-reveal-ready.av-revealed { opacity: 1; transform: none; }
.av-sector-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.av-sector { overflow: hidden; border: 1px solid var(--av-line); border-radius: 12px; background: #fff; }
.av-sector img { width: 100%; aspect-ratio: 1.75; object-fit: cover; }
.av-sector div { padding: 19px; }

.av-detail-hero { padding-block: clamp(26px, 4vw, 58px) clamp(50px, 7vw, 92px); }
.av-detail-hero h1 { max-width: 19ch; overflow-wrap: anywhere; hyphens: auto; }
.av-detail-hero p:not(.av-eyebrow) { color: #d3e4ed; max-width: 55ch; font-size: clamp(1rem, 1.5vw, 1.25rem); }
.av-detail-hero img { width: 100%; aspect-ratio: 1.38; object-fit: cover; border-radius: var(--av-radius); border: 1px solid #54768b; }
.av-breadcrumb { display: flex; flex-wrap: wrap; gap: 7px 12px; color: #c4dae6; font-size: .85rem; margin-bottom: clamp(20px, 4vw, 50px); }
.av-breadcrumb a { text-underline-offset: .2em; }
.av-study-audit { background: #10263e; }
.av-study-technique { background: radial-gradient(ellipse at 100% 40%, #163f58, var(--av-night) 68%); }
.av-study-cee { background: #e8f3ff; }
.av-study-carbone { background: #edf5ed; }
.av-study-hero:not(.av-dark) p:not(.av-eyebrow), .av-study-hero:not(.av-dark) .av-breadcrumb { color: var(--av-muted); }
.av-study-illustration { margin: 0; padding: 7px; background: #fff; color: var(--av-muted); border: 1px solid var(--av-line); border-radius: var(--av-radius); }
.av-study-illustration img { aspect-ratio: 1.55; border: 0; border-radius: 6px; }
.av-study-technique img { aspect-ratio: 1.27; }
.av-study-carbone img { aspect-ratio: 1.85; }
.av-study-illustration figcaption { display: flex; align-items: center; gap: 6px; padding: 8px 4px 3px; font-size: .78rem; }
.av-study-illustration figcaption span { margin-inline-start: auto; }
.av-study-illustration .av-icon { width: 17px; height: 17px; color: var(--av-link); }
.av-study-jump { border-block: 1px solid var(--av-line); background: #f3f8fd; }
.av-study-jump .av-shell, .av-study-related { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.av-study-jump a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 680; text-underline-offset: 3px; }
.av-study-deliverables { border-inline-start: 3px solid var(--av-blue); }
.av-study-related { padding-block: 22px; }
.av-study-related .av-eyebrow { flex-basis: 100%; margin-bottom: 0; }
.av-study-related a { min-height: 44px; }
.av-listing-empty { border-inline-start: 3px solid var(--av-blue); }
.av-project-card .av-card-body { gap: 4px; }
.av-study-overview { align-items: start; }
.av-study-overview h3 { margin-top: 1.3em; }
.av-inset { background: var(--av-paper); border: 1px solid var(--av-line); padding: clamp(20px, 4vw, 40px); border-radius: var(--av-radius); }
.av-inset h2 { font-size: clamp(1.55rem, 2.5vw, 2.5rem); }
.av-faq details { border-bottom: 1px solid var(--av-line); padding: 14px 0; }
.av-faq summary { display: flex; justify-content: space-between; gap: 13px; list-style: none; font-weight: 710; }
.av-faq details[open] .av-icon, .av-mega[open] > summary .av-icon { transform: rotate(180deg); }
.av-faq details p { margin: 12px 0 0; }
.av-subsection { margin-top: 62px; }
.av-prose { max-width: 820px; }
.av-prose img { margin-bottom: 25px; max-height: 440px; object-fit: contain; }
.av-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 28px; }

.av-form-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(25px, 6vw, 96px); align-items: start; }
.av-form-layout > div:first-child > p:not(.av-eyebrow) { max-width: 35ch; color: var(--av-muted); }
.av-email, .av-footer a { overflow-wrap: anywhere; }
.av-form-card { padding: clamp(18px, 3.25vw, 40px); border: 1px solid var(--av-line); border-top: 3px solid var(--av-blue); box-shadow: var(--av-shadow); border-radius: var(--av-radius); background: #fff; }
.av-form-card fieldset { padding: 0; border: 0; margin: 0 0 20px; min-width: 0; }
.av-form-card legend { padding: 0; margin-bottom: 12px; color: var(--av-ink); font-weight: 730; font-size: clamp(1.15rem, 1.9vw, 1.55rem); }
.av-form-card label, .av-chat-body label { display: block; margin-bottom: 6px; font-weight: 650; line-height: 1.4; }
.av-form-card :is(input:not([type=checkbox],[type=radio]), select, textarea), .av-chat-body input { width: 100%; min-height: 46px; border: 1px solid #8aa4b5; border-radius: 7px; padding: 10px 12px; color: var(--av-ink); background: #fff; }
.av-form-card textarea { resize: vertical; }
.av-form-card [aria-invalid=true] { border-color: #b54146; }
.av-form-card .av-check { display: flex; align-items: flex-start; gap: 9px; margin-top: 17px; }
.av-check input { flex: none; width: 18px; height: 18px; accent-color: var(--av-link); margin-top: .14em; }
.av-privacy { padding-left: 27px; font-size: .9rem; }
.av-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.av-project-fields, .av-full { grid-column: 1 / -1; }
.av-study-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.av-form-card .av-study-choice { position: relative; margin: 0; cursor: pointer; }
.av-study-choice input { position: absolute; width: 1px; height: 1px; left: 12px; top: 15px; opacity: 0; }
.av-study-choice-body { display: flex; align-items: center; gap: 7px; min-height: 58px; height: 100%; padding: 8px; border: 1px solid #aabfd1; border-radius: 8px; background: #f8fbfe; font-size: .85rem; overflow-wrap: anywhere; }
.av-study-choice-body .av-icon { width: 18px; height: 18px; color: var(--av-link); }
.av-study-choice input:checked + .av-study-choice-body { border-color: var(--av-blue); background: #e9f3fd; box-shadow: inset 0 0 0 1px var(--av-blue); }
.av-study-choice input:focus-visible + .av-study-choice-body { outline: 2px solid var(--av-blue); outline-offset: 2px; }
.av-study-summary { padding: 10px 12px; margin-bottom: 14px; background: #edf4fb; border-radius: 8px; font-size: .88rem; }
.av-study-summary summary { font-weight: 680; overflow-wrap: anywhere; }
.av-study-summary dl { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 4px 10px; margin-block: 8px 0; }
.av-study-summary dt { font-weight: 620; }
.av-study-summary dd { margin: 0; overflow-wrap: anywhere; }
.av-study-summary p { margin: 8px 0 0; }
.av-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; margin: 0 0 25px; padding: 0; gap: 6px; }
.av-steps li { display: flex; gap: 5px; align-items: center; padding: 9px 0; color: var(--av-muted); border-bottom: 2px solid #dbe6ed; font-size: .82rem; font-weight: 680; }
.av-steps li[aria-current="step"], .av-steps li.av-complete { color: var(--av-link); border-color: var(--av-link); }
.av-steps li span:first-child { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 3px; background: #e5effa; flex: none; }
.av-steps [aria-current="step"] span:first-child { background: var(--av-link); color: #fff; }
.av-form-actions { display: flex; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.av-alert { margin-bottom: 18px; padding: 13px 16px; border: 1px solid var(--av-line); border-radius: 8px; background: var(--av-paper); }
.av-alert ul { padding-left: 20px; margin: 4px 0 0; }
.av-alert.av-success { border-color: #78bfb1; background: #e3f7ef; color: #14594e; }
.av-alert.av-error { border-color: #c97e7e; background: #fff1f0; color: #822429; }
.av-field-error { color: #9c2631; font-size: .89rem; margin: 4px 0 0; }

.av-final { color: #fff; background: var(--av-deep); padding-block: clamp(42px, 6vw, 77px); }
.av-final-inner { display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.av-final-inner .av-btn { flex: none; }
.av-footer { background: #e8f1f8; color: var(--av-muted); padding-block: 56px 70px; border-top: 4px solid var(--av-blue); }
.av-footer a { color: var(--av-ink); }
.av-footer-grid > div:first-child { border-inline-start: 2px solid var(--av-green); padding-inline-start: 16px; }
.av-footer .av-logo img { width: 98px; height: 90px; }
.av-footer-grid { display: grid; grid-template-columns: 1.05fr 1.3fr .85fr 1fr; gap: clamp(18px, 4vw, 58px); }
.av-footer-grid h2 { margin-bottom: 14px; font-size: 1.14rem; letter-spacing: -.01em; color: var(--av-ink); }
.av-footer-grid > div > a:not(.av-logo) { display: block; margin-bottom: 7px; text-decoration: none; }
.av-footer a:hover { color: var(--av-link); text-decoration: underline; }
.av-footer address { font-style: normal; margin-bottom: 9px; }
.av-footer-grid .av-logo { margin-bottom: 10px; }
.av-footer-bottom { display: flex; gap: 10px 25px; flex-wrap: wrap; border-top: 1px solid #adc1d2; padding-top: 17px; margin-top: 32px; font-size: .88rem; }
.av-footer-bottom > span { margin-right: auto; }

.av-chat { position: fixed; bottom: 18px; right: 20px; z-index: 15; }
.av-site .av-chat-launch { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 49px; padding: 8px 15px; border-radius: 13px; background: var(--av-night); color: #fff; border: 1px solid #578998; box-shadow: 0 5px 20px #143d5147; text-decoration: none; font-size: .9rem; font-weight: 720; }
.av-chat-launch .av-icon { color: var(--av-accent); width: 21px; height: 21px; }
.av-chat-panel { position: absolute; bottom: 60px; right: 0; width: min(425px, calc(100vw - 28px)); max-height: calc(100dvh - 95px); overflow: auto; overscroll-behavior: contain; background: white; color: var(--av-ink); border: 1px solid #a7bcc9; border-radius: 13px; box-shadow: 0 18px 55px #07192943; }
.av-chat-header { border-top: 3px solid var(--av-cyan); display: flex; align-items: center; justify-content: space-between; padding: 9px 13px 9px 16px; background: var(--av-night); color: #fff; }
.av-chat-header h2 { font-size: 1.15rem; margin: 0; }
.av-chat-header p { color: #dbeafa; font-size: .78rem; margin: 3px 0 0; }
.av-chat-result-link { display: block; padding: 6px 9px; margin-top: 6px; background: #fff; border: 1px solid var(--av-line); border-radius: 5px; font-size: .84rem; font-weight: 650; }
.av-chat-status[data-state] { padding: 7px 9px; border-inline-start: 2px solid var(--av-blue); background: #edf4fb; }
.av-chat-status[data-state=error] { border-color: #a93636; color: #842828; background: #fff1f1; }
.av-chat-body .av-chat-status:empty { margin: 0; }
.av-close { background: transparent; border: 0; color: #fff; font-size: 1.5rem; width: 42px; min-height: 40px; border-radius: 5px; }
.av-chat-body { padding: 15px; }
.av-chat-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.av-chat-suggestions button { padding: 6px 9px; border-radius: 8px; border: 1px solid #8eaeaf; color: var(--av-ink); background: #eaf3fc; font-size: .84rem; }
.av-chat-results { max-height: 255px; overflow: auto; margin-bottom: 12px; border: 1px solid var(--av-line); border-radius: 8px; padding: 10px; }
.av-chat-results > div { padding: 9px; background: var(--av-paper); margin-bottom: 6px; border-radius: 6px; overflow-wrap: anywhere; }
.av-chat-results > div.av-user-message { background: #e1eefb; }
.av-chat-results p { margin-bottom: 4px; white-space: pre-line; }
.av-chat-entry { display: flex; gap: 6px; }
.av-chat-entry input { min-width: 0; }
.av-chat-body .av-chat-status { font-size: .84rem; margin: 5px 0 0; }
.av-chat-entry .av-btn { padding-inline: 10px; }

@media (max-width: 1020px) {
    .av-shell { width: min(100% - 44px, 1260px); }
    .av-nav { gap: 16px; font-size: .86rem; }
    .av-brand-signature { display: none; }
    .av-header-inner { gap: 14px; }
    .av-card-grid, .av-sector-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .av-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 790px) {
    .av-header-inner { min-height: 64px; flex-wrap: wrap; }
    .av-logo img { width: 58px; height: 53px; }
    .av-nav { display: block; width: 100%; padding-bottom: 12px; }
    .av-nav > a { display: block; padding-block: 8px; }
    .av-nav .av-nav-cta { display: inline-flex; margin: 4px 0 0; }
    .av-js .av-menu-toggle { display: flex; align-items: center; gap: 8px; border: 1px solid #98aebb; border-radius: 7px; background: #fff; color: var(--av-ink); min-height: 41px; padding: 5px 10px; font-weight: 650; }
    .av-js .av-nav { display: none; }
    .av-js .av-nav.av-open { display: block; max-height: calc(100dvh - 80px); overflow: auto; }
    .av-mega-panel { position: static; width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); transform: none; border-radius: 8px; padding: 13px; gap: 13px; }
    .av-mega-panel .av-eyebrow { font-size: .68rem; }
    .av-home { --av-hero-header-height: 65px; }
    .av-home .av-logo img { width: 60px; height: 55px; }
    .av-hero-inner { gap: 22px; padding-block: calc(var(--av-hero-header-height) + 25px) 30px; }
    .av-hero-frame::after {
        background: linear-gradient(90deg, #0b1728ef, #0b172897),
            linear-gradient(0deg, #0b1728e8, transparent 68%);
    }
    .av-hero-media img, .av-hero-video { object-position: 56% 50%; }
    .av-hero-footer { flex-direction: column; align-items: flex-start; }
    .av-hero-playback { flex-direction: column; align-items: flex-start; }
    .av-expertise-grid { grid-template-columns: minmax(0, 1fr); }
    .av-expertise-group, .av-expertise-group:nth-child(n) { grid-column: 1; display: block; }
    .av-expertise-image { height: 135px !important; min-height: 0; margin-bottom: 8px; }
    .av-heading { display: block; }
    .av-heading > p { margin-top: 12px; }
    .av-timeline { grid-template-columns: minmax(0,1fr); gap: 10px; padding-inline-start: 13px; border-inline-start: 1px dashed #7195b7; }
    .av-form-layout, .av-split { grid-template-columns: minmax(0,1fr); }
    .av-detail-hero img { aspect-ratio: 1.8; }
}
@media (max-width: 600px) {
    .av-chat.av-chat-near-form:not(:focus-within):has(.av-chat-panel[hidden]) { visibility: hidden; }
}
@media (max-width: 505px) {
    .av-shell { width: calc(100% - 32px); }
    .av-site .av-hero h1 { font-size: clamp(2.55rem, 10.7vw, 3.55rem); }
    .av-hero-copy { padding-block: 0; }
    .av-hero-index { gap: 6px 12px; font-size: .67rem; }
    .av-hero-playback { gap: 6px; }
    .av-actions > .av-btn { justify-content: space-between; width: 100%; }
    .av-card-grid, .av-sector-grid, .av-fields { grid-template-columns: minmax(0,1fr); }
    .av-footer-grid { gap: 25px 18px; }
    .av-footer-grid > div:first-child, .av-footer-grid > div:last-child { grid-column: 1/-1; }
    .av-final-inner { align-items: flex-start; flex-direction: column; }
    .av-chat { bottom: 12px; right: 12px; }
    .av-chat-brand { display: none; }
    #demande-etude { padding-block: 44px; }
    .av-study-choice-body { flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; font-size: .83rem; }
}
@media (prefers-reduced-motion: reduce) {
    .av-site *, .av-site *::before, .av-site *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
    .av-reveal-ready { opacity: 1; transform: none; }
}
