html, body { overflow-x: clip; }
.sw-hero, .sw-intro, .sw-gallery, .sw-actions { width: 100%; margin-inline: 0; }
.sw-shell { width: min(100% - 48px, 1280px); margin-inline: auto; }
.sw-kicker, .sw-hero__scroll { font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.sw-kicker { margin: 0 0 24px; color: var(--color-primary); }

.sw-hero { position: relative; display: grid; min-height: min(740px, calc(100svh - var(--site-header-height))); padding: 0; background: linear-gradient(90deg, rgb(12 10 9 / 82%) 0%, rgb(36 15 13 / 46%) 57%, rgb(0 0 0 / 18%) 100%), linear-gradient(0deg, rgb(9 8 6 / 68%), transparent 62%), url("../../assets/images/contact-inscription/photo-groupe.webp") center 42% / cover no-repeat; color: #fff; align-items:end; }
.sw-hero__inner { padding-bottom: clamp(64px, 8vw, 108px); }
.sw-hero h1 { max-width: 1050px; margin: 0; color: #fff; font-size: clamp(62px, 8.5vw, 126px); font-weight: 400; letter-spacing: -.04em; }
.sw-hero h1 em { font-weight: 400; }
.sw-hero__scroll { display: inline-flex; margin-top: 40px; padding-bottom: 8px; border-bottom: 1px solid rgb(255 255 255 / 48%); color: #fff; gap: 14px; text-decoration: none; transition: color 180ms ease, border-color 180ms ease; }
.sw-hero__scroll:hover { border-color: #ead7aa; color: #ead7aa; }

.sw-intro { padding-block: clamp(36px, 4vw, 52px); background: linear-gradient(180deg, #f8f5ee 0%, #eee8dc 100%); color: #3c3731; }
.sw-intro__header { display: grid; margin-bottom: clamp(22px, 2.5vw, 32px); grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.sw-intro h2 { margin: 0; color: #211e1a; font-family: var(--font-heading); font-size: clamp(42px, 4.2vw, 58px); font-weight: 400; letter-spacing: -.025em; }
.sw-intro__logo { width: clamp(50px, 4vw, 60px); height: auto; margin: 0 10px 0 0; opacity: .82; }
.sw-statute { display: grid; max-width: none; grid-template-columns: minmax(0, 1fr); }
.sw-statute h3 { display: grid; margin: 0; color: #302c27; font-family: var(--font-heading); font-size: clamp(24px, 2vw, 29px); font-weight: 400; line-height: 1.12; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.sw-statute__number, .sw-action-list__number { color: var(--color-primary); font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .14em; line-height: 1; }
.sw-statute__number::after { display: block; width: 16px; height: 1px; margin-top: 8px; background: currentColor; content: ""; }
.sw-statute__statement, .sw-statute__columns { max-width: 1180px; margin: clamp(10px, 1.1vw, 14px) 0 0 52px; color: #28231e; font-family: var(--font-body); font-size: clamp(18px, 1.42vw, 20px); line-height: 1.38; }
.sw-statute__statement { padding: 0; border: 0; background: transparent; }
.sw-statute--object { margin-top: clamp(22px, 2.4vw, 30px); }
.sw-statute__columns { display: block; }
.sw-statute__columns p { margin: 0; color: #3d3730; font: inherit; }

.sw-gallery { padding-block: 38px 44px; overflow: hidden; background: #171513; color: #fff; }
.sw-gallery .research-partner-gallery { width: min(1500px, calc(100vw - 32px)); min-width: 0; margin-inline: auto; }
.sw-gallery .research-partner-gallery__header { display: flex; width: min(1280px, calc(100% - 32px)); margin: 0 auto 22px; align-items: center; justify-content: space-between; gap: 24px; }
.sw-gallery .research-partner-gallery__header .sw-kicker { margin: 0; color: #d8c39b; }
.research-partner-gallery__controls { display: flex; gap: 8px; }
.research-partner-gallery__controls button { min-width: 38px; min-height: 36px; padding: 8px 11px; border: 1px solid rgb(255 255 255 / 26%); background: rgb(255 255 255 / 6%); color: #fff; font-family: Arial, Helvetica, sans-serif; font-size: 12px; letter-spacing: .05em; cursor: pointer; transition: background-color 180ms ease, border-color 180ms ease; }
.research-partner-gallery__controls button:hover { border-color: #d8c39b; background: rgb(216 195 155 / 16%); }
.research-partner-gallery__controls button:focus-visible { outline: 2px solid #d8c39b; outline-offset: 2px; }
.research-partner-gallery__viewport { overflow-x: auto; padding: 8px 0 18px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 3%, #000 97%, transparent 100%); }
.research-partner-gallery__viewport::-webkit-scrollbar { display: none; }
.research-partner-gallery__track { display: flex; width: max-content; margin: 0; padding: 0 3vw; gap: 22px; list-style: none; }
.research-partner-gallery__track li { min-width: 0; flex: 0 0 clamp(300px, 29vw, 410px); }
.research-partner-gallery__track button { display: block; width: 100%; padding: 0; overflow: hidden; border: 1px solid rgb(255 255 255 / 20%); background: #171513; color: #fff; text-align: left; cursor: zoom-in; box-shadow: 0 18px 48px rgb(0 0 0 / 22%); transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.research-partner-gallery__track button:hover { border-color: #d8c39b; box-shadow: 0 24px 60px rgb(0 0 0 / 34%); transform: translateY(-5px); }
.research-partner-gallery__track button:focus-visible { outline: 3px solid #d8c39b; outline-offset: -3px; }
.research-partner-gallery figure { position: relative; margin: 0; }
.research-partner-gallery img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 650ms ease; }
.research-partner-gallery button:hover img { transform: scale(1.025); }
.research-partner-gallery figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 48px 20px 18px; background: linear-gradient(0deg, rgb(11 9 8 / 92%), rgb(11 9 8 / 65%) 48%, transparent); color: #fff; font-family: var(--font-heading); font-size: clamp(18px, 1.8vw, 24px); line-height: 1.12; text-shadow: 0 2px 12px rgb(0 0 0 / 40%); }
.research-gallery-lightbox[hidden] { display: none; }
.research-gallery-lightbox { position: fixed; z-index: 3000; inset: 0; display: grid; padding: 64px clamp(52px, 8vw, 120px) 42px; background: rgb(8 7 6 / 94%); grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(16px, 3vw, 42px); }
.research-gallery-lightbox figure { display: grid; min-width: 0; max-height: calc(100vh - 106px); margin: 0; justify-items: center; }
.research-gallery-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 160px); border: 1px solid rgb(255 255 255 / 22%); object-fit: contain; box-shadow: 0 30px 90px rgb(0 0 0 / 45%); }
.research-gallery-lightbox figcaption { margin-top: 14px; color: #fff; font-family: var(--font-heading); font-size: clamp(18px, 2vw, 25px); text-align: center; }
.research-gallery-lightbox button { width: 46px; height: 46px; border: 1px solid rgb(255 255 255 / 34%); border-radius: 50%; background: rgb(255 255 255 / 8%); color: #fff; font-size: 24px; cursor: pointer; }
.research-gallery-lightbox button:hover { border-color: #d8c39b; color: #d8c39b; }
.research-gallery-lightbox button:focus-visible { outline: 3px solid #d8c39b; outline-offset: 3px; }
.research-gallery-lightbox__close { position: absolute; top: 18px; right: 20px; }
.research-gallery-lightbox__previous { grid-column: 1; }
.research-gallery-lightbox__next { grid-column: 3; }
body.research-lightbox-is-open { overflow: hidden; }
.sw-section-heading h2 { margin: 0; font-size: clamp(44px, 5vw, 68px); font-weight: 400; letter-spacing: -.025em; }

.sw-actions { padding-block: clamp(70px, 8vw, 108px); background: #f8f6f2; color: #4b443c; }
.sw-actions .sw-kicker { color: var(--color-primary); }
.sw-section-heading { display: grid; margin-bottom: clamp(40px, 5vw, 62px); grid-template-columns: .34fr 1fr; gap: 20px 48px; }
.sw-section-heading h2 { color: #211e1a; }
.sw-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(52px, 7vw, 100px); row-gap: clamp(38px, 4vw, 56px); }
.sw-action-list { position: relative; padding-left: 34px; }
.sw-action-list::before { position: absolute; top: 4px; bottom: 0; left: 0; width: 1px; background: rgb(100 78 51 / 20%); content: ""; }
.sw-action-list h3 { display: grid; margin: 0 0 18px; color: #302c27; font-size: clamp(25px, 2.25vw, 32px); font-weight: 500; line-height: 1.1; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: baseline; }
.sw-action-list__number { padding-top: 4px; }
.sw-action-list ul { display: grid; margin: 0; padding: 0; gap: 14px; list-style: none; }
.sw-action-list li { font-size: clamp(16px, 1.32vw, 18px); line-height: 1.42; }
.sw-action-list li > strong, .sw-action-list__description { display: block; }
.sw-action-list li > strong { color: #29241f; font-family: var(--font-heading); font-size: 1.12em; font-weight: 600; line-height: 1.15; }
.sw-action-list__description { margin-top: 3px; color: #665f57; font-size: .94em; line-height: 1.45; }
.sw-action-list__description strong { color: inherit; font: inherit; font-weight: 600; }

@media (max-width: 900px) {
    .sw-section-heading { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .sw-shell { width: min(100% - 40px, 1280px); }
    .sw-hero { min-height: 650px; background-position: 54% 42%; }
    .sw-hero h1 { font-size: clamp(54px, 15vw, 76px); }
    .sw-intro { padding-block: 36px; }
    .sw-actions { padding-block: 82px; }
    .sw-intro__header { margin-bottom: 22px; align-items: center; }
    .sw-intro h2 { font-size: 36px; }
    .sw-intro__logo { width: 52px; margin-right: 0; }
    .sw-statute h3 { grid-template-columns: 34px minmax(0, 1fr); gap: 8px; font-size: 24px; }
    .sw-statute__statement, .sw-statute__columns { margin-top: 10px; margin-left: 42px; font-size: 19px; }
    .sw-statute__columns p { line-height: 1.4; }
    .sw-gallery { padding-block: 30px 34px; }
    .sw-gallery .research-partner-gallery { width: 100vw; }
    .sw-gallery .research-partner-gallery__header { align-items: flex-start; flex-direction: column; }
    .research-partner-gallery__track { gap: 14px; }
    .research-partner-gallery__track li { flex-basis: min(84vw, 340px); }
    .research-gallery-lightbox { padding: 62px 18px 30px; grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 8px; }
    .research-gallery-lightbox button { width: 40px; height: 40px; font-size: 20px; }
    .sw-section-heading h2 { font-size: 45px; }
    .sw-action-grid { grid-template-columns: 1fr; }
    .sw-action-list { padding-left: 28px; }
    .sw-action-list h3 { grid-template-columns: 30px minmax(0, 1fr); gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .sw-hero__scroll, .sw-button { transition: none; }
}
