/* Homepage: one large cell = two shared root units. No measured JS offsets. */
.cosma-home { --home-cell: calc(var(--cosma-unit) * 2); --home-space: calc(var(--home-cell) / 2); }
.cosma-home .cosma-home-content { background: transparent; font-size: max(20px, 1.5625vw); line-height: 1.5; }
.cosma-home .cosma-home-content::after { content: none; }
.cosma-home-content > .wp-block-columns { margin: 0; gap: 0; }
.cosma-home-content > .wp-block-columns > .wp-block-column { margin: 0; }
.cosma-home .wp-block-columns { margin-block-end: 0; }
.cosma-home :is(h1, h2, p, figure) { margin-block-start: 0; }
.cosma-home .wp-block-column > :last-child { margin-block-end: 0; }
.cosma-home .px-5 { padding-inline: var(--cosma-editorial-inset); }
.cosma-home .py-5 { padding-block: var(--home-space); }
.cosma-home .pt-5 { padding-block-start: var(--home-space); }
.cosma-home .pb-5 { padding-block-end: var(--home-space); }
.cosma-home .home-intro { margin-block-start: 0; padding-block: var(--home-space) 0; }
.cosma-home .home-intro .wp-block-column:first-child { flex-basis: 62.5%; }
.cosma-home-hero { --hero-header: 114px; position: relative; inline-size: var(--cosma-wide-width); margin-inline: auto; block-size: max(var(--home-cell), round(down, calc(100svh - var(--hero-header)), var(--home-cell))); }
.cosma-home-hero video { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.cosma-home :is(.our-technology, .ourMission) .justify-content-center > .wp-block-columns { display: block; }
.cosma-home .ourOffer .section-chapo { padding-inline-end: 6vw; margin-block: 0 4vw; }
.cosma-home .ourOffer .section-subtitle { margin-block: 25px 16px; letter-spacing: normal; }
.cosma-home .ourOffer .section-title { margin-block-end: 45px; }
.cosma-home .ourOffer .wp-block-columns { margin-block-start: 0; }
.cosma-home .ourOffer .px-md-5 { padding-inline: 3rem; }
.cosma-home .wp-block-column:has(> .ourOffer) { padding-inline: max(24px, 3.75vw); }
.cosma-home .ourOffer { padding-block-end: 0; }
.cosma-home-offers { --offer-slide-width: calc(var(--cosma-unit) * 18); --offer-stage-height: round(up, 100svh, var(--home-cell)); --offer-safe-top: round(up, calc(var(--cosma-header-height) + var(--cosma-header-offset)), var(--home-cell)); padding-block-end: var(--home-space); }
.cosma-offer-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; }
.cosma-offer { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); flex: 0 0 var(--cosma-wide-width); margin-inline: var(--cosma-origin); min-inline-size: 0; scroll-snap-align: center; }
.cosma-offer > img { grid-column: 1 / 11; inline-size: 100%; block-size: calc(var(--home-cell) * 4); object-fit: cover; }
.cosma-offer-copy { grid-column: 11 / 15; align-self: start; background: #fff; border: 1px solid var(--cosma-line); padding: var(--cosma-copy-padding); display: flex; flex-direction: column; }
.cosma-offer-copy h2 { font-size: max(25px, 1.953125vw); line-height: 1.4; }
.cosma-offer-copy .footer { margin-block-start: auto; padding-block-start: 2rem; font-size: 18px; font-weight: 900; line-height: 1.375; }
.cosma-offer-copy p:empty { display: none; }
.cosma-offer-navigation { display: grid; place-items: start center; padding-block: var(--home-cell); inline-size: var(--cosma-wide-width); margin: 0 auto; }
.cosma-offer-navigation a { display: flex; align-items: center; justify-content: center; gap: .2em; inline-size: calc(var(--cosma-unit) * 8); min-block-size: var(--home-cell); padding: 1rem; border: 1px solid var(--cosma-line); background: #fff; font-family: var(--cosma-display-font); font-size: clamp(30px, 6.6vw, 150px); line-height: 1.2; font-weight: 700; color: #43b4ea; text-decoration: none; }
.cosma-offer-navigation a:hover, .cosma-offer-navigation a:focus-visible { background: #def4ff; }
.cosma-home .pictos-area > .wp-block-column > .wp-block-columns { gap: 2rem; }
.cosma-home .pictos-area { gap: 2rem; }
.cosma-home .pictos-area figure img { block-size: var(--home-cell); max-block-size: 180px; inline-size: 100%; object-fit: contain; }
.cosma-home .icons-subtitle { font-size: max(20px, 1.5625vw); line-height: 1.25; margin-block: 1rem; }
.cosma-home .icons-subtext { font-size: max(20px, 1.5625vw); line-height: 1.25; }
.cosma-home .pictos-area { padding-block: max(32px, 3.75vw); }
.cosma-home .projects-zone { background: transparent; }
.cosma-home .projects-slider.hidden { display: none; }
.cosma-home .project-slider-heading { block-size: var(--home-cell); padding-block: 0; display: flex; align-items: center; background: transparent; }
.cosma-home .project-slider-heading p { margin: 0; line-height: 1; }
.cosma-home-project-link { display: inline-flex; align-items: center; gap: .4em; text-decoration: none; }
.cosma-home-project-link .cosma-project-arrow { flex: 0 0 auto; inline-size: clamp(64px, 7vw, 120px); aspect-ratio: 78.6203 / 45.7086; background: url('../icons/cosma-arrow-blue.svg') center / contain no-repeat; }
.cosma-home .projects-zone > figure { position: relative; inline-size: var(--cosma-wide-width); block-size: calc(var(--home-cell) * 4); margin-inline: auto; margin-block: 0; padding: 0; background: #fff; }
.cosma-home .projects-zone > figure img { inline-size: 100%; block-size: 100%; object-fit: contain; }
.cosma-home .projects-zone > figure::after { content: ''; position: absolute; inset: 0 calc(-1 * var(--cosma-stroke)) calc(-1 * var(--cosma-stroke)) 0; border: var(--cosma-stroke) solid var(--cosma-line); pointer-events: none; }
@media (width < 782px) {
    .cosma-home .projects-zone > figure { block-size: calc(var(--home-cell) * 3); }
}
.cosma-home-content > .home-header-video-grid:has(.clickable-column) { padding-block: var(--home-space); gap: var(--home-cell); }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) figure img { inline-size: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) .section-chapo { margin-block: 1rem .25rem; padding-block-start: 8px; }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) { --wp--preset--font-size--medium: max(20px, 1.5625vw); }
/* These one-slide duplicates were hidden by the original theme. */
.cosma-home-content > .home-header-video-grid:has(.clickable-column) .wp-block-gutsliders-photo-carousel { display: none; }
.cosma-home :is(.clientBx, .partnerBx) { padding-block: 48px 80px; }
.cosma-home :is(.clientBx, .partnerBx) .section-subtitle { margin-block: 25px 70px; letter-spacing: normal; }
.cosma-home .partnerBx p[style*="font-size:0vw"] { display: none; }
.cosma-home :is(.clientBx, .partnerBx) .swiper-slide img { object-fit: contain; max-block-size: 110px; }
/* Mission follows the production editorial column, independently of media tracks. */
.cosma-home .ourMission { padding: 40px max(24px, 3.75vw) 40px; }
.cosma-home .ourMission .wp-block-columns { margin-block-start: 0; }
.cosma-home .ourMission .section-subtitle { margin-block: 25px 16px; letter-spacing: normal; }
.cosma-home .ourMission .section-title { margin-block-end: 45px; }
.cosma-home .ourMission .justify-content-center > .wp-block-columns { padding-inline: 12px; }
.cosma-home .ourMissionDis { padding-inline: 3rem; }
.cosma-home .ourMission .section-chapo { inline-size: calc(100% - 6vw); padding-inline-end: 6vw; margin-block: 0 40px; }
@media (width < 782px) {
    .cosma-home .ourMission { padding-block: 0 40px; }
    .cosma-home .ourMission .section-subtitle { font-size: 12px; margin-block: 25px 10px; }
    .cosma-home .ourMission .section-title { font-size: 45px; line-height: 1; margin-block-end: 1rem; }
    .cosma-home .ourMission .justify-content-center > .wp-block-columns,
    .cosma-home .ourMissionDis { padding-inline: 0; }
    .cosma-home .ourMission .section-chapo { inline-size: 100%; padding: 0; margin: 0; line-height: 1.2; }
}
.cosma-home .ourMissionDis svg { inline-size: 100px; block-size: auto; }
.cosma-home .ourMissionDis a { display: inline-block; }
@media (width < 782px) {
    .cosma-home { --home-space: var(--cosma-unit); }
    .cosma-home-hero { --hero-header: 90px; }
    .cosma-home .section-title { font-size: 45px; line-height: 1; }
    .cosma-home .page-chapo { line-height: 1.2; }
    .cosma-home .section-subtitle { font-size: 12px; line-height: 1.5; margin-block: 25px 10px; }
    .cosma-home .section-chapo { font-size: 25px; line-height: 1.2; }
    .cosma-home .ourOffer .px-md-5 { padding: 0; }
    .cosma-home .ourOffer .section-chapo { padding: 0; margin-block-end: 2rem; }
    .cosma-home .ourOffer .section-title { margin-block-end: 1rem; }
    .cosma-home :is(.clientBx, .partnerBx) { padding-block: 32px; }
    .cosma-home :is(.clientBx, .partnerBx) .section-subtitle { margin-block: 25px 32px; }
    .cosma-home .wp-block-column:empty { display: none; }
    .cosma-home .pictos-area .wp-block-columns { flex-wrap: nowrap; }
    .cosma-home .pictos-area .wp-block-column { flex-basis: 0; flex-grow: 1; }
    .cosma-home .pictos-area { gap: var(--home-space); }
    .cosma-home .pictos-area figure img { max-block-size: 100px; }
    .cosma-home .icons-subtitle { font-size: 20px; }
    .cosma-home .icons-subtext { font-size: 18px; }
    .cosma-offer-track { display: block; overflow: visible; }
    .cosma-offer { display: block; margin-block-end: var(--home-space); }
    .cosma-offer > img { block-size: auto; }
    .cosma-offer-copy { padding: 1.5rem 0; }
    .cosma-offer-copy .footer { padding-block-start: 1rem; }
}
/* Quantize section boundaries, keeping the background and compositions in phase. */
@supports (block-size: calc-size(auto, round(up, size, 1px))) {
    .cosma-home-content > .wp-block-columns { block-size: calc-size(auto, round(up, size, var(--home-cell))); }
}
@media (min-width: 782px) {
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) { gap: 0; }
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column { background: #fff; }
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) p { padding-inline: var(--cosma-copy-padding); }
}
.cosma-home .section-chapo a { text-decoration: none; }
.cosma-home .section-chapo a:hover { text-decoration: underline; }
.cosma-home :is(.cosma-home-project-link .cosma-project-arrow, .ourMissionDis a) { transition: transform .4s ease; }
.cosma-home :is(.cosma-home-project-link:hover .cosma-project-arrow, .cosma-home-project-link:focus-visible .cosma-project-arrow, .ourMissionDis a:hover) { transform: translateX(12px); }
@media (prefers-reduced-motion: reduce) {
    .cosma-home *, .cosma-home *::before, .cosma-home *::after { scroll-behavior: auto; transition: none; }
}
/* Exposed project imagery begins and ends on whole large cells. */
.cosma-home-content > .home-header-video-grid:has(.clickable-column) { padding-block: var(--home-cell); }
@media (width < 782px) {
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) figure img { aspect-ratio: 4 / 3; }
}
/* Production pictograms: compact symbols, text beside them on narrow screens. */
.cosma-home .pictos-area figure img { inline-size: min(40%, 130px); block-size: 130px; margin-inline: auto; }
@media (width < 992px) {
    .cosma-home .pictos-area .wp-block-column:has(> .icons-subtitle) { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 0 1.5rem; }
    .cosma-home .pictos-area .wp-block-column:has(> .icons-subtitle) > figure { grid-column: 1; grid-row: 1 / 3; margin: 0; }
    .cosma-home .pictos-area figure img { inline-size: 100px; block-size: 100px; }
    .cosma-home .pictos-area :is(.icons-subtitle, .icons-subtext) { grid-column: 2; text-align: left; margin: 0; font-size: 20px; line-height: 25px; }
}
@media (782px <= width < 992px) {
    .cosma-home .pictos-area, .cosma-home .pictos-area > .wp-block-column > .wp-block-columns { display: block; }
    .cosma-home .pictos-area .wp-block-column:has(> .icons-subtitle) { margin-block-end: 2rem; }
}

/* No visible player chrome; a pause button remains available to keyboard users. */
.cosma-hero-toggle { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.cosma-hero-toggle:focus-visible { inset: auto 1rem 1rem auto; inline-size: auto; block-size: auto; clip-path: none; padding: .5rem 1rem; background: #fff; color: #111; border: 1px solid currentColor; }
/* Native vertical scrolling drives a sticky horizontal stage. Geometry stays CSS-owned. */
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) {
    padding: 0;
    block-size: calc(var(--offer-stage-height) + var(--offer-steps) * var(--offer-slide-width));
}
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-stage {
    position: sticky;
    inset-block-start: 0;
    block-size: var(--offer-stage-height);
    padding-block-start: var(--offer-safe-top);
    background-color: #fff;
    overflow: clip;
}
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-window { inline-size: var(--cosma-wide-width); margin-inline: auto; overflow: clip; }
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-track {
    display: flex;
    inline-size: 100%;
    overflow: visible;
    scroll-snap-type: none;
    will-change: transform;
}
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer {
    display: grid;
    flex: 0 0 var(--offer-slide-width);
    grid-template-columns: repeat(18, minmax(0, 1fr));
    margin: 0;
    block-size: round(down, calc(100svh - var(--offer-safe-top)), var(--home-cell));
}
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer > img { grid-column: 1 / 13; block-size: 100%; min-block-size: 0; }
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy { grid-column: 13 / 17; block-size: calc(round(down, calc(100svh - var(--offer-safe-top)), var(--home-cell)) - var(--home-cell)); min-block-size: 0; overflow: auto; }
@media (782px <= width < 1100px) {
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer > img { grid-column: 1 / 11; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy { grid-column: 11 / 17; }
}
@media (width < 782px) {
    .cosma-home-offers { --offer-slide-width: var(--cosma-wide-width); }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer { grid-template-columns: 1fr; grid-template-rows: var(--home-cell) minmax(0, 1fr); }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer > img { grid-column: 1; inline-size: 100%; object-fit: cover; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy { grid-column: 1; padding: 1rem; block-size: 100%; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-track { gap: var(--home-cell); }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) { block-size: calc(var(--offer-stage-height) + var(--offer-steps) * (var(--offer-slide-width) + var(--home-cell))); }
    .cosma-offer-navigation a { inline-size: 100%; font-size: clamp(28px, 10.5vw, 60px); }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy h2 { font-size: 22px; line-height: 1.2; margin-block-end: .75rem; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy { font-size: 18px; line-height: 1.35; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy .footer { font-size: 14px; padding-block-start: .5rem; }
}

/* Readable baseline without JS, with reduced motion or insufficient height. */
html:not(.cosma-scroll-offers) .cosma-home-offers .cosma-offer-track,
.cosma-home-offers:not(.has-multiple-offers) .cosma-offer-track { display: block; overflow: visible; }
html:not(.cosma-scroll-offers) .cosma-home-offers .cosma-offer,
.cosma-home-offers:not(.has-multiple-offers) .cosma-offer { margin-block-end: var(--home-space); }

/* Production typography and rhythm; media retain the shared grid frame.
   Scope the native Medium preset so Gutenberg's preset rule uses the body size. */
.cosma-home .our-technology {
    --wp--preset--font-size--medium: max(20px, 1.5625vw);
    padding-block: max(32px, 3.75vw);
}
.cosma-home .our-technology > .wp-block-columns:first-child { padding-inline: max(24px, 3.75vw); }
.cosma-home .our-technology .section-subtitle { margin-block: 25px 16px; letter-spacing: normal; }
.cosma-home .our-technology .section-title { margin-block-end: 45px; }
.cosma-home .our-technology .section-chapo { margin-block: 0 40px; }
.cosma-home .our-technology > .wp-block-columns:first-child .section-chapo { padding-inline-end: 6vw; }
.cosma-home .our-technology .justify-content-center > .wp-block-columns { padding-inline: 12px; }
.cosma-home .our-technology .px-md-5 { padding-inline: 3rem; }
.cosma-home .our-technology > .wp-block-columns:first-child > .wp-block-column > .wp-block-columns { margin-block-start: 0; }
.cosma-home .our-technology figure { margin-block: 0 16px; }
.cosma-home .our-technology figure img { inline-size: 100%; block-size: auto; }
.cosma-home .our-technology .pt-2 { padding-block-start: 8px; }
.cosma-home .our-technology > .wp-block-columns + .wp-block-columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem;
    margin-block-start: 0;
    max-inline-size: none;
    inline-size: var(--cosma-wide-width);
    margin-inline: auto;
    padding-inline: 0;
}
.cosma-home .our-technology > .wp-block-columns + .wp-block-columns > .wp-block-column > p {
    padding-inline: var(--cosma-copy-padding);
}
@media (width < 782px) {
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) p { padding-inline: max(0px, calc(var(--cosma-editorial-inset) - var(--cosma-origin))); }
}

@media (width < 782px) {
    .cosma-home .our-technology .section-title { font-size: 45px; margin-block-end: 2rem; }
    .cosma-home .our-technology > .wp-block-columns:first-child .section-chapo { padding-inline-end: 0; }
    .cosma-home .our-technology .justify-content-center > .wp-block-columns,
    .cosma-home .our-technology .px-md-5 { padding-inline: 0; }
    .cosma-home .our-technology > .wp-block-columns + .wp-block-columns { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
    .cosma-home .our-technology .section-chapo { margin-block-end: 1.5rem; }
}

/* White pictogram panel between two visible stretches of the shared grid.
   Paint strokes without adding border pixels to the whole-cell section height. */
.cosma-home-content > .pictos-area {
    margin-block-end: var(--home-cell);
    box-shadow: inset 0 var(--cosma-stroke) 0 var(--cosma-line), 0 var(--cosma-stroke) 0 var(--cosma-line);
}

/* Include the sticky stage's trailing grid row in the contact area's balance. */
:where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) + .cosma-offer-navigation {
    --offer-tail: calc(round(up, 100svh, var(--home-cell)) - round(down, 100svh, var(--home-cell)));
    padding-block-start: calc(var(--home-cell) - var(--offer-tail) / 2);
    padding-block-end: calc(var(--home-cell) + var(--offer-tail) / 2);
    place-items: center;
}

/* Compact project list: image edges on the grid, inset copy on transparent ground. */
.cosma-home-content > .home-header-video-grid:has(.clickable-column) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    inline-size: var(--cosma-wide-width);
    margin-inline: auto;
    margin-block-start: var(--home-cell);
    padding: 0;
    box-shadow: inset var(--cosma-stroke) 0 var(--cosma-line), var(--cosma-stroke) 0 var(--cosma-line), inset 0 var(--cosma-stroke) var(--cosma-line);
}
.cosma-home-content > .home-header-video-grid:has(.clickable-column) + .home-header-video-grid:has(.clickable-column) {
    padding: 0;
    margin-block: 0;
    box-shadow: inset var(--cosma-stroke) 0 var(--cosma-line), var(--cosma-stroke) 0 var(--cosma-line), inset 0 var(--cosma-stroke) var(--cosma-line), 0 var(--cosma-stroke) var(--cosma-line);
}
.cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column { background: transparent; }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) figure { margin: 0; }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) figure img {
    block-size: auto;
    aspect-ratio: 4 / 3;
    outline: none;
}
.cosma-home-content > .home-header-video-grid:has(.clickable-column) p { background: transparent; }
@media (width < 782px) {
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) { grid-template-columns: minmax(0, 1fr); }
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column {
        padding-block-end: var(--home-space);
        block-size: calc-size(auto, round(up, size, var(--home-cell)));
    }
}

/* Align the arrow with the title's visible letter box, not its font leading. */
.cosma-home-project-link .cosma-project-label {
    display: block;
    line-height: 1;
    text-box-trim: trim-both;
    text-box-edge: cap alphabetic;
}
/* Brown Inline's lowercase p/j extend below the alphabetic trim edge.
   Include that visual descent when centering the arrow; preserve its hover X shift. */
.cosma-home-project-link .cosma-project-arrow { position: relative; inset-block-start: .1em; }

/* The mission closes with its editorial copy; omit the old standalone arrow. */
.cosma-home .ourMissionDis > figure:has(> a > svg) { display: none; }

/* One shared frame and hairline separators for the joined project tiles. */
.cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column { position: relative; align-self: stretch; }
.cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column + .wp-block-column::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    inline-size: var(--cosma-stroke);
    background: var(--cosma-line);
    pointer-events: none;
}
@media (width < 782px) {
    .cosma-home-content > .home-header-video-grid:has(.clickable-column) > .wp-block-column + .wp-block-column::after {
        inset: 0 0 auto;
        inline-size: auto;
        block-size: var(--cosma-stroke);
    }
}

/* One native keyboard stop per domain; its hit area includes image and copy. */
.cosma-home .cosma-domain-card { position: relative; }
.cosma-home .cosma-domain-link::before { content: ''; position: absolute; inset: 0; z-index: 2; }
.cosma-home .cosma-domain-link:focus-visible::before { outline: 2px solid #111; outline-offset: -3px; }
.cosma-home .cosma-domain-card > figure { position: relative; }
.cosma-home .cosma-domain-card > figure::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(to right, var(--cosma-line) var(--cosma-stroke), transparent var(--cosma-stroke)),
        linear-gradient(to bottom, var(--cosma-line) var(--cosma-stroke), transparent var(--cosma-stroke));
    background-size: var(--home-cell) var(--home-cell);
    box-shadow: inset 0 0 0 var(--cosma-stroke) var(--cosma-line);
    opacity: 0;
    transition: opacity .2s ease;
}
.cosma-home .cosma-domain-card:is(:hover, :focus-within) > figure::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
    .cosma-home .cosma-domain-card > figure::after { transition: none; }
}
.cosma-home :is(.clientBx, .partnerBx) .gutslider-overlay { inset: 0; width: 100%; height: 100%; transform: none; border-radius: 0; opacity: 1; visibility: visible; background: transparent; }
.cosma-home :is(.clientBx, .partnerBx) a.overlay-icon { position: absolute; inset: 0; width: 100%; height: 100%; transform: none; border-radius: 0; background: transparent; opacity: 1; visibility: visible; }
.cosma-home :is(.clientBx, .partnerBx) a.overlay-icon svg { display: none; }
.cosma-home :is(.clientBx, .partnerBx) a.overlay-icon:focus-visible { outline: 2px solid #111; outline-offset: -3px; }

/* Production mobile service headings; retain compact sizing on short screens. */
@media (width < 782px) and (height >= 700px) {
    .cosma-home-offers .cosma-offer-copy h2 { font-size: 25px; line-height: 1.2; }
}

/* Compact captions depend on viewport geometry, never downloaded font metrics. */
@media (min-width: 782px) and (max-height: 900px) {
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy { padding: 1rem; font-size: 18px; line-height: 1.35; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy h2 { font-size: 24px; line-height: 1.2; margin-block-end: 1rem; }
    :where(html.cosma-scroll-offers) .cosma-home-offers:where(.has-multiple-offers) .cosma-offer-copy .footer { padding-block-start: .75rem; font-size: 14px; line-height: 1.3; }
}
