:root {
    --sand: #eee9cc;
    --black: #000;
    --white: #fff;
    --blue: #0000ff;
    --grey: #ededed;
    --silver: #c6c6c6;
    --ink-60: #4a4a4a;
    --max: 1440px;
    --gutter: clamp(1rem, 4vw, 2.5rem);
    --color-sand: var(--sand);
    --color-black: var(--black);
    --color-white: var(--white);
    --color-blue: var(--blue);
    --color-grey: var(--grey);
    --color-silver: var(--silver);
    --color-text: var(--black);
    --color-text-muted: #333;
    --font-sans: "ABC Favorit", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-lining: "ABC Favorit Lining", "ABC Favorit", system-ui, sans-serif;
    --font-serif: "Reckless", Georgia, "Times New Roman", serif;
    --text-sm: 0.875rem;
    --text-base: 1.3rem;
    --text-lg: 1.5rem;
    --text-xl: 2rem;
    --text-2xl: 2.5rem;
    --text-3xl: 3rem;
    --text-4xl: 3.75rem;
    --padding-global: 40px;
    --padding-section-sm: 3rem;
    --padding-section-md: 6.5rem;
    --padding-section-lg: 9rem;
    --article-anchor-offset: 7rem;
}

@font-face {
    font-family: "ABC Favorit";
    src: url("/fonts/Favorit/Favorit/ABCFavorit-Book.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Benchmark parity for detail pages and static Astro-imported pages. */
.nav-share-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.share-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.share-link-white,
.share-link-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    background: transparent;
    color: currentColor;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.share-link-white {
    color: var(--white);
}

.share-link-dark {
    color: var(--black);
}

.share-link-white:hover,
.share-link-dark:hover {
    background: var(--white);
    color: var(--blue);
}

.share-link-white svg,
.share-link-dark svg {
    width: 1.05rem;
    height: 1.05rem;
    fill: currentColor;
}

.newsletter-section-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(24rem, 0.78fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: start;
}

.newsletter-section__heading {
    max-width: 36rem;
    margin-bottom: 1.5rem;
}

.newsletter-section__copy {
    max-width: 32rem;
    color: var(--white);
    font-size: var(--text-base);
    line-height: 1.5;
}

.newsletter-section__form-wrap {
    padding-top: 2.5rem;
}

.newsletter-form__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.newsletter-field-label {
    display: block;
    margin-bottom: 0.5rem;
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.5;
}

.form-required {
    color: var(--silver);
}

.newsletter-form .nl-input,
.nl-input {
    width: 100%;
    border: 1px solid currentColor;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
}

.newsletter-form .nl-input:focus,
.nl-input:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.newsletter-consent__text {
    color: var(--white);
    font-size: var(--text-sm);
    line-height: 1.5;
}

.newsletter-consent__link {
    color: inherit;
    transition: color 0.2s ease;
}

.newsletter-consent__link:hover {
    color: var(--silver);
}

.newsletter-submit {
    width: fit-content;
    height: 3rem;
    margin-top: 2rem;
    border: 0;
    border-radius: 9999px;
    padding-inline: 1.75rem;
    background: var(--white);
    color: var(--blue);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 3rem;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.newsletter-submit:hover {
    background: var(--black);
    color: var(--white);
}

@media (min-width: 640px) {
    .newsletter-form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.nl-checkbox {
    border-radius: 0;
}

.case-hero-single,
.event-hero-image,
.insight-hero-single {
    height: 75vh;
    overflow: hidden;
}

.team-detail__grid,
.profile-layout,
.case-layout,
.article-layout,
.content-layout {
    display: grid;
    gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}

.team-detail__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}

.profile-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}

.case-layout {
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: 4rem;
}

.content-layout {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 4rem;
}

.article-layout {
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: 4rem;
}

.article-layout {
    grid-template-columns: minmax(17rem, 0.28fr) minmax(0, 0.72fr);
}

.team-detail__portrait-wrap,
.case-sidebar,
.content-sidebar,
.toc-sidebar {
    position: sticky;
    top: 6rem;
}

.team-detail__portrait,
.profile-slideshow {
    position: relative;
    overflow: hidden;
    background: var(--black);
}

.team-detail__portrait {
    aspect-ratio: 3 / 4;
}

.team-detail__portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.team-detail__breadcrumb {
    margin-bottom: 2rem;
    color: var(--white);
    font-size: var(--text-base);
}

.team-detail__breadcrumb-link {
    color: inherit;
    transition: color 0.2s ease;
}

.team-detail__breadcrumb-link:hover {
    color: var(--silver);
}

.team-detail__breadcrumb-separator {
    margin-inline: 0.5rem;
}

.profile-slideshow {
    aspect-ratio: 3 / 4;
}

.profile-image-col {
    align-self: start;
}

.team-detail__qa {
    display: grid;
    gap: clamp(2.5rem, 5vw, 5rem);
}

.team-detail__qa-item {
    border-top: 1px solid rgb(255 255 255 / 0.35);
    padding-top: 2rem;
}

.team-detail__nav {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    border-top: 1px solid rgb(255 255 255 / 0.35);
    margin-top: clamp(4rem, 8vw, 7rem);
    padding-top: 2rem;
}

.team-detail__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    color: var(--white);
    font-size: var(--text-base);
    font-weight: 700;
}

.team-detail__name {
    margin-bottom: 0.5rem;
}

.team-detail__role,
.team-detail__linkedin {
    margin-bottom: 2.5rem;
}

.team-detail__qa-heading {
    margin-bottom: 1rem;
}

.team-detail__quote,
.team-detail__bio {
    font-size: var(--text-base);
    line-height: 1.7;
}

.team-detail__nav-icon {
    width: 3.5rem;
    height: 0.75rem;
    flex: 0 0 auto;
    color: var(--white);
}

.sustainability-points-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: var(--black);
}

.sustainability-points-grid > * {
    min-width: 0;
    background: var(--grey);
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 3rem;
}

.process-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.speaker-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
}

.nl-usps-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3rem;
}

.sustainability-points-grid {
    margin-top: 2rem;
}

.sustainability-points-grid > * {
    background: var(--white);
}

.case-content-padding {
    padding-block: clamp(5rem, 10vw, 10rem);
}

.case-detail__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
}

.case-sidebar,
.content-sidebar,
.toc-sidebar {
    display: grid;
    gap: 2rem;
    align-self: start;
}

.case-meta-block,
.meta-block,
.author-box,
.tldr-box {
    border-top: 1px solid var(--black);
    padding-top: 1.25rem;
}

.case-sidebar .case-meta-block {
    border-top: 0;
    padding-top: 0;
}

.case-meta-heading {
    margin: 0 0 0.5rem;
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.375;
}

.case-meta-text {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.meta-divider {
    height: 1px;
    background: var(--black);
}

.case-main,
.event-main,
.article-main {
    min-width: 0;
}

.case-teaser {
    max-width: 58rem;
    margin: 0 0 clamp(3rem, 6vw, 6rem);
    font-size: clamp(1.375rem, 1.9vw, 1.875rem);
    font-weight: 700;
    line-height: 1.45;
}

.case-main > * + *,
.article-main > * + * {
    margin-top: clamp(3rem, 6vw, 6rem);
}

.case-headline-block + .case-text-block,
.case-headline-block + .case-media-block {
    margin-top: 1.5rem;
}

.case-text-block + .case-media-block {
    margin-top: clamp(2.5rem, 5vw, 5rem);
}

.case-text-single-wrap {
    max-width: 52rem;
}

.case-text-cols {
    columns: 2;
    column-gap: clamp(2rem, 5vw, 5rem);
}

.case-main .prose h2:first-child {
    margin-top: 0;
}

.case-main .prose h2 {
    break-after: avoid;
    margin-top: 3rem;
    margin-bottom: 1.25rem;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.3;
}

.case-main .prose h3 {
    break-after: avoid;
    margin-top: 2.5rem;
    margin-bottom: 0.75rem;
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.4;
}

.case-main .prose.case-text-cols h3 {
    margin-top: 1.5rem;
}

.case-main .prose.case-text-cols h3:first-child {
    margin-top: 0;
}

.case-main .prose p {
    margin: 0 0 1.25rem;
    font-size: var(--text-base);
    line-height: 1.6;
}

.case-main .prose a {
    color: var(--blue);
    text-decoration: none;
    transition: color 0.2s ease;
}

.case-main .prose a:hover {
    color: var(--black);
}

.case-main .prose ul,
.case-main .prose ol {
    margin: 0 0 1.5rem;
    padding-left: 0;
    list-style: none;
}

.case-main .prose ol {
    counter-reset: case-ol-counter;
}

.case-main .prose li {
    position: relative;
    break-inside: avoid;
    margin-bottom: 0.5rem;
    padding-left: 2.5rem;
    font-size: var(--text-base);
    line-height: 1.6;
}

.case-main .prose ol li {
    counter-increment: case-ol-counter;
}

.case-main .prose ol li::before {
    position: absolute;
    top: 0.35rem;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background: var(--blue);
    color: var(--white);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    content: counter(case-ol-counter);
}

.case-main .prose ul li::before {
    position: absolute;
    top: 0.75rem;
    left: 0.375rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--blue);
    content: "";
}

.case-main .prose blockquote {
    margin: 2.5rem 0;
    padding: 0;
    border: 0;
    color: var(--black);
    font-family: var(--font-serif);
    font-size: 1.75rem;
    font-style: normal;
    line-height: 1.3;
}

.case-main .prose blockquote p {
    margin-bottom: 1rem;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

.case-main .prose figure {
    margin: 2.5rem 0;
}

.case-main .prose figure img,
.case-main .prose img {
    width: 100%;
}

.case-main .prose img {
    margin: 2rem 0;
}

.case-main .prose figcaption {
    margin-top: 1.25rem;
    color: rgb(0 0 0 / 0.5);
    font-size: var(--text-base);
    line-height: 1.5;
}

.case-main .prose strong {
    font-weight: 700;
}

@media (min-width: 768px) {
    .case-main .prose h2 {
        font-size: 2.25rem;
    }

    .case-main .prose h3 {
        font-size: 1.5rem;
    }
}

.case-block-heading {
    margin-bottom: 1.5rem;
}

.case-headline-block .case-block-heading {
    margin-bottom: 0;
}

.case-block-heading--sub {
    font-size: clamp(1.5rem, 2.6vw, 2.25rem);
    line-height: 1.25;
}

.case-image-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-block: clamp(3rem, 6vw, 6rem);
}

.case-image-stack {
    display: grid;
    gap: 1rem;
    margin-block: clamp(3rem, 6vw, 6rem);
}

.case-image-grid figure,
.case-image-stack figure {
    margin: 0;
}

.case-grid-figure {
    display: flex;
    flex-direction: column;
}

.case-grid-img {
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.case-image-grid img,
.case-image-stack img,
.case-image-grid video,
.case-image-stack video {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.case-grid-img img {
    height: 100%;
}

.case-image-grid figcaption,
.case-image-stack figcaption,
.case-phone-grid figcaption {
    margin-top: 0.75rem;
    color: rgb(0 0 0 / 0.5);
    font-size: var(--text-base);
    line-height: 1.5;
}

.case-phone-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2rem, 5vw, 3.5rem);
    margin-block: clamp(3rem, 6vw, 6rem);
}

.case-phone-figure {
    margin: 0;
}

.case-video {
    position: relative;
    height: 0;
    margin-block: clamp(3rem, 6vw, 6rem);
    padding-bottom: 56.25%;
    overflow: hidden;
    background: var(--black);
}

.case-media-block .case-image-grid,
.case-media-block .case-image-stack,
.case-media-block .case-phone-grid,
.case-media-block .case-video {
    margin-block: 0;
}

.case-video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.phone-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 237 / 475;
    overflow: hidden;
    border: 1px solid var(--black);
    border-radius: 12% / 6%;
    background: var(--white);
}

.phone-frame-bg,
.phone-frame-screen {
    position: absolute;
    overflow: hidden;
    background: var(--black);
}

.phone-frame-bg {
    inset: 3% 6%;
    filter: blur(20px) brightness(0.7);
    transform: scale(1.08);
}

.phone-frame-screen {
    inset: 3% 6%;
    border-radius: 10% / 5%;
    z-index: 1;
}

.phone-frame-bg img,
.phone-frame-bg video,
.phone-frame-screen img,
.phone-frame-screen video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.phone-frame-screen img,
.phone-frame-screen video {
    object-fit: contain;
}

.phone-frame-island {
    position: absolute;
    top: 3.3%;
    left: 50%;
    z-index: 2;
    width: 12%;
    height: 0.8%;
    min-height: 4px;
    transform: translateX(-50%);
    border-radius: 999px;
    background: var(--black);
}

@media (max-width: 767px) {
    .case-phone-grid {
        grid-template-columns: 1fr;
    }
}

.client-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: inherit;
    font-size: var(--text-base);
    line-height: 1.5;
    text-decoration: none;
}

.client-link .external-icon {
    flex: 0 0 auto;
    color: var(--blue);
}

.case-testimonial {
    margin: clamp(4rem, 8vw, 7rem) 0;
}

.case-testimonial__quote {
    margin: 0 0 2.5rem;
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.25;
}

.case-testimonial__footer {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.case-testimonial__name,
.case-testimonial__meta {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.case-testimonial__name {
    font-weight: 700;
}

.case-testimonial__meta {
    color: var(--text-muted);
}

.related-card-image {
    position: relative;
    overflow: hidden;
    background: var(--black);
}

.related-card-image img {
    width: 100%;
    transition: transform 0.35s ease;
}

.related-card:hover .related-card-image img {
    transform: scale(1.035);
}

.related-card-tags {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.related-card-tags .tag {
    background: var(--white);
    color: var(--black);
    font-size: 0.95rem;
}

.author-header {
    display: flex;
    gap: 1rem;
    align-items: center;
}

.author-social-link {
    display: inline-flex;
    color: var(--black);
    margin-top: 0.25rem;
    transition: color 0.2s ease;
}

.author-social-link:hover {
    color: var(--blue);
}

.toc-list,
.toc-list-mobile {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.toc-link {
    display: inline-block;
    color: var(--black);
    font-size: var(--text-base);
    line-height: 1.25;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.toc-link.is-active,
.toc-link:hover {
    color: var(--blue);
}

.toc-mobile {
    display: none;
    border-top: 1px solid var(--black);
    border-bottom: 1px solid var(--black);
}

.tldr-box {
    background: var(--sand);
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.article-faq {
    border-top: 1px solid var(--black);
    padding-top: clamp(2rem, 4vw, 4rem);
}

.article-faq-heading {
    margin: 0 0 2rem;
    font-family: var(--font-lining);
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: 1.02;
}

.faq-list:not(.faq-list-bordered) {
    border-top: 1px solid var(--black);
}

.faq-list:not(.faq-list-bordered) .faq-item {
    border-bottom: 1px solid var(--black);
}

.faq-list-bordered {
    border-top: 1px solid var(--faq-border, var(--black));
}

.faq-item-bordered {
    border-bottom: 1px solid var(--faq-border, var(--black));
}

.faq-icon {
    transition: transform 0.25s ease;
}

details[open] .faq-icon {
    transform: rotate(45deg);
}

.faq-dot-sm {
    width: 2rem;
    height: 2rem;
}

.agenda-table {
    overflow-x: auto;
}

.agenda-table table {
    width: 100%;
    border-collapse: collapse;
}

.agenda-table th,
.agenda-table td {
    border-top: 1px solid var(--black);
    padding: 1.5rem 1rem;
    text-align: left;
    vertical-align: top;
}

.agenda-table tbody tr:last-child td {
    border-bottom: 1px solid var(--black);
}

.agenda-table-time {
    width: 8rem;
    font-weight: 700;
}

.agenda-table-session {
    width: 34%;
    font-weight: 700;
}

.agenda-cards {
    display: none;
}

.agenda-card {
    border-top: 1px solid var(--black);
    padding-block: 1.5rem;
}

.agenda-card:last-child {
    border-bottom: 1px solid var(--black);
}

.agenda-card-header {
    display: grid;
    grid-template-columns: 6rem 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
    font-weight: 700;
}

.agenda-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 3rem;
}

.agenda-tab {
    background: none;
    border: 1px solid var(--black);
    border-radius: 9999px;
    color: var(--black);
    cursor: pointer;
    font-size: var(--text-base);
    font-weight: 700;
    padding: 0.75rem 1.5rem;
    transition: all 0.2s ease;
}

.agenda-tab:hover {
    background: var(--black);
    color: var(--white);
}

.agenda-tab.active {
    background: var(--blue);
    border-color: var(--blue);
    color: var(--white);
}

.agenda-tab-content {
    display: none;
}

.agenda-tab-content.active {
    display: block;
}

.agenda-heading,
.agenda-kickoff--spaced {
    margin-bottom: 3rem;
}

.agenda-day-heading {
    margin-bottom: 1.5rem;
}

.agenda-kickoff__heading {
    margin-bottom: 1rem;
}

.agenda-kickoff__text,
.event-main-copy {
    font-size: var(--text-base);
    line-height: 1.5;
}

.agenda-kickoff {
    max-width: none;
}

.speaker-card img {
    display: block;
}

.speaker-card .card-title {
    color: var(--white);
}

.speaker-card__image {
    aspect-ratio: 3 / 4;
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.speaker-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.speaker-card__role,
.speaker-card__bio {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.speaker-card__role {
    margin-top: 0.25rem;
    color: var(--silver);
}

.speaker-card__bio {
    margin-top: 1rem;
    color: var(--white);
}

.other-event-row {
    display: grid;
    grid-template-columns: 16rem 1fr auto;
    gap: 2rem;
    align-items: start;
    color: inherit;
    margin-bottom: 2.5rem;
    text-decoration: none;
}

.other-event-image {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--sand);
}

.other-event-image img,
.other-event-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.other-event-placeholder {
    background: var(--sand);
}

.other-event-row:hover .other-event-image img {
    transform: scale(1.04);
}

.other-event-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.other-event-arrow {
    flex: 0 0 auto;
    background: var(--blue);
    color: var(--white);
}

.other-event-arrow svg {
    width: 1.125rem;
    height: 1.125rem;
}

.team-slideshow__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease;
}

.team-slideshow__image.is-active {
    opacity: 1;
}

.nl-usps-grid {
    background: var(--black);
}

.newsletter-hero__heading {
    margin-top: 2rem;
}

.newsletter-benefits {
    margin-top: 3rem;
}

.nl-usp-cell {
    background: var(--grey);
}

.nl-usp-index {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    align-items: center;
    justify-content: center;
    margin-bottom: 2rem;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
    font-size: var(--text-sm);
    font-weight: 700;
}

.nl-usp-title {
    margin-bottom: 0.75rem;
}

.nl-usp-text {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.nl-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.64fr) minmax(20rem, 0.36fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: stretch;
}

.nl-form-card {
    background: var(--white);
    color: var(--black);
    padding: clamp(2rem, 4vw, 4rem);
}

.nl-form-heading {
    margin-bottom: 0.5rem;
}

.nl-form-copy {
    margin: 0 0 2rem;
    font-size: var(--text-base);
}

.nl-form-card .newsletter-form__grid {
    margin-bottom: 1.5rem;
}

.nl-form-card .nl-input {
    border-color: var(--black);
    color: var(--black);
}

.nl-form-card .nl-checkbox {
    border: 1px solid var(--black);
}

.nl-form-card .newsletter-consent__text {
    color: var(--black);
}

.newsletter-submit--blue {
    background: var(--blue);
    color: var(--white);
}

.newsletter-submit--blue:hover {
    background: var(--black);
    color: var(--white);
}

.nl-form-image {
    min-height: 100%;
    overflow: hidden;
}

.nl-form-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.archive-list {
    display: grid;
    border-top: 1px solid var(--black);
}

.archive-heading {
    margin: 1.5rem 0 3rem;
}

.archive-item {
    border-bottom: 1px solid var(--black);
}

.archive-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding-block: 1.5rem;
}

.archive-title {
    font-size: var(--text-lg);
    font-weight: 700;
    transition: color 0.2s ease;
}

.archive-date {
    flex: 0 0 auto;
    font-size: var(--text-base);
}

.archive-link:hover .archive-title {
    color: var(--blue);
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.58fr) minmax(22rem, 0.42fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}

.hero-slideshow {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--black);
}

.hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease;
}

.hero-slide.is-active,
.hero-slide:first-child {
    opacity: 1;
}

.guide-question-id {
    flex: 0 0 auto;
    min-width: 2.5rem;
    color: var(--blue);
    font-size: var(--text-base);
    font-weight: 700;
}

@media (max-width: 1023px) {
    .newsletter-section-grid,
    .team-detail__grid,
    .profile-layout,
    .case-layout,
    .article-layout,
    .content-layout,
    .nl-form-grid,
    .hero-grid {
        grid-template-columns: 1fr;
    }

    .newsletter-section__form-wrap {
        padding-top: 0;
    }

    .team-detail__portrait-wrap,
    .case-sidebar,
    .content-sidebar,
    .toc-sidebar {
        position: static;
    }

    .toc-sidebar .toc-nav {
        display: none;
    }

    .toc-mobile {
        display: block;
    }

    .process-grid,
    .speaker-grid,
    .sustainability-points-grid,
    .nl-usps-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .nav-share-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .share-actions {
        flex-wrap: wrap;
    }

    .case-hero-single,
    .event-hero-image,
    .insight-hero-single {
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .case-text-cols {
        columns: 1;
    }

    .case-image-grid,
    .process-grid,
    .speaker-grid,
    .sustainability-points-grid,
    .nl-usps-grid {
        grid-template-columns: 1fr;
    }

    .agenda-table {
        display: none;
    }

    .agenda-cards {
        display: grid;
    }

    .agenda-card-header {
        grid-template-columns: 1fr;
    }

    .other-event-row {
        grid-template-columns: 1fr auto;
        gap: 0.75rem;
    }

    .other-event-image {
        grid-column: 1 / -1;
    }

    .other-event-info {
        grid-column: 1;
    }
}

@font-face {
    font-family: "ABC Favorit";
    src: url("/fonts/Favorit/Favorit/ABCFavorit-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "ABC Favorit Lining";
    src: url("/fonts/Favorit/Favorit Lining/ABCFavoritLining-Bold.woff2") format("woff2");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Reckless";
    src: url("/fonts/Reckless/Reckless-Regular.woff2") format("woff2");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    overflow-x: hidden;
    color: var(--black);
    background: var(--sand);
    font-family: "ABC Favorit", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 18px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

img,
video {
    display: block;
    max-width: 100%;
}

input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
    appearance: none;
    border: 1px solid currentColor;
    border-radius: 0;
    background-color: transparent;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 0.85rem 0.85rem;
    color: inherit;
    cursor: pointer;
    transition: background-color 0.18s ease, border-color 0.18s ease;
}

input[type="checkbox"]:checked {
    border-color: var(--blue);
    background-color: var(--blue);
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='11' viewBox='0 0 14 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.5 5.5L5 9L12.5 1.5' stroke='white' stroke-width='2' stroke-linecap='square'/%3E%3C/svg%3E");
}

input[type="checkbox"]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

.h1 {
    max-width: 21ch;
    font-size: clamp(2.8rem, 5vw, 5rem);
    line-height: 1;
    font-weight: 700;
    overflow-wrap: break-word;
    hyphens: auto;
}

.h2 {
    max-width: 18ch;
    font-size: clamp(2rem, 4.6vw, 5rem);
    line-height: 1;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.h3 {
    font-size: clamp(1.35rem, 2vw, 2rem);
    line-height: 1.08;
    font-weight: 700;
    overflow-wrap: anywhere;
}

.shell {
    width: min(calc(100% - var(--gutter) * 2), var(--max));
    margin-inline: auto;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--black);
    color: var(--white);
}

.site-header__inner {
    display: flex;
    min-height: 78px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.brand {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: flex-end;
    gap: 0.35rem;
}

.brand img {
    height: 1.65rem;
    width: auto;
    filter: brightness(0) invert(1);
}

.main-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.65rem 1.2rem;
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
}

.main-nav a[aria-current="page"],
.main-nav a:hover {
    color: var(--silver);
}

.hero {
    position: relative;
    isolation: isolate;
    background: var(--black);
    color: var(--white);
}

.hero--media {
    min-height: min(86vh, 900px);
}

.hero__media {
    position: absolute;
    inset: 0;
    z-index: -2;
    background: var(--black);
}

.hero__media::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(180deg, rgb(0 0 0 / 0.75), rgb(0 0 0 / 0.22) 44%, rgb(0 0 0 / 0.72));
}

.hero__media img,
.hero__media video,
.hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero__content {
    display: grid;
    min-height: clamp(520px, 72vh, 820px);
    align-content: end;
    padding-block: clamp(5rem, 12vw, 9rem);
}

.hero__content--light {
    color: var(--white);
}

.hero__text {
    max-width: 48rem;
    margin-top: 1.5rem;
    color: var(--silver);
    font-size: clamp(1.2rem, 2vw, 1.75rem);
}

.hero-tag {
    position: absolute;
    right: var(--gutter);
    bottom: var(--gutter);
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    border-radius: 999px;
    padding: 0.75rem 1.2rem;
    background: var(--white);
    color: var(--black);
    font-weight: 700;
}

.page-hero {
    padding-block: clamp(5rem, 11vw, 10rem);
    background: var(--black);
    color: var(--white);
}

.page-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.42fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
}

.page-hero__text {
    max-width: 44rem;
    color: var(--silver);
    font-size: clamp(1.1rem, 1.6vw, 1.45rem);
}

.page-hero__media {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--grey);
}

.page-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eyebrow {
    margin-bottom: 1.2rem;
    color: var(--blue);
    font-family: "Reckless", Georgia, serif;
    font-size: clamp(1.1rem, 1.7vw, 1.45rem);
}

.section {
    padding-block: clamp(4rem, 8vw, 8rem);
}

.section--sand {
    background: var(--sand);
}

.section--grey {
    background: var(--grey);
}

.section--white {
    background: var(--white);
}

.section--black {
    background: var(--black);
    color: var(--white);
}

.section--blue {
    background: var(--blue);
    color: var(--white);
}

.section-head {
    display: grid;
    grid-template-columns: minmax(0, 0.62fr) minmax(18rem, 0.38fr);
    gap: 2rem;
    align-items: end;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.section-head > p:not(.eyebrow) {
    max-width: 42rem;
    color: var(--ink-60);
}

.section-head .button {
    justify-self: start;
}

.section-head--light > p:not(.eyebrow) {
    color: var(--silver);
}

.split-heading {
    display: grid;
    grid-template-columns: minmax(8rem, 0.22fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 6rem);
}

.button {
    display: inline-flex;
    min-height: 3rem;
    width: fit-content;
    align-items: center;
    border: 1px solid var(--black);
    border-radius: 999px;
    padding: 0.72rem 1.2rem;
    background: var(--black);
    color: var(--white);
    font-weight: 700;
}

.button:hover {
    background: var(--blue);
    border-color: var(--blue);
}

.button--light {
    border-color: var(--white);
    background: var(--white);
    color: var(--black);
}

.button--light:hover {
    background: var(--blue);
    border-color: var(--blue);
    color: var(--white);
}

.text-link {
    color: var(--blue);
    font-weight: 700;
}

.card-grid {
    display: grid;
    gap: clamp(1rem, 2.3vw, 2rem);
}

.card-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.card-grid--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.card,
.text-card,
.service-tile,
.person-card {
    min-width: 0;
    background: var(--white);
}

.section--black .text-card,
.section--black .service-tile {
    border: 1px solid rgb(255 255 255 / 0.28);
    background: transparent;
}

.card > a,
.service-tile,
.person-card > a {
    display: flex;
    height: 100%;
    min-width: 0;
    flex-direction: column;
}

.card__media,
.person-card__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--black);
}

.card__media img,
.person-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.35s ease;
}

.card:hover .card__media img,
.person-card:hover .person-card__media img {
    transform: scale(1.035);
}

.card__body,
.text-card,
.service-tile,
.person-card > a > div:last-child {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 0.8rem;
    padding: clamp(1rem, 2.2vw, 1.8rem);
}

.card--flat .card__body {
    min-height: 12rem;
}

.card__meta,
.caption,
figcaption {
    color: var(--ink-60);
    font-family: "Reckless", Georgia, serif;
}

.section--black .card__meta,
.section--black .caption,
.section--black figcaption {
    color: var(--silver);
}

.tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: auto;
}

.tag {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 0.375rem 1rem;
    color: var(--black);
    font-size: var(--text-base);
    line-height: 1.5;
    white-space: nowrap;
}

.section--black .tag,
.bg-black .tag {
    color: var(--white);
    border-color: rgb(255 255 255 / 0.6);
}

.media-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    background: var(--black);
}

.media-strip__image {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    background: rgb(255 255 255 / 0.35);
}

.service-tile {
    gap: 1rem;
    min-height: 20rem;
}

.service-tile span {
    color: var(--silver);
    font-family: "Reckless", Georgia, serif;
}

.service-tile strong {
    font-size: clamp(1.6rem, 3vw, 2.8rem);
    line-height: 1;
}

.people-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 2.3vw, 2rem);
}

.person-card__media {
    aspect-ratio: 3 / 4;
}

.listing-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: clamp(2rem, 5vw, 4rem);
}

.detail-grid {
    display: grid;
    grid-template-columns: minmax(12rem, 0.3fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 6rem);
}

.detail-meta {
    display: grid;
    gap: 1rem;
    align-content: start;
}

.detail-meta dt {
    color: var(--ink-60);
    font-family: "Reckless", Georgia, serif;
}

.detail-meta dd {
    margin: 0 0 1rem;
}

.rich-text {
    max-width: 56rem;
}

.rich-text > * + * {
    margin-top: 1rem;
}

.rich-text h2,
.rich-text h3 {
    margin-top: 2.5rem;
}

.rich-text a {
    color: var(--blue);
    text-decoration: underline;
}

.content-stack {
    display: grid;
    gap: clamp(3rem, 6vw, 6rem);
}

.content-block {
    display: grid;
    gap: 1.4rem;
}

.media-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.content-block--full .media-grid,
.content-block--stacked .media-grid {
    grid-template-columns: 1fr;
}

.media-grid img {
    width: 100%;
    object-fit: cover;
}

.quote-block {
    max-width: 64rem;
    border-left: 0.45rem solid var(--blue);
    padding-left: clamp(1rem, 3vw, 2rem);
    font-size: clamp(1.6rem, 3.2vw, 3rem);
    line-height: 1.1;
}

.quote-block cite {
    display: block;
    margin-top: 1rem;
    color: var(--ink-60);
    font-family: "Reckless", Georgia, serif;
    font-size: 1rem;
    font-style: normal;
}

.cta-band h2,
.cta-panel h2 {
    max-width: 20ch;
}

.cta-band .shell,
.cta-panel {
    display: grid;
    gap: 2rem;
}

.timeline-list,
.faq-list,
.office-list {
    display: grid;
    gap: 1px;
    background: var(--black);
}

.timeline-item,
.faq-item,
.office-item {
    display: grid;
    grid-template-columns: minmax(8rem, 0.22fr) minmax(0, 1fr);
    gap: 2rem;
    padding: clamp(1.2rem, 2.5vw, 2rem);
    background: var(--white);
}

.section--black .timeline-list,
.section--black .faq-list {
    background: rgb(255 255 255 / 0.28);
}

.section--black .timeline-item,
.section--black .faq-item {
    background: var(--black);
}

.article-layout {
    display: grid;
    grid-template-columns: minmax(12rem, 0.25fr) minmax(0, 1fr);
    gap: clamp(2rem, 6vw, 7rem);
}

.article-aside {
    display: grid;
    gap: 1rem;
    align-content: start;
    color: var(--ink-60);
}

.site-footer {
    background: var(--black);
    color: var(--white);
}

.site-footer--sand {
    background: var(--sand);
    color: var(--black);
}

.site-footer__top {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 3rem;
    align-items: start;
    margin-bottom: 8rem;
}

.site-footer__brand-column {
    grid-column: span 2;
}

.site-footer__logo {
    display: inline-block;
    margin-bottom: 1rem;
}

.site-footer__logo img {
    width: auto;
    height: 2.5rem;
    filter: brightness(0) invert(1);
}

.site-footer--sand .site-footer__logo img {
    filter: brightness(0);
}

.footer-tagline {
    max-width: 24rem;
    margin: 0 0 1.5rem;
    color: var(--white);
    font-size: var(--text-xl);
    line-height: 1.25;
}

.footer-tagline strong {
    color: var(--white);
    font-weight: 700;
}

.site-footer--sand .footer-tagline,
.site-footer--sand .footer-tagline strong {
    color: var(--black);
}

.site-footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.share-link-light {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 50%;
    background: var(--blue);
    color: var(--white);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.share-link-light:hover {
    background: var(--white);
    color: var(--blue);
}

.share-link-light svg {
    width: 1rem;
    height: 1rem;
    fill: currentColor;
}

.footer-link-column__heading {
    margin-bottom: 1rem;
    color: var(--silver);
    font-family: var(--font-lining);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.1;
}

.site-footer--sand .footer-link-column__heading {
    color: var(--ink-60);
}

.footer-link-column__list {
    display: grid;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--text-base);
    line-height: 1.5;
}

.footer-link-column__list a,
.footer-legal-links a,
.footer-language-switch a {
    transition: color 0.2s ease;
}

.footer-link-column__list a:hover,
.footer-legal-links a:hover,
.footer-language-switch a:hover {
    color: var(--silver);
}

.site-footer--sand .footer-link-column__list a:hover,
.site-footer--sand .footer-legal-links a:hover,
.site-footer--sand .footer-language-switch a:hover {
    color: var(--blue);
}

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    border-top: 1px solid var(--white);
    padding-top: 1.5rem;
    font-size: var(--text-base);
    line-height: 1.2;
}

.site-footer--sand .site-footer__bottom {
    border-color: var(--black);
}

.footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.footer-language-switch {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: auto;
    color: var(--silver);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.footer-language-switch span:first-child {
    color: var(--white);
}

.site-footer--sand .footer-language-switch {
    color: var(--ink-60);
}

.site-footer--sand .footer-language-switch span:first-child {
    color: var(--black);
}

@media (max-width: 980px) {
    body {
        font-size: 16px;
    }

    .site-header__inner,
    .site-footer__inner,
    .section-head,
    .split-heading,
    .page-hero__grid,
    .detail-grid,
    .article-layout,
    .timeline-item,
    .faq-item,
    .office-item {
        grid-template-columns: 1fr;
    }

    .site-header__inner {
        display: grid;
        gap: 1rem;
        padding-block: 1rem;
    }

    .main-nav {
        justify-content: flex-start;
    }

    .card-grid--three,
    .card-grid--two,
    .people-grid,
    .service-grid,
    .media-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    h1,
    .h1 {
        max-width: 100%;
        font-size: clamp(2.35rem, 12vw, 3.4rem);
        line-height: 1;
    }

    .page-hero h1 {
        font-size: clamp(2.15rem, 9vw, 2.8rem);
    }

    .card-grid--three,
    .card-grid--two,
    .people-grid,
    .service-grid,
    .media-strip,
    .media-grid {
        grid-template-columns: 1fr;
    }

    .hero-tag {
        position: static;
        margin: 0 var(--gutter) var(--gutter);
    }
}

/* Homepage parity layer: ported from the Astro frontend structure. */

body {
    font-size: var(--text-base);
}

.padding-global {
    padding-inline: var(--padding-global);
}

.padding-section-sm {
    padding-block: var(--padding-section-sm);
}

.padding-section-md {
    padding-block: var(--padding-section-md);
}

.padding-section-lg {
    padding-block: var(--padding-section-lg);
}

.padding-section-hero {
    padding-top: 16rem;
    padding-bottom: var(--padding-section-lg);
}

.container-lg {
    position: relative;
    z-index: 20;
    width: 100%;
    max-width: var(--max);
    margin-inline: auto;
}

.bg-sand {
    background: var(--sand);
}

.bg-grey {
    background: var(--grey);
}

.bg-white {
    background: var(--white);
}

.bg-black {
    background: var(--black);
}

.bg-blue {
    background: var(--blue);
}

.text-black {
    color: var(--black);
}

.text-white,
.bg-black,
.bg-blue {
    color: var(--white);
}

.font-lining {
    font-family: var(--font-lining);
}

.heading-display {
    max-width: none;
    font-size: var(--text-3xl);
    font-weight: 700;
    line-height: 1.1;
    overflow-wrap: normal;
    hyphens: manual;
}

.heading-section {
    font-size: var(--text-xl);
    font-weight: 700;
    line-height: 1.15;
}

.heading-accordion {
    margin: 0;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.25;
}

.heading-sub,
.card-title {
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.375;
}

.section-label {
    margin: 0 0 1rem;
    color: var(--blue);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.section-label--white {
    color: var(--white);
}

.section-intro {
    margin-bottom: 3rem;
}

.section-intro--wide .heading-section {
    max-width: 24ch;
}

.page-hero__heading {
    margin-top: 2rem;
}

.section-head {
    margin-bottom: 3rem;
}

.section-heading-narrow {
    max-width: 42rem;
}

.section-heading-wide {
    max-width: 56rem;
}

.intro-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem 4rem;
}

.hero-intro-split {
    margin-top: 3rem;
}

.intro-copy {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: 1.7;
}

.media-banner {
    height: 75vh;
    overflow: hidden;
}

.media-banner img,
.media-banner video,
.fullscreen-media img,
.split-media__image img,
.portrait-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.split-media__image {
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.portrait-card__media {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    margin-bottom: 0.75rem;
}

.portrait-card__media img {
    object-position: top;
}

.portrait-card__meta {
    margin-top: 0.25rem;
}

.fullscreen-media {
    height: 100vh;
    overflow: hidden;
}

.detail-accordion {
    border-top: 1px solid currentColor;
}

.detail-accordion__item {
    border-bottom: 1px solid currentColor;
}

.detail-accordion__summary {
    display: flex;
    align-items: center;
    padding-block: 1.5rem;
    cursor: pointer;
    list-style: none;
}

.detail-accordion__summary::-webkit-details-marker {
    display: none;
}

.detail-accordion__dot {
    margin-right: 1.25rem;
}

.detail-accordion__title {
    margin: 0;
}

.detail-accordion__content {
    padding-bottom: 2rem;
}

.detail-accordion__split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

.number-dot {
    margin-bottom: 1.5rem;
}

.number-dot--loose {
    margin-bottom: 2rem;
}

.number-title {
    margin-bottom: 0.75rem;
}

.number-title--loose {
    margin-bottom: 1rem;
}

.number-text {
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: 1.5;
}

.stat-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 2rem;
}

.stat-label {
    margin-top: 0.5rem;
    font-size: var(--text-base);
}

.principles-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

.team-card {
    display: block;
}

.advisor-list-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 2rem;
}

.advisor-list-card {
    display: block;
}

.jobs-list {
    border-top: 1px solid rgb(255 255 255 / 0.6);
}

.jobs-list__item {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    justify-content: space-between;
    padding-block: 2.5rem;
    border-bottom: 1px solid rgb(255 255 255 / 0.6);
}

.jobs-list__meta {
    margin-top: 0.5rem;
    font-size: var(--text-base);
}

.job-arrow {
    display: inline-flex;
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
    overflow: hidden;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.job-arrow svg {
    width: 1.125rem;
    height: 1.125rem;
}

.jobs-empty {
    padding-block: 2.5rem;
    border-bottom: 1px solid rgb(255 255 255 / 0.6);
}

.job-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    max-width: 52rem;
    margin-top: 2.5rem;
}

.job-pill {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    border: 1px solid var(--black);
    border-radius: 9999px;
    padding-inline: 1.75rem;
    font-size: var(--text-base);
}

.job-intro-quote {
    max-width: 62rem;
}

.job-intro-copy {
    font-size: var(--text-xl);
    font-weight: 700;
    line-height: 1.2;
}

.profile-slideshow__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease;
}

.profile-slideshow__image.is-active {
    opacity: 1;
}

.job-content-groups {
    display: grid;
    gap: 4rem;
}

.job-faq-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: 1.5rem;
    cursor: pointer;
    list-style: none;
}

.job-faq-summary::-webkit-details-marker {
    display: none;
}

.job-faq-dot {
    transition: background-color 0.3s ease, color 0.3s ease;
}

.job-faq-dot svg {
    transition: transform 0.3s ease;
}

.faq-item[open] .job-faq-dot {
    background: var(--white);
    color: var(--black);
}

.faq-item[open] .job-faq-dot svg {
    transform: rotate(45deg);
}

.job-faq-answer {
    padding: 0 4.25rem 1.5rem 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.job-final-copy {
    max-width: 42rem;
    margin: 1.5rem auto 0;
    color: var(--white);
    font-size: var(--text-base);
    line-height: 1.5;
}

.guide-feature-list {
    display: grid;
    gap: 1rem;
    margin: 2.5rem 0 0;
    padding: 0;
    list-style: none;
}

.guide-feature {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.guide-feature__icon {
    display: inline-flex;
    width: 1.5rem;
    height: 1.5rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    margin-top: 0.125rem;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
}

.guide-copy {
    font-size: var(--text-base);
    line-height: 1.5;
}

.guide-price-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 2.5rem;
}

.guide-price-pill {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--black);
    border-radius: 9999px;
    padding: 0.875rem 1.75rem;
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1;
}

.guide-hero__cta {
    margin-top: 2rem;
}

.guide-testimonial-quote {
    margin: 0 0 2.5rem;
    font-family: var(--font-serif);
    font-size: clamp(1.75rem, 3.2vw, 2.75rem);
    line-height: 1.25;
}

.guide-advisor-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 2rem;
}

.guide-accordion-dot {
    transition: background-color 0.3s ease, color 0.3s ease;
}

.guide-accordion-dot svg {
    transition: transform 0.3s ease;
}

.guide-accordion[open] .guide-accordion-dot {
    background: var(--black);
    color: var(--white);
}

.guide-accordion[open] .guide-accordion-dot svg {
    transform: rotate(45deg);
}

.guide-questions {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.guide-question {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
}

.guide-faq-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: 1.5rem;
    cursor: pointer;
    list-style: none;
}

.guide-faq-summary::-webkit-details-marker {
    display: none;
}

.guide-faq-dot {
    transition: background-color 0.3s ease, color 0.3s ease;
}

.guide-faq-dot svg {
    transition: transform 0.3s ease;
}

.faq-item[open] .guide-faq-dot {
    background: var(--black);
    color: var(--white);
}

.faq-item[open] .guide-faq-dot svg {
    transform: rotate(45deg);
}

.guide-faq-answer {
    padding: 0 4.25rem 1.5rem 0;
    font-size: var(--text-base);
    line-height: 1.5;
}

.legal-backbar {
    padding-block: 1.5rem;
}

.legal-content {
    max-width: 48rem;
}

.legal-heading {
    margin-bottom: 1rem;
}

.legal-subheading {
    margin: 2rem 0 0.5rem;
    font-size: var(--text-base);
    font-weight: 700;
}

.legal-copy {
    margin: 0 0 3rem;
    font-size: var(--text-base);
    line-height: 1.5;
}

.legal-copy-link {
    color: var(--blue);
    transition: color 0.2s ease;
}

.legal-copy-link:hover {
    color: var(--black);
}

.legal-copy--compact {
    margin-top: 0.5rem;
}

.legal-copy--short {
    margin-bottom: 1rem;
}

.legal-copy--muted {
    color: var(--text-muted);
}

.legal-strong {
    font-weight: 700;
}

.legal-list {
    display: grid;
    gap: 0.5rem;
    margin: 0 0 3rem;
    padding-left: 1.5rem;
    font-size: var(--text-base);
    line-height: 1.5;
}

.service-extra__heading {
    margin-bottom: 3rem;
    color: var(--white);
}

.section-head-copy {
    max-width: 48rem;
    margin-top: 1rem;
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: 1.5;
}

.content-split {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

.content-section-heading {
    margin-bottom: 2rem;
}

.detail-accordion__subtitle {
    margin-bottom: 1rem;
}

.sustainability-bullet-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.sustainability-bullet {
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    color: var(--text-muted);
    font-size: var(--text-base);
    line-height: 1.5;
}

.sustainability-bullet__dot {
    width: 0.5rem;
    height: 0.5rem;
    flex: 0 0 auto;
    margin-top: 0.6em;
    border-radius: 9999px;
    background: var(--blue);
}

@media (min-width: 768px) {
    .intro-split {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .stat-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .principles-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .advisor-list-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .guide-advisor-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .detail-accordion__summary {
        padding-block: 2rem;
    }

    .detail-accordion__split {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .process-grid--four {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .content-split {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .principles-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .advisor-list-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .jobs-list__item {
        flex-direction: row;
        align-items: center;
        gap: 3rem;
        padding-block: 3.5rem;
    }

    .guide-advisor-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

.section-intro__text,
.newsletter-copy,
.advisors-copy,
.team-copy {
    max-width: 42rem;
    margin-top: 1rem;
}

.home-services__text {
    max-width: none;
}

.home-services__text > * {
    margin-top: 0;
}

.prose-lite {
    color: inherit;
    line-height: 1.6;
}

.prose-lite > * + * {
    margin-top: 1rem;
}

.prose-lite a {
    color: var(--blue);
}

.bg-blue .prose-lite a,
.bg-black .prose-lite a {
    color: var(--white);
    text-decoration: underline;
}

.btn-pill {
    display: inline-flex;
    align-items: center;
    color: var(--white);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1;
}

.btn-pill > span:first-child {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    border-radius: 9999px;
    padding-inline: 1.75rem;
    background: var(--blue);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.btn-arrow-circle {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
    overflow: hidden;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.btn-arrow-circle svg {
    width: 1.125rem;
    height: 1.125rem;
    transform: translateX(0);
}

.btn-pill--light {
    color: var(--blue);
}

.btn-pill--light > span:first-child,
.btn-pill--light .btn-arrow-circle {
    background: var(--white);
    color: var(--blue);
}

.btn-pill:hover > span:first-child,
.btn-pill:hover .btn-arrow-circle {
    background: var(--black);
    color: var(--white);
}

.bg-black .btn-pill:hover > span:first-child,
.bg-black .btn-pill:hover .btn-arrow-circle,
.bg-blue .btn-pill:hover > span:first-child,
.bg-blue .btn-pill:hover .btn-arrow-circle {
    background: var(--white);
    color: var(--blue);
}

.btn-pill:hover .btn-arrow-circle svg {
    animation: btn-arrow-slide 0.45s ease both;
    will-change: transform, opacity;
}

@keyframes btn-arrow-slide {
    0% {
        opacity: 1;
        transform: translateX(0);
    }

    44% {
        opacity: 0;
        transform: translateX(140%);
    }

    45% {
        opacity: 0;
        transform: translateX(-140%);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .btn-pill:hover .btn-arrow-circle svg {
        animation: none;
        transform: translateX(0.25rem);
    }
}

.arrow-circle {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
    cursor: pointer;
    overflow: hidden;
}

.arrow-circle.bg-white {
    background: var(--white);
}

.arrow-circle svg {
    width: 1.125rem;
    height: 1.125rem;
}

.testimonial-slides {
    display: grid;
}

.testimonial-slide {
    grid-area: 1 / 1;
    margin: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.8s ease;
}

.testimonial-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

.testimonial-quote {
    margin: 0 0 2.5rem;
    font-family: var(--font-serif);
    font-size: 1.75rem;
    font-weight: 400;
    line-height: 1.25;
}

.testimonial-author {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.testimonial-author cite {
    display: block;
    font-style: normal;
    font-size: var(--text-base);
    font-weight: 700;
}

.testimonial-author p {
    margin: 0;
    color: var(--silver);
    font-size: var(--text-base);
}

.avatar {
    display: inline-flex;
    width: 3.5rem;
    height: 3.5rem;
    flex: 0 0 auto;
    border-radius: 9999px;
    overflow: hidden;
}

.avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.testimonial-arrows {
    display: flex;
    gap: 0.75rem;
    margin-top: 2.5rem;
}

.site-header {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 60;
    background: transparent;
    color: var(--white);
    transition: transform 0.35s ease, background-color 0.35s ease;
}

.site-header.is-scrolled {
    position: fixed;
    background: transparent;
}

.site-header.is-scroll-up {
    background: var(--black);
    color: var(--white);
}

.site-header[data-theme="light"]:not(.is-open) {
    color: var(--black);
}

.site-header[data-theme="light"]:not(.is-open) .logo-hej,
.site-header[data-theme="light"]:not(.is-open) .logo-build {
    filter: none;
}

.site-header[data-theme="light"]:not(.is-open) .menu-toggle,
.site-header[data-theme="light"]:not(.is-open) .nav-label {
    color: var(--black);
}

.site-header[data-theme="dark"] .logo-hej,
.site-header[data-theme="dark"] .logo-build,
.site-header.is-open .logo-hej,
.site-header.is-open .logo-build {
    filter: brightness(0) invert(1);
}

.site-header.is-open,
.site-header.is-open .menu-toggle,
.site-header.is-open .nav-label {
    color: var(--white);
}

.site-header.is-scroll-up:not(.is-open),
.site-header.is-scroll-up:not(.is-open) .menu-toggle,
.site-header.is-scroll-up:not(.is-open) .nav-label {
    color: var(--white);
}

.site-header.is-scroll-up:not(.is-open) .logo-hej,
.site-header.is-scroll-up:not(.is-open) .logo-build {
    filter: brightness(0) invert(1);
}

.site-header.logo-collapsed {
    transform: none;
}

.site-header.logo-collapsed .menu-toggle {
    opacity: 0;
    pointer-events: none;
}

.nav-inner {
    display: flex;
    height: 140px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    transition: height 0.3s ease;
}

.site-header.is-scrolled .nav-inner {
    height: 76px;
}

.nav-logo,
.logo-container {
    display: inline-flex;
    align-items: flex-end;
}

.logo-container {
    gap: 0.35em;
}

.logo-hej,
.logo-build {
    width: auto;
    filter: brightness(0) invert(1);
    transition: height 0.3s ease;
}

.logo-hej {
    height: 4.5rem;
}

.logo-build {
    height: calc(4.5rem * 373 / 427);
}

.logo-build-wrap {
    display: inline-flex;
    max-width: 13rem;
    overflow: hidden;
    opacity: 1;
    transition: max-width 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.3s ease;
}

.site-header.is-scrolled .logo-hej {
    height: 2.25rem;
}

.site-header.is-scrolled .logo-build {
    height: calc(2.25rem * 373 / 427);
}

.site-header.logo-collapsed .logo-build-wrap {
    max-width: 0;
    opacity: 0;
}

.menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    border: 0;
    padding: 0;
    background: transparent;
    color: var(--white);
    cursor: pointer;
    font: inherit;
}

.nav-label {
    color: var(--white);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
}

.burger-lines {
    display: grid;
    gap: 7px;
}

.burger-lines span {
    display: block;
    width: 2.25rem;
    height: 2.5px;
    background: currentColor;
    transform-origin: center;
    transition: transform 0.35s ease;
}

.site-header.is-open .burger-lines span:first-child {
    transform: translateY(4.75px) rotate(45deg);
}

.site-header.is-open .burger-lines span:last-child {
    transform: translateY(-4.75px) rotate(-45deg);
}

.menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 55;
    pointer-events: none;
}

.menu-bg {
    position: absolute;
    inset: 0;
    background: var(--black);
    opacity: 0;
    transition: opacity 0.4s ease;
}

.menu-content {
    position: relative;
    height: 100%;
    color: var(--white);
    opacity: 0;
    transform: translateY(1rem);
    transition: opacity 0.35s ease 0.1s, transform 0.35s ease 0.1s;
}

.menu-overlay.is-open {
    pointer-events: auto;
}

.menu-overlay.is-open .menu-bg {
    opacity: 1;
}

.menu-overlay.is-open .menu-content {
    opacity: 1;
    transform: translateY(0);
}

.menu-is-open {
    overflow: hidden;
}

.nav-spacer {
    height: 140px;
}

.menu-content__scroll {
    height: calc(100% - 140px);
    overflow-y: auto;
    padding-block: 3rem;
}

.menu-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem;
}

.menu-group-label {
    margin: 0 0 1.5rem;
    color: var(--white);
    font-family: var(--font-lining);
    font-size: var(--text-lg);
    font-weight: 700;
}

.menu-list {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.menu-link {
    display: inline-block;
    color: var(--white);
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.25;
    transition: color 0.2s ease, transform 0.2s ease;
}

.menu-link:hover {
    color: var(--blue);
    transform: translateX(0.5rem);
}

@media (min-width: 1024px) {
    .menu-group-label,
    .menu-link {
        font-size: var(--text-xl);
    }

    .menu-group-label {
        margin-bottom: 2rem;
    }
}

.language-switch {
    display: flex;
    gap: 0.8rem;
    margin-top: 4rem;
    font-size: var(--text-lg);
    font-weight: 700;
    text-transform: uppercase;
}

.language-switch a,
.language-switch span:nth-child(2) {
    color: var(--silver);
}

.home-hero__media {
    position: relative;
    width: 100%;
    height: 90vh;
    min-height: 620px;
    overflow: hidden;
    background: var(--black);
}

.home-hero__media video,
.home-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-hero__shade {
    position: absolute;
    inset-inline: 0;
    top: 0;
    z-index: 10;
    height: 12rem;
    pointer-events: none;
    background: linear-gradient(to bottom, rgb(0 0 0 / 0.6), transparent);
}

.home-hero__cta {
    margin-top: 2.5rem;
}

.accent-dot {
    display: inline-flex;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background: var(--blue);
    color: var(--white);
    font-size: var(--text-sm);
    font-weight: 700;
}

.flush-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--black);
}

.flush-cell {
    background: var(--sand);
    padding: 1.5rem 0;
}

.flush-cell:first-child {
    padding-top: 0;
}

.flush-cell:last-child {
    padding-bottom: 0;
}

.flush-cell .heading-sub {
    margin: 0 0 0.75rem;
}

.usps-grid .accent-dot {
    display: flex;
    margin-bottom: 1rem;
}

.logo-slider-section {
    overflow: hidden;
    padding-block: var(--padding-section-sm);
    background: var(--blue);
}

.logo-slider {
    overflow: hidden;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y;
    mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
}

.logo-slider.is-dragging {
    cursor: grabbing;
}

.logo-track {
    display: flex;
    width: max-content;
    gap: 4rem;
    will-change: transform;
}

.logo-item {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
}

.logo-img {
    width: auto;
    max-width: 10rem;
    height: 2.125rem;
    object-fit: contain;
    opacity: 0.82;
    filter: brightness(0) invert(1);
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.team-slideshow {
    position: relative;
    width: 100%;
    aspect-ratio: 21 / 9;
    overflow: hidden;
    background: var(--black);
}

.team-slideshow__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease;
}

.team-slideshow__image.is-active {
    opacity: 1;
}

.service-accordion {
    border-top: 1px solid var(--black);
}

.service-accordion__item {
    border-bottom: 1px solid var(--black);
}

.service-accordion__item summary {
    display: flex;
    align-items: center;
    padding-block: 2rem;
    cursor: pointer;
    list-style: none;
}

.service-accordion__item summary::-webkit-details-marker {
    display: none;
}

.service-accordion__dot {
    margin: 0 1.25rem 0 0;
    transition: background-color 0.2s ease;
}

.service-accordion__dot svg {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 0.25s ease;
}

.service-accordion__item[open] .service-accordion__dot {
    background: var(--black);
}

.service-accordion__item[open] .service-accordion__dot svg {
    transform: rotate(45deg);
}

.service-accordion__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 1fr);
    gap: 2rem;
    padding: 0 0 3rem;
}

.service-description {
    margin-bottom: 2rem;
    color: var(--ink-60);
}

.service-accordion__image {
    aspect-ratio: 1;
    overflow: hidden;
}

.service-accordion__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cases-preview__head {
    padding-top: var(--padding-section-lg);
}

.section-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 3rem;
}

.section-row__button {
    flex: 0 0 auto;
}

.cases-slider {
    overflow: hidden;
    cursor: grab;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y;
}

.cases-slider.is-dragging {
    cursor: grabbing;
}

.cases-track {
    display: flex;
    width: max-content;
    padding-left: var(--padding-global);
    will-change: transform;
}

.cases-slide {
    display: block;
    width: calc(42vw - 2rem);
    flex: 0 0 auto;
    margin-right: 2rem;
}

.cases-slide__media {
    aspect-ratio: 4 / 3;
    margin-bottom: 1rem;
    overflow: hidden;
    background: var(--grey);
}

.cases-slide__media img,
.cases-slide__media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.cases-slide .font-lining {
    margin-bottom: 0.25rem;
}

.cases-preview__foot {
    height: var(--padding-section-lg);
}

.insights-preview {
    background: var(--sand);
}

.insight-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 2.5rem;
}

.insight-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.insight-card__image {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--grey);
}

.insight-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.2s ease;
}

.insight-card:hover .insight-card__image img {
    opacity: 0.85;
}

.insight-card__body {
    padding-top: 1.5rem;
}

.insight-card__date {
    display: block;
    margin: 0 0 0.15rem;
}

.insight-card__title {
    margin: 0;
}

.insight-card .tags {
    margin-top: 1rem;
}

.insight-listing {
    padding-block: 6rem;
}

.insight-listing__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 6rem;
}

.insight-listing__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4rem 2.5rem;
}

.related-insights__head {
    margin-bottom: 3rem;
}

.related-insights__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 2.5rem;
}

.related-insights__card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
}

.related-insights__image {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--grey);
}

.related-insights__image-element {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: opacity 0.3s ease;
}

.related-insights__card:hover .related-insights__image-element {
    opacity: 0.85;
}

.related-insights__body {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
    padding-top: 1.5rem;
}

.related-insights__date {
    display: block;
    margin: 0 0 0.15rem;
}

.related-insights__title {
    margin: 0;
}

.related-insights__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 1rem;
}

.termine-hero .heading-display {
    margin-top: 2rem;
}

.termine-listing__heading {
    margin-bottom: 2rem;
}

.termine-listing__heading--past {
    margin-top: 6rem;
}

.event-row {
    display: grid;
    grid-template-columns: 22rem minmax(0, 1fr);
    gap: 3rem;
    align-items: start;
    margin-bottom: 3.5rem;
    color: inherit;
    text-decoration: none;
}

.event-row__left {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.event-row__image,
.event-row__placeholder {
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--sand);
}

.event-row__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.event-row__date {
    display: block;
    line-height: 1;
}

.event-row__title {
    max-width: none;
    margin-top: 0.5rem;
    line-height: 1;
}

.event-row__description {
    max-width: 46rem;
    margin-top: 0.75rem;
    font-size: var(--text-base);
    line-height: 1.45;
}

.event-row__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.event-pill {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--black);
    border-radius: 9999px;
    padding: 0.5rem 1.25rem;
    color: var(--black);
    font-size: var(--text-base);
    line-height: 1.2;
    white-space: nowrap;
}

.event-row--past {
    opacity: 0.4;
}

.event-registration-open {
    border: 0;
    background: transparent;
    padding: 0;
    cursor: pointer;
    font: inherit;
}

.event-section-head {
    margin-bottom: 3rem;
}

.has-modal-open {
    overflow: hidden;
}

.event-registration-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
}

.event-registration-modal[hidden] {
    display: none;
}

.event-registration-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 0.4);
    opacity: 0;
    transition: opacity 250ms ease;
}

.event-registration-modal__drawer {
    position: absolute;
    top: 0;
    right: 0;
    width: min(100%, 37.5rem);
    height: 100%;
    overflow-y: auto;
    background: var(--color-white);
    color: var(--color-black);
    transform: translateX(100%);
    transition: transform 300ms ease;
    box-shadow: -1rem 0 3rem rgb(0 0 0 / 0.24);
}

.event-registration-modal.is-open .event-registration-modal__backdrop {
    opacity: 1;
}

.event-registration-modal.is-open .event-registration-modal__drawer {
    transform: translateX(0);
}

.event-registration-modal__header,
.event-registration-form {
    padding: 1.5rem;
}

.event-registration-modal__header {
    border-bottom: 1px solid var(--color-black);
}

.event-registration-modal__title {
    padding-right: 3rem;
    font-family: var(--font-lining);
    font-size: var(--text-xl);
    font-weight: 700;
    line-height: 1.2;
}

.event-registration-modal__close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--color-blue);
    cursor: pointer;
}

.event-registration-modal__close svg {
    width: 1.5rem;
    height: 1.5rem;
}

.event-registration-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.event-registration-step {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--text-xs);
    font-weight: 700;
}

.event-registration-step span {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: 1px solid var(--color-black);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.event-registration-step.is-active span {
    background: var(--color-blue);
    border-color: var(--color-blue);
    color: var(--color-white);
}

.event-registration-step.is-completed span {
    background: var(--color-black);
    color: var(--color-white);
}

.event-registration-pane {
    display: none;
}

.event-registration-pane.is-active {
    display: block;
}

.event-registration-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.event-registration-intro {
    margin-bottom: 1rem;
    font-size: var(--text-base);
    line-height: 1.5;
}

.event-registration-subheading,
.event-registration-success-title {
    margin-bottom: 1rem;
}

.event-registration-grid__full {
    grid-column: 1 / -1;
}

.event-registration-grid label,
.event-registration-check {
    display: block;
    font-size: var(--text-sm);
    font-weight: 700;
}

.event-registration-grid label span,
.event-registration-check span {
    color: var(--color-text-muted);
}

.event-registration-grid input,
.event-registration-grid textarea {
    width: 100%;
    margin-top: 0.5rem;
    padding: 0.875rem 1.25rem;
    border: 1px solid var(--color-black);
    background: transparent;
    color: var(--color-black);
    font-size: var(--text-base);
    font-family: inherit;
}

.event-registration-grid textarea {
    resize: vertical;
}

.event-registration-participant {
    padding-bottom: 2rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--color-black);
}

.event-registration-add,
.event-registration-secondary {
    border: 0;
    background: transparent;
    color: rgb(0 0 0 / 0.6);
    font: inherit;
    cursor: pointer;
}

.event-registration-add {
    margin-top: 1.5rem;
}

.event-registration-primary {
    border: 0;
    border-radius: 999px;
    padding: 0.875rem 1.75rem;
    background: var(--color-blue);
    color: var(--color-white);
    font-size: var(--text-base);
    font-family: inherit;
    cursor: pointer;
}

.event-registration-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-top: 2.5rem;
}

.event-registration-actions--end {
    justify-content: flex-end;
}

.event-registration-actions--stack {
    align-items: flex-start;
    flex-direction: column;
}

.event-registration-summary {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-grey);
}

.event-registration-summary strong {
    font-family: var(--font-lining);
}

.event-registration-check {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
    font-weight: 400;
}

.event-registration-check input {
    width: 1.25rem;
    height: 1.25rem;
}

.event-registration-check a,
.event-registration-success a {
    text-decoration: underline;
}

.event-registration-success {
    margin-top: 2rem;
}

.event-registration-success-text {
    font-size: var(--text-base);
    line-height: 1.5;
}

@media (max-width: 767px) {
    .event-registration-grid {
        grid-template-columns: 1fr;
    }

    .event-registration-step {
        font-size: 0;
    }

    .event-registration-step span {
        font-size: var(--text-xs);
    }
}

.newsletter-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr);
    gap: 6rem;
    align-items: start;
}

.newsletter-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding-top: 2.5rem;
}

.newsletter-form label {
    display: grid;
    gap: 0.5rem;
    font-size: var(--text-sm);
    font-weight: 700;
}

.newsletter-form input[type="text"],
.newsletter-form input[type="email"] {
    width: 100%;
    border: 1px solid var(--white);
    border-radius: 0;
    padding: 0.9rem 1.1rem;
    background: transparent;
    color: var(--white);
    font: inherit;
}

.newsletter-consent {
    grid-column: 1 / -1;
    display: flex !important;
    grid-template-columns: none;
    align-items: flex-start;
    gap: 0.75rem;
    font-weight: 400 !important;
}

.newsletter-consent input {
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 auto;
}

.newsletter-form button {
    width: fit-content;
    border: 0;
    border-radius: 9999px;
    padding: 0.9rem 1.75rem;
    background: var(--white);
    color: var(--blue);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.advisors-section__button {
    margin-top: 2rem;
}

.advisor-slider {
    overflow: hidden;
}

.advisor-slider__viewport {
    overflow-x: auto;
    cursor: grab;
    scrollbar-width: none;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    user-select: none;
    -webkit-user-select: none;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
}

.advisor-slider__viewport::-webkit-scrollbar {
    display: none;
}

.advisor-slider__viewport.is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.advisor-slider__track {
    display: flex;
    gap: 1rem;
}

.advisor-card {
    position: relative;
    display: block;
    min-width: min(78vw, 22rem);
    flex: 0 0 min(78vw, 22rem);
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--ink-60);
    scroll-snap-align: start;
    user-select: none;
    -webkit-user-drag: none;
    -webkit-user-select: none;
}

.advisor-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    -webkit-user-drag: none;
    user-select: none;
    -webkit-user-select: none;
}

.advisor-card__overlay {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    gap: 0.15rem;
    padding: 2rem 1rem 0.75rem;
    background: linear-gradient(to top, rgb(0 0 0 / 0.55), transparent);
    color: var(--grey);
    font-size: 1rem;
    line-height: 1.3;
    pointer-events: none;
}

.advisor-card__overlay strong,
.advisor-card__overlay span {
    display: block;
}

.advisor-slider__nav {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}

.team-teaser {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 1fr);
    gap: 4rem;
    align-items: center;
}

.team-teaser .btn-pill {
    margin-top: 2rem;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.25rem;
}

.team-grid--listing {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3rem 2rem;
}

.team-portrait {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--grey);
}

.team-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.final-cta {
    text-align: center;
}

.final-cta .container-lg {
    display: block;
}

.final-cta .heading-section {
    max-width: 62rem;
    margin-inline: auto;
}

.final-cta .btn-pill {
    margin-top: 2rem;
}

/* Architekturbeirat detail pages: mirrors the Astro/Directus advisor profile layout. */

.advisor-hero__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
    align-items: start;
}

.advisor-hero .section-label {
    margin-bottom: 2rem;
}

.advisor-hero__name,
.advisor-hero__role {
    max-width: 100%;
}

.advisor-hero__role {
    margin-top: 0.5rem;
}

.advisor-steckbrief {
    display: grid;
    gap: 1.45rem;
    margin: 0;
    padding-top: 4.4rem;
}

.advisor-steckbrief dt {
    margin-bottom: 0.45rem;
    font-family: var(--font-lining);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.2;
}

.advisor-steckbrief dd {
    margin: 0;
    font-size: var(--text-base);
    line-height: 1.45;
}

.advisor-steckbrief dd p {
    margin: 0;
}

.advisor-client-link {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35em;
}

.advisor-client-link .external-icon {
    position: relative;
    top: 0.15em;
    flex: 0 0 auto;
}

.advisor-sharebar__inner {
    display: flex;
    min-height: 5.5rem;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
}

.advisor-back-link,
.advisor-share-group,
.advisor-share-links {
    display: flex;
    align-items: center;
}

.advisor-back-link {
    gap: 0.5rem;
}

.advisor-back-link:hover {
    color: var(--silver);
}

.advisor-share-group {
    gap: 1rem;
}

.advisor-share-links {
    gap: 0.75rem;
}

.share-link-white {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 9999px;
    padding: 0;
    background: var(--white);
    color: var(--blue);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.share-link-white:hover,
.share-link-white.is-copied {
    background: var(--black);
    color: var(--white);
}

.advisor-interview__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
    align-items: start;
}

.advisor-qa-list {
    display: grid;
}

.advisor-qa-item {
    padding-block: 2rem;
}

.advisor-qa-item:first-child {
    padding-top: 0;
}

.advisor-qa-item:last-child {
    padding-bottom: 0;
}

.advisor-qa-item .heading-sub {
    max-width: 36rem;
    margin-bottom: 1rem;
}

.advisor-qa-item p {
    max-width: 42rem;
    font-size: var(--text-base);
    line-height: 1.55;
}

.advisor-portrait {
    position: relative;
    margin: 0;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--white);
}

.advisor-portrait__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
}

.advisor-related__head {
    margin-bottom: 3rem;
}

.advisor-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4rem 2.5rem;
}

.advisor-related-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.advisor-related-card__media {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--grey);
}

.advisor-related-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    transition: opacity 0.3s ease;
}

.advisor-related-card:hover .advisor-related-card__image {
    opacity: 0.85;
}

.advisor-related-card__body {
    display: grid;
    gap: 0.25rem;
    padding-top: 1.5rem;
}

.advisor-related-card__body .card-title {
    display: block;
}

.advisor-related__button {
    margin-top: 3rem;
}

.advisor-final-cta {
    text-align: center;
}

.advisor-final-cta .container-lg {
    display: grid;
    justify-items: center;
    gap: 4rem;
}

.advisor-final-cta .heading-section {
    max-width: 62rem;
    margin-inline: auto;
}

@media (min-width: 768px) {
    .advisor-card {
        min-width: calc((100% - 2rem) / 3);
        flex-basis: calc((100% - 2rem) / 3);
    }

    .flush-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .flush-cell {
        padding: 2.5rem;
    }

    .flush-cell:nth-child(-n+2) {
        padding-top: 0;
    }

    .flush-cell:nth-child(n+3) {
        padding-bottom: 0;
    }

    .flush-cell:nth-child(odd) {
        padding-left: 0;
    }

    .flush-cell:nth-child(even) {
        padding-right: 0;
    }

    .usps-grid .flush-cell:nth-child(n + 3) {
        padding-bottom: 0;
    }
}

@media (min-width: 1024px) {
    .home-services__text {
        columns: 2;
        column-gap: 4rem;
    }

    .advisor-card {
        min-width: calc((100% - 3rem) / 4);
        flex-basis: calc((100% - 3rem) / 4);
    }

    .usps-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .usps-grid .flush-cell {
        padding: 2.5rem;
    }

    .usps-grid .flush-cell:nth-child(-n + 2) {
        padding-top: 0;
    }

    .usps-grid .flush-cell:nth-child(n + 3) {
        padding-top: 2.5rem;
        padding-bottom: 0;
    }

    .usps-grid .flush-cell:nth-child(odd) {
        padding-left: 0;
        padding-right: 2.5rem;
    }

    .usps-grid .flush-cell:nth-child(even) {
        padding-left: 2.5rem;
        padding-right: 0;
    }

    .nav-inner,
    .nav-spacer {
        height: 180px;
    }

    .menu-group-label,
    .menu-link {
        font-size: var(--text-xl);
    }

    .heading-display {
        font-size: var(--text-4xl);
    }

    .heading-section {
        font-size: var(--text-2xl);
    }

    .heading-accordion {
        font-size: 2.25rem;
    }
}

@media (max-width: 991px) {
    :root {
        --padding-global: 24px;
    }

    .logo-hej {
        height: 3.5rem;
    }

    .logo-build {
        height: calc(3.5rem * 373 / 427);
    }

    .menu-grid,
    .service-accordion__content,
    .newsletter-grid,
    .site-footer__top,
    .team-teaser,
    .advisor-hero__grid,
    .advisor-interview__grid {
        grid-template-columns: 1fr;
    }

    .site-footer__top {
        gap: 2.5rem;
        margin-bottom: 5rem;
    }

    .site-footer__brand-column {
        grid-column: auto;
    }

    .service-accordion__content {
        padding-left: 0;
    }

    .advisor-grid,
    .insight-grid,
    .related-insights__grid,
    .advisor-related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .advisor-steckbrief {
        padding-top: 2rem;
    }

    .cases-slide {
        width: 70vw;
    }

    .team-slideshow {
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 767px) {
    :root {
        --padding-global: 20px;
        --padding-section-sm: 2rem;
        --padding-section-md: 4rem;
        --padding-section-lg: 5rem;
    }

    body {
        font-size: 1rem;
    }

    .padding-section-hero {
        padding-top: 10rem;
    }

    .nav-inner,
    .nav-spacer {
        height: 112px;
    }

    .site-header.is-scrolled .nav-inner {
        height: 64px;
    }

    .logo-hej {
        height: 2.8rem;
    }

    .logo-build {
        height: calc(2.8rem * 373 / 427);
    }

    .nav-label {
        display: none;
    }

    .home-hero__media {
        height: 82vh;
        min-height: 520px;
    }

    .heading-display,
    .heading-section {
        max-width: 100%;
    }

    .menu-grid,
    .insight-grid,
    .newsletter-form,
    .site-footer__top,
    .related-insights__grid,
    .advisor-related-grid {
        grid-template-columns: 1fr;
    }

    .related-insights__grid {
        gap: 3rem;
    }

    .related-insights__head {
        margin-bottom: 2rem;
    }

    .site-footer__top {
        margin-bottom: 4rem;
    }

    .footer-tagline {
        max-width: 100%;
        font-size: clamp(1.7rem, 8vw, 2.4rem);
    }

    .site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-language-switch {
        margin-left: 0;
    }

    .event-row {
        grid-template-columns: 1fr;
        gap: 0.75rem;
    }

    .advisor-hero .section-label {
        margin-bottom: 1.5rem;
    }

    .advisor-hero__role {
        font-size: clamp(2rem, 9vw, 3rem);
    }

    .advisor-sharebar__inner {
        min-height: auto;
        padding-block: 1.2rem;
    }

    .advisor-share-group > span {
        display: none;
    }

    .advisor-share-links {
        gap: 0.5rem;
    }

    .share-link-white {
        width: 2.25rem;
        height: 2.25rem;
    }

    .section-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .section-row__button {
        align-self: flex-start;
    }

    .cases-slide {
        width: 82vw;
        margin-right: 1rem;
    }
}

/* Legacy Astro component compatibility for Twig-rendered Craft pages. */

.filter-pill {
    border: 0;
    border-radius: 9999px;
    padding: 0.625rem 1.5rem;
    background: var(--blue);
    color: var(--white);
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.filter-pill:hover,
.filter-pill.is-active {
    background: var(--black);
}

.case-listing {
    padding-block: 6rem;
}

.case-card,
.insight-card,
.related-card {
    color: inherit;
    text-decoration: none;
}

.case-listing__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 6rem;
}

.case-listing__grid,
.related-cases__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4rem 2.5rem;
}

.related-cases__head {
    margin-bottom: 3rem;
}

.case-card,
.related-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.case-card-image,
.insight-card-image,
.related-card-image {
    position: relative;
    overflow: hidden;
}

.case-card-image,
.related-card-image {
    aspect-ratio: 4 / 3;
}

.insight-card-image {
    aspect-ratio: 3 / 4;
}

.case-card-image img,
.case-card-image video,
.insight-card-image img,
.insight-card-image video,
.related-card-image img,
.related-card-image video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.case-card-image::after,
.insight-card-image::after,
.related-card-image::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: var(--blue);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.case-card:hover .case-card-image::after,
.insight-card:hover .insight-card-image::after,
.related-card:hover .related-card-image::after {
    opacity: 0.75;
}

.case-card-categories,
.insight-card-categories {
    position: absolute;
    inset: 0.75rem 0.75rem auto;
    z-index: 1;
    color: var(--white);
    font-family: var(--font-lining);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.375;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.case-card:hover .case-card-categories,
.insight-card:hover .insight-card-categories {
    opacity: 1;
}

.case-card-body,
.insight-card-body,
.related-card-body {
    padding-top: 1.5rem;
}

.case-card-body,
.insight-card-body,
.related-card-body {
    display: flex;
    flex-grow: 1;
    flex-direction: column;
}

.case-card-body .card-title,
.insight-card-body .card-title,
.related-card-body .card-title {
    margin: 0;
}

.case-card-body h2.card-title,
.related-card-body h3.card-title {
    margin-top: 0.25rem;
}

.case-card.is-hidden,
.insight-card.is-hidden {
    display: none;
}

@media (min-width: 768px) {
    .case-listing__grid,
    .related-cases__grid,
    .insight-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .case-listing__grid,
    .related-cases__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .insight-listing__grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .case-listing,
    .insight-listing {
        padding-block: 4rem;
    }

    .case-listing__filters,
    .insight-listing__filters {
        margin-bottom: 3rem;
    }
}

.case-hero-single,
.insight-hero-single,
.event-hero-image {
    width: 100%;
    height: 75vh;
    min-height: 520px;
    overflow: hidden;
}

.case-hero-single img,
.case-hero-single video,
.insight-hero-single img,
.event-hero-image img,
.event-hero-image video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.meta-dividers > span + span {
    border-left: 1px solid currentColor;
    padding-left: 2rem;
}

.service-item-content p,
.service-item-content li,
.sustainability-rich p,
.sustainability-rich li {
    font-size: var(--text-base);
    line-height: 1.7;
}

.service-item-content p,
.sustainability-rich p {
    margin-bottom: 1rem;
}

.service-item-content ul,
.sustainability-rich ul {
    display: grid;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.service-item-content li,
.sustainability-rich li {
    position: relative;
    padding-left: 2rem;
}

.service-item-content li::before,
.sustainability-rich li::before {
    position: absolute;
    top: 0.72em;
    left: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 9999px;
    content: "";
    background: var(--blue);
}

.service-detail-dot {
    color: var(--white);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.service-accordion summary,
.service-detail-accordion summary,
[data-service-accordion] > summary {
    display: flex;
    list-style: none;
}

.service-accordion summary::-webkit-details-marker,
.service-detail-accordion summary::-webkit-details-marker,
[data-service-accordion] > summary::-webkit-details-marker {
    display: none;
}

details[open] > summary .service-detail-dot {
    background: var(--white);
    color: var(--black);
}

details > summary .service-detail-dot svg {
    transition: transform 0.25s ease;
}

details[open] > summary .service-detail-dot svg {
    transform: rotate(45deg);
}

.diff-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    background: var(--black);
}

.diff-grid > * {
    background: var(--sand);
}

.diff-cell {
    padding: 1.5rem 0;
}

.diff-cell:first-child {
    padding-top: 0;
}

.diff-cell:last-child {
    padding-bottom: 0;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

.contact-hero__heading {
    margin-top: 2rem;
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: rgb(255 255 255 / 0.6);
}

.contact-info-grid > * {
    background: var(--black);
}

.info-cell {
    padding: 1.5rem 0;
}

.info-cell:nth-child(odd) {
    padding-right: 2rem;
}

.info-cell:nth-child(even) {
    padding-left: 2rem;
}

.info-cell:nth-child(-n + 2) {
    padding-top: 0;
}

.info-cell:nth-last-child(-n + 2) {
    padding-bottom: 0;
}

.info-cell__title {
    margin: 0 0 0.75rem;
    color: var(--white);
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.375;
}

.info-cell__title--tight {
    margin-bottom: 0.25rem;
}

.info-cell__link {
    display: block;
    color: var(--white);
    font-size: var(--text-base);
    transition: color 0.2s ease;
}

.info-cell__link:hover {
    color: var(--silver);
}

.info-cell__text {
    margin: 0;
    color: var(--white);
    font-size: var(--text-base);
    line-height: 1.5;
}

.contact-form__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.contact-form__row {
    margin-bottom: 1.5rem;
}

.contact-form__row--large {
    margin-bottom: 2.5rem;
}

.contact-field-label {
    display: block;
    margin-bottom: 0.75rem;
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.5;
}

.contact-input {
    width: 100%;
    border: 1px solid var(--white);
    border-radius: 0;
    padding: 0.875rem 1.25rem;
    background: transparent;
    color: var(--white);
    font: inherit;
    font-size: 1rem;
}

.contact-input:focus {
    border-color: var(--white);
    outline: none;
}

select.contact-input {
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23ffffff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1.25rem center;
    padding-right: 3rem;
}

.contact-textarea {
    resize: none;
}

.contact-consent {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    cursor: pointer;
}

.contact-consent__text {
    font-size: var(--text-sm);
    line-height: 1.5;
}

.contact-submit {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    margin-top: 2.5rem;
    border: 0;
    border-radius: 9999px;
    padding-inline: 1.75rem;
    background: var(--blue);
    color: var(--white);
    font-size: var(--text-base);
    font-weight: 700;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.contact-submit:hover {
    background: var(--white);
    color: var(--blue);
}

@media (min-width: 640px) {
    .contact-form__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.contact-map {
    width: 100%;
    height: 62.5vh;
    min-height: 500px;
}

.contact-map .leaflet-tile-pane {
    filter: saturate(0) contrast(0.4) brightness(1.4);
}

.contact-map .hej-dot {
    width: 32px !important;
    height: 32px !important;
    border: 0 !important;
    background: none !important;
    overflow: visible;
}

.contact-map .hej-dot-core,
.contact-map .hej-dot-pulse {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
    border-radius: 50%;
    background: var(--blue);
}

.contact-map .hej-dot-core {
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.contact-map .hej-dot-core img {
    display: block;
    width: 20px !important;
    max-width: 20px !important;
    height: auto !important;
    filter: brightness(0) invert(1);
}

.contact-map .hej-dot-pulse {
    z-index: 1;
    opacity: 0;
    pointer-events: none;
    animation: dot-pulse 3.5s ease-out infinite;
}

.contact-map .hej-tooltip,
.contact-map .hej-popup .leaflet-popup-content-wrapper {
    border: 0;
    border-radius: 0;
    background: var(--black);
    color: var(--white);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    line-height: 1.5;
}

.contact-map .hej-tooltip::before,
.contact-map .hej-popup .leaflet-popup-tip {
    border-top-color: var(--black) !important;
    background: var(--black);
}

.slider-wrapper {
    padding-top: 6rem;
}

.infinite-slider {
    width: 100%;
    overflow: hidden;
    cursor: grab;
}

.infinite-slider.is-dragging {
    cursor: grabbing;
}

.infinite-slider-track {
    display: flex;
    width: max-content;
    gap: 0.5rem;
    animation: infinite-scroll 25s linear infinite;
}

.infinite-slider.is-dragging .infinite-slider-track {
    animation-play-state: paused;
}

.infinite-slider-track img {
    height: 75vh;
    aspect-ratio: 3 / 4;
    flex-shrink: 0;
    object-fit: cover;
    pointer-events: none;
    user-select: none;
}

.brand-grid-wrapper {
    overflow: hidden;
}

.brand-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-right: -1px;
    margin-bottom: -1px;
}

.brand-logo {
    width: 100%;
    aspect-ratio: 3 / 2;
    border-right: 1px solid var(--black);
    border-bottom: 1px solid var(--black);
    padding: 22% 18%;
    box-sizing: border-box;
    object-fit: contain;
    filter: brightness(0);
}

@keyframes dot-pulse {
    0% {
        transform: scale(1);
        opacity: 0.45;
    }
    100% {
        transform: scale(5);
        opacity: 0;
    }
}

@keyframes infinite-scroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

@media (min-width: 768px) {
    .case-card-categories,
    .insight-card-categories {
        font-size: var(--text-lg);
    }

    .testimonial-quote {
        font-size: 2.25rem;
    }

    .diff-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .brand-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .diff-cell {
        padding: 2rem;
    }

    .diff-cell:nth-child(-n + 2) {
        padding-top: 0;
    }

    .diff-cell:nth-child(odd) {
        padding-left: 0;
    }

    .diff-cell:nth-child(even) {
        padding-right: 0;
    }

    .diff-grid[data-diff-count="4"] .diff-cell:nth-child(n + 3),
    .diff-grid[data-diff-count="5"] .diff-cell:nth-child(n + 5),
    .diff-grid[data-diff-count="6"] .diff-cell:nth-child(n + 5) {
        padding-bottom: 0;
    }
}

@media (min-width: 1024px) {
    .contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5rem;
    }

    .slider-wrapper {
        padding-top: 8rem;
    }

    .testimonial-quote {
        font-size: 2.75rem;
    }

    .diff-grid:not([data-diff-count="4"]) {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell {
        padding: 2.5rem;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(-n + 3) {
        padding-top: 0;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(n + 4) {
        padding-bottom: 0;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(odd) {
        padding-left: 2.5rem;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(even) {
        padding-right: 2.5rem;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(3n + 1) {
        padding-left: 0;
    }

    .diff-grid:not([data-diff-count="4"]) .diff-cell:nth-child(3n) {
        padding-right: 0;
    }
}

@media (max-width: 767px) {
    .contact-info-grid {
        grid-template-columns: 1fr;
    }

    .info-cell,
    .info-cell:nth-child(odd),
    .info-cell:nth-child(even) {
        padding: 1.5rem 0;
    }

    .info-cell:first-child {
        padding-top: 0;
    }

    .info-cell:last-child {
        padding-bottom: 0;
    }
}

/* Final benchmark overrides: these must stay after legacy base styles. */
.nav-share-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.nav-share-section {
    padding-block: 1rem;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--text-base);
    line-height: 1.5;
    text-decoration: none;
    transition: color 0.2s ease;
}

.back-link--light {
    color: var(--white);
}

.back-link--light:hover {
    color: var(--silver);
}

.share-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.share-label {
    color: var(--white);
    font-size: var(--text-base);
    line-height: 1.5;
}

.share-link-white,
.share-link-dark {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    flex: 0 0 auto;
    border: 0;
    border-radius: 9999px;
    padding: 0;
    cursor: pointer;
    overflow: visible;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.share-link-white {
    background: var(--white);
    color: var(--blue);
}

.share-link-dark {
    background: var(--blue);
    color: var(--white);
}

.share-link-white:hover,
.share-link-white.is-copied {
    background: var(--black);
    color: var(--white);
}

.share-link-dark:hover,
.share-link-dark.is-copied {
    background: var(--black);
    color: var(--white);
}

.share-link-white svg,
.share-link-dark svg {
    width: 1.125rem;
    height: 1.125rem;
    fill: currentColor;
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.share-link-white[data-copy-url]::before,
.share-link-dark[data-copy-url]::before {
    content: "";
    position: absolute;
    width: 0.9rem;
    height: 0.48rem;
    border-bottom: 2px solid currentColor;
    border-left: 2px solid currentColor;
    opacity: 0;
    transform: translateY(-0.05rem) rotate(-45deg) scale(0.72);
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.share-link-white[data-copy-url].is-copied,
.share-link-dark[data-copy-url].is-copied {
    animation: share-copy-pop 0.36s ease;
}

.share-link-white[data-copy-url].is-copied svg,
.share-link-dark[data-copy-url].is-copied svg {
    opacity: 0;
    transform: translateX(0.35rem) scale(0.75);
}

.share-link-white[data-copy-url].is-copied::before,
.share-link-dark[data-copy-url].is-copied::before {
    opacity: 1;
    transform: translateY(-0.05rem) rotate(-45deg) scale(1);
}

@keyframes share-copy-pop {
    0% {
        transform: scale(1);
    }

    45% {
        transform: scale(1.08);
    }

    100% {
        transform: scale(1);
    }
}

.newsletter-section-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.82fr) minmax(24rem, 0.78fr);
    gap: clamp(3rem, 8vw, 8rem);
    align-items: start;
}

.case-hero-single,
.event-hero-image,
.insight-hero-single {
    height: min(78vh, 52rem);
    min-height: 28rem;
    overflow: hidden;
}

.team-detail__grid,
.profile-layout,
.case-layout,
.article-layout,
.content-layout {
    display: grid;
    gap: clamp(3rem, 7vw, 7rem);
    align-items: start;
}

.team-detail__grid {
    grid-template-columns: minmax(18rem, 0.42fr) minmax(0, 0.58fr);
}

.profile-layout {
    grid-template-columns: minmax(0, 0.58fr) minmax(22rem, 0.42fr);
}

.case-layout,
.content-layout {
    grid-template-columns: minmax(16rem, 0.28fr) minmax(0, 0.72fr);
}

.article-layout {
    grid-template-columns: minmax(17rem, 0.28fr) minmax(0, 0.72fr);
}

.team-detail__portrait-wrap,
.case-sidebar,
.content-sidebar,
.toc-sidebar {
    position: sticky;
    top: 8rem;
}

.faq-accordion.faq-item {
    display: block;
    grid-template-columns: none;
    gap: 0;
    padding: 0;
    background: transparent;
}

.faq-list-bordered {
    border-top: 1px solid var(--faq-border, var(--black));
}

.faq-item-bordered {
    border-bottom: 1px solid var(--faq-border, var(--black));
}

.toc-mobile {
    display: none;
}

.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.58fr) minmax(22rem, 0.42fr);
    gap: clamp(3rem, 7vw, 7rem);
    align-items: center;
}

@media (max-width: 1023px) {
    .newsletter-section-grid,
    .team-detail__grid,
    .profile-layout,
    .case-layout,
    .article-layout,
    .content-layout,
    .hero-grid {
        grid-template-columns: 1fr;
    }

    .newsletter-section__form-wrap {
        padding-top: 0;
    }

    .team-detail__portrait-wrap,
    .case-sidebar,
    .content-sidebar,
    .toc-sidebar {
        position: static;
    }

    .toc-sidebar .toc-nav {
        display: none;
    }

    .toc-mobile {
        display: block;
    }
}

@media (max-width: 767px) {
    .nav-share-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .share-label {
        display: none;
    }

    .case-hero-single,
    .event-hero-image,
    .insight-hero-single {
        height: auto;
        min-height: 0;
        aspect-ratio: 4 / 3;
    }
}

.related-card-image::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.45) 0%, transparent 40%);
    opacity: 1;
    transition: none;
}

.related-card:hover .related-card-image::after {
    opacity: 1;
}

.related-card:hover .related-card-image img,
.related-card:hover .related-card-image video {
    opacity: 0.85;
    transform: none;
}

.related-card-tags {
    inset: auto 0.75rem 0.75rem auto;
    justify-content: flex-end;
    gap: 0.375rem;
    z-index: 1;
}

.related-card-tags .tag {
    border: 1px solid var(--white);
    border-radius: 9999px;
    padding: 0.375rem 1rem;
    background: transparent;
    color: var(--white);
    font-size: var(--text-base);
}

/* Keep imported detail/static pages aligned with the Astro benchmark. */
.case-hero-single,
.event-hero-image,
.insight-hero-single {
    height: 75vh;
    min-height: 0;
    overflow: hidden;
}

.team-detail__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}

.profile-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}

.case-layout {
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: 4rem;
}

.content-layout {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 4rem;
}

.article-layout {
    grid-template-columns: 20rem minmax(0, 1fr);
    gap: 4rem;
}

.team-detail__portrait-wrap,
.case-sidebar,
.content-sidebar,
.toc-sidebar {
    top: 6rem;
}

.profile-slideshow {
    aspect-ratio: 3 / 4;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 3rem;
    background: transparent;
}

.process-grid > * {
    background: transparent;
    padding: 0;
}

.process-grid.process-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 1024px) {
    .process-grid.process-grid--four {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

.speaker-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2.5rem;
    background: transparent;
}

.speaker-grid > * {
    background: transparent;
    padding: 0;
}

.nl-usps-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    background: transparent;
}

.nl-usp-cell {
    background: transparent;
    padding: 0;
}

.nl-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
    align-items: stretch;
}

.nl-form-card {
    padding: 0;
    background: transparent;
    color: inherit;
}

.nl-form-card .nl-input,
.nl-input {
    border-color: var(--white);
    color: var(--white);
}

.nl-form-card .nl-checkbox,
.nl-checkbox {
    border-color: var(--white);
}

.nl-form-image {
    min-height: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.hero-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4rem;
}

@media (min-width: 768px) {
    .nl-usps-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.5rem;
    }
}

@media (min-width: 1280px) {
    .nl-usps-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 3rem;
    }
}

@media (max-width: 1023px) {
    .team-detail__grid,
    .profile-layout,
    .case-layout,
    .article-layout,
    .content-layout,
    .hero-grid,
    .nl-form-grid {
        grid-template-columns: 1fr;
    }

    .team-detail__portrait-wrap,
    .case-sidebar,
    .content-sidebar,
    .toc-sidebar {
        position: static;
    }

    .speaker-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .process-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .case-hero-single,
    .event-hero-image,
    .insight-hero-single {
        height: 75vh;
        aspect-ratio: auto;
    }

    .process-grid,
    .speaker-grid,
    .nl-usps-grid {
        grid-template-columns: 1fr;
    }
}

/* Event detail parity with the Astro benchmark page. */
.event-hero-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 2.5rem;
}

.event-meta-pill {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgb(255 255 255 / 0.6);
    border-radius: 9999px;
    padding: 0.625rem 1.25rem;
    color: var(--white);
    font-size: var(--text-base);
    line-height: 1.2;
    white-space: nowrap;
}

.event-meta-pill--disabled {
    border-color: rgb(255 255 255 / 0.2);
    background: rgb(255 255 255 / 0.1);
    color: var(--silver);
    cursor: default;
}

.event-meta-pill--compact {
    padding: 0.5rem 1.25rem;
}

.event-registration-closed {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    border-radius: 9999px;
    padding-inline: 1.75rem;
    background: rgb(0 0 0 / 0.1);
    color: var(--text-muted);
    font-size: var(--text-base);
    cursor: default;
}

.event-detail-layout .event-sidebar {
    display: block;
}

.event-detail-layout .event-sidebar .meta-block {
    border-top: 0;
    padding: 1.5rem 0 1.25rem;
}

.event-detail-layout .event-sidebar .meta-divider {
    margin-block: 0;
}

.event-detail-layout .event-sidebar .meta-block p {
    margin: 0;
}

.event-detail-layout .event-sidebar .meta-block .meta-label {
    margin-bottom: 0.5rem;
    font-size: var(--text-base);
    font-weight: 700;
}

.event-prose {
    line-height: 1.5;
}

.event-prose > *:first-child {
    margin-top: 0;
}

.event-prose h2,
.event-prose h3 {
    margin: 0 0 1.5rem;
    font-family: var(--font-lining);
    font-size: var(--text-xl);
    font-weight: 700;
    line-height: 1.15;
}

.event-prose p,
.event-prose li,
.agenda-details-content,
.event-faq-answer {
    font-size: var(--text-base);
    line-height: 1.5;
}

.event-prose p {
    margin: 0 0 1.5rem;
}

.event-prose ul,
.agenda-details-content ul {
    margin: 0;
    padding-left: 1.2em;
}

.event-prose li + li,
.agenda-details-content li + li {
    margin-top: 0.2rem;
}

.agenda-details-content > * + * {
    margin-top: 0.75rem;
}

.event-faq-list {
    display: block;
    gap: 0;
    background: transparent;
}

.event-faq-item {
    display: block;
    background: transparent;
}

.event-faq-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: 1.5rem;
    cursor: pointer;
    list-style: none;
}

.event-faq-summary::-webkit-details-marker {
    display: none;
}

.event-faq-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    border-radius: 9999px;
    background: var(--blue);
    transition: background-color 0.3s ease;
}

.event-faq-item[open] .event-faq-dot {
    background: var(--black);
}

.event-faq-answer {
    padding: 0 4.25rem 1.5rem 0;
}

.event-faq-answer > * {
    margin: 0;
}

.newsletter-form .grid {
    display: grid;
}

.newsletter-section-grid .newsletter-form {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding-top: 0;
}

.newsletter-section-grid .newsletter-form__grid {
    width: 100%;
    column-gap: clamp(1.5rem, 2vw, 2rem);
    row-gap: clamp(1.75rem, 2.4vw, 2.5rem);
}

.newsletter-section-grid .newsletter-form label {
    display: block;
}

.newsletter-section-grid .newsletter-form .newsletter-field-label {
    margin-bottom: 0.625rem;
}

.newsletter-section-grid .newsletter-consent {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: clamp(1.25rem, 2vw, 2rem);
}

.newsletter-section-grid .nl-checkbox {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
}

.newsletter-section-grid .newsletter-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 3rem;
    margin-top: clamp(2.5rem, 4vw, 4rem);
    padding-block: 0;
    line-height: 1;
}

.newsletter-form button.h-12 {
    display: inline-block;
    padding-block: 0;
    line-height: 3rem;
}

@media (max-width: 767px) {
    .event-hero-meta {
        align-items: flex-start;
    }
}

/* Insight detail parity with the Astro article template. */
.insight-detail-hero__inner {
    padding-top: 16rem;
    padding-bottom: 3rem;
}

.insight-detail-hero__title {
    max-width: 84rem;
    margin-top: 2rem;
    line-height: 1.08;
    text-wrap: balance;
}

.insight-detail-hero__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2rem;
}

.insight-detail-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 2rem;
    margin-top: clamp(7rem, 9vw, 9rem);
    font-size: var(--text-base);
    line-height: 1.25;
}

.insight-detail-hero__meta > span {
    white-space: nowrap;
}

.insight-meta-label {
    font-weight: 700;
}

@media (max-width: 767px) {
    .insight-detail-hero__inner {
        padding-top: 10rem;
        padding-bottom: 2.5rem;
    }

    .insight-detail-hero__title {
        max-width: 100%;
        margin-top: 1.5rem;
        text-wrap: auto;
    }

    .insight-detail-hero__tags {
        margin-top: 1.5rem;
    }

    .insight-detail-hero__meta {
        align-items: flex-start;
        gap: 0.75rem 1rem;
        margin-top: 4.5rem;
        font-size: 1rem;
    }

    .insight-detail-hero__meta > span + span {
        border-left: 0;
        padding-left: 0;
    }
}

.toc-sidebar .author-box {
    border-top: 0;
    padding-top: 0;
}

.insight-author-box {
    margin-bottom: 2.5rem;
}

.insight-author-heading {
    margin: 0 0 1rem;
    font-family: var(--font-lining);
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.2;
}

.insight-author-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.insight-author-avatar-link {
    display: inline-flex;
    flex: 0 0 auto;
}

.insight-author-avatar {
    width: 3.5rem;
    height: 3.5rem;
}

.insight-author-avatar img {
    object-position: top;
}

.insight-author-main {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
}

.insight-author-name {
    display: inline-block;
    margin: 0;
    color: var(--black);
    font-size: var(--text-base);
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    transition: color 0.2s ease;
}

.insight-author-name:hover {
    color: var(--blue);
}

.insight-author-social {
    margin-top: 0.25rem;
}

.insight-author-social svg {
    width: 1.125rem;
    height: 1.125rem;
}

.insight-author-bio {
    margin-top: 0.75rem;
    font-size: var(--text-base);
    line-height: 1.5;
}

.insight-author-bio > * {
    margin: 0;
}

.toc-link {
    text-decoration: none;
}

.toc-link.is-active,
.toc-link:hover {
    text-decoration: none;
}

.toc-heading,
.tldr-heading {
    margin: 0 0 1rem;
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.375;
}

.toc-heading {
    font-family: var(--font-lining);
}

.toc-mobile-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-block: 1rem;
    cursor: pointer;
    font-size: var(--text-sm);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0.05em;
    list-style: none;
    text-transform: uppercase;
}

.toc-mobile-summary::-webkit-details-marker {
    display: none;
}

.toc-mobile-icon {
    margin-left: 0.5rem;
    flex: 0 0 auto;
}

.toc-list-mobile {
    padding-bottom: 1rem;
}

.article-main .tldr-box {
    max-width: 48rem;
    margin-bottom: 2rem;
    padding: 2rem;
    border: 3px solid var(--blue);
    background: transparent;
    color: var(--blue);
}

.article-main .tldr-box h2,
.article-main .tldr-content,
.article-main .tldr-content p,
.article-main .tldr-content li,
.article-main .tldr-content strong,
.article-main .tldr-content a {
    color: var(--blue);
}

.article-main .tldr-content ul,
.article-main .tldr-content ol {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.article-main .tldr-content ol {
    counter-reset: tldr-ol-counter;
}

.article-main .tldr-content li {
    position: relative;
    padding-left: 1.125rem;
    font-size: var(--text-base);
    line-height: 1.625;
}

.article-main .tldr-content ol li {
    counter-increment: tldr-ol-counter;
    padding-left: 2rem;
}

.article-main .tldr-content ul li::before {
    position: absolute;
    top: 0.6rem;
    left: 0;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--blue);
    content: "";
}

.article-main .tldr-content ol li::before {
    position: absolute;
    top: 0.35rem;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background: var(--blue);
    color: var(--white);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    content: counter(tldr-ol-counter);
}

.article-main .tldr-content p {
    margin-bottom: 0.75rem;
    font-size: var(--text-base);
    line-height: 1.625;
}

.article-main .tldr-content li > p {
    margin: 0;
    font-size: inherit;
    line-height: inherit;
}

.article-main .tldr-content li > p + p {
    margin-top: 0.5rem;
}

.article-main .tldr-content p:last-child {
    margin-bottom: 0;
}

.article-main .prose-article {
    max-width: 48rem;
}

.article-main .prose h2:first-child {
    margin-top: 0;
}

.article-main .prose h2 {
    break-after: avoid;
    scroll-margin-top: var(--article-anchor-offset);
    margin-top: 3rem;
    margin-bottom: 1.25rem;
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.3;
}

.article-main .prose h3 {
    break-after: avoid;
    margin-top: 2.5rem;
    margin-bottom: 0.75rem;
    font-size: 1.375rem;
    font-weight: 700;
    line-height: 1.4;
}

.article-main .prose p {
    margin: 0 0 1.25rem;
    font-size: var(--text-base);
    line-height: 1.6;
}

.article-main .prose a {
    color: var(--blue);
    text-decoration: none;
    transition: color 0.2s ease;
}

.article-main .prose a:hover {
    color: var(--black);
}

.article-main .prose ul,
.article-main .prose ol {
    margin: 0 0 1.5rem;
    padding-left: 0;
    list-style: none;
}

.article-main .prose ol {
    counter-reset: article-ol-counter;
}

.article-main .prose li {
    position: relative;
    break-inside: avoid;
    margin-bottom: 0.5rem;
    padding-left: 2.5rem;
    font-size: var(--text-base);
    line-height: 1.6;
}

.article-main .prose ol li {
    counter-increment: article-ol-counter;
}

.article-main .prose ol li::before {
    position: absolute;
    top: 0.35rem;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background: var(--blue);
    color: var(--white);
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1;
    content: counter(article-ol-counter);
}

.article-main .prose ul li::before {
    position: absolute;
    top: 0.75rem;
    left: 0.375rem;
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--blue);
    content: "";
}

.article-main .prose blockquote {
    margin: 2.5rem 0;
    padding: 0;
    border: 0;
    color: var(--black);
    font-family: var(--font-serif);
    font-size: 1.75rem;
    font-style: normal;
    line-height: 1.3;
}

.article-main .prose blockquote p {
    margin-bottom: 1rem;
    color: inherit;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

.article-main .prose blockquote cite {
    display: block;
    margin-top: 0.75rem;
    color: var(--black);
    font-family: var(--font-sans);
    font-size: var(--text-base);
    font-style: normal;
}

.article-main .prose figure {
    margin: 2.5rem 0;
}

.article-main .prose figure img {
    width: 100%;
    margin: 0;
}

.article-main .prose figcaption {
    margin-top: 1.25rem;
    color: rgb(0 0 0 / 0.5);
    font-size: var(--text-base);
    line-height: 1.5;
}

.article-main .prose figcaption a {
    color: rgb(0 0 0 / 0.5);
    text-decoration: underline;
}

.article-main .prose figcaption a:hover {
    color: var(--blue);
}

.article-main .prose img {
    width: 100%;
    margin: 2rem 0;
}

.article-main .prose strong {
    font-weight: 700;
}

.article-main .article-faq {
    max-width: 48rem;
    margin-top: 3rem;
    border-top: 0;
    padding-top: 0;
}

.article-main .article-faq-heading {
    margin: 0 0 1rem;
    scroll-margin-top: var(--article-anchor-offset);
    font-family: var(--font-sans);
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.3;
}

.article-faq-list {
    border-top: 1px solid var(--black);
}

.article-faq-item {
    border-bottom: 1px solid var(--black);
}

.article-faq-summary {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.75rem 0;
    list-style: none;
    cursor: pointer;
}

.article-faq-summary::-webkit-details-marker {
    display: none;
}

.article-faq-dot {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    margin-top: 0.25rem;
    flex: 0 0 auto;
    border-radius: 9999px;
    background: var(--blue);
    transition: background-color 0.25s ease;
}

.article-faq-question {
    font-size: var(--text-lg);
    font-weight: 700;
    line-height: 1.35;
}

.article-faq-answer {
    padding: 0 0 0.75rem calc(1.5rem + 1rem);
    font-size: var(--text-base);
    line-height: 1.6;
}

.article-faq-answer > * {
    margin: 0;
}

.article-faq-item[open] .article-faq-dot {
    background: var(--black);
}

.article-faq-item[open] .faq-icon {
    transform: rotate(45deg);
}

@media (min-width: 768px) {
    .article-main .prose h2,
    .article-main .article-faq-heading {
        font-size: 2.25rem;
    }

    .article-main .prose h3 {
        font-size: 1.5rem;
    }

    .article-main .prose blockquote {
        font-size: 2.25rem;
    }
}
